aboutsummaryrefslogtreecommitdiff
path: root/final/ABI-Testsuite/test/s2_6/T_vf1.x
diff options
context:
space:
mode:
Diffstat (limited to 'final/ABI-Testsuite/test/s2_6/T_vf1.x')
-rwxr-xr-xfinal/ABI-Testsuite/test/s2_6/T_vf1.x272165
1 files changed, 272165 insertions, 0 deletions
diff --git a/final/ABI-Testsuite/test/s2_6/T_vf1.x b/final/ABI-Testsuite/test/s2_6/T_vf1.x
new file mode 100755
index 00000000..68951fb8
--- /dev/null
+++ b/final/ABI-Testsuite/test/s2_6/T_vf1.x
@@ -0,0 +1,272165 @@
+// This file is distributed under the University of Illinois Open Source License.
+// See LICENSE.TXT for details.
+// RUN: c_compiler -c -o %t1.o -I "common" "common/testsuite.c"
+// RUN: cxx_compiler cxx_rtti -c %s -I "common" -o %t2.o
+// RUN: c_compiler -c %s -I "common" -o %t3.o
+// RUN: linker -o %t2%exeext %t1.o %t2.o %t3.o
+// RUN: runtool %t2%exeext | checker "TEST PASSED"
+#include "testsuite.h"
+#ifdef __cplusplus
+
+struct AA1 {
+ int pa;
+ 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, pa, ABISELECT(8,4), "AA1.pa");
+ 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 BB1 {
+ int pb;
+ virtual void foo(); // _ZN3BB13fooEv
+ ~BB1(); // tgen
+ BB1(); // tgen
+};
+//SIG(-1 BB1) C1{ v1 Fi}
+
+
+void BB1 ::foo(){vfunc_called(this, "_ZN3BB13fooEv");}
+BB1 ::~BB1(){ note_dtor("BB1", this);} // tgen
+BB1 ::BB1(){ note_ctor("BB1", this);} // tgen
+
+static void Test_BB1()
+{
+ extern Class_Descriptor cd_BB1;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_BB1, buf);
+ BB1 *dp, &lv = *(dp=new (buf) BB1());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(BB1)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(BB1)");
+ check_field_offset(lv, pb, ABISELECT(8,4), "BB1.pb");
+ test_class_info(&lv, &cd_BB1);
+ dp->~BB1();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vBB1(Test_BB1, "BB1", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN3BB1C1Ev();
+extern void _ZN3BB1D1Ev();
+Name_Map name_map_BB1[] = {
+ NSPAIR(_ZN3BB1C1Ev),
+ NSPAIR(_ZN3BB1D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI3BB1[];
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY vtc_BB1[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3BB1[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+Class_Descriptor cd_BB1 = { "BB1", // class name
+ 0,0,//no base classes
+ &(vtc_BB1[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI3BB1),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV3BB1),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 CC1 {
+ int pc;
+ virtual void foo(); // _ZN3CC13fooEv
+ ~CC1(); // tgen
+ CC1(); // tgen
+};
+//SIG(1 CC1) C1{ v1 Fi}
+
+
+void CC1 ::foo(){vfunc_called(this, "_ZN3CC13fooEv");}
+CC1 ::~CC1(){ note_dtor("CC1", this);} // tgen
+CC1 ::CC1(){ note_ctor("CC1", this);} // tgen
+
+static void Test_CC1()
+{
+ extern Class_Descriptor cd_CC1;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_CC1, buf);
+ CC1 *dp, &lv = *(dp=new (buf) CC1());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(CC1)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(CC1)");
+ check_field_offset(lv, pc, ABISELECT(8,4), "CC1.pc");
+ test_class_info(&lv, &cd_CC1);
+ dp->~CC1();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vCC1(Test_CC1, "CC1", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN3CC1C1Ev();
+extern void _ZN3CC1D1Ev();
+Name_Map name_map_CC1[] = {
+ NSPAIR(_ZN3CC1C1Ev),
+ NSPAIR(_ZN3CC1D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI3CC1[];
+extern void _ZN3CC13fooEv();
+static VTBL_ENTRY vtc_CC1[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3CC1[0]),
+ (VTBL_ENTRY)&_ZN3CC13fooEv,
+};
+extern VTBL_ENTRY _ZTI3CC1[];
+extern VTBL_ENTRY _ZTV3CC1[];
+Class_Descriptor cd_CC1 = { "CC1", // class name
+ 0,0,//no base classes
+ &(vtc_CC1[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI3CC1),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV3CC1),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 DD1 {
+ int pd;
+ virtual void foo(); // _ZN3DD13fooEv
+ ~DD1(); // tgen
+ DD1(); // tgen
+};
+//SIG(1 DD1) C1{ v1 Fi}
+
+
+void DD1 ::foo(){vfunc_called(this, "_ZN3DD13fooEv");}
+DD1 ::~DD1(){ note_dtor("DD1", this);} // tgen
+DD1 ::DD1(){ note_ctor("DD1", this);} // tgen
+
+static void Test_DD1()
+{
+ extern Class_Descriptor cd_DD1;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_DD1, buf);
+ DD1 *dp, &lv = *(dp=new (buf) DD1());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(DD1)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(DD1)");
+ check_field_offset(lv, pd, ABISELECT(8,4), "DD1.pd");
+ test_class_info(&lv, &cd_DD1);
+ dp->~DD1();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vDD1(Test_DD1, "DD1", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN3DD1C1Ev();
+extern void _ZN3DD1D1Ev();
+Name_Map name_map_DD1[] = {
+ NSPAIR(_ZN3DD1C1Ev),
+ NSPAIR(_ZN3DD1D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI3DD1[];
+extern void _ZN3DD13fooEv();
+static VTBL_ENTRY vtc_DD1[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3DD1[0]),
+ (VTBL_ENTRY)&_ZN3DD13fooEv,
+};
+extern VTBL_ENTRY _ZTI3DD1[];
+extern VTBL_ENTRY _ZTV3DD1[];
+Class_Descriptor cd_DD1 = { "DD1", // class name
+ 0,0,//no base classes
+ &(vtc_DD1[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI3DD1),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV3DD1),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 pa;
+ virtual void bar(); // _ZN3AA23barEv
+ ~AA2(); // tgen
+ AA2(); // tgen
+};
+//SIG(-1 AA2) C1{ v1 Fi}
+
+
+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, pa, ABISELECT(8,4), "AA2.pa");
+ 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 _ZN3AA23barEv();
+static VTBL_ENTRY vtc_AA2[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3AA2[0]),
+ (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),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 BB2 {
+ int pb;
+ virtual void bar(); // _ZN3BB23barEv
+ ~BB2(); // tgen
+ BB2(); // tgen
+};
+//SIG(-1 BB2) C1{ v1 Fi}
+
+
+void BB2 ::bar(){vfunc_called(this, "_ZN3BB23barEv");}
+BB2 ::~BB2(){ note_dtor("BB2", this);} // tgen
+BB2 ::BB2(){ note_ctor("BB2", this);} // tgen
+
+static void Test_BB2()
+{
+ extern Class_Descriptor cd_BB2;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_BB2, buf);
+ BB2 *dp, &lv = *(dp=new (buf) BB2());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(BB2)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(BB2)");
+ check_field_offset(lv, pb, ABISELECT(8,4), "BB2.pb");
+ test_class_info(&lv, &cd_BB2);
+ dp->~BB2();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vBB2(Test_BB2, "BB2", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN3BB2C1Ev();
+extern void _ZN3BB2D1Ev();
+Name_Map name_map_BB2[] = {
+ NSPAIR(_ZN3BB2C1Ev),
+ NSPAIR(_ZN3BB2D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI3BB2[];
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY vtc_BB2[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3BB2[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+Class_Descriptor cd_BB2 = { "BB2", // class name
+ 0,0,//no base classes
+ &(vtc_BB2[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI3BB2),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV3BB2),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 CC2 {
+ int pc;
+ virtual void bar(); // _ZN3CC23barEv
+ ~CC2(); // tgen
+ CC2(); // tgen
+};
+//SIG(1 CC2) C1{ v1 Fi}
+
+
+void CC2 ::bar(){vfunc_called(this, "_ZN3CC23barEv");}
+CC2 ::~CC2(){ note_dtor("CC2", this);} // tgen
+CC2 ::CC2(){ note_ctor("CC2", this);} // tgen
+
+static void Test_CC2()
+{
+ extern Class_Descriptor cd_CC2;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_CC2, buf);
+ CC2 *dp, &lv = *(dp=new (buf) CC2());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(CC2)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(CC2)");
+ check_field_offset(lv, pc, ABISELECT(8,4), "CC2.pc");
+ test_class_info(&lv, &cd_CC2);
+ dp->~CC2();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vCC2(Test_CC2, "CC2", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN3CC2C1Ev();
+extern void _ZN3CC2D1Ev();
+Name_Map name_map_CC2[] = {
+ NSPAIR(_ZN3CC2C1Ev),
+ NSPAIR(_ZN3CC2D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI3CC2[];
+extern void _ZN3CC23barEv();
+static VTBL_ENTRY vtc_CC2[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3CC2[0]),
+ (VTBL_ENTRY)&_ZN3CC23barEv,
+};
+extern VTBL_ENTRY _ZTI3CC2[];
+extern VTBL_ENTRY _ZTV3CC2[];
+Class_Descriptor cd_CC2 = { "CC2", // class name
+ 0,0,//no base classes
+ &(vtc_CC2[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI3CC2),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV3CC2),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 DD2 {
+ int pd;
+ virtual void bar(); // _ZN3DD23barEv
+ ~DD2(); // tgen
+ DD2(); // tgen
+};
+//SIG(1 DD2) C1{ v1 Fi}
+
+
+void DD2 ::bar(){vfunc_called(this, "_ZN3DD23barEv");}
+DD2 ::~DD2(){ note_dtor("DD2", this);} // tgen
+DD2 ::DD2(){ note_ctor("DD2", this);} // tgen
+
+static void Test_DD2()
+{
+ extern Class_Descriptor cd_DD2;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_DD2, buf);
+ DD2 *dp, &lv = *(dp=new (buf) DD2());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(DD2)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(DD2)");
+ check_field_offset(lv, pd, ABISELECT(8,4), "DD2.pd");
+ test_class_info(&lv, &cd_DD2);
+ dp->~DD2();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vDD2(Test_DD2, "DD2", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN3DD2C1Ev();
+extern void _ZN3DD2D1Ev();
+Name_Map name_map_DD2[] = {
+ NSPAIR(_ZN3DD2C1Ev),
+ NSPAIR(_ZN3DD2D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI3DD2[];
+extern void _ZN3DD23barEv();
+static VTBL_ENTRY vtc_DD2[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3DD2[0]),
+ (VTBL_ENTRY)&_ZN3DD23barEv,
+};
+extern VTBL_ENTRY _ZTI3DD2[];
+extern VTBL_ENTRY _ZTV3DD2[];
+Class_Descriptor cd_DD2 = { "DD2", // class name
+ 0,0,//no base classes
+ &(vtc_DD2[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI3DD2),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV3DD2),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 AA3 {
+ int pa;
+ virtual void foo(); // _ZN3AA33fooEv
+ virtual void bar(); // _ZN3AA33barEv
+ ~AA3(); // tgen
+ AA3(); // tgen
+};
+//SIG(-1 AA3) C1{ v1 v2 Fi}
+
+
+void AA3 ::foo(){vfunc_called(this, "_ZN3AA33fooEv");}
+void AA3 ::bar(){vfunc_called(this, "_ZN3AA33barEv");}
+AA3 ::~AA3(){ note_dtor("AA3", this);} // tgen
+AA3 ::AA3(){ note_ctor("AA3", this);} // tgen
+
+static void Test_AA3()
+{
+ extern Class_Descriptor cd_AA3;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_AA3, buf);
+ AA3 *dp, &lv = *(dp=new (buf) AA3());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(AA3)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(AA3)");
+ check_field_offset(lv, pa, ABISELECT(8,4), "AA3.pa");
+ test_class_info(&lv, &cd_AA3);
+ dp->~AA3();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vAA3(Test_AA3, "AA3", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN3AA3C1Ev();
+extern void _ZN3AA3D1Ev();
+Name_Map name_map_AA3[] = {
+ NSPAIR(_ZN3AA3C1Ev),
+ NSPAIR(_ZN3AA3D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI3AA3[];
+extern void _ZN3AA33fooEv();
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY vtc_AA3[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3AA3[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+Class_Descriptor cd_AA3 = { "AA3", // class name
+ 0,0,//no base classes
+ &(vtc_AA3[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI3AA3),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV3AA3),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 BB3 {
+ int pb;
+ virtual void foo(); // _ZN3BB33fooEv
+ virtual void bar(); // _ZN3BB33barEv
+ ~BB3(); // tgen
+ BB3(); // tgen
+};
+//SIG(-1 BB3) C1{ v1 v2 Fi}
+
+
+void BB3 ::foo(){vfunc_called(this, "_ZN3BB33fooEv");}
+void BB3 ::bar(){vfunc_called(this, "_ZN3BB33barEv");}
+BB3 ::~BB3(){ note_dtor("BB3", this);} // tgen
+BB3 ::BB3(){ note_ctor("BB3", this);} // tgen
+
+static void Test_BB3()
+{
+ extern Class_Descriptor cd_BB3;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_BB3, buf);
+ BB3 *dp, &lv = *(dp=new (buf) BB3());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(BB3)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(BB3)");
+ check_field_offset(lv, pb, ABISELECT(8,4), "BB3.pb");
+ test_class_info(&lv, &cd_BB3);
+ dp->~BB3();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vBB3(Test_BB3, "BB3", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN3BB3C1Ev();
+extern void _ZN3BB3D1Ev();
+Name_Map name_map_BB3[] = {
+ NSPAIR(_ZN3BB3C1Ev),
+ NSPAIR(_ZN3BB3D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI3BB3[];
+extern void _ZN3BB33fooEv();
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY vtc_BB3[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3BB3[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+Class_Descriptor cd_BB3 = { "BB3", // class name
+ 0,0,//no base classes
+ &(vtc_BB3[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI3BB3),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV3BB3),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 CC3 {
+ int pc;
+ virtual void foo(); // _ZN3CC33fooEv
+ virtual void bar(); // _ZN3CC33barEv
+ ~CC3(); // tgen
+ CC3(); // tgen
+};
+//SIG(1 CC3) C1{ v1 v2 Fi}
+
+
+void CC3 ::foo(){vfunc_called(this, "_ZN3CC33fooEv");}
+void CC3 ::bar(){vfunc_called(this, "_ZN3CC33barEv");}
+CC3 ::~CC3(){ note_dtor("CC3", this);} // tgen
+CC3 ::CC3(){ note_ctor("CC3", this);} // tgen
+
+static void Test_CC3()
+{
+ extern Class_Descriptor cd_CC3;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_CC3, buf);
+ CC3 *dp, &lv = *(dp=new (buf) CC3());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(CC3)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(CC3)");
+ check_field_offset(lv, pc, ABISELECT(8,4), "CC3.pc");
+ test_class_info(&lv, &cd_CC3);
+ dp->~CC3();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vCC3(Test_CC3, "CC3", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN3CC3C1Ev();
+extern void _ZN3CC3D1Ev();
+Name_Map name_map_CC3[] = {
+ NSPAIR(_ZN3CC3C1Ev),
+ NSPAIR(_ZN3CC3D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI3CC3[];
+extern void _ZN3CC33fooEv();
+extern void _ZN3CC33barEv();
+static VTBL_ENTRY vtc_CC3[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3CC3[0]),
+ (VTBL_ENTRY)&_ZN3CC33fooEv,
+ (VTBL_ENTRY)&_ZN3CC33barEv,
+};
+extern VTBL_ENTRY _ZTI3CC3[];
+extern VTBL_ENTRY _ZTV3CC3[];
+Class_Descriptor cd_CC3 = { "CC3", // class name
+ 0,0,//no base classes
+ &(vtc_CC3[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI3CC3),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV3CC3),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 DD3 {
+ int pd;
+ virtual void foo(); // _ZN3DD33fooEv
+ virtual void bar(); // _ZN3DD33barEv
+ ~DD3(); // tgen
+ DD3(); // tgen
+};
+//SIG(1 DD3) C1{ v1 v2 Fi}
+
+
+void DD3 ::foo(){vfunc_called(this, "_ZN3DD33fooEv");}
+void DD3 ::bar(){vfunc_called(this, "_ZN3DD33barEv");}
+DD3 ::~DD3(){ note_dtor("DD3", this);} // tgen
+DD3 ::DD3(){ note_ctor("DD3", this);} // tgen
+
+static void Test_DD3()
+{
+ extern Class_Descriptor cd_DD3;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[3];
+ init_test(&cd_DD3, buf);
+ DD3 *dp, &lv = *(dp=new (buf) DD3());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(16,8), "sizeof(DD3)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(DD3)");
+ check_field_offset(lv, pd, ABISELECT(8,4), "DD3.pd");
+ test_class_info(&lv, &cd_DD3);
+ dp->~DD3();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vDD3(Test_DD3, "DD3", ABISELECT(16,8));
+
+#else // __cplusplus
+
+extern void _ZN3DD3C1Ev();
+extern void _ZN3DD3D1Ev();
+Name_Map name_map_DD3[] = {
+ NSPAIR(_ZN3DD3C1Ev),
+ NSPAIR(_ZN3DD3D1Ev),
+ {0,0}
+};
+extern VTBL_ENTRY _ZTI3DD3[];
+extern void _ZN3DD33fooEv();
+extern void _ZN3DD33barEv();
+static VTBL_ENTRY vtc_DD3[] = {
+ 0,
+ (VTBL_ENTRY)&(_ZTI3DD3[0]),
+ (VTBL_ENTRY)&_ZN3DD33fooEv,
+ (VTBL_ENTRY)&_ZN3DD33barEv,
+};
+extern VTBL_ENTRY _ZTI3DD3[];
+extern VTBL_ENTRY _ZTV3DD3[];
+Class_Descriptor cd_DD3 = { "DD3", // class name
+ 0,0,//no base classes
+ &(vtc_DD3[0]), // expected_vtbl_contents
+ 0, //no vtt
+ ABISELECT(16,8), // object size
+ NSPAIRA(_ZTI3DD3),ABISELECT(16,8), //typeinfo_var
+ NSPAIRA(_ZTV3DD3),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 E11 : virtual AA1 {
+ int pe;
+ virtual void foo(); // _ZN3E113fooEv
+ ~E11(); // tgen
+ E11(); // tgen
+};
+//SIG(-1 E11) C1{ VBC2{ v1 Fi} v1 Fi}
+
+
+void E11 ::foo(){vfunc_called(this, "_ZN3E113fooEv");}
+E11 ::~E11(){ note_dtor("E11", this);} // tgen
+E11 ::E11(){ note_ctor("E11", this);} // tgen
+
+static void Test_E11()
+{
+ extern Class_Descriptor cd_E11;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[5];
+ init_test(&cd_E11, buf);
+ E11 *dp, &lv = *(dp=new (buf) E11());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,16), "sizeof(E11)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(E11)");
+ check_base_class_offset(lv, (AA1*), ABISELECT(16,8), "E11");
+ check_field_offset(lv, pe, ABISELECT(8,4), "E11.pe");
+ test_class_info(&lv, &cd_E11);
+ dp->~E11();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vE11(Test_E11, "E11", ABISELECT(32,16));
+
+#else // __cplusplus
+
+extern void _ZN3E11C1Ev();
+extern void _ZN3E11D1Ev();
+Name_Map name_map_E11[] = {
+ NSPAIR(_ZN3E11C1Ev),
+ NSPAIR(_ZN3E11D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+static Base_Class bases_E11[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 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 _ZTI3E11[];
+extern void _ZN3E113fooEv();
+extern void ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv)();
+extern void ABISELECT(_ZThn16_N3E113fooEv,_ZThn8_N3E113fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_E11[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E11[0]),
+ (VTBL_ENTRY)&_ZN3E113fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E11[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv),
+};
+extern VTBL_ENTRY _ZTV3E11[];
+static VTT_ENTRY vtt_E11[] = {
+ {&(_ZTV3E11[3]), 3,8},
+ {&(_ZTV3E11[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI3E11[];
+extern VTBL_ENTRY _ZTV3E11[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E11[];
+static VTBL_ENTRY alt_thunk_names1[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E113fooEv,_ZThn8_N3E113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_E11 = { "E11", // class name
+ bases_E11, 1,
+ &(vtc_E11[0]), // expected_vtbl_contents
+ &(vtt_E11[0]), // expected_vtt_contents
+ ABISELECT(32,16), // object size
+ NSPAIRA(_ZTI3E11),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV3E11),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT3E11),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct F11 : virtual AA1 {
+ int pf;
+ virtual void foo(); // _ZN3F113fooEv
+ ~F11(); // tgen
+ F11(); // tgen
+};
+//SIG(-1 F11) C1{ VBC2{ v1 Fi} v1 Fi}
+
+
+void F11 ::foo(){vfunc_called(this, "_ZN3F113fooEv");}
+F11 ::~F11(){ note_dtor("F11", this);} // tgen
+F11 ::F11(){ note_ctor("F11", this);} // tgen
+
+static void Test_F11()
+{
+ extern Class_Descriptor cd_F11;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[5];
+ init_test(&cd_F11, buf);
+ F11 *dp, &lv = *(dp=new (buf) F11());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,16), "sizeof(F11)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(F11)");
+ check_base_class_offset(lv, (AA1*), ABISELECT(16,8), "F11");
+ check_field_offset(lv, pf, ABISELECT(8,4), "F11.pf");
+ test_class_info(&lv, &cd_F11);
+ dp->~F11();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vF11(Test_F11, "F11", ABISELECT(32,16));
+
+#else // __cplusplus
+
+extern void _ZN3F11C1Ev();
+extern void _ZN3F11D1Ev();
+Name_Map name_map_F11[] = {
+ NSPAIR(_ZN3F11C1Ev),
+ NSPAIR(_ZN3F11D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+static Base_Class bases_F11[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 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 _ZTI3F11[];
+extern void _ZN3F113fooEv();
+extern void ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv)();
+extern void ABISELECT(_ZThn16_N3F113fooEv,_ZThn8_N3F113fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_F11[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F11[0]),
+ (VTBL_ENTRY)&_ZN3F113fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F11[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv),
+};
+extern VTBL_ENTRY _ZTV3F11[];
+static VTT_ENTRY vtt_F11[] = {
+ {&(_ZTV3F11[3]), 3,8},
+ {&(_ZTV3F11[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI3F11[];
+extern VTBL_ENTRY _ZTV3F11[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F11[];
+static VTBL_ENTRY alt_thunk_names2[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F113fooEv,_ZThn8_N3F113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_F11 = { "F11", // class name
+ bases_F11, 1,
+ &(vtc_F11[0]), // expected_vtbl_contents
+ &(vtt_F11[0]), // expected_vtt_contents
+ ABISELECT(32,16), // object size
+ NSPAIRA(_ZTI3F11),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV3F11),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT3F11),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names2,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct E12 : virtual AA1 {
+ int pe;
+ virtual void bar(); // _ZN3E123barEv
+ ~E12(); // tgen
+ E12(); // tgen
+};
+//SIG(-1 E12) C1{ VBC2{ v2 Fi} v1 Fi}
+
+
+void E12 ::bar(){vfunc_called(this, "_ZN3E123barEv");}
+E12 ::~E12(){ note_dtor("E12", this);} // tgen
+E12 ::E12(){ note_ctor("E12", this);} // tgen
+
+static void Test_E12()
+{
+ extern Class_Descriptor cd_E12;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[5];
+ init_test(&cd_E12, buf);
+ E12 *dp, &lv = *(dp=new (buf) E12());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,16), "sizeof(E12)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(E12)");
+ check_base_class_offset(lv, (AA1*), ABISELECT(16,8), "E12");
+ check_field_offset(lv, pe, ABISELECT(8,4), "E12.pe");
+ test_class_info(&lv, &cd_E12);
+ dp->~E12();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vE12(Test_E12, "E12", ABISELECT(32,16));
+
+#else // __cplusplus
+
+extern void _ZN3E12C1Ev();
+extern void _ZN3E12D1Ev();
+Name_Map name_map_E12[] = {
+ NSPAIR(_ZN3E12C1Ev),
+ NSPAIR(_ZN3E12D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+static Base_Class bases_E12[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 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 _ZTI3E12[];
+extern void _ZN3E123barEv();
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY vtc_E12[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E12[0]),
+ (VTBL_ENTRY)&_ZN3E123barEv,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E12[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern VTBL_ENTRY _ZTV3E12[];
+static VTT_ENTRY vtt_E12[] = {
+ {&(_ZTV3E12[3]), 3,8},
+ {&(_ZTV3E12[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI3E12[];
+extern VTBL_ENTRY _ZTV3E12[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E12[];
+Class_Descriptor cd_E12 = { "E12", // class name
+ bases_E12, 1,
+ &(vtc_E12[0]), // expected_vtbl_contents
+ &(vtt_E12[0]), // expected_vtt_contents
+ ABISELECT(32,16), // object size
+ NSPAIRA(_ZTI3E12),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV3E12),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT3E12),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 F12 : virtual AA1 {
+ int pf;
+ virtual void bar(); // _ZN3F123barEv
+ ~F12(); // tgen
+ F12(); // tgen
+};
+//SIG(-1 F12) C1{ VBC2{ v2 Fi} v1 Fi}
+
+
+void F12 ::bar(){vfunc_called(this, "_ZN3F123barEv");}
+F12 ::~F12(){ note_dtor("F12", this);} // tgen
+F12 ::F12(){ note_ctor("F12", this);} // tgen
+
+static void Test_F12()
+{
+ extern Class_Descriptor cd_F12;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[5];
+ init_test(&cd_F12, buf);
+ F12 *dp, &lv = *(dp=new (buf) F12());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,16), "sizeof(F12)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(F12)");
+ check_base_class_offset(lv, (AA1*), ABISELECT(16,8), "F12");
+ check_field_offset(lv, pf, ABISELECT(8,4), "F12.pf");
+ test_class_info(&lv, &cd_F12);
+ dp->~F12();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vF12(Test_F12, "F12", ABISELECT(32,16));
+
+#else // __cplusplus
+
+extern void _ZN3F12C1Ev();
+extern void _ZN3F12D1Ev();
+Name_Map name_map_F12[] = {
+ NSPAIR(_ZN3F12C1Ev),
+ NSPAIR(_ZN3F12D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+static Base_Class bases_F12[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 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 _ZTI3F12[];
+extern void _ZN3F123barEv();
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY vtc_F12[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F12[0]),
+ (VTBL_ENTRY)&_ZN3F123barEv,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F12[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern VTBL_ENTRY _ZTV3F12[];
+static VTT_ENTRY vtt_F12[] = {
+ {&(_ZTV3F12[3]), 3,8},
+ {&(_ZTV3F12[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI3F12[];
+extern VTBL_ENTRY _ZTV3F12[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F12[];
+Class_Descriptor cd_F12 = { "F12", // class name
+ bases_F12, 1,
+ &(vtc_F12[0]), // expected_vtbl_contents
+ &(vtt_F12[0]), // expected_vtt_contents
+ ABISELECT(32,16), // object size
+ NSPAIRA(_ZTI3F12),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV3F12),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT3F12),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 E13 : virtual AA1 {
+ int pe;
+ virtual void foo(); // _ZN3E133fooEv
+ virtual void bar(); // _ZN3E133barEv
+ ~E13(); // tgen
+ E13(); // tgen
+};
+//SIG(-1 E13) C1{ VBC2{ v1 Fi} v1 v2 Fi}
+
+
+void E13 ::foo(){vfunc_called(this, "_ZN3E133fooEv");}
+void E13 ::bar(){vfunc_called(this, "_ZN3E133barEv");}
+E13 ::~E13(){ note_dtor("E13", this);} // tgen
+E13 ::E13(){ note_ctor("E13", this);} // tgen
+
+static void Test_E13()
+{
+ extern Class_Descriptor cd_E13;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[5];
+ init_test(&cd_E13, buf);
+ E13 *dp, &lv = *(dp=new (buf) E13());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,16), "sizeof(E13)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(E13)");
+ check_base_class_offset(lv, (AA1*), ABISELECT(16,8), "E13");
+ check_field_offset(lv, pe, ABISELECT(8,4), "E13.pe");
+ test_class_info(&lv, &cd_E13);
+ dp->~E13();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vE13(Test_E13, "E13", ABISELECT(32,16));
+
+#else // __cplusplus
+
+extern void _ZN3E13C1Ev();
+extern void _ZN3E13D1Ev();
+Name_Map name_map_E13[] = {
+ NSPAIR(_ZN3E13C1Ev),
+ NSPAIR(_ZN3E13D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+static Base_Class bases_E13[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 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 _ZTI3E13[];
+extern void _ZN3E133fooEv();
+extern void _ZN3E133barEv();
+extern void ABISELECT(_ZTv0_n24_N3E133fooEv,_ZTv0_n12_N3E133fooEv)();
+extern void ABISELECT(_ZThn16_N3E133fooEv,_ZThn8_N3E133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_E13[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E13[0]),
+ (VTBL_ENTRY)&_ZN3E133fooEv,
+ (VTBL_ENTRY)&_ZN3E133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E13[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E133fooEv,_ZTv0_n12_N3E133fooEv),
+};
+extern VTBL_ENTRY _ZTV3E13[];
+static VTT_ENTRY vtt_E13[] = {
+ {&(_ZTV3E13[3]), 3,9},
+ {&(_ZTV3E13[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI3E13[];
+extern VTBL_ENTRY _ZTV3E13[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E13[];
+static VTBL_ENTRY alt_thunk_names3[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E133fooEv,_ZTv0_n12_N3E133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E133fooEv,_ZThn8_N3E133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_E13 = { "E13", // class name
+ bases_E13, 1,
+ &(vtc_E13[0]), // expected_vtbl_contents
+ &(vtt_E13[0]), // expected_vtt_contents
+ ABISELECT(32,16), // object size
+ NSPAIRA(_ZTI3E13),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV3E13),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT3E13),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names3,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct F13 : virtual AA1 {
+ int pf;
+ virtual void foo(); // _ZN3F133fooEv
+ virtual void bar(); // _ZN3F133barEv
+ ~F13(); // tgen
+ F13(); // tgen
+};
+//SIG(-1 F13) C1{ VBC2{ v1 Fi} v1 v2 Fi}
+
+
+void F13 ::foo(){vfunc_called(this, "_ZN3F133fooEv");}
+void F13 ::bar(){vfunc_called(this, "_ZN3F133barEv");}
+F13 ::~F13(){ note_dtor("F13", this);} // tgen
+F13 ::F13(){ note_ctor("F13", this);} // tgen
+
+static void Test_F13()
+{
+ extern Class_Descriptor cd_F13;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[5];
+ init_test(&cd_F13, buf);
+ F13 *dp, &lv = *(dp=new (buf) F13());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,16), "sizeof(F13)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(F13)");
+ check_base_class_offset(lv, (AA1*), ABISELECT(16,8), "F13");
+ check_field_offset(lv, pf, ABISELECT(8,4), "F13.pf");
+ test_class_info(&lv, &cd_F13);
+ dp->~F13();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vF13(Test_F13, "F13", ABISELECT(32,16));
+
+#else // __cplusplus
+
+extern void _ZN3F13C1Ev();
+extern void _ZN3F13D1Ev();
+Name_Map name_map_F13[] = {
+ NSPAIR(_ZN3F13C1Ev),
+ NSPAIR(_ZN3F13D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+static Base_Class bases_F13[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 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 _ZTI3F13[];
+extern void _ZN3F133fooEv();
+extern void _ZN3F133barEv();
+extern void ABISELECT(_ZTv0_n24_N3F133fooEv,_ZTv0_n12_N3F133fooEv)();
+extern void ABISELECT(_ZThn16_N3F133fooEv,_ZThn8_N3F133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_F13[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F13[0]),
+ (VTBL_ENTRY)&_ZN3F133fooEv,
+ (VTBL_ENTRY)&_ZN3F133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F13[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F133fooEv,_ZTv0_n12_N3F133fooEv),
+};
+extern VTBL_ENTRY _ZTV3F13[];
+static VTT_ENTRY vtt_F13[] = {
+ {&(_ZTV3F13[3]), 3,9},
+ {&(_ZTV3F13[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI3F13[];
+extern VTBL_ENTRY _ZTV3F13[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F13[];
+static VTBL_ENTRY alt_thunk_names4[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F133fooEv,_ZTv0_n12_N3F133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F133fooEv,_ZThn8_N3F133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_F13 = { "F13", // class name
+ bases_F13, 1,
+ &(vtc_F13[0]), // expected_vtbl_contents
+ &(vtt_F13[0]), // expected_vtt_contents
+ ABISELECT(32,16), // object size
+ NSPAIRA(_ZTI3F13),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV3F13),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT3F13),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names4,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct E21 : virtual AA2 {
+ int pe;
+ virtual void foo(); // _ZN3E213fooEv
+ ~E21(); // tgen
+ E21(); // tgen
+};
+//SIG(-1 E21) C1{ VBC2{ v2 Fi} v1 Fi}
+
+
+void E21 ::foo(){vfunc_called(this, "_ZN3E213fooEv");}
+E21 ::~E21(){ note_dtor("E21", this);} // tgen
+E21 ::E21(){ note_ctor("E21", this);} // tgen
+
+static void Test_E21()
+{
+ extern Class_Descriptor cd_E21;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[5];
+ init_test(&cd_E21, buf);
+ E21 *dp, &lv = *(dp=new (buf) E21());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,16), "sizeof(E21)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(E21)");
+ check_base_class_offset(lv, (AA2*), ABISELECT(16,8), "E21");
+ check_field_offset(lv, pe, ABISELECT(8,4), "E21.pe");
+ test_class_info(&lv, &cd_E21);
+ dp->~E21();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vE21(Test_E21, "E21", ABISELECT(32,16));
+
+#else // __cplusplus
+
+extern void _ZN3E21C1Ev();
+extern void _ZN3E21D1Ev();
+Name_Map name_map_E21[] = {
+ NSPAIR(_ZN3E21C1Ev),
+ NSPAIR(_ZN3E21D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+static Base_Class bases_E21[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI3E21[];
+extern void _ZN3E213fooEv();
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY vtc_E21[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E21[0]),
+ (VTBL_ENTRY)&_ZN3E213fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E21[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern VTBL_ENTRY _ZTV3E21[];
+static VTT_ENTRY vtt_E21[] = {
+ {&(_ZTV3E21[3]), 3,8},
+ {&(_ZTV3E21[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI3E21[];
+extern VTBL_ENTRY _ZTV3E21[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E21[];
+Class_Descriptor cd_E21 = { "E21", // class name
+ bases_E21, 1,
+ &(vtc_E21[0]), // expected_vtbl_contents
+ &(vtt_E21[0]), // expected_vtt_contents
+ ABISELECT(32,16), // object size
+ NSPAIRA(_ZTI3E21),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV3E21),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT3E21),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 F21 : virtual AA2 {
+ int pf;
+ virtual void foo(); // _ZN3F213fooEv
+ ~F21(); // tgen
+ F21(); // tgen
+};
+//SIG(-1 F21) C1{ VBC2{ v2 Fi} v1 Fi}
+
+
+void F21 ::foo(){vfunc_called(this, "_ZN3F213fooEv");}
+F21 ::~F21(){ note_dtor("F21", this);} // tgen
+F21 ::F21(){ note_ctor("F21", this);} // tgen
+
+static void Test_F21()
+{
+ extern Class_Descriptor cd_F21;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[5];
+ init_test(&cd_F21, buf);
+ F21 *dp, &lv = *(dp=new (buf) F21());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,16), "sizeof(F21)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(F21)");
+ check_base_class_offset(lv, (AA2*), ABISELECT(16,8), "F21");
+ check_field_offset(lv, pf, ABISELECT(8,4), "F21.pf");
+ test_class_info(&lv, &cd_F21);
+ dp->~F21();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vF21(Test_F21, "F21", ABISELECT(32,16));
+
+#else // __cplusplus
+
+extern void _ZN3F21C1Ev();
+extern void _ZN3F21D1Ev();
+Name_Map name_map_F21[] = {
+ NSPAIR(_ZN3F21C1Ev),
+ NSPAIR(_ZN3F21D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+static Base_Class bases_F21[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI3F21[];
+extern void _ZN3F213fooEv();
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY vtc_F21[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F21[0]),
+ (VTBL_ENTRY)&_ZN3F213fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F21[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern VTBL_ENTRY _ZTV3F21[];
+static VTT_ENTRY vtt_F21[] = {
+ {&(_ZTV3F21[3]), 3,8},
+ {&(_ZTV3F21[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI3F21[];
+extern VTBL_ENTRY _ZTV3F21[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F21[];
+Class_Descriptor cd_F21 = { "F21", // class name
+ bases_F21, 1,
+ &(vtc_F21[0]), // expected_vtbl_contents
+ &(vtt_F21[0]), // expected_vtt_contents
+ ABISELECT(32,16), // object size
+ NSPAIRA(_ZTI3F21),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV3F21),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT3F21),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 E22 : virtual AA2 {
+ int pe;
+ virtual void bar(); // _ZN3E223barEv
+ ~E22(); // tgen
+ E22(); // tgen
+};
+//SIG(-1 E22) C1{ VBC2{ v1 Fi} v1 Fi}
+
+
+void E22 ::bar(){vfunc_called(this, "_ZN3E223barEv");}
+E22 ::~E22(){ note_dtor("E22", this);} // tgen
+E22 ::E22(){ note_ctor("E22", this);} // tgen
+
+static void Test_E22()
+{
+ extern Class_Descriptor cd_E22;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[5];
+ init_test(&cd_E22, buf);
+ E22 *dp, &lv = *(dp=new (buf) E22());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,16), "sizeof(E22)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(E22)");
+ check_base_class_offset(lv, (AA2*), ABISELECT(16,8), "E22");
+ check_field_offset(lv, pe, ABISELECT(8,4), "E22.pe");
+ test_class_info(&lv, &cd_E22);
+ dp->~E22();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vE22(Test_E22, "E22", ABISELECT(32,16));
+
+#else // __cplusplus
+
+extern void _ZN3E22C1Ev();
+extern void _ZN3E22D1Ev();
+Name_Map name_map_E22[] = {
+ NSPAIR(_ZN3E22C1Ev),
+ NSPAIR(_ZN3E22D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+static Base_Class bases_E22[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI3E22[];
+extern void _ZN3E223barEv();
+extern void ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv)();
+extern void ABISELECT(_ZThn16_N3E223barEv,_ZThn8_N3E223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_E22[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E22[0]),
+ (VTBL_ENTRY)&_ZN3E223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E22[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv),
+};
+extern VTBL_ENTRY _ZTV3E22[];
+static VTT_ENTRY vtt_E22[] = {
+ {&(_ZTV3E22[3]), 3,8},
+ {&(_ZTV3E22[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI3E22[];
+extern VTBL_ENTRY _ZTV3E22[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E22[];
+static VTBL_ENTRY alt_thunk_names5[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E223barEv,_ZThn8_N3E223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_E22 = { "E22", // class name
+ bases_E22, 1,
+ &(vtc_E22[0]), // expected_vtbl_contents
+ &(vtt_E22[0]), // expected_vtt_contents
+ ABISELECT(32,16), // object size
+ NSPAIRA(_ZTI3E22),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV3E22),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT3E22),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names5,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct F22 : virtual AA2 {
+ int pf;
+ virtual void bar(); // _ZN3F223barEv
+ ~F22(); // tgen
+ F22(); // tgen
+};
+//SIG(-1 F22) C1{ VBC2{ v1 Fi} v1 Fi}
+
+
+void F22 ::bar(){vfunc_called(this, "_ZN3F223barEv");}
+F22 ::~F22(){ note_dtor("F22", this);} // tgen
+F22 ::F22(){ note_ctor("F22", this);} // tgen
+
+static void Test_F22()
+{
+ extern Class_Descriptor cd_F22;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[5];
+ init_test(&cd_F22, buf);
+ F22 *dp, &lv = *(dp=new (buf) F22());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,16), "sizeof(F22)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(F22)");
+ check_base_class_offset(lv, (AA2*), ABISELECT(16,8), "F22");
+ check_field_offset(lv, pf, ABISELECT(8,4), "F22.pf");
+ test_class_info(&lv, &cd_F22);
+ dp->~F22();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vF22(Test_F22, "F22", ABISELECT(32,16));
+
+#else // __cplusplus
+
+extern void _ZN3F22C1Ev();
+extern void _ZN3F22D1Ev();
+Name_Map name_map_F22[] = {
+ NSPAIR(_ZN3F22C1Ev),
+ NSPAIR(_ZN3F22D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+static Base_Class bases_F22[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(16,8), //bcp->offset
+ 4, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI3F22[];
+extern void _ZN3F223barEv();
+extern void ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv)();
+extern void ABISELECT(_ZThn16_N3F223barEv,_ZThn8_N3F223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_F22[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F22[0]),
+ (VTBL_ENTRY)&_ZN3F223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F22[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv),
+};
+extern VTBL_ENTRY _ZTV3F22[];
+static VTT_ENTRY vtt_F22[] = {
+ {&(_ZTV3F22[3]), 3,8},
+ {&(_ZTV3F22[7]), 7,8},
+};
+extern VTBL_ENTRY _ZTI3F22[];
+extern VTBL_ENTRY _ZTV3F22[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F22[];
+static VTBL_ENTRY alt_thunk_names6[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F223barEv,_ZThn8_N3F223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_F22 = { "F22", // class name
+ bases_F22, 1,
+ &(vtc_F22[0]), // expected_vtbl_contents
+ &(vtt_F22[0]), // expected_vtt_contents
+ ABISELECT(32,16), // object size
+ NSPAIRA(_ZTI3F22),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV3F22),8, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT3F22),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names6,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct E23 : virtual AA2 {
+ int pe;
+ virtual void foo(); // _ZN3E233fooEv
+ virtual void bar(); // _ZN3E233barEv
+ ~E23(); // tgen
+ E23(); // tgen
+};
+//SIG(-1 E23) C1{ VBC2{ v2 Fi} v1 v2 Fi}
+
+
+void E23 ::foo(){vfunc_called(this, "_ZN3E233fooEv");}
+void E23 ::bar(){vfunc_called(this, "_ZN3E233barEv");}
+E23 ::~E23(){ note_dtor("E23", this);} // tgen
+E23 ::E23(){ note_ctor("E23", this);} // tgen
+
+static void Test_E23()
+{
+ extern Class_Descriptor cd_E23;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[5];
+ init_test(&cd_E23, buf);
+ E23 *dp, &lv = *(dp=new (buf) E23());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,16), "sizeof(E23)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(E23)");
+ check_base_class_offset(lv, (AA2*), ABISELECT(16,8), "E23");
+ check_field_offset(lv, pe, ABISELECT(8,4), "E23.pe");
+ test_class_info(&lv, &cd_E23);
+ dp->~E23();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vE23(Test_E23, "E23", ABISELECT(32,16));
+
+#else // __cplusplus
+
+extern void _ZN3E23C1Ev();
+extern void _ZN3E23D1Ev();
+Name_Map name_map_E23[] = {
+ NSPAIR(_ZN3E23C1Ev),
+ NSPAIR(_ZN3E23D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+static Base_Class bases_E23[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI3E23[];
+extern void _ZN3E233fooEv();
+extern void _ZN3E233barEv();
+extern void ABISELECT(_ZTv0_n24_N3E233barEv,_ZTv0_n12_N3E233barEv)();
+extern void ABISELECT(_ZThn16_N3E233barEv,_ZThn8_N3E233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_E23[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E23[0]),
+ (VTBL_ENTRY)&_ZN3E233fooEv,
+ (VTBL_ENTRY)&_ZN3E233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E23[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E233barEv,_ZTv0_n12_N3E233barEv),
+};
+extern VTBL_ENTRY _ZTV3E23[];
+static VTT_ENTRY vtt_E23[] = {
+ {&(_ZTV3E23[3]), 3,9},
+ {&(_ZTV3E23[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI3E23[];
+extern VTBL_ENTRY _ZTV3E23[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E23[];
+static VTBL_ENTRY alt_thunk_names7[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E233barEv,_ZTv0_n12_N3E233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E233barEv,_ZThn8_N3E233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_E23 = { "E23", // class name
+ bases_E23, 1,
+ &(vtc_E23[0]), // expected_vtbl_contents
+ &(vtt_E23[0]), // expected_vtt_contents
+ ABISELECT(32,16), // object size
+ NSPAIRA(_ZTI3E23),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV3E23),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT3E23),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names7,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct F23 : virtual AA2 {
+ int pf;
+ virtual void foo(); // _ZN3F233fooEv
+ virtual void bar(); // _ZN3F233barEv
+ ~F23(); // tgen
+ F23(); // tgen
+};
+//SIG(-1 F23) C1{ VBC2{ v2 Fi} v1 v2 Fi}
+
+
+void F23 ::foo(){vfunc_called(this, "_ZN3F233fooEv");}
+void F23 ::bar(){vfunc_called(this, "_ZN3F233barEv");}
+F23 ::~F23(){ note_dtor("F23", this);} // tgen
+F23 ::F23(){ note_ctor("F23", this);} // tgen
+
+static void Test_F23()
+{
+ extern Class_Descriptor cd_F23;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[5];
+ init_test(&cd_F23, buf);
+ F23 *dp, &lv = *(dp=new (buf) F23());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,16), "sizeof(F23)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(F23)");
+ check_base_class_offset(lv, (AA2*), ABISELECT(16,8), "F23");
+ check_field_offset(lv, pf, ABISELECT(8,4), "F23.pf");
+ test_class_info(&lv, &cd_F23);
+ dp->~F23();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vF23(Test_F23, "F23", ABISELECT(32,16));
+
+#else // __cplusplus
+
+extern void _ZN3F23C1Ev();
+extern void _ZN3F23D1Ev();
+Name_Map name_map_F23[] = {
+ NSPAIR(_ZN3F23C1Ev),
+ NSPAIR(_ZN3F23D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+static Base_Class bases_F23[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI3F23[];
+extern void _ZN3F233fooEv();
+extern void _ZN3F233barEv();
+extern void ABISELECT(_ZTv0_n24_N3F233barEv,_ZTv0_n12_N3F233barEv)();
+extern void ABISELECT(_ZThn16_N3F233barEv,_ZThn8_N3F233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_F23[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F23[0]),
+ (VTBL_ENTRY)&_ZN3F233fooEv,
+ (VTBL_ENTRY)&_ZN3F233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F23[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F233barEv,_ZTv0_n12_N3F233barEv),
+};
+extern VTBL_ENTRY _ZTV3F23[];
+static VTT_ENTRY vtt_F23[] = {
+ {&(_ZTV3F23[3]), 3,9},
+ {&(_ZTV3F23[8]), 8,9},
+};
+extern VTBL_ENTRY _ZTI3F23[];
+extern VTBL_ENTRY _ZTV3F23[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F23[];
+static VTBL_ENTRY alt_thunk_names8[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F233barEv,_ZTv0_n12_N3F233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F233barEv,_ZThn8_N3F233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_F23 = { "F23", // class name
+ bases_F23, 1,
+ &(vtc_F23[0]), // expected_vtbl_contents
+ &(vtt_F23[0]), // expected_vtt_contents
+ ABISELECT(32,16), // object size
+ NSPAIRA(_ZTI3F23),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV3F23),9, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT3F23),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names8,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct E31 : virtual AA3 {
+ int pe;
+ virtual void foo(); // _ZN3E313fooEv
+ ~E31(); // tgen
+ E31(); // tgen
+};
+//SIG(-1 E31) C1{ VBC2{ v1 v2 Fi} v1 Fi}
+
+
+void E31 ::foo(){vfunc_called(this, "_ZN3E313fooEv");}
+E31 ::~E31(){ note_dtor("E31", this);} // tgen
+E31 ::E31(){ note_ctor("E31", this);} // tgen
+
+static void Test_E31()
+{
+ extern Class_Descriptor cd_E31;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[5];
+ init_test(&cd_E31, buf);
+ E31 *dp, &lv = *(dp=new (buf) E31());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,16), "sizeof(E31)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(E31)");
+ check_base_class_offset(lv, (AA3*), ABISELECT(16,8), "E31");
+ check_field_offset(lv, pe, ABISELECT(8,4), "E31.pe");
+ test_class_info(&lv, &cd_E31);
+ dp->~E31();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vE31(Test_E31, "E31", ABISELECT(32,16));
+
+#else // __cplusplus
+
+extern void _ZN3E31C1Ev();
+extern void _ZN3E31D1Ev();
+Name_Map name_map_E31[] = {
+ NSPAIR(_ZN3E31C1Ev),
+ NSPAIR(_ZN3E31D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+static Base_Class bases_E31[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(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 _ZTI3E31[];
+extern void _ZN3E313fooEv();
+extern void ABISELECT(_ZTv0_n24_N3E313fooEv,_ZTv0_n12_N3E313fooEv)();
+extern void ABISELECT(_ZThn16_N3E313fooEv,_ZThn8_N3E313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY vtc_E31[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E31[0]),
+ (VTBL_ENTRY)&_ZN3E313fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E31[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E313fooEv,_ZTv0_n12_N3E313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern VTBL_ENTRY _ZTV3E31[];
+static VTT_ENTRY vtt_E31[] = {
+ {&(_ZTV3E31[3]), 3,10},
+ {&(_ZTV3E31[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI3E31[];
+extern VTBL_ENTRY _ZTV3E31[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E31[];
+static VTBL_ENTRY alt_thunk_names9[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E313fooEv,_ZTv0_n12_N3E313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E313fooEv,_ZThn8_N3E313fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_E31 = { "E31", // class name
+ bases_E31, 1,
+ &(vtc_E31[0]), // expected_vtbl_contents
+ &(vtt_E31[0]), // expected_vtt_contents
+ ABISELECT(32,16), // object size
+ NSPAIRA(_ZTI3E31),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV3E31),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT3E31),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names9,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct F31 : virtual AA3 {
+ int pf;
+ virtual void foo(); // _ZN3F313fooEv
+ ~F31(); // tgen
+ F31(); // tgen
+};
+//SIG(-1 F31) C1{ VBC2{ v1 v2 Fi} v1 Fi}
+
+
+void F31 ::foo(){vfunc_called(this, "_ZN3F313fooEv");}
+F31 ::~F31(){ note_dtor("F31", this);} // tgen
+F31 ::F31(){ note_ctor("F31", this);} // tgen
+
+static void Test_F31()
+{
+ extern Class_Descriptor cd_F31;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[5];
+ init_test(&cd_F31, buf);
+ F31 *dp, &lv = *(dp=new (buf) F31());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,16), "sizeof(F31)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(F31)");
+ check_base_class_offset(lv, (AA3*), ABISELECT(16,8), "F31");
+ check_field_offset(lv, pf, ABISELECT(8,4), "F31.pf");
+ test_class_info(&lv, &cd_F31);
+ dp->~F31();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vF31(Test_F31, "F31", ABISELECT(32,16));
+
+#else // __cplusplus
+
+extern void _ZN3F31C1Ev();
+extern void _ZN3F31D1Ev();
+Name_Map name_map_F31[] = {
+ NSPAIR(_ZN3F31C1Ev),
+ NSPAIR(_ZN3F31D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+static Base_Class bases_F31[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(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 _ZTI3F31[];
+extern void _ZN3F313fooEv();
+extern void ABISELECT(_ZTv0_n24_N3F313fooEv,_ZTv0_n12_N3F313fooEv)();
+extern void ABISELECT(_ZThn16_N3F313fooEv,_ZThn8_N3F313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY vtc_F31[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F31[0]),
+ (VTBL_ENTRY)&_ZN3F313fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F31[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F313fooEv,_ZTv0_n12_N3F313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern VTBL_ENTRY _ZTV3F31[];
+static VTT_ENTRY vtt_F31[] = {
+ {&(_ZTV3F31[3]), 3,10},
+ {&(_ZTV3F31[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI3F31[];
+extern VTBL_ENTRY _ZTV3F31[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F31[];
+static VTBL_ENTRY alt_thunk_names10[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F313fooEv,_ZTv0_n12_N3F313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F313fooEv,_ZThn8_N3F313fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_F31 = { "F31", // class name
+ bases_F31, 1,
+ &(vtc_F31[0]), // expected_vtbl_contents
+ &(vtt_F31[0]), // expected_vtt_contents
+ ABISELECT(32,16), // object size
+ NSPAIRA(_ZTI3F31),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV3F31),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT3F31),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names10,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct E32 : virtual AA3 {
+ int pe;
+ virtual void bar(); // _ZN3E323barEv
+ ~E32(); // tgen
+ E32(); // tgen
+};
+//SIG(-1 E32) C1{ VBC2{ v2 v1 Fi} v1 Fi}
+
+
+void E32 ::bar(){vfunc_called(this, "_ZN3E323barEv");}
+E32 ::~E32(){ note_dtor("E32", this);} // tgen
+E32 ::E32(){ note_ctor("E32", this);} // tgen
+
+static void Test_E32()
+{
+ extern Class_Descriptor cd_E32;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[5];
+ init_test(&cd_E32, buf);
+ E32 *dp, &lv = *(dp=new (buf) E32());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,16), "sizeof(E32)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(E32)");
+ check_base_class_offset(lv, (AA3*), ABISELECT(16,8), "E32");
+ check_field_offset(lv, pe, ABISELECT(8,4), "E32.pe");
+ test_class_info(&lv, &cd_E32);
+ dp->~E32();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vE32(Test_E32, "E32", ABISELECT(32,16));
+
+#else // __cplusplus
+
+extern void _ZN3E32C1Ev();
+extern void _ZN3E32D1Ev();
+Name_Map name_map_E32[] = {
+ NSPAIR(_ZN3E32C1Ev),
+ NSPAIR(_ZN3E32D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+static Base_Class bases_E32[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(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 _ZTI3E32[];
+extern void _ZN3E323barEv();
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N3E323barEv,_ZTv0_n16_N3E323barEv)();
+extern void ABISELECT(_ZThn16_N3E323barEv,_ZThn8_N3E323barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_E32[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E32[0]),
+ (VTBL_ENTRY)&_ZN3E323barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E32[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3E323barEv,_ZTv0_n16_N3E323barEv),
+};
+extern VTBL_ENTRY _ZTV3E32[];
+static VTT_ENTRY vtt_E32[] = {
+ {&(_ZTV3E32[3]), 3,10},
+ {&(_ZTV3E32[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI3E32[];
+extern VTBL_ENTRY _ZTV3E32[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E32[];
+static VTBL_ENTRY alt_thunk_names11[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3E323barEv,_ZTv0_n16_N3E323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E323barEv,_ZThn8_N3E323barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_E32 = { "E32", // class name
+ bases_E32, 1,
+ &(vtc_E32[0]), // expected_vtbl_contents
+ &(vtt_E32[0]), // expected_vtt_contents
+ ABISELECT(32,16), // object size
+ NSPAIRA(_ZTI3E32),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV3E32),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT3E32),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names11,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct F32 : virtual AA3 {
+ int pf;
+ virtual void bar(); // _ZN3F323barEv
+ ~F32(); // tgen
+ F32(); // tgen
+};
+//SIG(-1 F32) C1{ VBC2{ v2 v1 Fi} v1 Fi}
+
+
+void F32 ::bar(){vfunc_called(this, "_ZN3F323barEv");}
+F32 ::~F32(){ note_dtor("F32", this);} // tgen
+F32 ::F32(){ note_ctor("F32", this);} // tgen
+
+static void Test_F32()
+{
+ extern Class_Descriptor cd_F32;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[5];
+ init_test(&cd_F32, buf);
+ F32 *dp, &lv = *(dp=new (buf) F32());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,16), "sizeof(F32)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(F32)");
+ check_base_class_offset(lv, (AA3*), ABISELECT(16,8), "F32");
+ check_field_offset(lv, pf, ABISELECT(8,4), "F32.pf");
+ test_class_info(&lv, &cd_F32);
+ dp->~F32();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vF32(Test_F32, "F32", ABISELECT(32,16));
+
+#else // __cplusplus
+
+extern void _ZN3F32C1Ev();
+extern void _ZN3F32D1Ev();
+Name_Map name_map_F32[] = {
+ NSPAIR(_ZN3F32C1Ev),
+ NSPAIR(_ZN3F32D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+static Base_Class bases_F32[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(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 _ZTI3F32[];
+extern void _ZN3F323barEv();
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N3F323barEv,_ZTv0_n16_N3F323barEv)();
+extern void ABISELECT(_ZThn16_N3F323barEv,_ZThn8_N3F323barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_F32[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F32[0]),
+ (VTBL_ENTRY)&_ZN3F323barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F32[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3F323barEv,_ZTv0_n16_N3F323barEv),
+};
+extern VTBL_ENTRY _ZTV3F32[];
+static VTT_ENTRY vtt_F32[] = {
+ {&(_ZTV3F32[3]), 3,10},
+ {&(_ZTV3F32[8]), 8,10},
+};
+extern VTBL_ENTRY _ZTI3F32[];
+extern VTBL_ENTRY _ZTV3F32[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F32[];
+static VTBL_ENTRY alt_thunk_names12[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3F323barEv,_ZTv0_n16_N3F323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F323barEv,_ZThn8_N3F323barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_F32 = { "F32", // class name
+ bases_F32, 1,
+ &(vtc_F32[0]), // expected_vtbl_contents
+ &(vtt_F32[0]), // expected_vtt_contents
+ ABISELECT(32,16), // object size
+ NSPAIRA(_ZTI3F32),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV3F32),10, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT3F32),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names12,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct E33 : virtual AA3 {
+ int pe;
+ virtual void foo(); // _ZN3E333fooEv
+ virtual void bar(); // _ZN3E333barEv
+ ~E33(); // tgen
+ E33(); // tgen
+};
+//SIG(-1 E33) C1{ VBC2{ v1 v2 Fi} v1 v2 Fi}
+
+
+void E33 ::foo(){vfunc_called(this, "_ZN3E333fooEv");}
+void E33 ::bar(){vfunc_called(this, "_ZN3E333barEv");}
+E33 ::~E33(){ note_dtor("E33", this);} // tgen
+E33 ::E33(){ note_ctor("E33", this);} // tgen
+
+static void Test_E33()
+{
+ extern Class_Descriptor cd_E33;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[5];
+ init_test(&cd_E33, buf);
+ E33 *dp, &lv = *(dp=new (buf) E33());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,16), "sizeof(E33)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(E33)");
+ check_base_class_offset(lv, (AA3*), ABISELECT(16,8), "E33");
+ check_field_offset(lv, pe, ABISELECT(8,4), "E33.pe");
+ test_class_info(&lv, &cd_E33);
+ dp->~E33();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vE33(Test_E33, "E33", ABISELECT(32,16));
+
+#else // __cplusplus
+
+extern void _ZN3E33C1Ev();
+extern void _ZN3E33D1Ev();
+Name_Map name_map_E33[] = {
+ NSPAIR(_ZN3E33C1Ev),
+ NSPAIR(_ZN3E33D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+static Base_Class bases_E33[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(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 _ZTI3E33[];
+extern void _ZN3E333fooEv();
+extern void _ZN3E333barEv();
+extern void ABISELECT(_ZTv0_n24_N3E333fooEv,_ZTv0_n12_N3E333fooEv)();
+extern void ABISELECT(_ZThn16_N3E333fooEv,_ZThn8_N3E333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N3E333barEv,_ZTv0_n16_N3E333barEv)();
+extern void ABISELECT(_ZThn16_N3E333barEv,_ZThn8_N3E333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_E33[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E33[0]),
+ (VTBL_ENTRY)&_ZN3E333fooEv,
+ (VTBL_ENTRY)&_ZN3E333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E33[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E333fooEv,_ZTv0_n12_N3E333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3E333barEv,_ZTv0_n16_N3E333barEv),
+};
+extern VTBL_ENTRY _ZTV3E33[];
+static VTT_ENTRY vtt_E33[] = {
+ {&(_ZTV3E33[3]), 3,11},
+ {&(_ZTV3E33[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI3E33[];
+extern VTBL_ENTRY _ZTV3E33[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E33[];
+static VTBL_ENTRY alt_thunk_names13[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3E333barEv,_ZTv0_n16_N3E333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E333barEv,_ZThn8_N3E333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E333fooEv,_ZTv0_n12_N3E333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E333fooEv,_ZThn8_N3E333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_E33 = { "E33", // class name
+ bases_E33, 1,
+ &(vtc_E33[0]), // expected_vtbl_contents
+ &(vtt_E33[0]), // expected_vtt_contents
+ ABISELECT(32,16), // object size
+ NSPAIRA(_ZTI3E33),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV3E33),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT3E33),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names13,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct F33 : virtual AA3 {
+ int pf;
+ virtual void foo(); // _ZN3F333fooEv
+ virtual void bar(); // _ZN3F333barEv
+ ~F33(); // tgen
+ F33(); // tgen
+};
+//SIG(-1 F33) C1{ VBC2{ v1 v2 Fi} v1 v2 Fi}
+
+
+void F33 ::foo(){vfunc_called(this, "_ZN3F333fooEv");}
+void F33 ::bar(){vfunc_called(this, "_ZN3F333barEv");}
+F33 ::~F33(){ note_dtor("F33", this);} // tgen
+F33 ::F33(){ note_ctor("F33", this);} // tgen
+
+static void Test_F33()
+{
+ extern Class_Descriptor cd_F33;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[5];
+ init_test(&cd_F33, buf);
+ F33 *dp, &lv = *(dp=new (buf) F33());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(32,16), "sizeof(F33)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(F33)");
+ check_base_class_offset(lv, (AA3*), ABISELECT(16,8), "F33");
+ check_field_offset(lv, pf, ABISELECT(8,4), "F33.pf");
+ test_class_info(&lv, &cd_F33);
+ dp->~F33();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vF33(Test_F33, "F33", ABISELECT(32,16));
+
+#else // __cplusplus
+
+extern void _ZN3F33C1Ev();
+extern void _ZN3F33D1Ev();
+Name_Map name_map_F33[] = {
+ NSPAIR(_ZN3F33C1Ev),
+ NSPAIR(_ZN3F33D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+static Base_Class bases_F33[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(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 _ZTI3F33[];
+extern void _ZN3F333fooEv();
+extern void _ZN3F333barEv();
+extern void ABISELECT(_ZTv0_n24_N3F333fooEv,_ZTv0_n12_N3F333fooEv)();
+extern void ABISELECT(_ZThn16_N3F333fooEv,_ZThn8_N3F333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N3F333barEv,_ZTv0_n16_N3F333barEv)();
+extern void ABISELECT(_ZThn16_N3F333barEv,_ZThn8_N3F333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_F33[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F33[0]),
+ (VTBL_ENTRY)&_ZN3F333fooEv,
+ (VTBL_ENTRY)&_ZN3F333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F33[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F333fooEv,_ZTv0_n12_N3F333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3F333barEv,_ZTv0_n16_N3F333barEv),
+};
+extern VTBL_ENTRY _ZTV3F33[];
+static VTT_ENTRY vtt_F33[] = {
+ {&(_ZTV3F33[3]), 3,11},
+ {&(_ZTV3F33[9]), 9,11},
+};
+extern VTBL_ENTRY _ZTI3F33[];
+extern VTBL_ENTRY _ZTV3F33[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F33[];
+static VTBL_ENTRY alt_thunk_names14[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3F333barEv,_ZTv0_n16_N3F333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F333barEv,_ZThn8_N3F333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F333fooEv,_ZTv0_n12_N3F333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F333fooEv,_ZThn8_N3F333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_F33 = { "F33", // class name
+ bases_F33, 1,
+ &(vtc_F33[0]), // expected_vtbl_contents
+ &(vtt_F33[0]), // expected_vtt_contents
+ ABISELECT(32,16), // object size
+ NSPAIRA(_ZTI3F33),ABISELECT(40,24), //typeinfo_var
+ NSPAIRA(_ZTV3F33),11, //virtual function table var
+ 3, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT3F33),2, //virtual table table var
+ 1, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names14,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct EE111 : virtual AA1 , virtual BB1 {
+ int pe;
+ virtual void foo(); // _ZN5EE1113fooEv
+ ~EE111(); // tgen
+ EE111(); // tgen
+};
+//SIG(-1 EE111) C1{ VBC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+void EE111 ::foo(){vfunc_called(this, "_ZN5EE1113fooEv");}
+EE111 ::~EE111(){ note_dtor("EE111", this);} // tgen
+EE111 ::EE111(){ note_ctor("EE111", this);} // tgen
+
+static void Test_EE111()
+{
+ extern Class_Descriptor cd_EE111;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_EE111, buf);
+ EE111 *dp, &lv = *(dp=new (buf) EE111());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(EE111)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(EE111)");
+ check_base_class_offset(lv, (AA1*), ABISELECT(16,8), "EE111");
+ check_base_class_offset(lv, (BB1*), ABISELECT(32,16), "EE111");
+ check_field_offset(lv, pe, ABISELECT(8,4), "EE111.pe");
+ test_class_info(&lv, &cd_EE111);
+ dp->~EE111();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vEE111(Test_EE111, "EE111", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5EE111C1Ev();
+extern void _ZN5EE111D1Ev();
+Name_Map name_map_EE111[] = {
+ NSPAIR(_ZN5EE111C1Ev),
+ NSPAIR(_ZN5EE111D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+static Base_Class bases_EE111[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5EE111[];
+extern void _ZN5EE1113fooEv();
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_EE111[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern VTBL_ENTRY _ZTV5EE111[];
+static VTT_ENTRY vtt_EE111[] = {
+ {&(_ZTV5EE111[4]), 4,13},
+ {&(_ZTV5EE111[8]), 8,13},
+ {&(_ZTV5EE111[12]), 12,13},
+};
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+static VTBL_ENTRY alt_thunk_names15[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_EE111 = { "EE111", // class name
+ bases_EE111, 2,
+ &(vtc_EE111[0]), // expected_vtbl_contents
+ &(vtt_EE111[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5EE111),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5EE111),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5EE111),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names15,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct FF111 : virtual AA1 , virtual BB1 {
+ int pf;
+ virtual void foo(); // _ZN5FF1113fooEv
+ ~FF111(); // tgen
+ FF111(); // tgen
+};
+//SIG(-1 FF111) C1{ VBC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+void FF111 ::foo(){vfunc_called(this, "_ZN5FF1113fooEv");}
+FF111 ::~FF111(){ note_dtor("FF111", this);} // tgen
+FF111 ::FF111(){ note_ctor("FF111", this);} // tgen
+
+static void Test_FF111()
+{
+ extern Class_Descriptor cd_FF111;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_FF111, buf);
+ FF111 *dp, &lv = *(dp=new (buf) FF111());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(FF111)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(FF111)");
+ check_base_class_offset(lv, (AA1*), ABISELECT(16,8), "FF111");
+ check_base_class_offset(lv, (BB1*), ABISELECT(32,16), "FF111");
+ check_field_offset(lv, pf, ABISELECT(8,4), "FF111.pf");
+ test_class_info(&lv, &cd_FF111);
+ dp->~FF111();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vFF111(Test_FF111, "FF111", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5FF111C1Ev();
+extern void _ZN5FF111D1Ev();
+Name_Map name_map_FF111[] = {
+ NSPAIR(_ZN5FF111C1Ev),
+ NSPAIR(_ZN5FF111D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+static Base_Class bases_FF111[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5FF111[];
+extern void _ZN5FF1113fooEv();
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_FF111[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern VTBL_ENTRY _ZTV5FF111[];
+static VTT_ENTRY vtt_FF111[] = {
+ {&(_ZTV5FF111[4]), 4,13},
+ {&(_ZTV5FF111[8]), 8,13},
+ {&(_ZTV5FF111[12]), 12,13},
+};
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static VTBL_ENTRY alt_thunk_names16[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_FF111 = { "FF111", // class name
+ bases_FF111, 2,
+ &(vtc_FF111[0]), // expected_vtbl_contents
+ &(vtt_FF111[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5FF111),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5FF111),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5FF111),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names16,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct EE112 : virtual AA1 , virtual BB1 {
+ int pe;
+ virtual void bar(); // _ZN5EE1123barEv
+ ~EE112(); // tgen
+ EE112(); // tgen
+};
+//SIG(-1 EE112) C1{ VBC2{ v2 Fi} VBC3{ v3 Fi} v1 Fi}
+
+
+void EE112 ::bar(){vfunc_called(this, "_ZN5EE1123barEv");}
+EE112 ::~EE112(){ note_dtor("EE112", this);} // tgen
+EE112 ::EE112(){ note_ctor("EE112", this);} // tgen
+
+static void Test_EE112()
+{
+ extern Class_Descriptor cd_EE112;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_EE112, buf);
+ EE112 *dp, &lv = *(dp=new (buf) EE112());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(EE112)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(EE112)");
+ check_base_class_offset(lv, (AA1*), ABISELECT(16,8), "EE112");
+ check_base_class_offset(lv, (BB1*), ABISELECT(32,16), "EE112");
+ check_field_offset(lv, pe, ABISELECT(8,4), "EE112.pe");
+ test_class_info(&lv, &cd_EE112);
+ dp->~EE112();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vEE112(Test_EE112, "EE112", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5EE112C1Ev();
+extern void _ZN5EE112D1Ev();
+Name_Map name_map_EE112[] = {
+ NSPAIR(_ZN5EE112C1Ev),
+ NSPAIR(_ZN5EE112D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+static Base_Class bases_EE112[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5EE112[];
+extern void _ZN5EE1123barEv();
+extern void _ZN3AA13fooEv();
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY vtc_EE112[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN5EE1123barEv,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern VTBL_ENTRY _ZTV5EE112[];
+static VTT_ENTRY vtt_EE112[] = {
+ {&(_ZTV5EE112[4]), 4,13},
+ {&(_ZTV5EE112[8]), 8,13},
+ {&(_ZTV5EE112[12]), 12,13},
+};
+extern VTBL_ENTRY _ZTI5EE112[];
+extern VTBL_ENTRY _ZTV5EE112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE112[];
+Class_Descriptor cd_EE112 = { "EE112", // class name
+ bases_EE112, 2,
+ &(vtc_EE112[0]), // expected_vtbl_contents
+ &(vtt_EE112[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5EE112),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5EE112),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5EE112),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct FF112 : virtual AA1 , virtual BB1 {
+ int pf;
+ virtual void bar(); // _ZN5FF1123barEv
+ ~FF112(); // tgen
+ FF112(); // tgen
+};
+//SIG(-1 FF112) C1{ VBC2{ v2 Fi} VBC3{ v3 Fi} v1 Fi}
+
+
+void FF112 ::bar(){vfunc_called(this, "_ZN5FF1123barEv");}
+FF112 ::~FF112(){ note_dtor("FF112", this);} // tgen
+FF112 ::FF112(){ note_ctor("FF112", this);} // tgen
+
+static void Test_FF112()
+{
+ extern Class_Descriptor cd_FF112;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_FF112, buf);
+ FF112 *dp, &lv = *(dp=new (buf) FF112());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(FF112)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(FF112)");
+ check_base_class_offset(lv, (AA1*), ABISELECT(16,8), "FF112");
+ check_base_class_offset(lv, (BB1*), ABISELECT(32,16), "FF112");
+ check_field_offset(lv, pf, ABISELECT(8,4), "FF112.pf");
+ test_class_info(&lv, &cd_FF112);
+ dp->~FF112();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vFF112(Test_FF112, "FF112", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5FF112C1Ev();
+extern void _ZN5FF112D1Ev();
+Name_Map name_map_FF112[] = {
+ NSPAIR(_ZN5FF112C1Ev),
+ NSPAIR(_ZN5FF112D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+static Base_Class bases_FF112[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5FF112[];
+extern void _ZN5FF1123barEv();
+extern void _ZN3AA13fooEv();
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY vtc_FF112[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN5FF1123barEv,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern VTBL_ENTRY _ZTV5FF112[];
+static VTT_ENTRY vtt_FF112[] = {
+ {&(_ZTV5FF112[4]), 4,13},
+ {&(_ZTV5FF112[8]), 8,13},
+ {&(_ZTV5FF112[12]), 12,13},
+};
+extern VTBL_ENTRY _ZTI5FF112[];
+extern VTBL_ENTRY _ZTV5FF112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF112[];
+Class_Descriptor cd_FF112 = { "FF112", // class name
+ bases_FF112, 2,
+ &(vtc_FF112[0]), // expected_vtbl_contents
+ &(vtt_FF112[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5FF112),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5FF112),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5FF112),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct EE113 : virtual AA1 , virtual BB1 {
+ int pe;
+ virtual void foo(); // _ZN5EE1133fooEv
+ virtual void bar(); // _ZN5EE1133barEv
+ ~EE113(); // tgen
+ EE113(); // tgen
+};
+//SIG(-1 EE113) C1{ VBC2{ v1 Fi} VBC3{ v1 Fi} v1 v2 Fi}
+
+
+void EE113 ::foo(){vfunc_called(this, "_ZN5EE1133fooEv");}
+void EE113 ::bar(){vfunc_called(this, "_ZN5EE1133barEv");}
+EE113 ::~EE113(){ note_dtor("EE113", this);} // tgen
+EE113 ::EE113(){ note_ctor("EE113", this);} // tgen
+
+static void Test_EE113()
+{
+ extern Class_Descriptor cd_EE113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_EE113, buf);
+ EE113 *dp, &lv = *(dp=new (buf) EE113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(EE113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(EE113)");
+ check_base_class_offset(lv, (AA1*), ABISELECT(16,8), "EE113");
+ check_base_class_offset(lv, (BB1*), ABISELECT(32,16), "EE113");
+ check_field_offset(lv, pe, ABISELECT(8,4), "EE113.pe");
+ test_class_info(&lv, &cd_EE113);
+ dp->~EE113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vEE113(Test_EE113, "EE113", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5EE113C1Ev();
+extern void _ZN5EE113D1Ev();
+Name_Map name_map_EE113[] = {
+ NSPAIR(_ZN5EE113C1Ev),
+ NSPAIR(_ZN5EE113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+static Base_Class bases_EE113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5EE113[];
+extern void _ZN5EE1133fooEv();
+extern void _ZN5EE1133barEv();
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_EE113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&_ZN5EE1133fooEv,
+ (VTBL_ENTRY)&_ZN5EE1133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern VTBL_ENTRY _ZTV5EE113[];
+static VTT_ENTRY vtt_EE113[] = {
+ {&(_ZTV5EE113[4]), 4,14},
+ {&(_ZTV5EE113[9]), 9,14},
+ {&(_ZTV5EE113[13]), 13,14},
+};
+extern VTBL_ENTRY _ZTI5EE113[];
+extern VTBL_ENTRY _ZTV5EE113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE113[];
+static VTBL_ENTRY alt_thunk_names17[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_EE113 = { "EE113", // class name
+ bases_EE113, 2,
+ &(vtc_EE113[0]), // expected_vtbl_contents
+ &(vtt_EE113[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5EE113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5EE113),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5EE113),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names17,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct FF113 : virtual AA1 , virtual BB1 {
+ int pf;
+ virtual void foo(); // _ZN5FF1133fooEv
+ virtual void bar(); // _ZN5FF1133barEv
+ ~FF113(); // tgen
+ FF113(); // tgen
+};
+//SIG(-1 FF113) C1{ VBC2{ v1 Fi} VBC3{ v1 Fi} v1 v2 Fi}
+
+
+void FF113 ::foo(){vfunc_called(this, "_ZN5FF1133fooEv");}
+void FF113 ::bar(){vfunc_called(this, "_ZN5FF1133barEv");}
+FF113 ::~FF113(){ note_dtor("FF113", this);} // tgen
+FF113 ::FF113(){ note_ctor("FF113", this);} // tgen
+
+static void Test_FF113()
+{
+ extern Class_Descriptor cd_FF113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_FF113, buf);
+ FF113 *dp, &lv = *(dp=new (buf) FF113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(FF113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(FF113)");
+ check_base_class_offset(lv, (AA1*), ABISELECT(16,8), "FF113");
+ check_base_class_offset(lv, (BB1*), ABISELECT(32,16), "FF113");
+ check_field_offset(lv, pf, ABISELECT(8,4), "FF113.pf");
+ test_class_info(&lv, &cd_FF113);
+ dp->~FF113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vFF113(Test_FF113, "FF113", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5FF113C1Ev();
+extern void _ZN5FF113D1Ev();
+Name_Map name_map_FF113[] = {
+ NSPAIR(_ZN5FF113C1Ev),
+ NSPAIR(_ZN5FF113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+static Base_Class bases_FF113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5FF113[];
+extern void _ZN5FF1133fooEv();
+extern void _ZN5FF1133barEv();
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1133fooEv,_ZThn16_N5FF1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_FF113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&_ZN5FF1133fooEv,
+ (VTBL_ENTRY)&_ZN5FF1133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+extern VTBL_ENTRY _ZTV5FF113[];
+static VTT_ENTRY vtt_FF113[] = {
+ {&(_ZTV5FF113[4]), 4,14},
+ {&(_ZTV5FF113[9]), 9,14},
+ {&(_ZTV5FF113[13]), 13,14},
+};
+extern VTBL_ENTRY _ZTI5FF113[];
+extern VTBL_ENTRY _ZTV5FF113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF113[];
+static VTBL_ENTRY alt_thunk_names18[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1133fooEv,_ZThn16_N5FF1133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_FF113 = { "FF113", // class name
+ bases_FF113, 2,
+ &(vtc_FF113[0]), // expected_vtbl_contents
+ &(vtt_FF113[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5FF113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5FF113),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5FF113),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names18,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct EE121 : virtual AA1 , virtual BB2 {
+ int pe;
+ virtual void foo(); // _ZN5EE1213fooEv
+ ~EE121(); // tgen
+ EE121(); // tgen
+};
+//SIG(-1 EE121) C1{ VBC2{ v1 Fi} VBC3{ v2 Fi} v1 Fi}
+
+
+void EE121 ::foo(){vfunc_called(this, "_ZN5EE1213fooEv");}
+EE121 ::~EE121(){ note_dtor("EE121", this);} // tgen
+EE121 ::EE121(){ note_ctor("EE121", this);} // tgen
+
+static void Test_EE121()
+{
+ extern Class_Descriptor cd_EE121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_EE121, buf);
+ EE121 *dp, &lv = *(dp=new (buf) EE121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(EE121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(EE121)");
+ check_base_class_offset(lv, (AA1*), ABISELECT(16,8), "EE121");
+ check_base_class_offset(lv, (BB2*), ABISELECT(32,16), "EE121");
+ check_field_offset(lv, pe, ABISELECT(8,4), "EE121.pe");
+ test_class_info(&lv, &cd_EE121);
+ dp->~EE121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vEE121(Test_EE121, "EE121", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5EE121C1Ev();
+extern void _ZN5EE121D1Ev();
+Name_Map name_map_EE121[] = {
+ NSPAIR(_ZN5EE121C1Ev),
+ NSPAIR(_ZN5EE121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+static Base_Class bases_EE121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5EE121[];
+extern void _ZN5EE1213fooEv();
+extern void ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv)() __attribute__((weak));
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY vtc_EE121[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN5EE1213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern VTBL_ENTRY _ZTV5EE121[];
+static VTT_ENTRY vtt_EE121[] = {
+ {&(_ZTV5EE121[4]), 4,13},
+ {&(_ZTV5EE121[8]), 8,13},
+ {&(_ZTV5EE121[12]), 12,13},
+};
+extern VTBL_ENTRY _ZTI5EE121[];
+extern VTBL_ENTRY _ZTV5EE121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE121[];
+static VTBL_ENTRY alt_thunk_names19[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_EE121 = { "EE121", // class name
+ bases_EE121, 2,
+ &(vtc_EE121[0]), // expected_vtbl_contents
+ &(vtt_EE121[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5EE121),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5EE121),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5EE121),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names19,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct FF121 : virtual AA1 , virtual BB2 {
+ int pf;
+ virtual void foo(); // _ZN5FF1213fooEv
+ ~FF121(); // tgen
+ FF121(); // tgen
+};
+//SIG(-1 FF121) C1{ VBC2{ v1 Fi} VBC3{ v2 Fi} v1 Fi}
+
+
+void FF121 ::foo(){vfunc_called(this, "_ZN5FF1213fooEv");}
+FF121 ::~FF121(){ note_dtor("FF121", this);} // tgen
+FF121 ::FF121(){ note_ctor("FF121", this);} // tgen
+
+static void Test_FF121()
+{
+ extern Class_Descriptor cd_FF121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_FF121, buf);
+ FF121 *dp, &lv = *(dp=new (buf) FF121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(FF121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(FF121)");
+ check_base_class_offset(lv, (AA1*), ABISELECT(16,8), "FF121");
+ check_base_class_offset(lv, (BB2*), ABISELECT(32,16), "FF121");
+ check_field_offset(lv, pf, ABISELECT(8,4), "FF121.pf");
+ test_class_info(&lv, &cd_FF121);
+ dp->~FF121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vFF121(Test_FF121, "FF121", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5FF121C1Ev();
+extern void _ZN5FF121D1Ev();
+Name_Map name_map_FF121[] = {
+ NSPAIR(_ZN5FF121C1Ev),
+ NSPAIR(_ZN5FF121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+static Base_Class bases_FF121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5FF121[];
+extern void _ZN5FF1213fooEv();
+extern void ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1213fooEv,_ZThn8_N5FF1213fooEv)() __attribute__((weak));
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY vtc_FF121[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN5FF1213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern VTBL_ENTRY _ZTV5FF121[];
+static VTT_ENTRY vtt_FF121[] = {
+ {&(_ZTV5FF121[4]), 4,13},
+ {&(_ZTV5FF121[8]), 8,13},
+ {&(_ZTV5FF121[12]), 12,13},
+};
+extern VTBL_ENTRY _ZTI5FF121[];
+extern VTBL_ENTRY _ZTV5FF121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF121[];
+static VTBL_ENTRY alt_thunk_names20[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1213fooEv,_ZThn8_N5FF1213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_FF121 = { "FF121", // class name
+ bases_FF121, 2,
+ &(vtc_FF121[0]), // expected_vtbl_contents
+ &(vtt_FF121[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5FF121),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5FF121),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5FF121),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names20,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct EE122 : virtual AA1 , virtual BB2 {
+ int pe;
+ virtual void bar(); // _ZN5EE1223barEv
+ ~EE122(); // tgen
+ EE122(); // tgen
+};
+//SIG(-1 EE122) C1{ VBC2{ v2 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+void EE122 ::bar(){vfunc_called(this, "_ZN5EE1223barEv");}
+EE122 ::~EE122(){ note_dtor("EE122", this);} // tgen
+EE122 ::EE122(){ note_ctor("EE122", this);} // tgen
+
+static void Test_EE122()
+{
+ extern Class_Descriptor cd_EE122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_EE122, buf);
+ EE122 *dp, &lv = *(dp=new (buf) EE122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(EE122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(EE122)");
+ check_base_class_offset(lv, (AA1*), ABISELECT(16,8), "EE122");
+ check_base_class_offset(lv, (BB2*), ABISELECT(32,16), "EE122");
+ check_field_offset(lv, pe, ABISELECT(8,4), "EE122.pe");
+ test_class_info(&lv, &cd_EE122);
+ dp->~EE122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vEE122(Test_EE122, "EE122", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5EE122C1Ev();
+extern void _ZN5EE122D1Ev();
+Name_Map name_map_EE122[] = {
+ NSPAIR(_ZN5EE122C1Ev),
+ NSPAIR(_ZN5EE122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+static Base_Class bases_EE122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5EE122[];
+extern void _ZN5EE1223barEv();
+extern void _ZN3AA13fooEv();
+extern void ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv)();
+extern void ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_EE122[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN5EE1223barEv,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv),
+};
+extern VTBL_ENTRY _ZTV5EE122[];
+static VTT_ENTRY vtt_EE122[] = {
+ {&(_ZTV5EE122[4]), 4,13},
+ {&(_ZTV5EE122[8]), 8,13},
+ {&(_ZTV5EE122[12]), 12,13},
+};
+extern VTBL_ENTRY _ZTI5EE122[];
+extern VTBL_ENTRY _ZTV5EE122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE122[];
+static VTBL_ENTRY alt_thunk_names21[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_EE122 = { "EE122", // class name
+ bases_EE122, 2,
+ &(vtc_EE122[0]), // expected_vtbl_contents
+ &(vtt_EE122[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5EE122),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5EE122),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5EE122),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names21,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct FF122 : virtual AA1 , virtual BB2 {
+ int pf;
+ virtual void bar(); // _ZN5FF1223barEv
+ ~FF122(); // tgen
+ FF122(); // tgen
+};
+//SIG(-1 FF122) C1{ VBC2{ v2 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+void FF122 ::bar(){vfunc_called(this, "_ZN5FF1223barEv");}
+FF122 ::~FF122(){ note_dtor("FF122", this);} // tgen
+FF122 ::FF122(){ note_ctor("FF122", this);} // tgen
+
+static void Test_FF122()
+{
+ extern Class_Descriptor cd_FF122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_FF122, buf);
+ FF122 *dp, &lv = *(dp=new (buf) FF122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(FF122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(FF122)");
+ check_base_class_offset(lv, (AA1*), ABISELECT(16,8), "FF122");
+ check_base_class_offset(lv, (BB2*), ABISELECT(32,16), "FF122");
+ check_field_offset(lv, pf, ABISELECT(8,4), "FF122.pf");
+ test_class_info(&lv, &cd_FF122);
+ dp->~FF122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vFF122(Test_FF122, "FF122", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5FF122C1Ev();
+extern void _ZN5FF122D1Ev();
+Name_Map name_map_FF122[] = {
+ NSPAIR(_ZN5FF122C1Ev),
+ NSPAIR(_ZN5FF122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+static Base_Class bases_FF122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5FF122[];
+extern void _ZN5FF1223barEv();
+extern void _ZN3AA13fooEv();
+extern void ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv)();
+extern void ABISELECT(_ZThn32_N5FF1223barEv,_ZThn16_N5FF1223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_FF122[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN5FF1223barEv,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv),
+};
+extern VTBL_ENTRY _ZTV5FF122[];
+static VTT_ENTRY vtt_FF122[] = {
+ {&(_ZTV5FF122[4]), 4,13},
+ {&(_ZTV5FF122[8]), 8,13},
+ {&(_ZTV5FF122[12]), 12,13},
+};
+extern VTBL_ENTRY _ZTI5FF122[];
+extern VTBL_ENTRY _ZTV5FF122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF122[];
+static VTBL_ENTRY alt_thunk_names22[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1223barEv,_ZThn16_N5FF1223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_FF122 = { "FF122", // class name
+ bases_FF122, 2,
+ &(vtc_FF122[0]), // expected_vtbl_contents
+ &(vtt_FF122[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5FF122),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5FF122),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5FF122),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names22,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct EE123 : virtual AA1 , virtual BB2 {
+ int pe;
+ virtual void foo(); // _ZN5EE1233fooEv
+ virtual void bar(); // _ZN5EE1233barEv
+ ~EE123(); // tgen
+ EE123(); // tgen
+};
+//SIG(-1 EE123) C1{ VBC2{ v1 Fi} VBC3{ v2 Fi} v1 v2 Fi}
+
+
+void EE123 ::foo(){vfunc_called(this, "_ZN5EE1233fooEv");}
+void EE123 ::bar(){vfunc_called(this, "_ZN5EE1233barEv");}
+EE123 ::~EE123(){ note_dtor("EE123", this);} // tgen
+EE123 ::EE123(){ note_ctor("EE123", this);} // tgen
+
+static void Test_EE123()
+{
+ extern Class_Descriptor cd_EE123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_EE123, buf);
+ EE123 *dp, &lv = *(dp=new (buf) EE123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(EE123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(EE123)");
+ check_base_class_offset(lv, (AA1*), ABISELECT(16,8), "EE123");
+ check_base_class_offset(lv, (BB2*), ABISELECT(32,16), "EE123");
+ check_field_offset(lv, pe, ABISELECT(8,4), "EE123.pe");
+ test_class_info(&lv, &cd_EE123);
+ dp->~EE123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vEE123(Test_EE123, "EE123", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5EE123C1Ev();
+extern void _ZN5EE123D1Ev();
+Name_Map name_map_EE123[] = {
+ NSPAIR(_ZN5EE123C1Ev),
+ NSPAIR(_ZN5EE123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+static Base_Class bases_EE123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5EE123[];
+extern void _ZN5EE1233fooEv();
+extern void _ZN5EE1233barEv();
+extern void ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv)();
+extern void ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_EE123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&_ZN5EE1233fooEv,
+ (VTBL_ENTRY)&_ZN5EE1233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv),
+};
+extern VTBL_ENTRY _ZTV5EE123[];
+static VTT_ENTRY vtt_EE123[] = {
+ {&(_ZTV5EE123[4]), 4,14},
+ {&(_ZTV5EE123[9]), 9,14},
+ {&(_ZTV5EE123[13]), 13,14},
+};
+extern VTBL_ENTRY _ZTI5EE123[];
+extern VTBL_ENTRY _ZTV5EE123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE123[];
+static VTBL_ENTRY alt_thunk_names23[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_EE123 = { "EE123", // class name
+ bases_EE123, 2,
+ &(vtc_EE123[0]), // expected_vtbl_contents
+ &(vtt_EE123[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5EE123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5EE123),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5EE123),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names23,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct FF123 : virtual AA1 , virtual BB2 {
+ int pf;
+ virtual void foo(); // _ZN5FF1233fooEv
+ virtual void bar(); // _ZN5FF1233barEv
+ ~FF123(); // tgen
+ FF123(); // tgen
+};
+//SIG(-1 FF123) C1{ VBC2{ v1 Fi} VBC3{ v2 Fi} v1 v2 Fi}
+
+
+void FF123 ::foo(){vfunc_called(this, "_ZN5FF1233fooEv");}
+void FF123 ::bar(){vfunc_called(this, "_ZN5FF1233barEv");}
+FF123 ::~FF123(){ note_dtor("FF123", this);} // tgen
+FF123 ::FF123(){ note_ctor("FF123", this);} // tgen
+
+static void Test_FF123()
+{
+ extern Class_Descriptor cd_FF123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_FF123, buf);
+ FF123 *dp, &lv = *(dp=new (buf) FF123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(FF123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(FF123)");
+ check_base_class_offset(lv, (AA1*), ABISELECT(16,8), "FF123");
+ check_base_class_offset(lv, (BB2*), ABISELECT(32,16), "FF123");
+ check_field_offset(lv, pf, ABISELECT(8,4), "FF123.pf");
+ test_class_info(&lv, &cd_FF123);
+ dp->~FF123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vFF123(Test_FF123, "FF123", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5FF123C1Ev();
+extern void _ZN5FF123D1Ev();
+Name_Map name_map_FF123[] = {
+ NSPAIR(_ZN5FF123C1Ev),
+ NSPAIR(_ZN5FF123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+static Base_Class bases_FF123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5FF123[];
+extern void _ZN5FF1233fooEv();
+extern void _ZN5FF1233barEv();
+extern void ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1233fooEv,_ZThn8_N5FF1233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv)();
+extern void ABISELECT(_ZThn32_N5FF1233barEv,_ZThn16_N5FF1233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_FF123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&_ZN5FF1233fooEv,
+ (VTBL_ENTRY)&_ZN5FF1233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv),
+};
+extern VTBL_ENTRY _ZTV5FF123[];
+static VTT_ENTRY vtt_FF123[] = {
+ {&(_ZTV5FF123[4]), 4,14},
+ {&(_ZTV5FF123[9]), 9,14},
+ {&(_ZTV5FF123[13]), 13,14},
+};
+extern VTBL_ENTRY _ZTI5FF123[];
+extern VTBL_ENTRY _ZTV5FF123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF123[];
+static VTBL_ENTRY alt_thunk_names24[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1233barEv,_ZThn16_N5FF1233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1233fooEv,_ZThn8_N5FF1233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_FF123 = { "FF123", // class name
+ bases_FF123, 2,
+ &(vtc_FF123[0]), // expected_vtbl_contents
+ &(vtt_FF123[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5FF123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5FF123),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5FF123),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names24,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct EE131 : virtual AA1 , virtual BB3 {
+ int pe;
+ virtual void foo(); // _ZN5EE1313fooEv
+ ~EE131(); // tgen
+ EE131(); // tgen
+};
+//SIG(-1 EE131) C1{ VBC2{ v1 Fi} VBC3{ v1 v2 Fi} v1 Fi}
+
+
+void EE131 ::foo(){vfunc_called(this, "_ZN5EE1313fooEv");}
+EE131 ::~EE131(){ note_dtor("EE131", this);} // tgen
+EE131 ::EE131(){ note_ctor("EE131", this);} // tgen
+
+static void Test_EE131()
+{
+ extern Class_Descriptor cd_EE131;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_EE131, buf);
+ EE131 *dp, &lv = *(dp=new (buf) EE131());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(EE131)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(EE131)");
+ check_base_class_offset(lv, (AA1*), ABISELECT(16,8), "EE131");
+ check_base_class_offset(lv, (BB3*), ABISELECT(32,16), "EE131");
+ check_field_offset(lv, pe, ABISELECT(8,4), "EE131.pe");
+ test_class_info(&lv, &cd_EE131);
+ dp->~EE131();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vEE131(Test_EE131, "EE131", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5EE131C1Ev();
+extern void _ZN5EE131D1Ev();
+Name_Map name_map_EE131[] = {
+ NSPAIR(_ZN5EE131C1Ev),
+ NSPAIR(_ZN5EE131D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+static Base_Class bases_EE131[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, 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
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5EE131[];
+extern void _ZN5EE1313fooEv();
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY vtc_EE131[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&_ZN5EE1313fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern VTBL_ENTRY _ZTV5EE131[];
+static VTT_ENTRY vtt_EE131[] = {
+ {&(_ZTV5EE131[4]), 4,15},
+ {&(_ZTV5EE131[8]), 8,15},
+ {&(_ZTV5EE131[13]), 13,15},
+};
+extern VTBL_ENTRY _ZTI5EE131[];
+extern VTBL_ENTRY _ZTV5EE131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE131[];
+static VTBL_ENTRY alt_thunk_names25[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_EE131 = { "EE131", // class name
+ bases_EE131, 2,
+ &(vtc_EE131[0]), // expected_vtbl_contents
+ &(vtt_EE131[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5EE131),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5EE131),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5EE131),3, //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 FF131 : virtual AA1 , virtual BB3 {
+ int pf;
+ virtual void foo(); // _ZN5FF1313fooEv
+ ~FF131(); // tgen
+ FF131(); // tgen
+};
+//SIG(-1 FF131) C1{ VBC2{ v1 Fi} VBC3{ v1 v2 Fi} v1 Fi}
+
+
+void FF131 ::foo(){vfunc_called(this, "_ZN5FF1313fooEv");}
+FF131 ::~FF131(){ note_dtor("FF131", this);} // tgen
+FF131 ::FF131(){ note_ctor("FF131", this);} // tgen
+
+static void Test_FF131()
+{
+ extern Class_Descriptor cd_FF131;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_FF131, buf);
+ FF131 *dp, &lv = *(dp=new (buf) FF131());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(FF131)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(FF131)");
+ check_base_class_offset(lv, (AA1*), ABISELECT(16,8), "FF131");
+ check_base_class_offset(lv, (BB3*), ABISELECT(32,16), "FF131");
+ check_field_offset(lv, pf, ABISELECT(8,4), "FF131.pf");
+ test_class_info(&lv, &cd_FF131);
+ dp->~FF131();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vFF131(Test_FF131, "FF131", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5FF131C1Ev();
+extern void _ZN5FF131D1Ev();
+Name_Map name_map_FF131[] = {
+ NSPAIR(_ZN5FF131C1Ev),
+ NSPAIR(_ZN5FF131D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+static Base_Class bases_FF131[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, 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
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5FF131[];
+extern void _ZN5FF1313fooEv();
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1313fooEv,_ZThn16_N5FF1313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY vtc_FF131[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&_ZN5FF1313fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern VTBL_ENTRY _ZTV5FF131[];
+static VTT_ENTRY vtt_FF131[] = {
+ {&(_ZTV5FF131[4]), 4,15},
+ {&(_ZTV5FF131[8]), 8,15},
+ {&(_ZTV5FF131[13]), 13,15},
+};
+extern VTBL_ENTRY _ZTI5FF131[];
+extern VTBL_ENTRY _ZTV5FF131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF131[];
+static VTBL_ENTRY alt_thunk_names26[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1313fooEv,_ZThn16_N5FF1313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_FF131 = { "FF131", // class name
+ bases_FF131, 2,
+ &(vtc_FF131[0]), // expected_vtbl_contents
+ &(vtt_FF131[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5FF131),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5FF131),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5FF131),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names26,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct EE132 : virtual AA1 , virtual BB3 {
+ int pe;
+ virtual void bar(); // _ZN5EE1323barEv
+ ~EE132(); // tgen
+ EE132(); // tgen
+};
+//SIG(-1 EE132) C1{ VBC2{ v2 Fi} VBC3{ v3 v1 Fi} v1 Fi}
+
+
+void EE132 ::bar(){vfunc_called(this, "_ZN5EE1323barEv");}
+EE132 ::~EE132(){ note_dtor("EE132", this);} // tgen
+EE132 ::EE132(){ note_ctor("EE132", this);} // tgen
+
+static void Test_EE132()
+{
+ extern Class_Descriptor cd_EE132;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_EE132, buf);
+ EE132 *dp, &lv = *(dp=new (buf) EE132());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(EE132)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(EE132)");
+ check_base_class_offset(lv, (AA1*), ABISELECT(16,8), "EE132");
+ check_base_class_offset(lv, (BB3*), ABISELECT(32,16), "EE132");
+ check_field_offset(lv, pe, ABISELECT(8,4), "EE132.pe");
+ test_class_info(&lv, &cd_EE132);
+ dp->~EE132();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vEE132(Test_EE132, "EE132", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5EE132C1Ev();
+extern void _ZN5EE132D1Ev();
+Name_Map name_map_EE132[] = {
+ NSPAIR(_ZN5EE132C1Ev),
+ NSPAIR(_ZN5EE132D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+static Base_Class bases_EE132[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, 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
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5EE132[];
+extern void _ZN5EE1323barEv();
+extern void _ZN3AA13fooEv();
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv)();
+extern void ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_EE132[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN5EE1323barEv,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv),
+};
+extern VTBL_ENTRY _ZTV5EE132[];
+static VTT_ENTRY vtt_EE132[] = {
+ {&(_ZTV5EE132[4]), 4,15},
+ {&(_ZTV5EE132[8]), 8,15},
+ {&(_ZTV5EE132[13]), 13,15},
+};
+extern VTBL_ENTRY _ZTI5EE132[];
+extern VTBL_ENTRY _ZTV5EE132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE132[];
+static VTBL_ENTRY alt_thunk_names27[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_EE132 = { "EE132", // class name
+ bases_EE132, 2,
+ &(vtc_EE132[0]), // expected_vtbl_contents
+ &(vtt_EE132[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5EE132),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5EE132),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5EE132),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names27,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct FF132 : virtual AA1 , virtual BB3 {
+ int pf;
+ virtual void bar(); // _ZN5FF1323barEv
+ ~FF132(); // tgen
+ FF132(); // tgen
+};
+//SIG(-1 FF132) C1{ VBC2{ v2 Fi} VBC3{ v3 v1 Fi} v1 Fi}
+
+
+void FF132 ::bar(){vfunc_called(this, "_ZN5FF1323barEv");}
+FF132 ::~FF132(){ note_dtor("FF132", this);} // tgen
+FF132 ::FF132(){ note_ctor("FF132", this);} // tgen
+
+static void Test_FF132()
+{
+ extern Class_Descriptor cd_FF132;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_FF132, buf);
+ FF132 *dp, &lv = *(dp=new (buf) FF132());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(FF132)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(FF132)");
+ check_base_class_offset(lv, (AA1*), ABISELECT(16,8), "FF132");
+ check_base_class_offset(lv, (BB3*), ABISELECT(32,16), "FF132");
+ check_field_offset(lv, pf, ABISELECT(8,4), "FF132.pf");
+ test_class_info(&lv, &cd_FF132);
+ dp->~FF132();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vFF132(Test_FF132, "FF132", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5FF132C1Ev();
+extern void _ZN5FF132D1Ev();
+Name_Map name_map_FF132[] = {
+ NSPAIR(_ZN5FF132C1Ev),
+ NSPAIR(_ZN5FF132D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+static Base_Class bases_FF132[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, 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
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5FF132[];
+extern void _ZN5FF1323barEv();
+extern void _ZN3AA13fooEv();
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv)();
+extern void ABISELECT(_ZThn32_N5FF1323barEv,_ZThn16_N5FF1323barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_FF132[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN5FF1323barEv,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv),
+};
+extern VTBL_ENTRY _ZTV5FF132[];
+static VTT_ENTRY vtt_FF132[] = {
+ {&(_ZTV5FF132[4]), 4,15},
+ {&(_ZTV5FF132[8]), 8,15},
+ {&(_ZTV5FF132[13]), 13,15},
+};
+extern VTBL_ENTRY _ZTI5FF132[];
+extern VTBL_ENTRY _ZTV5FF132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF132[];
+static VTBL_ENTRY alt_thunk_names28[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1323barEv,_ZThn16_N5FF1323barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_FF132 = { "FF132", // class name
+ bases_FF132, 2,
+ &(vtc_FF132[0]), // expected_vtbl_contents
+ &(vtt_FF132[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5FF132),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5FF132),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5FF132),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names28,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct EE133 : virtual AA1 , virtual BB3 {
+ int pe;
+ virtual void foo(); // _ZN5EE1333fooEv
+ virtual void bar(); // _ZN5EE1333barEv
+ ~EE133(); // tgen
+ EE133(); // tgen
+};
+//SIG(-1 EE133) C1{ VBC2{ v1 Fi} VBC3{ v1 v2 Fi} v1 v2 Fi}
+
+
+void EE133 ::foo(){vfunc_called(this, "_ZN5EE1333fooEv");}
+void EE133 ::bar(){vfunc_called(this, "_ZN5EE1333barEv");}
+EE133 ::~EE133(){ note_dtor("EE133", this);} // tgen
+EE133 ::EE133(){ note_ctor("EE133", this);} // tgen
+
+static void Test_EE133()
+{
+ extern Class_Descriptor cd_EE133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_EE133, buf);
+ EE133 *dp, &lv = *(dp=new (buf) EE133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(EE133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(EE133)");
+ check_base_class_offset(lv, (AA1*), ABISELECT(16,8), "EE133");
+ check_base_class_offset(lv, (BB3*), ABISELECT(32,16), "EE133");
+ check_field_offset(lv, pe, ABISELECT(8,4), "EE133.pe");
+ test_class_info(&lv, &cd_EE133);
+ dp->~EE133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vEE133(Test_EE133, "EE133", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5EE133C1Ev();
+extern void _ZN5EE133D1Ev();
+Name_Map name_map_EE133[] = {
+ NSPAIR(_ZN5EE133C1Ev),
+ NSPAIR(_ZN5EE133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+static Base_Class bases_EE133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, 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
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5EE133[];
+extern void _ZN5EE1333fooEv();
+extern void _ZN5EE1333barEv();
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv)();
+extern void ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_EE133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&_ZN5EE1333fooEv,
+ (VTBL_ENTRY)&_ZN5EE1333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv),
+};
+extern VTBL_ENTRY _ZTV5EE133[];
+static VTT_ENTRY vtt_EE133[] = {
+ {&(_ZTV5EE133[4]), 4,16},
+ {&(_ZTV5EE133[9]), 9,16},
+ {&(_ZTV5EE133[14]), 14,16},
+};
+extern VTBL_ENTRY _ZTI5EE133[];
+extern VTBL_ENTRY _ZTV5EE133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE133[];
+static VTBL_ENTRY alt_thunk_names29[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_EE133 = { "EE133", // class name
+ bases_EE133, 2,
+ &(vtc_EE133[0]), // expected_vtbl_contents
+ &(vtt_EE133[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5EE133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5EE133),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5EE133),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names29,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct FF133 : virtual AA1 , virtual BB3 {
+ int pf;
+ virtual void foo(); // _ZN5FF1333fooEv
+ virtual void bar(); // _ZN5FF1333barEv
+ ~FF133(); // tgen
+ FF133(); // tgen
+};
+//SIG(-1 FF133) C1{ VBC2{ v1 Fi} VBC3{ v1 v2 Fi} v1 v2 Fi}
+
+
+void FF133 ::foo(){vfunc_called(this, "_ZN5FF1333fooEv");}
+void FF133 ::bar(){vfunc_called(this, "_ZN5FF1333barEv");}
+FF133 ::~FF133(){ note_dtor("FF133", this);} // tgen
+FF133 ::FF133(){ note_ctor("FF133", this);} // tgen
+
+static void Test_FF133()
+{
+ extern Class_Descriptor cd_FF133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_FF133, buf);
+ FF133 *dp, &lv = *(dp=new (buf) FF133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(FF133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(FF133)");
+ check_base_class_offset(lv, (AA1*), ABISELECT(16,8), "FF133");
+ check_base_class_offset(lv, (BB3*), ABISELECT(32,16), "FF133");
+ check_field_offset(lv, pf, ABISELECT(8,4), "FF133.pf");
+ test_class_info(&lv, &cd_FF133);
+ dp->~FF133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vFF133(Test_FF133, "FF133", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5FF133C1Ev();
+extern void _ZN5FF133D1Ev();
+Name_Map name_map_FF133[] = {
+ NSPAIR(_ZN5FF133C1Ev),
+ NSPAIR(_ZN5FF133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+static Base_Class bases_FF133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, 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
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5FF133[];
+extern void _ZN5FF1333fooEv();
+extern void _ZN5FF1333barEv();
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1333fooEv,_ZThn16_N5FF1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv)();
+extern void ABISELECT(_ZThn32_N5FF1333barEv,_ZThn16_N5FF1333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_FF133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&_ZN5FF1333fooEv,
+ (VTBL_ENTRY)&_ZN5FF1333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv),
+};
+extern VTBL_ENTRY _ZTV5FF133[];
+static VTT_ENTRY vtt_FF133[] = {
+ {&(_ZTV5FF133[4]), 4,16},
+ {&(_ZTV5FF133[9]), 9,16},
+ {&(_ZTV5FF133[14]), 14,16},
+};
+extern VTBL_ENTRY _ZTI5FF133[];
+extern VTBL_ENTRY _ZTV5FF133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF133[];
+static VTBL_ENTRY alt_thunk_names30[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1333barEv,_ZThn16_N5FF1333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1333fooEv,_ZThn16_N5FF1333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_FF133 = { "FF133", // class name
+ bases_FF133, 2,
+ &(vtc_FF133[0]), // expected_vtbl_contents
+ &(vtt_FF133[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5FF133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5FF133),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5FF133),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names30,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct EE211 : virtual AA2 , virtual BB1 {
+ int pe;
+ virtual void foo(); // _ZN5EE2113fooEv
+ ~EE211(); // tgen
+ EE211(); // tgen
+};
+//SIG(-1 EE211) C1{ VBC2{ v2 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+void EE211 ::foo(){vfunc_called(this, "_ZN5EE2113fooEv");}
+EE211 ::~EE211(){ note_dtor("EE211", this);} // tgen
+EE211 ::EE211(){ note_ctor("EE211", this);} // tgen
+
+static void Test_EE211()
+{
+ extern Class_Descriptor cd_EE211;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_EE211, buf);
+ EE211 *dp, &lv = *(dp=new (buf) EE211());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(EE211)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(EE211)");
+ check_base_class_offset(lv, (AA2*), ABISELECT(16,8), "EE211");
+ check_base_class_offset(lv, (BB1*), ABISELECT(32,16), "EE211");
+ check_field_offset(lv, pe, ABISELECT(8,4), "EE211.pe");
+ test_class_info(&lv, &cd_EE211);
+ dp->~EE211();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vEE211(Test_EE211, "EE211", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5EE211C1Ev();
+extern void _ZN5EE211D1Ev();
+Name_Map name_map_EE211[] = {
+ NSPAIR(_ZN5EE211C1Ev),
+ NSPAIR(_ZN5EE211D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+static Base_Class bases_EE211[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5EE211[];
+extern void _ZN5EE2113fooEv();
+extern void _ZN3AA23barEv();
+extern void ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_EE211[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN5EE2113fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv),
+};
+extern VTBL_ENTRY _ZTV5EE211[];
+static VTT_ENTRY vtt_EE211[] = {
+ {&(_ZTV5EE211[4]), 4,13},
+ {&(_ZTV5EE211[8]), 8,13},
+ {&(_ZTV5EE211[12]), 12,13},
+};
+extern VTBL_ENTRY _ZTI5EE211[];
+extern VTBL_ENTRY _ZTV5EE211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE211[];
+static VTBL_ENTRY alt_thunk_names31[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_EE211 = { "EE211", // class name
+ bases_EE211, 2,
+ &(vtc_EE211[0]), // expected_vtbl_contents
+ &(vtt_EE211[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5EE211),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5EE211),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5EE211),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names31,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct FF211 : virtual AA2 , virtual BB1 {
+ int pf;
+ virtual void foo(); // _ZN5FF2113fooEv
+ ~FF211(); // tgen
+ FF211(); // tgen
+};
+//SIG(-1 FF211) C1{ VBC2{ v2 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+void FF211 ::foo(){vfunc_called(this, "_ZN5FF2113fooEv");}
+FF211 ::~FF211(){ note_dtor("FF211", this);} // tgen
+FF211 ::FF211(){ note_ctor("FF211", this);} // tgen
+
+static void Test_FF211()
+{
+ extern Class_Descriptor cd_FF211;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_FF211, buf);
+ FF211 *dp, &lv = *(dp=new (buf) FF211());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(FF211)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(FF211)");
+ check_base_class_offset(lv, (AA2*), ABISELECT(16,8), "FF211");
+ check_base_class_offset(lv, (BB1*), ABISELECT(32,16), "FF211");
+ check_field_offset(lv, pf, ABISELECT(8,4), "FF211.pf");
+ test_class_info(&lv, &cd_FF211);
+ dp->~FF211();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vFF211(Test_FF211, "FF211", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5FF211C1Ev();
+extern void _ZN5FF211D1Ev();
+Name_Map name_map_FF211[] = {
+ NSPAIR(_ZN5FF211C1Ev),
+ NSPAIR(_ZN5FF211D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+static Base_Class bases_FF211[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5FF211[];
+extern void _ZN5FF2113fooEv();
+extern void _ZN3AA23barEv();
+extern void ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2113fooEv,_ZThn16_N5FF2113fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_FF211[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN5FF2113fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv),
+};
+extern VTBL_ENTRY _ZTV5FF211[];
+static VTT_ENTRY vtt_FF211[] = {
+ {&(_ZTV5FF211[4]), 4,13},
+ {&(_ZTV5FF211[8]), 8,13},
+ {&(_ZTV5FF211[12]), 12,13},
+};
+extern VTBL_ENTRY _ZTI5FF211[];
+extern VTBL_ENTRY _ZTV5FF211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF211[];
+static VTBL_ENTRY alt_thunk_names32[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2113fooEv,_ZThn16_N5FF2113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_FF211 = { "FF211", // class name
+ bases_FF211, 2,
+ &(vtc_FF211[0]), // expected_vtbl_contents
+ &(vtt_FF211[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5FF211),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5FF211),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5FF211),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names32,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct EE212 : virtual AA2 , virtual BB1 {
+ int pe;
+ virtual void bar(); // _ZN5EE2123barEv
+ ~EE212(); // tgen
+ EE212(); // tgen
+};
+//SIG(-1 EE212) C1{ VBC2{ v1 Fi} VBC3{ v2 Fi} v1 Fi}
+
+
+void EE212 ::bar(){vfunc_called(this, "_ZN5EE2123barEv");}
+EE212 ::~EE212(){ note_dtor("EE212", this);} // tgen
+EE212 ::EE212(){ note_ctor("EE212", this);} // tgen
+
+static void Test_EE212()
+{
+ extern Class_Descriptor cd_EE212;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_EE212, buf);
+ EE212 *dp, &lv = *(dp=new (buf) EE212());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(EE212)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(EE212)");
+ check_base_class_offset(lv, (AA2*), ABISELECT(16,8), "EE212");
+ check_base_class_offset(lv, (BB1*), ABISELECT(32,16), "EE212");
+ check_field_offset(lv, pe, ABISELECT(8,4), "EE212.pe");
+ test_class_info(&lv, &cd_EE212);
+ dp->~EE212();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vEE212(Test_EE212, "EE212", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5EE212C1Ev();
+extern void _ZN5EE212D1Ev();
+Name_Map name_map_EE212[] = {
+ NSPAIR(_ZN5EE212C1Ev),
+ NSPAIR(_ZN5EE212D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+static Base_Class bases_EE212[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5EE212[];
+extern void _ZN5EE2123barEv();
+extern void ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv)();
+extern void ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv)() __attribute__((weak));
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY vtc_EE212[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN5EE2123barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern VTBL_ENTRY _ZTV5EE212[];
+static VTT_ENTRY vtt_EE212[] = {
+ {&(_ZTV5EE212[4]), 4,13},
+ {&(_ZTV5EE212[8]), 8,13},
+ {&(_ZTV5EE212[12]), 12,13},
+};
+extern VTBL_ENTRY _ZTI5EE212[];
+extern VTBL_ENTRY _ZTV5EE212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE212[];
+static VTBL_ENTRY alt_thunk_names33[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_EE212 = { "EE212", // class name
+ bases_EE212, 2,
+ &(vtc_EE212[0]), // expected_vtbl_contents
+ &(vtt_EE212[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5EE212),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5EE212),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5EE212),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names33,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct FF212 : virtual AA2 , virtual BB1 {
+ int pf;
+ virtual void bar(); // _ZN5FF2123barEv
+ ~FF212(); // tgen
+ FF212(); // tgen
+};
+//SIG(-1 FF212) C1{ VBC2{ v1 Fi} VBC3{ v2 Fi} v1 Fi}
+
+
+void FF212 ::bar(){vfunc_called(this, "_ZN5FF2123barEv");}
+FF212 ::~FF212(){ note_dtor("FF212", this);} // tgen
+FF212 ::FF212(){ note_ctor("FF212", this);} // tgen
+
+static void Test_FF212()
+{
+ extern Class_Descriptor cd_FF212;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_FF212, buf);
+ FF212 *dp, &lv = *(dp=new (buf) FF212());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(FF212)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(FF212)");
+ check_base_class_offset(lv, (AA2*), ABISELECT(16,8), "FF212");
+ check_base_class_offset(lv, (BB1*), ABISELECT(32,16), "FF212");
+ check_field_offset(lv, pf, ABISELECT(8,4), "FF212.pf");
+ test_class_info(&lv, &cd_FF212);
+ dp->~FF212();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vFF212(Test_FF212, "FF212", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5FF212C1Ev();
+extern void _ZN5FF212D1Ev();
+Name_Map name_map_FF212[] = {
+ NSPAIR(_ZN5FF212C1Ev),
+ NSPAIR(_ZN5FF212D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+static Base_Class bases_FF212[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5FF212[];
+extern void _ZN5FF2123barEv();
+extern void ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv)();
+extern void ABISELECT(_ZThn16_N5FF2123barEv,_ZThn8_N5FF2123barEv)() __attribute__((weak));
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY vtc_FF212[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN5FF2123barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern VTBL_ENTRY _ZTV5FF212[];
+static VTT_ENTRY vtt_FF212[] = {
+ {&(_ZTV5FF212[4]), 4,13},
+ {&(_ZTV5FF212[8]), 8,13},
+ {&(_ZTV5FF212[12]), 12,13},
+};
+extern VTBL_ENTRY _ZTI5FF212[];
+extern VTBL_ENTRY _ZTV5FF212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF212[];
+static VTBL_ENTRY alt_thunk_names34[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2123barEv,_ZThn8_N5FF2123barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_FF212 = { "FF212", // class name
+ bases_FF212, 2,
+ &(vtc_FF212[0]), // expected_vtbl_contents
+ &(vtt_FF212[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5FF212),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5FF212),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5FF212),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names34,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct EE213 : virtual AA2 , virtual BB1 {
+ int pe;
+ virtual void foo(); // _ZN5EE2133fooEv
+ virtual void bar(); // _ZN5EE2133barEv
+ ~EE213(); // tgen
+ EE213(); // tgen
+};
+//SIG(-1 EE213) C1{ VBC2{ v2 Fi} VBC3{ v1 Fi} v1 v2 Fi}
+
+
+void EE213 ::foo(){vfunc_called(this, "_ZN5EE2133fooEv");}
+void EE213 ::bar(){vfunc_called(this, "_ZN5EE2133barEv");}
+EE213 ::~EE213(){ note_dtor("EE213", this);} // tgen
+EE213 ::EE213(){ note_ctor("EE213", this);} // tgen
+
+static void Test_EE213()
+{
+ extern Class_Descriptor cd_EE213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_EE213, buf);
+ EE213 *dp, &lv = *(dp=new (buf) EE213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(EE213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(EE213)");
+ check_base_class_offset(lv, (AA2*), ABISELECT(16,8), "EE213");
+ check_base_class_offset(lv, (BB1*), ABISELECT(32,16), "EE213");
+ check_field_offset(lv, pe, ABISELECT(8,4), "EE213.pe");
+ test_class_info(&lv, &cd_EE213);
+ dp->~EE213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vEE213(Test_EE213, "EE213", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5EE213C1Ev();
+extern void _ZN5EE213D1Ev();
+Name_Map name_map_EE213[] = {
+ NSPAIR(_ZN5EE213C1Ev),
+ NSPAIR(_ZN5EE213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+static Base_Class bases_EE213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5EE213[];
+extern void _ZN5EE2133fooEv();
+extern void _ZN5EE2133barEv();
+extern void ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv)();
+extern void ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_EE213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&_ZN5EE2133fooEv,
+ (VTBL_ENTRY)&_ZN5EE2133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv),
+};
+extern VTBL_ENTRY _ZTV5EE213[];
+static VTT_ENTRY vtt_EE213[] = {
+ {&(_ZTV5EE213[4]), 4,14},
+ {&(_ZTV5EE213[9]), 9,14},
+ {&(_ZTV5EE213[13]), 13,14},
+};
+extern VTBL_ENTRY _ZTI5EE213[];
+extern VTBL_ENTRY _ZTV5EE213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE213[];
+static VTBL_ENTRY alt_thunk_names35[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_EE213 = { "EE213", // class name
+ bases_EE213, 2,
+ &(vtc_EE213[0]), // expected_vtbl_contents
+ &(vtt_EE213[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5EE213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5EE213),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5EE213),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names35,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct FF213 : virtual AA2 , virtual BB1 {
+ int pf;
+ virtual void foo(); // _ZN5FF2133fooEv
+ virtual void bar(); // _ZN5FF2133barEv
+ ~FF213(); // tgen
+ FF213(); // tgen
+};
+//SIG(-1 FF213) C1{ VBC2{ v2 Fi} VBC3{ v1 Fi} v1 v2 Fi}
+
+
+void FF213 ::foo(){vfunc_called(this, "_ZN5FF2133fooEv");}
+void FF213 ::bar(){vfunc_called(this, "_ZN5FF2133barEv");}
+FF213 ::~FF213(){ note_dtor("FF213", this);} // tgen
+FF213 ::FF213(){ note_ctor("FF213", this);} // tgen
+
+static void Test_FF213()
+{
+ extern Class_Descriptor cd_FF213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_FF213, buf);
+ FF213 *dp, &lv = *(dp=new (buf) FF213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(FF213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(FF213)");
+ check_base_class_offset(lv, (AA2*), ABISELECT(16,8), "FF213");
+ check_base_class_offset(lv, (BB1*), ABISELECT(32,16), "FF213");
+ check_field_offset(lv, pf, ABISELECT(8,4), "FF213.pf");
+ test_class_info(&lv, &cd_FF213);
+ dp->~FF213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vFF213(Test_FF213, "FF213", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5FF213C1Ev();
+extern void _ZN5FF213D1Ev();
+Name_Map name_map_FF213[] = {
+ NSPAIR(_ZN5FF213C1Ev),
+ NSPAIR(_ZN5FF213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+static Base_Class bases_FF213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5FF213[];
+extern void _ZN5FF2133fooEv();
+extern void _ZN5FF2133barEv();
+extern void ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv)();
+extern void ABISELECT(_ZThn16_N5FF2133barEv,_ZThn8_N5FF2133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2133fooEv,_ZThn16_N5FF2133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_FF213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&_ZN5FF2133fooEv,
+ (VTBL_ENTRY)&_ZN5FF2133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv),
+};
+extern VTBL_ENTRY _ZTV5FF213[];
+static VTT_ENTRY vtt_FF213[] = {
+ {&(_ZTV5FF213[4]), 4,14},
+ {&(_ZTV5FF213[9]), 9,14},
+ {&(_ZTV5FF213[13]), 13,14},
+};
+extern VTBL_ENTRY _ZTI5FF213[];
+extern VTBL_ENTRY _ZTV5FF213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF213[];
+static VTBL_ENTRY alt_thunk_names36[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2133fooEv,_ZThn16_N5FF2133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2133barEv,_ZThn8_N5FF2133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_FF213 = { "FF213", // class name
+ bases_FF213, 2,
+ &(vtc_FF213[0]), // expected_vtbl_contents
+ &(vtt_FF213[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5FF213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5FF213),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5FF213),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names36,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct EE221 : virtual AA2 , virtual BB2 {
+ int pe;
+ virtual void foo(); // _ZN5EE2213fooEv
+ ~EE221(); // tgen
+ EE221(); // tgen
+};
+//SIG(-1 EE221) C1{ VBC2{ v2 Fi} VBC3{ v3 Fi} v1 Fi}
+
+
+void EE221 ::foo(){vfunc_called(this, "_ZN5EE2213fooEv");}
+EE221 ::~EE221(){ note_dtor("EE221", this);} // tgen
+EE221 ::EE221(){ note_ctor("EE221", this);} // tgen
+
+static void Test_EE221()
+{
+ extern Class_Descriptor cd_EE221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_EE221, buf);
+ EE221 *dp, &lv = *(dp=new (buf) EE221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(EE221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(EE221)");
+ check_base_class_offset(lv, (AA2*), ABISELECT(16,8), "EE221");
+ check_base_class_offset(lv, (BB2*), ABISELECT(32,16), "EE221");
+ check_field_offset(lv, pe, ABISELECT(8,4), "EE221.pe");
+ test_class_info(&lv, &cd_EE221);
+ dp->~EE221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vEE221(Test_EE221, "EE221", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5EE221C1Ev();
+extern void _ZN5EE221D1Ev();
+Name_Map name_map_EE221[] = {
+ NSPAIR(_ZN5EE221C1Ev),
+ NSPAIR(_ZN5EE221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+static Base_Class bases_EE221[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5EE221[];
+extern void _ZN5EE2213fooEv();
+extern void _ZN3AA23barEv();
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY vtc_EE221[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN5EE2213fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern VTBL_ENTRY _ZTV5EE221[];
+static VTT_ENTRY vtt_EE221[] = {
+ {&(_ZTV5EE221[4]), 4,13},
+ {&(_ZTV5EE221[8]), 8,13},
+ {&(_ZTV5EE221[12]), 12,13},
+};
+extern VTBL_ENTRY _ZTI5EE221[];
+extern VTBL_ENTRY _ZTV5EE221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE221[];
+Class_Descriptor cd_EE221 = { "EE221", // class name
+ bases_EE221, 2,
+ &(vtc_EE221[0]), // expected_vtbl_contents
+ &(vtt_EE221[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5EE221),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5EE221),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5EE221),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct FF221 : virtual AA2 , virtual BB2 {
+ int pf;
+ virtual void foo(); // _ZN5FF2213fooEv
+ ~FF221(); // tgen
+ FF221(); // tgen
+};
+//SIG(-1 FF221) C1{ VBC2{ v2 Fi} VBC3{ v3 Fi} v1 Fi}
+
+
+void FF221 ::foo(){vfunc_called(this, "_ZN5FF2213fooEv");}
+FF221 ::~FF221(){ note_dtor("FF221", this);} // tgen
+FF221 ::FF221(){ note_ctor("FF221", this);} // tgen
+
+static void Test_FF221()
+{
+ extern Class_Descriptor cd_FF221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_FF221, buf);
+ FF221 *dp, &lv = *(dp=new (buf) FF221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(FF221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(FF221)");
+ check_base_class_offset(lv, (AA2*), ABISELECT(16,8), "FF221");
+ check_base_class_offset(lv, (BB2*), ABISELECT(32,16), "FF221");
+ check_field_offset(lv, pf, ABISELECT(8,4), "FF221.pf");
+ test_class_info(&lv, &cd_FF221);
+ dp->~FF221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vFF221(Test_FF221, "FF221", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5FF221C1Ev();
+extern void _ZN5FF221D1Ev();
+Name_Map name_map_FF221[] = {
+ NSPAIR(_ZN5FF221C1Ev),
+ NSPAIR(_ZN5FF221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+static Base_Class bases_FF221[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5FF221[];
+extern void _ZN5FF2213fooEv();
+extern void _ZN3AA23barEv();
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY vtc_FF221[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN5FF2213fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern VTBL_ENTRY _ZTV5FF221[];
+static VTT_ENTRY vtt_FF221[] = {
+ {&(_ZTV5FF221[4]), 4,13},
+ {&(_ZTV5FF221[8]), 8,13},
+ {&(_ZTV5FF221[12]), 12,13},
+};
+extern VTBL_ENTRY _ZTI5FF221[];
+extern VTBL_ENTRY _ZTV5FF221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF221[];
+Class_Descriptor cd_FF221 = { "FF221", // class name
+ bases_FF221, 2,
+ &(vtc_FF221[0]), // expected_vtbl_contents
+ &(vtt_FF221[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5FF221),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5FF221),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5FF221),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ 0, // alt-thunk-names
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct EE222 : virtual AA2 , virtual BB2 {
+ int pe;
+ virtual void bar(); // _ZN5EE2223barEv
+ ~EE222(); // tgen
+ EE222(); // tgen
+};
+//SIG(-1 EE222) C1{ VBC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+void EE222 ::bar(){vfunc_called(this, "_ZN5EE2223barEv");}
+EE222 ::~EE222(){ note_dtor("EE222", this);} // tgen
+EE222 ::EE222(){ note_ctor("EE222", this);} // tgen
+
+static void Test_EE222()
+{
+ extern Class_Descriptor cd_EE222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_EE222, buf);
+ EE222 *dp, &lv = *(dp=new (buf) EE222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(EE222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(EE222)");
+ check_base_class_offset(lv, (AA2*), ABISELECT(16,8), "EE222");
+ check_base_class_offset(lv, (BB2*), ABISELECT(32,16), "EE222");
+ check_field_offset(lv, pe, ABISELECT(8,4), "EE222.pe");
+ test_class_info(&lv, &cd_EE222);
+ dp->~EE222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vEE222(Test_EE222, "EE222", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5EE222C1Ev();
+extern void _ZN5EE222D1Ev();
+Name_Map name_map_EE222[] = {
+ NSPAIR(_ZN5EE222C1Ev),
+ NSPAIR(_ZN5EE222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+static Base_Class bases_EE222[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5EE222[];
+extern void _ZN5EE2223barEv();
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_EE222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern VTBL_ENTRY _ZTV5EE222[];
+static VTT_ENTRY vtt_EE222[] = {
+ {&(_ZTV5EE222[4]), 4,13},
+ {&(_ZTV5EE222[8]), 8,13},
+ {&(_ZTV5EE222[12]), 12,13},
+};
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+static VTBL_ENTRY alt_thunk_names37[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_EE222 = { "EE222", // class name
+ bases_EE222, 2,
+ &(vtc_EE222[0]), // expected_vtbl_contents
+ &(vtt_EE222[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5EE222),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5EE222),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5EE222),3, //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 FF222 : virtual AA2 , virtual BB2 {
+ int pf;
+ virtual void bar(); // _ZN5FF2223barEv
+ ~FF222(); // tgen
+ FF222(); // tgen
+};
+//SIG(-1 FF222) C1{ VBC2{ v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+void FF222 ::bar(){vfunc_called(this, "_ZN5FF2223barEv");}
+FF222 ::~FF222(){ note_dtor("FF222", this);} // tgen
+FF222 ::FF222(){ note_ctor("FF222", this);} // tgen
+
+static void Test_FF222()
+{
+ extern Class_Descriptor cd_FF222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_FF222, buf);
+ FF222 *dp, &lv = *(dp=new (buf) FF222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(FF222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(FF222)");
+ check_base_class_offset(lv, (AA2*), ABISELECT(16,8), "FF222");
+ check_base_class_offset(lv, (BB2*), ABISELECT(32,16), "FF222");
+ check_field_offset(lv, pf, ABISELECT(8,4), "FF222.pf");
+ test_class_info(&lv, &cd_FF222);
+ dp->~FF222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vFF222(Test_FF222, "FF222", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5FF222C1Ev();
+extern void _ZN5FF222D1Ev();
+Name_Map name_map_FF222[] = {
+ NSPAIR(_ZN5FF222C1Ev),
+ NSPAIR(_ZN5FF222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+static Base_Class bases_FF222[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(32,16), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5FF222[];
+extern void _ZN5FF2223barEv();
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_FF222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern VTBL_ENTRY _ZTV5FF222[];
+static VTT_ENTRY vtt_FF222[] = {
+ {&(_ZTV5FF222[4]), 4,13},
+ {&(_ZTV5FF222[8]), 8,13},
+ {&(_ZTV5FF222[12]), 12,13},
+};
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static VTBL_ENTRY alt_thunk_names38[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_FF222 = { "FF222", // class name
+ bases_FF222, 2,
+ &(vtc_FF222[0]), // expected_vtbl_contents
+ &(vtt_FF222[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5FF222),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5FF222),13, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5FF222),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names38,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct EE223 : virtual AA2 , virtual BB2 {
+ int pe;
+ virtual void foo(); // _ZN5EE2233fooEv
+ virtual void bar(); // _ZN5EE2233barEv
+ ~EE223(); // tgen
+ EE223(); // tgen
+};
+//SIG(-1 EE223) C1{ VBC2{ v2 Fi} VBC3{ v2 Fi} v1 v2 Fi}
+
+
+void EE223 ::foo(){vfunc_called(this, "_ZN5EE2233fooEv");}
+void EE223 ::bar(){vfunc_called(this, "_ZN5EE2233barEv");}
+EE223 ::~EE223(){ note_dtor("EE223", this);} // tgen
+EE223 ::EE223(){ note_ctor("EE223", this);} // tgen
+
+static void Test_EE223()
+{
+ extern Class_Descriptor cd_EE223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_EE223, buf);
+ EE223 *dp, &lv = *(dp=new (buf) EE223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(EE223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(EE223)");
+ check_base_class_offset(lv, (AA2*), ABISELECT(16,8), "EE223");
+ check_base_class_offset(lv, (BB2*), ABISELECT(32,16), "EE223");
+ check_field_offset(lv, pe, ABISELECT(8,4), "EE223.pe");
+ test_class_info(&lv, &cd_EE223);
+ dp->~EE223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vEE223(Test_EE223, "EE223", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5EE223C1Ev();
+extern void _ZN5EE223D1Ev();
+Name_Map name_map_EE223[] = {
+ NSPAIR(_ZN5EE223C1Ev),
+ NSPAIR(_ZN5EE223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+static Base_Class bases_EE223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5EE223[];
+extern void _ZN5EE2233fooEv();
+extern void _ZN5EE2233barEv();
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_EE223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&_ZN5EE2233fooEv,
+ (VTBL_ENTRY)&_ZN5EE2233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern VTBL_ENTRY _ZTV5EE223[];
+static VTT_ENTRY vtt_EE223[] = {
+ {&(_ZTV5EE223[4]), 4,14},
+ {&(_ZTV5EE223[9]), 9,14},
+ {&(_ZTV5EE223[13]), 13,14},
+};
+extern VTBL_ENTRY _ZTI5EE223[];
+extern VTBL_ENTRY _ZTV5EE223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE223[];
+static VTBL_ENTRY alt_thunk_names39[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_EE223 = { "EE223", // class name
+ bases_EE223, 2,
+ &(vtc_EE223[0]), // expected_vtbl_contents
+ &(vtt_EE223[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5EE223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5EE223),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5EE223),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names39,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct FF223 : virtual AA2 , virtual BB2 {
+ int pf;
+ virtual void foo(); // _ZN5FF2233fooEv
+ virtual void bar(); // _ZN5FF2233barEv
+ ~FF223(); // tgen
+ FF223(); // tgen
+};
+//SIG(-1 FF223) C1{ VBC2{ v2 Fi} VBC3{ v2 Fi} v1 v2 Fi}
+
+
+void FF223 ::foo(){vfunc_called(this, "_ZN5FF2233fooEv");}
+void FF223 ::bar(){vfunc_called(this, "_ZN5FF2233barEv");}
+FF223 ::~FF223(){ note_dtor("FF223", this);} // tgen
+FF223 ::FF223(){ note_ctor("FF223", this);} // tgen
+
+static void Test_FF223()
+{
+ extern Class_Descriptor cd_FF223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_FF223, buf);
+ FF223 *dp, &lv = *(dp=new (buf) FF223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(FF223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(FF223)");
+ check_base_class_offset(lv, (AA2*), ABISELECT(16,8), "FF223");
+ check_base_class_offset(lv, (BB2*), ABISELECT(32,16), "FF223");
+ check_field_offset(lv, pf, ABISELECT(8,4), "FF223.pf");
+ test_class_info(&lv, &cd_FF223);
+ dp->~FF223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vFF223(Test_FF223, "FF223", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5FF223C1Ev();
+extern void _ZN5FF223D1Ev();
+Name_Map name_map_FF223[] = {
+ NSPAIR(_ZN5FF223C1Ev),
+ NSPAIR(_ZN5FF223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+static Base_Class bases_FF223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(32,16), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5FF223[];
+extern void _ZN5FF2233fooEv();
+extern void _ZN5FF2233barEv();
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+extern void ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+extern void ABISELECT(_ZThn32_N5FF2233barEv,_ZThn16_N5FF2233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_FF223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&_ZN5FF2233fooEv,
+ (VTBL_ENTRY)&_ZN5FF2233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+extern VTBL_ENTRY _ZTV5FF223[];
+static VTT_ENTRY vtt_FF223[] = {
+ {&(_ZTV5FF223[4]), 4,14},
+ {&(_ZTV5FF223[9]), 9,14},
+ {&(_ZTV5FF223[13]), 13,14},
+};
+extern VTBL_ENTRY _ZTI5FF223[];
+extern VTBL_ENTRY _ZTV5FF223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF223[];
+static VTBL_ENTRY alt_thunk_names40[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2233barEv,_ZThn16_N5FF2233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_FF223 = { "FF223", // class name
+ bases_FF223, 2,
+ &(vtc_FF223[0]), // expected_vtbl_contents
+ &(vtt_FF223[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5FF223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5FF223),14, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5FF223),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names40,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct EE231 : virtual AA2 , virtual BB3 {
+ int pe;
+ virtual void foo(); // _ZN5EE2313fooEv
+ ~EE231(); // tgen
+ EE231(); // tgen
+};
+//SIG(-1 EE231) C1{ VBC2{ v2 Fi} VBC3{ v1 v3 Fi} v1 Fi}
+
+
+void EE231 ::foo(){vfunc_called(this, "_ZN5EE2313fooEv");}
+EE231 ::~EE231(){ note_dtor("EE231", this);} // tgen
+EE231 ::EE231(){ note_ctor("EE231", this);} // tgen
+
+static void Test_EE231()
+{
+ extern Class_Descriptor cd_EE231;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_EE231, buf);
+ EE231 *dp, &lv = *(dp=new (buf) EE231());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(EE231)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(EE231)");
+ check_base_class_offset(lv, (AA2*), ABISELECT(16,8), "EE231");
+ check_base_class_offset(lv, (BB3*), ABISELECT(32,16), "EE231");
+ check_field_offset(lv, pe, ABISELECT(8,4), "EE231.pe");
+ test_class_info(&lv, &cd_EE231);
+ dp->~EE231();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vEE231(Test_EE231, "EE231", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5EE231C1Ev();
+extern void _ZN5EE231D1Ev();
+Name_Map name_map_EE231[] = {
+ NSPAIR(_ZN5EE231C1Ev),
+ NSPAIR(_ZN5EE231D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+static Base_Class bases_EE231[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, 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
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5EE231[];
+extern void _ZN5EE2313fooEv();
+extern void _ZN3AA23barEv();
+extern void ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY vtc_EE231[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN5EE2313fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern VTBL_ENTRY _ZTV5EE231[];
+static VTT_ENTRY vtt_EE231[] = {
+ {&(_ZTV5EE231[4]), 4,15},
+ {&(_ZTV5EE231[8]), 8,15},
+ {&(_ZTV5EE231[13]), 13,15},
+};
+extern VTBL_ENTRY _ZTI5EE231[];
+extern VTBL_ENTRY _ZTV5EE231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE231[];
+static VTBL_ENTRY alt_thunk_names41[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_EE231 = { "EE231", // class name
+ bases_EE231, 2,
+ &(vtc_EE231[0]), // expected_vtbl_contents
+ &(vtt_EE231[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5EE231),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5EE231),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5EE231),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names41,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct FF231 : virtual AA2 , virtual BB3 {
+ int pf;
+ virtual void foo(); // _ZN5FF2313fooEv
+ ~FF231(); // tgen
+ FF231(); // tgen
+};
+//SIG(-1 FF231) C1{ VBC2{ v2 Fi} VBC3{ v1 v3 Fi} v1 Fi}
+
+
+void FF231 ::foo(){vfunc_called(this, "_ZN5FF2313fooEv");}
+FF231 ::~FF231(){ note_dtor("FF231", this);} // tgen
+FF231 ::FF231(){ note_ctor("FF231", this);} // tgen
+
+static void Test_FF231()
+{
+ extern Class_Descriptor cd_FF231;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_FF231, buf);
+ FF231 *dp, &lv = *(dp=new (buf) FF231());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(FF231)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(FF231)");
+ check_base_class_offset(lv, (AA2*), ABISELECT(16,8), "FF231");
+ check_base_class_offset(lv, (BB3*), ABISELECT(32,16), "FF231");
+ check_field_offset(lv, pf, ABISELECT(8,4), "FF231.pf");
+ test_class_info(&lv, &cd_FF231);
+ dp->~FF231();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vFF231(Test_FF231, "FF231", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5FF231C1Ev();
+extern void _ZN5FF231D1Ev();
+Name_Map name_map_FF231[] = {
+ NSPAIR(_ZN5FF231C1Ev),
+ NSPAIR(_ZN5FF231D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+static Base_Class bases_FF231[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, 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
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5FF231[];
+extern void _ZN5FF2313fooEv();
+extern void _ZN3AA23barEv();
+extern void ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2313fooEv,_ZThn16_N5FF2313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY vtc_FF231[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN5FF2313fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern VTBL_ENTRY _ZTV5FF231[];
+static VTT_ENTRY vtt_FF231[] = {
+ {&(_ZTV5FF231[4]), 4,15},
+ {&(_ZTV5FF231[8]), 8,15},
+ {&(_ZTV5FF231[13]), 13,15},
+};
+extern VTBL_ENTRY _ZTI5FF231[];
+extern VTBL_ENTRY _ZTV5FF231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF231[];
+static VTBL_ENTRY alt_thunk_names42[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2313fooEv,_ZThn16_N5FF2313fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_FF231 = { "FF231", // class name
+ bases_FF231, 2,
+ &(vtc_FF231[0]), // expected_vtbl_contents
+ &(vtt_FF231[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5FF231),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5FF231),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5FF231),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names42,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct EE232 : virtual AA2 , virtual BB3 {
+ int pe;
+ virtual void bar(); // _ZN5EE2323barEv
+ ~EE232(); // tgen
+ EE232(); // tgen
+};
+//SIG(-1 EE232) C1{ VBC2{ v1 Fi} VBC3{ v2 v1 Fi} v1 Fi}
+
+
+void EE232 ::bar(){vfunc_called(this, "_ZN5EE2323barEv");}
+EE232 ::~EE232(){ note_dtor("EE232", this);} // tgen
+EE232 ::EE232(){ note_ctor("EE232", this);} // tgen
+
+static void Test_EE232()
+{
+ extern Class_Descriptor cd_EE232;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_EE232, buf);
+ EE232 *dp, &lv = *(dp=new (buf) EE232());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(EE232)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(EE232)");
+ check_base_class_offset(lv, (AA2*), ABISELECT(16,8), "EE232");
+ check_base_class_offset(lv, (BB3*), ABISELECT(32,16), "EE232");
+ check_field_offset(lv, pe, ABISELECT(8,4), "EE232.pe");
+ test_class_info(&lv, &cd_EE232);
+ dp->~EE232();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vEE232(Test_EE232, "EE232", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5EE232C1Ev();
+extern void _ZN5EE232D1Ev();
+Name_Map name_map_EE232[] = {
+ NSPAIR(_ZN5EE232C1Ev),
+ NSPAIR(_ZN5EE232D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+static Base_Class bases_EE232[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, 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
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5EE232[];
+extern void _ZN5EE2323barEv();
+extern void ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv)();
+extern void ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv)() __attribute__((weak));
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv)();
+extern void ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_EE232[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN5EE2323barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv),
+};
+extern VTBL_ENTRY _ZTV5EE232[];
+static VTT_ENTRY vtt_EE232[] = {
+ {&(_ZTV5EE232[4]), 4,15},
+ {&(_ZTV5EE232[8]), 8,15},
+ {&(_ZTV5EE232[13]), 13,15},
+};
+extern VTBL_ENTRY _ZTI5EE232[];
+extern VTBL_ENTRY _ZTV5EE232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE232[];
+static VTBL_ENTRY alt_thunk_names43[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_EE232 = { "EE232", // class name
+ bases_EE232, 2,
+ &(vtc_EE232[0]), // expected_vtbl_contents
+ &(vtt_EE232[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5EE232),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5EE232),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5EE232),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names43,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct FF232 : virtual AA2 , virtual BB3 {
+ int pf;
+ virtual void bar(); // _ZN5FF2323barEv
+ ~FF232(); // tgen
+ FF232(); // tgen
+};
+//SIG(-1 FF232) C1{ VBC2{ v1 Fi} VBC3{ v2 v1 Fi} v1 Fi}
+
+
+void FF232 ::bar(){vfunc_called(this, "_ZN5FF2323barEv");}
+FF232 ::~FF232(){ note_dtor("FF232", this);} // tgen
+FF232 ::FF232(){ note_ctor("FF232", this);} // tgen
+
+static void Test_FF232()
+{
+ extern Class_Descriptor cd_FF232;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_FF232, buf);
+ FF232 *dp, &lv = *(dp=new (buf) FF232());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(FF232)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(FF232)");
+ check_base_class_offset(lv, (AA2*), ABISELECT(16,8), "FF232");
+ check_base_class_offset(lv, (BB3*), ABISELECT(32,16), "FF232");
+ check_field_offset(lv, pf, ABISELECT(8,4), "FF232.pf");
+ test_class_info(&lv, &cd_FF232);
+ dp->~FF232();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vFF232(Test_FF232, "FF232", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5FF232C1Ev();
+extern void _ZN5FF232D1Ev();
+Name_Map name_map_FF232[] = {
+ NSPAIR(_ZN5FF232C1Ev),
+ NSPAIR(_ZN5FF232D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+static Base_Class bases_FF232[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(16,8), //bcp->offset
+ 5, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, 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
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5FF232[];
+extern void _ZN5FF2323barEv();
+extern void ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv)();
+extern void ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv)() __attribute__((weak));
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv)();
+extern void ABISELECT(_ZThn32_N5FF2323barEv,_ZThn16_N5FF2323barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_FF232[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN5FF2323barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv),
+};
+extern VTBL_ENTRY _ZTV5FF232[];
+static VTT_ENTRY vtt_FF232[] = {
+ {&(_ZTV5FF232[4]), 4,15},
+ {&(_ZTV5FF232[8]), 8,15},
+ {&(_ZTV5FF232[13]), 13,15},
+};
+extern VTBL_ENTRY _ZTI5FF232[];
+extern VTBL_ENTRY _ZTV5FF232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF232[];
+static VTBL_ENTRY alt_thunk_names44[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2323barEv,_ZThn16_N5FF2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_FF232 = { "FF232", // class name
+ bases_FF232, 2,
+ &(vtc_FF232[0]), // expected_vtbl_contents
+ &(vtt_FF232[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5FF232),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5FF232),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5FF232),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names44,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct EE233 : virtual AA2 , virtual BB3 {
+ int pe;
+ virtual void foo(); // _ZN5EE2333fooEv
+ virtual void bar(); // _ZN5EE2333barEv
+ ~EE233(); // tgen
+ EE233(); // tgen
+};
+//SIG(-1 EE233) C1{ VBC2{ v2 Fi} VBC3{ v1 v2 Fi} v1 v2 Fi}
+
+
+void EE233 ::foo(){vfunc_called(this, "_ZN5EE2333fooEv");}
+void EE233 ::bar(){vfunc_called(this, "_ZN5EE2333barEv");}
+EE233 ::~EE233(){ note_dtor("EE233", this);} // tgen
+EE233 ::EE233(){ note_ctor("EE233", this);} // tgen
+
+static void Test_EE233()
+{
+ extern Class_Descriptor cd_EE233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_EE233, buf);
+ EE233 *dp, &lv = *(dp=new (buf) EE233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(EE233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(EE233)");
+ check_base_class_offset(lv, (AA2*), ABISELECT(16,8), "EE233");
+ check_base_class_offset(lv, (BB3*), ABISELECT(32,16), "EE233");
+ check_field_offset(lv, pe, ABISELECT(8,4), "EE233.pe");
+ test_class_info(&lv, &cd_EE233);
+ dp->~EE233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vEE233(Test_EE233, "EE233", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5EE233C1Ev();
+extern void _ZN5EE233D1Ev();
+Name_Map name_map_EE233[] = {
+ NSPAIR(_ZN5EE233C1Ev),
+ NSPAIR(_ZN5EE233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+static Base_Class bases_EE233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, 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
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5EE233[];
+extern void _ZN5EE2333fooEv();
+extern void _ZN5EE2333barEv();
+extern void ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv)();
+extern void ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv)();
+extern void ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_EE233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&_ZN5EE2333fooEv,
+ (VTBL_ENTRY)&_ZN5EE2333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv),
+};
+extern VTBL_ENTRY _ZTV5EE233[];
+static VTT_ENTRY vtt_EE233[] = {
+ {&(_ZTV5EE233[4]), 4,16},
+ {&(_ZTV5EE233[9]), 9,16},
+ {&(_ZTV5EE233[14]), 14,16},
+};
+extern VTBL_ENTRY _ZTI5EE233[];
+extern VTBL_ENTRY _ZTV5EE233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE233[];
+static VTBL_ENTRY alt_thunk_names45[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_EE233 = { "EE233", // class name
+ bases_EE233, 2,
+ &(vtc_EE233[0]), // expected_vtbl_contents
+ &(vtt_EE233[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5EE233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5EE233),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5EE233),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names45,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct FF233 : virtual AA2 , virtual BB3 {
+ int pf;
+ virtual void foo(); // _ZN5FF2333fooEv
+ virtual void bar(); // _ZN5FF2333barEv
+ ~FF233(); // tgen
+ FF233(); // tgen
+};
+//SIG(-1 FF233) C1{ VBC2{ v2 Fi} VBC3{ v1 v2 Fi} v1 v2 Fi}
+
+
+void FF233 ::foo(){vfunc_called(this, "_ZN5FF2333fooEv");}
+void FF233 ::bar(){vfunc_called(this, "_ZN5FF2333barEv");}
+FF233 ::~FF233(){ note_dtor("FF233", this);} // tgen
+FF233 ::FF233(){ note_ctor("FF233", this);} // tgen
+
+static void Test_FF233()
+{
+ extern Class_Descriptor cd_FF233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_FF233, buf);
+ FF233 *dp, &lv = *(dp=new (buf) FF233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(FF233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(FF233)");
+ check_base_class_offset(lv, (AA2*), ABISELECT(16,8), "FF233");
+ check_base_class_offset(lv, (BB3*), ABISELECT(32,16), "FF233");
+ check_field_offset(lv, pf, ABISELECT(8,4), "FF233.pf");
+ test_class_info(&lv, &cd_FF233);
+ dp->~FF233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vFF233(Test_FF233, "FF233", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5FF233C1Ev();
+extern void _ZN5FF233D1Ev();
+Name_Map name_map_FF233[] = {
+ NSPAIR(_ZN5FF233C1Ev),
+ NSPAIR(_ZN5FF233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+static Base_Class bases_FF233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, 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
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5FF233[];
+extern void _ZN5FF2333fooEv();
+extern void _ZN5FF2333barEv();
+extern void ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv)();
+extern void ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2333fooEv,_ZThn16_N5FF2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv)();
+extern void ABISELECT(_ZThn32_N5FF2333barEv,_ZThn16_N5FF2333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_FF233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&_ZN5FF2333fooEv,
+ (VTBL_ENTRY)&_ZN5FF2333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv),
+};
+extern VTBL_ENTRY _ZTV5FF233[];
+static VTT_ENTRY vtt_FF233[] = {
+ {&(_ZTV5FF233[4]), 4,16},
+ {&(_ZTV5FF233[9]), 9,16},
+ {&(_ZTV5FF233[14]), 14,16},
+};
+extern VTBL_ENTRY _ZTI5FF233[];
+extern VTBL_ENTRY _ZTV5FF233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF233[];
+static VTBL_ENTRY alt_thunk_names46[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2333barEv,_ZThn16_N5FF2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2333fooEv,_ZThn16_N5FF2333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_FF233 = { "FF233", // class name
+ bases_FF233, 2,
+ &(vtc_FF233[0]), // expected_vtbl_contents
+ &(vtt_FF233[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5FF233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5FF233),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5FF233),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names46,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct EE311 : virtual AA3 , virtual BB1 {
+ int pe;
+ virtual void foo(); // _ZN5EE3113fooEv
+ ~EE311(); // tgen
+ EE311(); // tgen
+};
+//SIG(-1 EE311) C1{ VBC2{ v1 v2 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+void EE311 ::foo(){vfunc_called(this, "_ZN5EE3113fooEv");}
+EE311 ::~EE311(){ note_dtor("EE311", this);} // tgen
+EE311 ::EE311(){ note_ctor("EE311", this);} // tgen
+
+static void Test_EE311()
+{
+ extern Class_Descriptor cd_EE311;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_EE311, buf);
+ EE311 *dp, &lv = *(dp=new (buf) EE311());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(EE311)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(EE311)");
+ check_base_class_offset(lv, (AA3*), ABISELECT(16,8), "EE311");
+ check_base_class_offset(lv, (BB1*), ABISELECT(32,16), "EE311");
+ check_field_offset(lv, pe, ABISELECT(8,4), "EE311.pe");
+ test_class_info(&lv, &cd_EE311);
+ dp->~EE311();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vEE311(Test_EE311, "EE311", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5EE311C1Ev();
+extern void _ZN5EE311D1Ev();
+Name_Map name_map_EE311[] = {
+ NSPAIR(_ZN5EE311C1Ev),
+ NSPAIR(_ZN5EE311D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+static Base_Class bases_EE311[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(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},
+ {&cd_BB1, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5EE311[];
+extern void _ZN5EE3113fooEv();
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_EE311[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&_ZN5EE3113fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+};
+extern VTBL_ENTRY _ZTV5EE311[];
+static VTT_ENTRY vtt_EE311[] = {
+ {&(_ZTV5EE311[4]), 4,15},
+ {&(_ZTV5EE311[9]), 9,15},
+ {&(_ZTV5EE311[14]), 14,15},
+};
+extern VTBL_ENTRY _ZTI5EE311[];
+extern VTBL_ENTRY _ZTV5EE311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE311[];
+static VTBL_ENTRY alt_thunk_names47[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_EE311 = { "EE311", // class name
+ bases_EE311, 2,
+ &(vtc_EE311[0]), // expected_vtbl_contents
+ &(vtt_EE311[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5EE311),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5EE311),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5EE311),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names47,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct FF311 : virtual AA3 , virtual BB1 {
+ int pf;
+ virtual void foo(); // _ZN5FF3113fooEv
+ ~FF311(); // tgen
+ FF311(); // tgen
+};
+//SIG(-1 FF311) C1{ VBC2{ v1 v2 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+void FF311 ::foo(){vfunc_called(this, "_ZN5FF3113fooEv");}
+FF311 ::~FF311(){ note_dtor("FF311", this);} // tgen
+FF311 ::FF311(){ note_ctor("FF311", this);} // tgen
+
+static void Test_FF311()
+{
+ extern Class_Descriptor cd_FF311;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_FF311, buf);
+ FF311 *dp, &lv = *(dp=new (buf) FF311());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(FF311)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(FF311)");
+ check_base_class_offset(lv, (AA3*), ABISELECT(16,8), "FF311");
+ check_base_class_offset(lv, (BB1*), ABISELECT(32,16), "FF311");
+ check_field_offset(lv, pf, ABISELECT(8,4), "FF311.pf");
+ test_class_info(&lv, &cd_FF311);
+ dp->~FF311();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vFF311(Test_FF311, "FF311", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5FF311C1Ev();
+extern void _ZN5FF311D1Ev();
+Name_Map name_map_FF311[] = {
+ NSPAIR(_ZN5FF311C1Ev),
+ NSPAIR(_ZN5FF311D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+static Base_Class bases_FF311[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(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},
+ {&cd_BB1, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5FF311[];
+extern void _ZN5FF3113fooEv();
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3113fooEv,_ZThn16_N5FF3113fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_FF311[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&_ZN5FF3113fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+};
+extern VTBL_ENTRY _ZTV5FF311[];
+static VTT_ENTRY vtt_FF311[] = {
+ {&(_ZTV5FF311[4]), 4,15},
+ {&(_ZTV5FF311[9]), 9,15},
+ {&(_ZTV5FF311[14]), 14,15},
+};
+extern VTBL_ENTRY _ZTI5FF311[];
+extern VTBL_ENTRY _ZTV5FF311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF311[];
+static VTBL_ENTRY alt_thunk_names48[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3113fooEv,_ZThn16_N5FF3113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_FF311 = { "FF311", // class name
+ bases_FF311, 2,
+ &(vtc_FF311[0]), // expected_vtbl_contents
+ &(vtt_FF311[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5FF311),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5FF311),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5FF311),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names48,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct EE312 : virtual AA3 , virtual BB1 {
+ int pe;
+ virtual void bar(); // _ZN5EE3123barEv
+ ~EE312(); // tgen
+ EE312(); // tgen
+};
+//SIG(-1 EE312) C1{ VBC2{ v2 v1 Fi} VBC3{ v3 Fi} v1 Fi}
+
+
+void EE312 ::bar(){vfunc_called(this, "_ZN5EE3123barEv");}
+EE312 ::~EE312(){ note_dtor("EE312", this);} // tgen
+EE312 ::EE312(){ note_ctor("EE312", this);} // tgen
+
+static void Test_EE312()
+{
+ extern Class_Descriptor cd_EE312;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_EE312, buf);
+ EE312 *dp, &lv = *(dp=new (buf) EE312());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(EE312)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(EE312)");
+ check_base_class_offset(lv, (AA3*), ABISELECT(16,8), "EE312");
+ check_base_class_offset(lv, (BB1*), ABISELECT(32,16), "EE312");
+ check_field_offset(lv, pe, ABISELECT(8,4), "EE312.pe");
+ test_class_info(&lv, &cd_EE312);
+ dp->~EE312();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vEE312(Test_EE312, "EE312", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5EE312C1Ev();
+extern void _ZN5EE312D1Ev();
+Name_Map name_map_EE312[] = {
+ NSPAIR(_ZN5EE312C1Ev),
+ NSPAIR(_ZN5EE312D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+static Base_Class bases_EE312[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(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},
+ {&cd_BB1, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5EE312[];
+extern void _ZN5EE3123barEv();
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv)();
+extern void ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv)() __attribute__((weak));
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY vtc_EE312[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN5EE3123barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern VTBL_ENTRY _ZTV5EE312[];
+static VTT_ENTRY vtt_EE312[] = {
+ {&(_ZTV5EE312[4]), 4,15},
+ {&(_ZTV5EE312[9]), 9,15},
+ {&(_ZTV5EE312[14]), 14,15},
+};
+extern VTBL_ENTRY _ZTI5EE312[];
+extern VTBL_ENTRY _ZTV5EE312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE312[];
+static VTBL_ENTRY alt_thunk_names49[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_EE312 = { "EE312", // class name
+ bases_EE312, 2,
+ &(vtc_EE312[0]), // expected_vtbl_contents
+ &(vtt_EE312[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5EE312),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5EE312),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5EE312),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names49,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct FF312 : virtual AA3 , virtual BB1 {
+ int pf;
+ virtual void bar(); // _ZN5FF3123barEv
+ ~FF312(); // tgen
+ FF312(); // tgen
+};
+//SIG(-1 FF312) C1{ VBC2{ v2 v1 Fi} VBC3{ v3 Fi} v1 Fi}
+
+
+void FF312 ::bar(){vfunc_called(this, "_ZN5FF3123barEv");}
+FF312 ::~FF312(){ note_dtor("FF312", this);} // tgen
+FF312 ::FF312(){ note_ctor("FF312", this);} // tgen
+
+static void Test_FF312()
+{
+ extern Class_Descriptor cd_FF312;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_FF312, buf);
+ FF312 *dp, &lv = *(dp=new (buf) FF312());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(FF312)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(FF312)");
+ check_base_class_offset(lv, (AA3*), ABISELECT(16,8), "FF312");
+ check_base_class_offset(lv, (BB1*), ABISELECT(32,16), "FF312");
+ check_field_offset(lv, pf, ABISELECT(8,4), "FF312.pf");
+ test_class_info(&lv, &cd_FF312);
+ dp->~FF312();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vFF312(Test_FF312, "FF312", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5FF312C1Ev();
+extern void _ZN5FF312D1Ev();
+Name_Map name_map_FF312[] = {
+ NSPAIR(_ZN5FF312C1Ev),
+ NSPAIR(_ZN5FF312D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+static Base_Class bases_FF312[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(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},
+ {&cd_BB1, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5FF312[];
+extern void _ZN5FF3123barEv();
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv)();
+extern void ABISELECT(_ZThn16_N5FF3123barEv,_ZThn8_N5FF3123barEv)() __attribute__((weak));
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY vtc_FF312[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN5FF3123barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern VTBL_ENTRY _ZTV5FF312[];
+static VTT_ENTRY vtt_FF312[] = {
+ {&(_ZTV5FF312[4]), 4,15},
+ {&(_ZTV5FF312[9]), 9,15},
+ {&(_ZTV5FF312[14]), 14,15},
+};
+extern VTBL_ENTRY _ZTI5FF312[];
+extern VTBL_ENTRY _ZTV5FF312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF312[];
+static VTBL_ENTRY alt_thunk_names50[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3123barEv,_ZThn8_N5FF3123barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_FF312 = { "FF312", // class name
+ bases_FF312, 2,
+ &(vtc_FF312[0]), // expected_vtbl_contents
+ &(vtt_FF312[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5FF312),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5FF312),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5FF312),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names50,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct EE313 : virtual AA3 , virtual BB1 {
+ int pe;
+ virtual void foo(); // _ZN5EE3133fooEv
+ virtual void bar(); // _ZN5EE3133barEv
+ ~EE313(); // tgen
+ EE313(); // tgen
+};
+//SIG(-1 EE313) C1{ VBC2{ v1 v2 Fi} VBC3{ v1 Fi} v1 v2 Fi}
+
+
+void EE313 ::foo(){vfunc_called(this, "_ZN5EE3133fooEv");}
+void EE313 ::bar(){vfunc_called(this, "_ZN5EE3133barEv");}
+EE313 ::~EE313(){ note_dtor("EE313", this);} // tgen
+EE313 ::EE313(){ note_ctor("EE313", this);} // tgen
+
+static void Test_EE313()
+{
+ extern Class_Descriptor cd_EE313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_EE313, buf);
+ EE313 *dp, &lv = *(dp=new (buf) EE313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(EE313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(EE313)");
+ check_base_class_offset(lv, (AA3*), ABISELECT(16,8), "EE313");
+ check_base_class_offset(lv, (BB1*), ABISELECT(32,16), "EE313");
+ check_field_offset(lv, pe, ABISELECT(8,4), "EE313.pe");
+ test_class_info(&lv, &cd_EE313);
+ dp->~EE313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vEE313(Test_EE313, "EE313", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5EE313C1Ev();
+extern void _ZN5EE313D1Ev();
+Name_Map name_map_EE313[] = {
+ NSPAIR(_ZN5EE313C1Ev),
+ NSPAIR(_ZN5EE313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+static Base_Class bases_EE313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5EE313[];
+extern void _ZN5EE3133fooEv();
+extern void _ZN5EE3133barEv();
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv)();
+extern void ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_EE313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&_ZN5EE3133fooEv,
+ (VTBL_ENTRY)&_ZN5EE3133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+};
+extern VTBL_ENTRY _ZTV5EE313[];
+static VTT_ENTRY vtt_EE313[] = {
+ {&(_ZTV5EE313[4]), 4,16},
+ {&(_ZTV5EE313[10]), 10,16},
+ {&(_ZTV5EE313[15]), 15,16},
+};
+extern VTBL_ENTRY _ZTI5EE313[];
+extern VTBL_ENTRY _ZTV5EE313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE313[];
+static VTBL_ENTRY alt_thunk_names51[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_EE313 = { "EE313", // class name
+ bases_EE313, 2,
+ &(vtc_EE313[0]), // expected_vtbl_contents
+ &(vtt_EE313[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5EE313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5EE313),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5EE313),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names51,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct FF313 : virtual AA3 , virtual BB1 {
+ int pf;
+ virtual void foo(); // _ZN5FF3133fooEv
+ virtual void bar(); // _ZN5FF3133barEv
+ ~FF313(); // tgen
+ FF313(); // tgen
+};
+//SIG(-1 FF313) C1{ VBC2{ v1 v2 Fi} VBC3{ v1 Fi} v1 v2 Fi}
+
+
+void FF313 ::foo(){vfunc_called(this, "_ZN5FF3133fooEv");}
+void FF313 ::bar(){vfunc_called(this, "_ZN5FF3133barEv");}
+FF313 ::~FF313(){ note_dtor("FF313", this);} // tgen
+FF313 ::FF313(){ note_ctor("FF313", this);} // tgen
+
+static void Test_FF313()
+{
+ extern Class_Descriptor cd_FF313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_FF313, buf);
+ FF313 *dp, &lv = *(dp=new (buf) FF313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(FF313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(FF313)");
+ check_base_class_offset(lv, (AA3*), ABISELECT(16,8), "FF313");
+ check_base_class_offset(lv, (BB1*), ABISELECT(32,16), "FF313");
+ check_field_offset(lv, pf, ABISELECT(8,4), "FF313.pf");
+ test_class_info(&lv, &cd_FF313);
+ dp->~FF313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vFF313(Test_FF313, "FF313", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5FF313C1Ev();
+extern void _ZN5FF313D1Ev();
+Name_Map name_map_FF313[] = {
+ NSPAIR(_ZN5FF313C1Ev),
+ NSPAIR(_ZN5FF313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+static Base_Class bases_FF313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5FF313[];
+extern void _ZN5FF3133fooEv();
+extern void _ZN5FF3133barEv();
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv)();
+extern void ABISELECT(_ZThn16_N5FF3133barEv,_ZThn8_N5FF3133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3133fooEv,_ZThn16_N5FF3133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_FF313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&_ZN5FF3133fooEv,
+ (VTBL_ENTRY)&_ZN5FF3133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+};
+extern VTBL_ENTRY _ZTV5FF313[];
+static VTT_ENTRY vtt_FF313[] = {
+ {&(_ZTV5FF313[4]), 4,16},
+ {&(_ZTV5FF313[10]), 10,16},
+ {&(_ZTV5FF313[15]), 15,16},
+};
+extern VTBL_ENTRY _ZTI5FF313[];
+extern VTBL_ENTRY _ZTV5FF313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF313[];
+static VTBL_ENTRY alt_thunk_names52[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3133barEv,_ZThn8_N5FF3133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3133fooEv,_ZThn16_N5FF3133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_FF313 = { "FF313", // class name
+ bases_FF313, 2,
+ &(vtc_FF313[0]), // expected_vtbl_contents
+ &(vtt_FF313[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5FF313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5FF313),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5FF313),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names52,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct EE321 : virtual AA3 , virtual BB2 {
+ int pe;
+ virtual void foo(); // _ZN5EE3213fooEv
+ ~EE321(); // tgen
+ EE321(); // tgen
+};
+//SIG(-1 EE321) C1{ VBC2{ v1 v2 Fi} VBC3{ v3 Fi} v1 Fi}
+
+
+void EE321 ::foo(){vfunc_called(this, "_ZN5EE3213fooEv");}
+EE321 ::~EE321(){ note_dtor("EE321", this);} // tgen
+EE321 ::EE321(){ note_ctor("EE321", this);} // tgen
+
+static void Test_EE321()
+{
+ extern Class_Descriptor cd_EE321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_EE321, buf);
+ EE321 *dp, &lv = *(dp=new (buf) EE321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(EE321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(EE321)");
+ check_base_class_offset(lv, (AA3*), ABISELECT(16,8), "EE321");
+ check_base_class_offset(lv, (BB2*), ABISELECT(32,16), "EE321");
+ check_field_offset(lv, pe, ABISELECT(8,4), "EE321.pe");
+ test_class_info(&lv, &cd_EE321);
+ dp->~EE321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vEE321(Test_EE321, "EE321", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5EE321C1Ev();
+extern void _ZN5EE321D1Ev();
+Name_Map name_map_EE321[] = {
+ NSPAIR(_ZN5EE321C1Ev),
+ NSPAIR(_ZN5EE321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+static Base_Class bases_EE321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(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},
+ {&cd_BB2, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5EE321[];
+extern void _ZN5EE3213fooEv();
+extern void ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY vtc_EE321[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN5EE3213fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern VTBL_ENTRY _ZTV5EE321[];
+static VTT_ENTRY vtt_EE321[] = {
+ {&(_ZTV5EE321[4]), 4,15},
+ {&(_ZTV5EE321[9]), 9,15},
+ {&(_ZTV5EE321[14]), 14,15},
+};
+extern VTBL_ENTRY _ZTI5EE321[];
+extern VTBL_ENTRY _ZTV5EE321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE321[];
+static VTBL_ENTRY alt_thunk_names53[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_EE321 = { "EE321", // class name
+ bases_EE321, 2,
+ &(vtc_EE321[0]), // expected_vtbl_contents
+ &(vtt_EE321[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5EE321),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5EE321),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5EE321),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names53,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct FF321 : virtual AA3 , virtual BB2 {
+ int pf;
+ virtual void foo(); // _ZN5FF3213fooEv
+ ~FF321(); // tgen
+ FF321(); // tgen
+};
+//SIG(-1 FF321) C1{ VBC2{ v1 v2 Fi} VBC3{ v3 Fi} v1 Fi}
+
+
+void FF321 ::foo(){vfunc_called(this, "_ZN5FF3213fooEv");}
+FF321 ::~FF321(){ note_dtor("FF321", this);} // tgen
+FF321 ::FF321(){ note_ctor("FF321", this);} // tgen
+
+static void Test_FF321()
+{
+ extern Class_Descriptor cd_FF321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_FF321, buf);
+ FF321 *dp, &lv = *(dp=new (buf) FF321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(FF321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(FF321)");
+ check_base_class_offset(lv, (AA3*), ABISELECT(16,8), "FF321");
+ check_base_class_offset(lv, (BB2*), ABISELECT(32,16), "FF321");
+ check_field_offset(lv, pf, ABISELECT(8,4), "FF321.pf");
+ test_class_info(&lv, &cd_FF321);
+ dp->~FF321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vFF321(Test_FF321, "FF321", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5FF321C1Ev();
+extern void _ZN5FF321D1Ev();
+Name_Map name_map_FF321[] = {
+ NSPAIR(_ZN5FF321C1Ev),
+ NSPAIR(_ZN5FF321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+static Base_Class bases_FF321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(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},
+ {&cd_BB2, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5FF321[];
+extern void _ZN5FF3213fooEv();
+extern void ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3213fooEv,_ZThn8_N5FF3213fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY vtc_FF321[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN5FF3213fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern VTBL_ENTRY _ZTV5FF321[];
+static VTT_ENTRY vtt_FF321[] = {
+ {&(_ZTV5FF321[4]), 4,15},
+ {&(_ZTV5FF321[9]), 9,15},
+ {&(_ZTV5FF321[14]), 14,15},
+};
+extern VTBL_ENTRY _ZTI5FF321[];
+extern VTBL_ENTRY _ZTV5FF321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF321[];
+static VTBL_ENTRY alt_thunk_names54[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3213fooEv,_ZThn8_N5FF3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_FF321 = { "FF321", // class name
+ bases_FF321, 2,
+ &(vtc_FF321[0]), // expected_vtbl_contents
+ &(vtt_FF321[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5FF321),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5FF321),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5FF321),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names54,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct EE322 : virtual AA3 , virtual BB2 {
+ int pe;
+ virtual void bar(); // _ZN5EE3223barEv
+ ~EE322(); // tgen
+ EE322(); // tgen
+};
+//SIG(-1 EE322) C1{ VBC2{ v2 v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+void EE322 ::bar(){vfunc_called(this, "_ZN5EE3223barEv");}
+EE322 ::~EE322(){ note_dtor("EE322", this);} // tgen
+EE322 ::EE322(){ note_ctor("EE322", this);} // tgen
+
+static void Test_EE322()
+{
+ extern Class_Descriptor cd_EE322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_EE322, buf);
+ EE322 *dp, &lv = *(dp=new (buf) EE322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(EE322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(EE322)");
+ check_base_class_offset(lv, (AA3*), ABISELECT(16,8), "EE322");
+ check_base_class_offset(lv, (BB2*), ABISELECT(32,16), "EE322");
+ check_field_offset(lv, pe, ABISELECT(8,4), "EE322.pe");
+ test_class_info(&lv, &cd_EE322);
+ dp->~EE322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vEE322(Test_EE322, "EE322", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5EE322C1Ev();
+extern void _ZN5EE322D1Ev();
+Name_Map name_map_EE322[] = {
+ NSPAIR(_ZN5EE322C1Ev),
+ NSPAIR(_ZN5EE322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+static Base_Class bases_EE322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(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},
+ {&cd_BB2, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5EE322[];
+extern void _ZN5EE3223barEv();
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv)();
+extern void ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv)();
+extern void ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_EE322[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN5EE3223barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv),
+};
+extern VTBL_ENTRY _ZTV5EE322[];
+static VTT_ENTRY vtt_EE322[] = {
+ {&(_ZTV5EE322[4]), 4,15},
+ {&(_ZTV5EE322[9]), 9,15},
+ {&(_ZTV5EE322[14]), 14,15},
+};
+extern VTBL_ENTRY _ZTI5EE322[];
+extern VTBL_ENTRY _ZTV5EE322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE322[];
+static VTBL_ENTRY alt_thunk_names55[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_EE322 = { "EE322", // class name
+ bases_EE322, 2,
+ &(vtc_EE322[0]), // expected_vtbl_contents
+ &(vtt_EE322[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5EE322),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5EE322),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5EE322),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names55,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct FF322 : virtual AA3 , virtual BB2 {
+ int pf;
+ virtual void bar(); // _ZN5FF3223barEv
+ ~FF322(); // tgen
+ FF322(); // tgen
+};
+//SIG(-1 FF322) C1{ VBC2{ v2 v1 Fi} VBC3{ v1 Fi} v1 Fi}
+
+
+void FF322 ::bar(){vfunc_called(this, "_ZN5FF3223barEv");}
+FF322 ::~FF322(){ note_dtor("FF322", this);} // tgen
+FF322 ::FF322(){ note_ctor("FF322", this);} // tgen
+
+static void Test_FF322()
+{
+ extern Class_Descriptor cd_FF322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_FF322, buf);
+ FF322 *dp, &lv = *(dp=new (buf) FF322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(FF322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(FF322)");
+ check_base_class_offset(lv, (AA3*), ABISELECT(16,8), "FF322");
+ check_base_class_offset(lv, (BB2*), ABISELECT(32,16), "FF322");
+ check_field_offset(lv, pf, ABISELECT(8,4), "FF322.pf");
+ test_class_info(&lv, &cd_FF322);
+ dp->~FF322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vFF322(Test_FF322, "FF322", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5FF322C1Ev();
+extern void _ZN5FF322D1Ev();
+Name_Map name_map_FF322[] = {
+ NSPAIR(_ZN5FF322C1Ev),
+ NSPAIR(_ZN5FF322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+static Base_Class bases_FF322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(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},
+ {&cd_BB2, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5FF322[];
+extern void _ZN5FF3223barEv();
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv)();
+extern void ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv)();
+extern void ABISELECT(_ZThn32_N5FF3223barEv,_ZThn16_N5FF3223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_FF322[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN5FF3223barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv),
+};
+extern VTBL_ENTRY _ZTV5FF322[];
+static VTT_ENTRY vtt_FF322[] = {
+ {&(_ZTV5FF322[4]), 4,15},
+ {&(_ZTV5FF322[9]), 9,15},
+ {&(_ZTV5FF322[14]), 14,15},
+};
+extern VTBL_ENTRY _ZTI5FF322[];
+extern VTBL_ENTRY _ZTV5FF322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF322[];
+static VTBL_ENTRY alt_thunk_names56[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3223barEv,_ZThn16_N5FF3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_FF322 = { "FF322", // class name
+ bases_FF322, 2,
+ &(vtc_FF322[0]), // expected_vtbl_contents
+ &(vtt_FF322[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5FF322),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5FF322),15, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5FF322),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names56,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct EE323 : virtual AA3 , virtual BB2 {
+ int pe;
+ virtual void foo(); // _ZN5EE3233fooEv
+ virtual void bar(); // _ZN5EE3233barEv
+ ~EE323(); // tgen
+ EE323(); // tgen
+};
+//SIG(-1 EE323) C1{ VBC2{ v1 v2 Fi} VBC3{ v2 Fi} v1 v2 Fi}
+
+
+void EE323 ::foo(){vfunc_called(this, "_ZN5EE3233fooEv");}
+void EE323 ::bar(){vfunc_called(this, "_ZN5EE3233barEv");}
+EE323 ::~EE323(){ note_dtor("EE323", this);} // tgen
+EE323 ::EE323(){ note_ctor("EE323", this);} // tgen
+
+static void Test_EE323()
+{
+ extern Class_Descriptor cd_EE323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_EE323, buf);
+ EE323 *dp, &lv = *(dp=new (buf) EE323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(EE323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(EE323)");
+ check_base_class_offset(lv, (AA3*), ABISELECT(16,8), "EE323");
+ check_base_class_offset(lv, (BB2*), ABISELECT(32,16), "EE323");
+ check_field_offset(lv, pe, ABISELECT(8,4), "EE323.pe");
+ test_class_info(&lv, &cd_EE323);
+ dp->~EE323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vEE323(Test_EE323, "EE323", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5EE323C1Ev();
+extern void _ZN5EE323D1Ev();
+Name_Map name_map_EE323[] = {
+ NSPAIR(_ZN5EE323C1Ev),
+ NSPAIR(_ZN5EE323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+static Base_Class bases_EE323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5EE323[];
+extern void _ZN5EE3233fooEv();
+extern void _ZN5EE3233barEv();
+extern void ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv)();
+extern void ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv)();
+extern void ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_EE323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&_ZN5EE3233fooEv,
+ (VTBL_ENTRY)&_ZN5EE3233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv),
+};
+extern VTBL_ENTRY _ZTV5EE323[];
+static VTT_ENTRY vtt_EE323[] = {
+ {&(_ZTV5EE323[4]), 4,16},
+ {&(_ZTV5EE323[10]), 10,16},
+ {&(_ZTV5EE323[15]), 15,16},
+};
+extern VTBL_ENTRY _ZTI5EE323[];
+extern VTBL_ENTRY _ZTV5EE323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE323[];
+static VTBL_ENTRY alt_thunk_names57[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_EE323 = { "EE323", // class name
+ bases_EE323, 2,
+ &(vtc_EE323[0]), // expected_vtbl_contents
+ &(vtt_EE323[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5EE323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5EE323),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5EE323),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names57,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct FF323 : virtual AA3 , virtual BB2 {
+ int pf;
+ virtual void foo(); // _ZN5FF3233fooEv
+ virtual void bar(); // _ZN5FF3233barEv
+ ~FF323(); // tgen
+ FF323(); // tgen
+};
+//SIG(-1 FF323) C1{ VBC2{ v1 v2 Fi} VBC3{ v2 Fi} v1 v2 Fi}
+
+
+void FF323 ::foo(){vfunc_called(this, "_ZN5FF3233fooEv");}
+void FF323 ::bar(){vfunc_called(this, "_ZN5FF3233barEv");}
+FF323 ::~FF323(){ note_dtor("FF323", this);} // tgen
+FF323 ::FF323(){ note_ctor("FF323", this);} // tgen
+
+static void Test_FF323()
+{
+ extern Class_Descriptor cd_FF323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_FF323, buf);
+ FF323 *dp, &lv = *(dp=new (buf) FF323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(FF323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(FF323)");
+ check_base_class_offset(lv, (AA3*), ABISELECT(16,8), "FF323");
+ check_base_class_offset(lv, (BB2*), ABISELECT(32,16), "FF323");
+ check_field_offset(lv, pf, ABISELECT(8,4), "FF323.pf");
+ test_class_info(&lv, &cd_FF323);
+ dp->~FF323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vFF323(Test_FF323, "FF323", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5FF323C1Ev();
+extern void _ZN5FF323D1Ev();
+Name_Map name_map_FF323[] = {
+ NSPAIR(_ZN5FF323C1Ev),
+ NSPAIR(_ZN5FF323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+static Base_Class bases_FF323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5FF323[];
+extern void _ZN5FF3233fooEv();
+extern void _ZN5FF3233barEv();
+extern void ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3233fooEv,_ZThn8_N5FF3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv)();
+extern void ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv)();
+extern void ABISELECT(_ZThn32_N5FF3233barEv,_ZThn16_N5FF3233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_FF323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&_ZN5FF3233fooEv,
+ (VTBL_ENTRY)&_ZN5FF3233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv),
+};
+extern VTBL_ENTRY _ZTV5FF323[];
+static VTT_ENTRY vtt_FF323[] = {
+ {&(_ZTV5FF323[4]), 4,16},
+ {&(_ZTV5FF323[10]), 10,16},
+ {&(_ZTV5FF323[15]), 15,16},
+};
+extern VTBL_ENTRY _ZTI5FF323[];
+extern VTBL_ENTRY _ZTV5FF323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF323[];
+static VTBL_ENTRY alt_thunk_names58[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3233barEv,_ZThn16_N5FF3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3233fooEv,_ZThn8_N5FF3233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_FF323 = { "FF323", // class name
+ bases_FF323, 2,
+ &(vtc_FF323[0]), // expected_vtbl_contents
+ &(vtt_FF323[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5FF323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5FF323),16, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5FF323),3, //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 EE331 : virtual AA3 , virtual BB3 {
+ int pe;
+ virtual void foo(); // _ZN5EE3313fooEv
+ ~EE331(); // tgen
+ EE331(); // tgen
+};
+//SIG(-1 EE331) C1{ VBC2{ v1 v2 Fi} VBC3{ v1 v3 Fi} v1 Fi}
+
+
+void EE331 ::foo(){vfunc_called(this, "_ZN5EE3313fooEv");}
+EE331 ::~EE331(){ note_dtor("EE331", this);} // tgen
+EE331 ::EE331(){ note_ctor("EE331", this);} // tgen
+
+static void Test_EE331()
+{
+ extern Class_Descriptor cd_EE331;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_EE331, buf);
+ EE331 *dp, &lv = *(dp=new (buf) EE331());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(EE331)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(EE331)");
+ check_base_class_offset(lv, (AA3*), ABISELECT(16,8), "EE331");
+ check_base_class_offset(lv, (BB3*), ABISELECT(32,16), "EE331");
+ check_field_offset(lv, pe, ABISELECT(8,4), "EE331.pe");
+ test_class_info(&lv, &cd_EE331);
+ dp->~EE331();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vEE331(Test_EE331, "EE331", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5EE331C1Ev();
+extern void _ZN5EE331D1Ev();
+Name_Map name_map_EE331[] = {
+ NSPAIR(_ZN5EE331C1Ev),
+ NSPAIR(_ZN5EE331D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+static Base_Class bases_EE331[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(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},
+ {&cd_BB3, 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
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5EE331[];
+extern void _ZN5EE3313fooEv();
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY vtc_EE331[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&_ZN5EE3313fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern VTBL_ENTRY _ZTV5EE331[];
+static VTT_ENTRY vtt_EE331[] = {
+ {&(_ZTV5EE331[4]), 4,17},
+ {&(_ZTV5EE331[9]), 9,17},
+ {&(_ZTV5EE331[15]), 15,17},
+};
+extern VTBL_ENTRY _ZTI5EE331[];
+extern VTBL_ENTRY _ZTV5EE331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE331[];
+static VTBL_ENTRY alt_thunk_names59[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_EE331 = { "EE331", // class name
+ bases_EE331, 2,
+ &(vtc_EE331[0]), // expected_vtbl_contents
+ &(vtt_EE331[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5EE331),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5EE331),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5EE331),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names59,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct FF331 : virtual AA3 , virtual BB3 {
+ int pf;
+ virtual void foo(); // _ZN5FF3313fooEv
+ ~FF331(); // tgen
+ FF331(); // tgen
+};
+//SIG(-1 FF331) C1{ VBC2{ v1 v2 Fi} VBC3{ v1 v3 Fi} v1 Fi}
+
+
+void FF331 ::foo(){vfunc_called(this, "_ZN5FF3313fooEv");}
+FF331 ::~FF331(){ note_dtor("FF331", this);} // tgen
+FF331 ::FF331(){ note_ctor("FF331", this);} // tgen
+
+static void Test_FF331()
+{
+ extern Class_Descriptor cd_FF331;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_FF331, buf);
+ FF331 *dp, &lv = *(dp=new (buf) FF331());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(FF331)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(FF331)");
+ check_base_class_offset(lv, (AA3*), ABISELECT(16,8), "FF331");
+ check_base_class_offset(lv, (BB3*), ABISELECT(32,16), "FF331");
+ check_field_offset(lv, pf, ABISELECT(8,4), "FF331.pf");
+ test_class_info(&lv, &cd_FF331);
+ dp->~FF331();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vFF331(Test_FF331, "FF331", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5FF331C1Ev();
+extern void _ZN5FF331D1Ev();
+Name_Map name_map_FF331[] = {
+ NSPAIR(_ZN5FF331C1Ev),
+ NSPAIR(_ZN5FF331D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+static Base_Class bases_FF331[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(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},
+ {&cd_BB3, 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
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5FF331[];
+extern void _ZN5FF3313fooEv();
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3313fooEv,_ZThn16_N5FF3313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY vtc_FF331[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&_ZN5FF3313fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern VTBL_ENTRY _ZTV5FF331[];
+static VTT_ENTRY vtt_FF331[] = {
+ {&(_ZTV5FF331[4]), 4,17},
+ {&(_ZTV5FF331[9]), 9,17},
+ {&(_ZTV5FF331[15]), 15,17},
+};
+extern VTBL_ENTRY _ZTI5FF331[];
+extern VTBL_ENTRY _ZTV5FF331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF331[];
+static VTBL_ENTRY alt_thunk_names60[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3313fooEv,_ZThn16_N5FF3313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_FF331 = { "FF331", // class name
+ bases_FF331, 2,
+ &(vtc_FF331[0]), // expected_vtbl_contents
+ &(vtt_FF331[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5FF331),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5FF331),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5FF331),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names60,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct EE332 : virtual AA3 , virtual BB3 {
+ int pe;
+ virtual void bar(); // _ZN5EE3323barEv
+ ~EE332(); // tgen
+ EE332(); // tgen
+};
+//SIG(-1 EE332) C1{ VBC2{ v2 v1 Fi} VBC3{ v3 v1 Fi} v1 Fi}
+
+
+void EE332 ::bar(){vfunc_called(this, "_ZN5EE3323barEv");}
+EE332 ::~EE332(){ note_dtor("EE332", this);} // tgen
+EE332 ::EE332(){ note_ctor("EE332", this);} // tgen
+
+static void Test_EE332()
+{
+ extern Class_Descriptor cd_EE332;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_EE332, buf);
+ EE332 *dp, &lv = *(dp=new (buf) EE332());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(EE332)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(EE332)");
+ check_base_class_offset(lv, (AA3*), ABISELECT(16,8), "EE332");
+ check_base_class_offset(lv, (BB3*), ABISELECT(32,16), "EE332");
+ check_field_offset(lv, pe, ABISELECT(8,4), "EE332.pe");
+ test_class_info(&lv, &cd_EE332);
+ dp->~EE332();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vEE332(Test_EE332, "EE332", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5EE332C1Ev();
+extern void _ZN5EE332D1Ev();
+Name_Map name_map_EE332[] = {
+ NSPAIR(_ZN5EE332C1Ev),
+ NSPAIR(_ZN5EE332D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+static Base_Class bases_EE332[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(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},
+ {&cd_BB3, 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
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5EE332[];
+extern void _ZN5EE3323barEv();
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv)() __attribute__((weak));
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_EE332[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN5EE3323barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern VTBL_ENTRY _ZTV5EE332[];
+static VTT_ENTRY vtt_EE332[] = {
+ {&(_ZTV5EE332[4]), 4,17},
+ {&(_ZTV5EE332[9]), 9,17},
+ {&(_ZTV5EE332[15]), 15,17},
+};
+extern VTBL_ENTRY _ZTI5EE332[];
+extern VTBL_ENTRY _ZTV5EE332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE332[];
+static VTBL_ENTRY alt_thunk_names61[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_EE332 = { "EE332", // class name
+ bases_EE332, 2,
+ &(vtc_EE332[0]), // expected_vtbl_contents
+ &(vtt_EE332[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5EE332),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5EE332),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5EE332),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names61,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct FF332 : virtual AA3 , virtual BB3 {
+ int pf;
+ virtual void bar(); // _ZN5FF3323barEv
+ ~FF332(); // tgen
+ FF332(); // tgen
+};
+//SIG(-1 FF332) C1{ VBC2{ v2 v1 Fi} VBC3{ v3 v1 Fi} v1 Fi}
+
+
+void FF332 ::bar(){vfunc_called(this, "_ZN5FF3323barEv");}
+FF332 ::~FF332(){ note_dtor("FF332", this);} // tgen
+FF332 ::FF332(){ note_ctor("FF332", this);} // tgen
+
+static void Test_FF332()
+{
+ extern Class_Descriptor cd_FF332;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_FF332, buf);
+ FF332 *dp, &lv = *(dp=new (buf) FF332());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(FF332)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(FF332)");
+ check_base_class_offset(lv, (AA3*), ABISELECT(16,8), "FF332");
+ check_base_class_offset(lv, (BB3*), ABISELECT(32,16), "FF332");
+ check_field_offset(lv, pf, ABISELECT(8,4), "FF332.pf");
+ test_class_info(&lv, &cd_FF332);
+ dp->~FF332();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vFF332(Test_FF332, "FF332", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5FF332C1Ev();
+extern void _ZN5FF332D1Ev();
+Name_Map name_map_FF332[] = {
+ NSPAIR(_ZN5FF332C1Ev),
+ NSPAIR(_ZN5FF332D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+static Base_Class bases_FF332[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(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},
+ {&cd_BB3, 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
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5FF332[];
+extern void _ZN5FF3323barEv();
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+extern void ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv)() __attribute__((weak));
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+extern void ABISELECT(_ZThn32_N5FF3323barEv,_ZThn16_N5FF3323barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_FF332[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN5FF3323barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+extern VTBL_ENTRY _ZTV5FF332[];
+static VTT_ENTRY vtt_FF332[] = {
+ {&(_ZTV5FF332[4]), 4,17},
+ {&(_ZTV5FF332[9]), 9,17},
+ {&(_ZTV5FF332[15]), 15,17},
+};
+extern VTBL_ENTRY _ZTI5FF332[];
+extern VTBL_ENTRY _ZTV5FF332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF332[];
+static VTBL_ENTRY alt_thunk_names62[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3323barEv,_ZThn16_N5FF3323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_FF332 = { "FF332", // class name
+ bases_FF332, 2,
+ &(vtc_FF332[0]), // expected_vtbl_contents
+ &(vtt_FF332[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5FF332),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5FF332),17, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5FF332),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names62,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct EE333 : virtual AA3 , virtual BB3 {
+ int pe;
+ virtual void foo(); // _ZN5EE3333fooEv
+ virtual void bar(); // _ZN5EE3333barEv
+ ~EE333(); // tgen
+ EE333(); // tgen
+};
+//SIG(-1 EE333) C1{ VBC2{ v1 v2 Fi} VBC3{ v1 v2 Fi} v1 v2 Fi}
+
+
+void EE333 ::foo(){vfunc_called(this, "_ZN5EE3333fooEv");}
+void EE333 ::bar(){vfunc_called(this, "_ZN5EE3333barEv");}
+EE333 ::~EE333(){ note_dtor("EE333", this);} // tgen
+EE333 ::EE333(){ note_ctor("EE333", this);} // tgen
+
+static void Test_EE333()
+{
+ extern Class_Descriptor cd_EE333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_EE333, buf);
+ EE333 *dp, &lv = *(dp=new (buf) EE333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(EE333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(EE333)");
+ check_base_class_offset(lv, (AA3*), ABISELECT(16,8), "EE333");
+ check_base_class_offset(lv, (BB3*), ABISELECT(32,16), "EE333");
+ check_field_offset(lv, pe, ABISELECT(8,4), "EE333.pe");
+ test_class_info(&lv, &cd_EE333);
+ dp->~EE333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vEE333(Test_EE333, "EE333", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5EE333C1Ev();
+extern void _ZN5EE333D1Ev();
+Name_Map name_map_EE333[] = {
+ NSPAIR(_ZN5EE333C1Ev),
+ NSPAIR(_ZN5EE333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+static Base_Class bases_EE333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, 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
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5EE333[];
+extern void _ZN5EE3333fooEv();
+extern void _ZN5EE3333barEv();
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_EE333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&_ZN5EE3333fooEv,
+ (VTBL_ENTRY)&_ZN5EE3333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern VTBL_ENTRY _ZTV5EE333[];
+static VTT_ENTRY vtt_EE333[] = {
+ {&(_ZTV5EE333[4]), 4,18},
+ {&(_ZTV5EE333[10]), 10,18},
+ {&(_ZTV5EE333[16]), 16,18},
+};
+extern VTBL_ENTRY _ZTI5EE333[];
+extern VTBL_ENTRY _ZTV5EE333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE333[];
+static VTBL_ENTRY alt_thunk_names63[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_EE333 = { "EE333", // class name
+ bases_EE333, 2,
+ &(vtc_EE333[0]), // expected_vtbl_contents
+ &(vtt_EE333[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5EE333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5EE333),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5EE333),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names63,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct FF333 : virtual AA3 , virtual BB3 {
+ int pf;
+ virtual void foo(); // _ZN5FF3333fooEv
+ virtual void bar(); // _ZN5FF3333barEv
+ ~FF333(); // tgen
+ FF333(); // tgen
+};
+//SIG(-1 FF333) C1{ VBC2{ v1 v2 Fi} VBC3{ v1 v2 Fi} v1 v2 Fi}
+
+
+void FF333 ::foo(){vfunc_called(this, "_ZN5FF3333fooEv");}
+void FF333 ::bar(){vfunc_called(this, "_ZN5FF3333barEv");}
+FF333 ::~FF333(){ note_dtor("FF333", this);} // tgen
+FF333 ::FF333(){ note_ctor("FF333", this);} // tgen
+
+static void Test_FF333()
+{
+ extern Class_Descriptor cd_FF333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[7];
+ init_test(&cd_FF333, buf);
+ FF333 *dp, &lv = *(dp=new (buf) FF333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(48,24), "sizeof(FF333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(FF333)");
+ check_base_class_offset(lv, (AA3*), ABISELECT(16,8), "FF333");
+ check_base_class_offset(lv, (BB3*), ABISELECT(32,16), "FF333");
+ check_field_offset(lv, pf, ABISELECT(8,4), "FF333.pf");
+ test_class_info(&lv, &cd_FF333);
+ dp->~FF333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vFF333(Test_FF333, "FF333", ABISELECT(48,24));
+
+#else // __cplusplus
+
+extern void _ZN5FF333C1Ev();
+extern void _ZN5FF333D1Ev();
+Name_Map name_map_FF333[] = {
+ NSPAIR(_ZN5FF333C1Ev),
+ NSPAIR(_ZN5FF333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+static Base_Class bases_FF333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, 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
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI5FF333[];
+extern void _ZN5FF3333fooEv();
+extern void _ZN5FF3333barEv();
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+extern void ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3333fooEv,_ZThn16_N5FF3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+extern void ABISELECT(_ZThn32_N5FF3333barEv,_ZThn16_N5FF3333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_FF333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&_ZN5FF3333fooEv,
+ (VTBL_ENTRY)&_ZN5FF3333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+extern VTBL_ENTRY _ZTV5FF333[];
+static VTT_ENTRY vtt_FF333[] = {
+ {&(_ZTV5FF333[4]), 4,18},
+ {&(_ZTV5FF333[10]), 10,18},
+ {&(_ZTV5FF333[16]), 16,18},
+};
+extern VTBL_ENTRY _ZTI5FF333[];
+extern VTBL_ENTRY _ZTV5FF333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF333[];
+static VTBL_ENTRY alt_thunk_names64[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3333barEv,_ZThn16_N5FF3333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3333fooEv,_ZThn16_N5FF3333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_FF333 = { "FF333", // class name
+ bases_FF333, 2,
+ &(vtc_FF333[0]), // expected_vtbl_contents
+ &(vtt_FF333[0]), // expected_vtt_contents
+ ABISELECT(48,24), // object size
+ NSPAIRA(_ZTI5FF333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV5FF333),18, //virtual function table var
+ 4, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT5FF333),3, //virtual table table var
+ 2, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names64,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G11111 : virtual E11 , virtual F11 {
+ int pg;
+ virtual void foo(); // _ZN6G111113fooEv
+ ~G11111(); // tgen
+ G11111(); // tgen
+};
+//SIG(1 G11111) C1{ VBC2{ VBC3{ v1 Fi} v1 Fi} VBC4{ VBC3 v1 Fi} v1 Fi}
+
+
+void G11111 ::foo(){vfunc_called(this, "_ZN6G111113fooEv");}
+G11111 ::~G11111(){ note_dtor("G11111", this);} // tgen
+G11111 ::G11111(){ note_ctor("G11111", this);} // tgen
+
+static void Test_G11111()
+{
+ extern Class_Descriptor cd_G11111;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_G11111, buf);
+ G11111 *dp, &lv = *(dp=new (buf) G11111());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(G11111)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G11111)");
+ check_base_class_offset(lv, (AA1*)(E11*), ABISELECT(32,16), "G11111");
+ check_base_class_offset(lv, (AA1*)(F11*), ABISELECT(32,16), "G11111");
+ check_base_class_offset(lv, (E11*), ABISELECT(16,8), "G11111");
+ check_base_class_offset(lv, (F11*), ABISELECT(48,24), "G11111");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G11111.pg");
+ test_class_info(&lv, &cd_G11111);
+ dp->~G11111();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG11111(Test_G11111, "G11111", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6G11111C1Ev();
+extern void _ZN6G11111D1Ev();
+Name_Map name_map_G11111[] = {
+ NSPAIR(_ZN6G11111C1Ev),
+ NSPAIR(_ZN6G11111D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_E11;
+extern VTBL_ENTRY _ZTI3E11[];
+extern VTBL_ENTRY _ZTV3E11[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E11[];
+extern Class_Descriptor cd_F11;
+extern VTBL_ENTRY _ZTI3F11[];
+extern VTBL_ENTRY _ZTV3F11[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F11[];
+static Base_Class bases_G11111[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E11, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_F11, 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
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G11111[];
+extern void _ZN6G111113fooEv();
+extern void ABISELECT(_ZTv0_n32_N6G111113fooEv,_ZTv0_n16_N6G111113fooEv)();
+extern void ABISELECT(_ZThn16_N6G111113fooEv,_ZThn8_N6G111113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G111113fooEv,_ZTv0_n12_N6G111113fooEv)();
+extern void ABISELECT(_ZThn32_N6G111113fooEv,_ZThn16_N6G111113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G111113fooEv,_ZTv0_n16_N6G111113fooEv)();
+extern void ABISELECT(_ZThn48_N6G111113fooEv,_ZThn24_N6G111113fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G11111[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G11111[0]),
+ (VTBL_ENTRY)&_ZN6G111113fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G11111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G111113fooEv,_ZTv0_n16_N6G111113fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G11111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G111113fooEv,_ZTv0_n12_N6G111113fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G11111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G111113fooEv,_ZTv0_n16_N6G111113fooEv),
+};
+extern VTBL_ENTRY _ZTV6G11111[];
+extern void _ZN3E113fooEv();
+static VTBL_ENTRY _tg__ZTV3E11__6G11111[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E11[0]),
+ (VTBL_ENTRY)&_ZN3E113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv)();
+extern void ABISELECT(_ZThn16_N3E113fooEv,_ZThn8_N3E113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__3E11__6G11111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E11[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv),
+};
+extern void _ZN3F113fooEv();
+static VTBL_ENTRY _tg__ZTV3F11__6G11111[] = {
+ ABISELECT(-16,-8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F11[0]),
+ (VTBL_ENTRY)&_ZN3F113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__3F11__6G11111[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI3F11[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv),
+};
+static VTT_ENTRY vtt_G11111[] = {
+ {&(_ZTV6G11111[5]), 5,20},
+ {&(_ZTV6G11111[10]), 10,20},
+ {&(_ZTV6G11111[14]), 14,20},
+ {&(_ZTV6G11111[19]), 19,20},
+ {&(_tg__ZTV3E11__6G11111[3]), 3,4},
+ {&(_tg__ZTV3AA1__3E11__6G11111[3]), 3,4},
+ {&(_tg__ZTV3F11__6G11111[3]), 3,4},
+ {&(_tg__ZTV3AA1__3F11__6G11111[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G11111[];
+extern VTBL_ENTRY _ZTV6G11111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G11111[];
+static VTBL_ENTRY alt_thunk_names65[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E113fooEv,_ZThn8_N3E113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G111113fooEv,_ZTv0_n12_N6G111113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G111113fooEv,_ZThn16_N6G111113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G111113fooEv,_ZTv0_n16_N6G111113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G111113fooEv,_ZThn24_N6G111113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G111113fooEv,_ZThn8_N6G111113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G11111 = { "G11111", // class name
+ bases_G11111, 3,
+ &(vtc_G11111[0]), // expected_vtbl_contents
+ &(vtt_G11111[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6G11111),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G11111),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G11111),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names65,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G11113 : virtual E11 , virtual F11 {
+ int pg;
+ virtual void foo(); // _ZN6G111133fooEv
+ virtual void bar(); // _ZN6G111133barEv
+ ~G11113(); // tgen
+ G11113(); // tgen
+};
+//SIG(1 G11113) C1{ VBC2{ VBC3{ v1 Fi} v1 Fi} VBC4{ VBC3 v1 Fi} v1 v2 Fi}
+
+
+void G11113 ::foo(){vfunc_called(this, "_ZN6G111133fooEv");}
+void G11113 ::bar(){vfunc_called(this, "_ZN6G111133barEv");}
+G11113 ::~G11113(){ note_dtor("G11113", this);} // tgen
+G11113 ::G11113(){ note_ctor("G11113", this);} // tgen
+
+static void Test_G11113()
+{
+ extern Class_Descriptor cd_G11113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_G11113, buf);
+ G11113 *dp, &lv = *(dp=new (buf) G11113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(G11113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G11113)");
+ check_base_class_offset(lv, (AA1*)(E11*), ABISELECT(32,16), "G11113");
+ check_base_class_offset(lv, (AA1*)(F11*), ABISELECT(32,16), "G11113");
+ check_base_class_offset(lv, (E11*), ABISELECT(16,8), "G11113");
+ check_base_class_offset(lv, (F11*), ABISELECT(48,24), "G11113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G11113.pg");
+ test_class_info(&lv, &cd_G11113);
+ dp->~G11113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG11113(Test_G11113, "G11113", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6G11113C1Ev();
+extern void _ZN6G11113D1Ev();
+Name_Map name_map_G11113[] = {
+ NSPAIR(_ZN6G11113C1Ev),
+ NSPAIR(_ZN6G11113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_E11;
+extern VTBL_ENTRY _ZTI3E11[];
+extern VTBL_ENTRY _ZTV3E11[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E11[];
+extern Class_Descriptor cd_F11;
+extern VTBL_ENTRY _ZTI3F11[];
+extern VTBL_ENTRY _ZTV3F11[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F11[];
+static Base_Class bases_G11113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E11, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_F11, 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
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G11113[];
+extern void _ZN6G111133fooEv();
+extern void _ZN6G111133barEv();
+extern void ABISELECT(_ZTv0_n32_N6G111133fooEv,_ZTv0_n16_N6G111133fooEv)();
+extern void ABISELECT(_ZThn16_N6G111133fooEv,_ZThn8_N6G111133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G111133fooEv,_ZTv0_n12_N6G111133fooEv)();
+extern void ABISELECT(_ZThn32_N6G111133fooEv,_ZThn16_N6G111133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G111133fooEv,_ZTv0_n16_N6G111133fooEv)();
+extern void ABISELECT(_ZThn48_N6G111133fooEv,_ZThn24_N6G111133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G11113[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G11113[0]),
+ (VTBL_ENTRY)&_ZN6G111133fooEv,
+ (VTBL_ENTRY)&_ZN6G111133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G11113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G111133fooEv,_ZTv0_n16_N6G111133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G11113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G111133fooEv,_ZTv0_n12_N6G111133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G11113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G111133fooEv,_ZTv0_n16_N6G111133fooEv),
+};
+extern VTBL_ENTRY _ZTV6G11113[];
+extern void _ZN3E113fooEv();
+static VTBL_ENTRY _tg__ZTV3E11__6G11113[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E11[0]),
+ (VTBL_ENTRY)&_ZN3E113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv)();
+extern void ABISELECT(_ZThn16_N3E113fooEv,_ZThn8_N3E113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__3E11__6G11113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E11[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv),
+};
+extern void _ZN3F113fooEv();
+static VTBL_ENTRY _tg__ZTV3F11__6G11113[] = {
+ ABISELECT(-16,-8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F11[0]),
+ (VTBL_ENTRY)&_ZN3F113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__3F11__6G11113[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI3F11[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv),
+};
+static VTT_ENTRY vtt_G11113[] = {
+ {&(_ZTV6G11113[5]), 5,21},
+ {&(_ZTV6G11113[11]), 11,21},
+ {&(_ZTV6G11113[15]), 15,21},
+ {&(_ZTV6G11113[20]), 20,21},
+ {&(_tg__ZTV3E11__6G11113[3]), 3,4},
+ {&(_tg__ZTV3AA1__3E11__6G11113[3]), 3,4},
+ {&(_tg__ZTV3F11__6G11113[3]), 3,4},
+ {&(_tg__ZTV3AA1__3F11__6G11113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G11113[];
+extern VTBL_ENTRY _ZTV6G11113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G11113[];
+static VTBL_ENTRY alt_thunk_names66[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E113fooEv,_ZThn8_N3E113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G111133fooEv,_ZTv0_n12_N6G111133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G111133fooEv,_ZThn16_N6G111133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G111133fooEv,_ZTv0_n16_N6G111133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G111133fooEv,_ZThn24_N6G111133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G111133fooEv,_ZThn8_N6G111133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G11113 = { "G11113", // class name
+ bases_G11113, 3,
+ &(vtc_G11113[0]), // expected_vtbl_contents
+ &(vtt_G11113[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6G11113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G11113),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G11113),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names66,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G11121 : virtual E11 , virtual F12 {
+ int pg;
+ virtual void foo(); // _ZN6G111213fooEv
+ ~G11121(); // tgen
+ G11121(); // tgen
+};
+//SIG(1 G11121) C1{ VBC2{ VBC3{ v1 Fi} v1 Fi} VBC4{ VBC3 v2 Fi} v1 Fi}
+
+
+void G11121 ::foo(){vfunc_called(this, "_ZN6G111213fooEv");}
+G11121 ::~G11121(){ note_dtor("G11121", this);} // tgen
+G11121 ::G11121(){ note_ctor("G11121", this);} // tgen
+
+static void Test_G11121()
+{
+ extern Class_Descriptor cd_G11121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_G11121, buf);
+ G11121 *dp, &lv = *(dp=new (buf) G11121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(G11121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G11121)");
+ check_base_class_offset(lv, (AA1*)(E11*), ABISELECT(32,16), "G11121");
+ check_base_class_offset(lv, (AA1*)(F12*), ABISELECT(32,16), "G11121");
+ check_base_class_offset(lv, (E11*), ABISELECT(16,8), "G11121");
+ check_base_class_offset(lv, (F12*), ABISELECT(48,24), "G11121");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G11121.pg");
+ test_class_info(&lv, &cd_G11121);
+ dp->~G11121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG11121(Test_G11121, "G11121", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6G11121C1Ev();
+extern void _ZN6G11121D1Ev();
+Name_Map name_map_G11121[] = {
+ NSPAIR(_ZN6G11121C1Ev),
+ NSPAIR(_ZN6G11121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_E11;
+extern VTBL_ENTRY _ZTI3E11[];
+extern VTBL_ENTRY _ZTV3E11[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E11[];
+extern Class_Descriptor cd_F12;
+extern VTBL_ENTRY _ZTI3F12[];
+extern VTBL_ENTRY _ZTV3F12[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F12[];
+static Base_Class bases_G11121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E11, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_F12, 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
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G11121[];
+extern void _ZN6G111213fooEv();
+extern void ABISELECT(_ZTv0_n32_N6G111213fooEv,_ZTv0_n16_N6G111213fooEv)();
+extern void ABISELECT(_ZThn16_N6G111213fooEv,_ZThn8_N6G111213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G111213fooEv,_ZTv0_n12_N6G111213fooEv)();
+extern void ABISELECT(_ZThn32_N6G111213fooEv,_ZThn16_N6G111213fooEv)() __attribute__((weak));
+extern void _ZN3F123barEv();
+static VTBL_ENTRY vtc_G11121[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G11121[0]),
+ (VTBL_ENTRY)&_ZN6G111213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G11121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G111213fooEv,_ZTv0_n16_N6G111213fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G11121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G111213fooEv,_ZTv0_n12_N6G111213fooEv),
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G11121[0]),
+ (VTBL_ENTRY)&_ZN3F123barEv,
+};
+extern VTBL_ENTRY _ZTV6G11121[];
+extern void _ZN3E113fooEv();
+static VTBL_ENTRY _tg__ZTV3E11__6G11121[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E11[0]),
+ (VTBL_ENTRY)&_ZN3E113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv)();
+extern void ABISELECT(_ZThn16_N3E113fooEv,_ZThn8_N3E113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__3E11__6G11121[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E11[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv),
+};
+extern void _ZN3F123barEv();
+static VTBL_ENTRY _tg__ZTV3F12__6G11121[] = {
+ ABISELECT(-16,-8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F12[0]),
+ (VTBL_ENTRY)&_ZN3F123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__3F12__6G11121[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI3F12[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+static VTT_ENTRY vtt_G11121[] = {
+ {&(_ZTV6G11121[5]), 5,20},
+ {&(_ZTV6G11121[10]), 10,20},
+ {&(_ZTV6G11121[14]), 14,20},
+ {&(_ZTV6G11121[19]), 19,20},
+ {&(_tg__ZTV3E11__6G11121[3]), 3,4},
+ {&(_tg__ZTV3AA1__3E11__6G11121[3]), 3,4},
+ {&(_tg__ZTV3F12__6G11121[3]), 3,4},
+ {&(_tg__ZTV3AA1__3F12__6G11121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G11121[];
+extern VTBL_ENTRY _ZTV6G11121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G11121[];
+static VTBL_ENTRY alt_thunk_names67[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E113fooEv,_ZThn8_N3E113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G111213fooEv,_ZTv0_n12_N6G111213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G111213fooEv,_ZThn16_N6G111213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G111213fooEv,_ZTv0_n16_N6G111213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G111213fooEv,_ZThn8_N6G111213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G11121 = { "G11121", // class name
+ bases_G11121, 3,
+ &(vtc_G11121[0]), // expected_vtbl_contents
+ &(vtt_G11121[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6G11121),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G11121),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G11121),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names67,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G11123 : virtual E11 , virtual F12 {
+ int pg;
+ virtual void foo(); // _ZN6G111233fooEv
+ virtual void bar(); // _ZN6G111233barEv
+ ~G11123(); // tgen
+ G11123(); // tgen
+};
+//SIG(1 G11123) C1{ VBC2{ VBC3{ v1 Fi} v1 Fi} VBC4{ VBC3 v2 Fi} v1 v2 Fi}
+
+
+void G11123 ::foo(){vfunc_called(this, "_ZN6G111233fooEv");}
+void G11123 ::bar(){vfunc_called(this, "_ZN6G111233barEv");}
+G11123 ::~G11123(){ note_dtor("G11123", this);} // tgen
+G11123 ::G11123(){ note_ctor("G11123", this);} // tgen
+
+static void Test_G11123()
+{
+ extern Class_Descriptor cd_G11123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_G11123, buf);
+ G11123 *dp, &lv = *(dp=new (buf) G11123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(G11123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G11123)");
+ check_base_class_offset(lv, (AA1*)(E11*), ABISELECT(32,16), "G11123");
+ check_base_class_offset(lv, (AA1*)(F12*), ABISELECT(32,16), "G11123");
+ check_base_class_offset(lv, (E11*), ABISELECT(16,8), "G11123");
+ check_base_class_offset(lv, (F12*), ABISELECT(48,24), "G11123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G11123.pg");
+ test_class_info(&lv, &cd_G11123);
+ dp->~G11123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG11123(Test_G11123, "G11123", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6G11123C1Ev();
+extern void _ZN6G11123D1Ev();
+Name_Map name_map_G11123[] = {
+ NSPAIR(_ZN6G11123C1Ev),
+ NSPAIR(_ZN6G11123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_E11;
+extern VTBL_ENTRY _ZTI3E11[];
+extern VTBL_ENTRY _ZTV3E11[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E11[];
+extern Class_Descriptor cd_F12;
+extern VTBL_ENTRY _ZTI3F12[];
+extern VTBL_ENTRY _ZTV3F12[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F12[];
+static Base_Class bases_G11123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E11, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_F12, 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
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G11123[];
+extern void _ZN6G111233fooEv();
+extern void _ZN6G111233barEv();
+extern void ABISELECT(_ZTv0_n32_N6G111233fooEv,_ZTv0_n16_N6G111233fooEv)();
+extern void ABISELECT(_ZThn16_N6G111233fooEv,_ZThn8_N6G111233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G111233fooEv,_ZTv0_n12_N6G111233fooEv)();
+extern void ABISELECT(_ZThn32_N6G111233fooEv,_ZThn16_N6G111233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G111233barEv,_ZTv0_n16_N6G111233barEv)();
+extern void ABISELECT(_ZThn48_N6G111233barEv,_ZThn24_N6G111233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G11123[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G11123[0]),
+ (VTBL_ENTRY)&_ZN6G111233fooEv,
+ (VTBL_ENTRY)&_ZN6G111233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G11123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G111233fooEv,_ZTv0_n16_N6G111233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G11123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G111233fooEv,_ZTv0_n12_N6G111233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G11123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G111233barEv,_ZTv0_n16_N6G111233barEv),
+};
+extern VTBL_ENTRY _ZTV6G11123[];
+extern void _ZN3E113fooEv();
+static VTBL_ENTRY _tg__ZTV3E11__6G11123[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E11[0]),
+ (VTBL_ENTRY)&_ZN3E113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv)();
+extern void ABISELECT(_ZThn16_N3E113fooEv,_ZThn8_N3E113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__3E11__6G11123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E11[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv),
+};
+extern void _ZN3F123barEv();
+static VTBL_ENTRY _tg__ZTV3F12__6G11123[] = {
+ ABISELECT(-16,-8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F12[0]),
+ (VTBL_ENTRY)&_ZN3F123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__3F12__6G11123[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI3F12[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+static VTT_ENTRY vtt_G11123[] = {
+ {&(_ZTV6G11123[5]), 5,21},
+ {&(_ZTV6G11123[11]), 11,21},
+ {&(_ZTV6G11123[15]), 15,21},
+ {&(_ZTV6G11123[20]), 20,21},
+ {&(_tg__ZTV3E11__6G11123[3]), 3,4},
+ {&(_tg__ZTV3AA1__3E11__6G11123[3]), 3,4},
+ {&(_tg__ZTV3F12__6G11123[3]), 3,4},
+ {&(_tg__ZTV3AA1__3F12__6G11123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G11123[];
+extern VTBL_ENTRY _ZTV6G11123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G11123[];
+static VTBL_ENTRY alt_thunk_names68[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E113fooEv,_ZThn8_N3E113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G111233barEv,_ZTv0_n16_N6G111233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G111233barEv,_ZThn24_N6G111233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G111233fooEv,_ZTv0_n12_N6G111233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G111233fooEv,_ZThn16_N6G111233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G111233fooEv,_ZTv0_n16_N6G111233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G111233fooEv,_ZThn8_N6G111233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G11123 = { "G11123", // class name
+ bases_G11123, 3,
+ &(vtc_G11123[0]), // expected_vtbl_contents
+ &(vtt_G11123[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6G11123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G11123),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G11123),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 G11131 : virtual E11 , virtual F13 {
+ int pg;
+ virtual void foo(); // _ZN6G111313fooEv
+ ~G11131(); // tgen
+ G11131(); // tgen
+};
+//SIG(1 G11131) C1{ VBC2{ VBC3{ v1 Fi} v1 Fi} VBC4{ VBC3 v1 v2 Fi} v1 Fi}
+
+
+void G11131 ::foo(){vfunc_called(this, "_ZN6G111313fooEv");}
+G11131 ::~G11131(){ note_dtor("G11131", this);} // tgen
+G11131 ::G11131(){ note_ctor("G11131", this);} // tgen
+
+static void Test_G11131()
+{
+ extern Class_Descriptor cd_G11131;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_G11131, buf);
+ G11131 *dp, &lv = *(dp=new (buf) G11131());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(G11131)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G11131)");
+ check_base_class_offset(lv, (AA1*)(E11*), ABISELECT(32,16), "G11131");
+ check_base_class_offset(lv, (AA1*)(F13*), ABISELECT(32,16), "G11131");
+ check_base_class_offset(lv, (E11*), ABISELECT(16,8), "G11131");
+ check_base_class_offset(lv, (F13*), ABISELECT(48,24), "G11131");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G11131.pg");
+ test_class_info(&lv, &cd_G11131);
+ dp->~G11131();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG11131(Test_G11131, "G11131", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6G11131C1Ev();
+extern void _ZN6G11131D1Ev();
+Name_Map name_map_G11131[] = {
+ NSPAIR(_ZN6G11131C1Ev),
+ NSPAIR(_ZN6G11131D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_E11;
+extern VTBL_ENTRY _ZTI3E11[];
+extern VTBL_ENTRY _ZTV3E11[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E11[];
+extern Class_Descriptor cd_F13;
+extern VTBL_ENTRY _ZTI3F13[];
+extern VTBL_ENTRY _ZTV3F13[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F13[];
+static Base_Class bases_G11131[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E11, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_F13, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G11131[];
+extern void _ZN6G111313fooEv();
+extern void ABISELECT(_ZTv0_n32_N6G111313fooEv,_ZTv0_n16_N6G111313fooEv)();
+extern void ABISELECT(_ZThn16_N6G111313fooEv,_ZThn8_N6G111313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G111313fooEv,_ZTv0_n12_N6G111313fooEv)();
+extern void ABISELECT(_ZThn32_N6G111313fooEv,_ZThn16_N6G111313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G111313fooEv,_ZTv0_n16_N6G111313fooEv)();
+extern void ABISELECT(_ZThn48_N6G111313fooEv,_ZThn24_N6G111313fooEv)() __attribute__((weak));
+extern void _ZN3F133barEv();
+static VTBL_ENTRY vtc_G11131[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G11131[0]),
+ (VTBL_ENTRY)&_ZN6G111313fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G11131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G111313fooEv,_ZTv0_n16_N6G111313fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G11131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G111313fooEv,_ZTv0_n12_N6G111313fooEv),
+ 0,
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G11131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G111313fooEv,_ZTv0_n16_N6G111313fooEv),
+ (VTBL_ENTRY)&_ZN3F133barEv,
+};
+extern VTBL_ENTRY _ZTV6G11131[];
+extern void _ZN3E113fooEv();
+static VTBL_ENTRY _tg__ZTV3E11__6G11131[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E11[0]),
+ (VTBL_ENTRY)&_ZN3E113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv)();
+extern void ABISELECT(_ZThn16_N3E113fooEv,_ZThn8_N3E113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__3E11__6G11131[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E11[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv),
+};
+extern void _ZN3F133fooEv();
+extern void _ZN3F133barEv();
+static VTBL_ENTRY _tg__ZTV3F13__6G11131[] = {
+ ABISELECT(-16,-8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F13[0]),
+ (VTBL_ENTRY)&_ZN3F133fooEv,
+ (VTBL_ENTRY)&_ZN3F133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F133fooEv,_ZTv0_n12_N3F133fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__3F13__6G11131[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI3F13[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F133fooEv,_ZTv0_n12_N3F133fooEv),
+};
+static VTT_ENTRY vtt_G11131[] = {
+ {&(_ZTV6G11131[5]), 5,22},
+ {&(_ZTV6G11131[10]), 10,22},
+ {&(_ZTV6G11131[14]), 14,22},
+ {&(_ZTV6G11131[20]), 20,22},
+ {&(_tg__ZTV3E11__6G11131[3]), 3,4},
+ {&(_tg__ZTV3AA1__3E11__6G11131[3]), 3,4},
+ {&(_tg__ZTV3F13__6G11131[3]), 3,5},
+ {&(_tg__ZTV3AA1__3F13__6G11131[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G11131[];
+extern VTBL_ENTRY _ZTV6G11131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G11131[];
+static VTBL_ENTRY alt_thunk_names69[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E113fooEv,_ZThn8_N3E113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G111313fooEv,_ZTv0_n12_N6G111313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G111313fooEv,_ZThn16_N6G111313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G111313fooEv,_ZTv0_n16_N6G111313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G111313fooEv,_ZThn24_N6G111313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G111313fooEv,_ZThn8_N6G111313fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G11131 = { "G11131", // class name
+ bases_G11131, 3,
+ &(vtc_G11131[0]), // expected_vtbl_contents
+ &(vtt_G11131[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6G11131),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G11131),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G11131),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names69,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G11133 : virtual E11 , virtual F13 {
+ int pg;
+ virtual void foo(); // _ZN6G111333fooEv
+ virtual void bar(); // _ZN6G111333barEv
+ ~G11133(); // tgen
+ G11133(); // tgen
+};
+//SIG(1 G11133) C1{ VBC2{ VBC3{ v1 Fi} v1 Fi} VBC4{ VBC3 v1 v2 Fi} v1 v2 Fi}
+
+
+void G11133 ::foo(){vfunc_called(this, "_ZN6G111333fooEv");}
+void G11133 ::bar(){vfunc_called(this, "_ZN6G111333barEv");}
+G11133 ::~G11133(){ note_dtor("G11133", this);} // tgen
+G11133 ::G11133(){ note_ctor("G11133", this);} // tgen
+
+static void Test_G11133()
+{
+ extern Class_Descriptor cd_G11133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_G11133, buf);
+ G11133 *dp, &lv = *(dp=new (buf) G11133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(G11133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G11133)");
+ check_base_class_offset(lv, (AA1*)(E11*), ABISELECT(32,16), "G11133");
+ check_base_class_offset(lv, (AA1*)(F13*), ABISELECT(32,16), "G11133");
+ check_base_class_offset(lv, (E11*), ABISELECT(16,8), "G11133");
+ check_base_class_offset(lv, (F13*), ABISELECT(48,24), "G11133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G11133.pg");
+ test_class_info(&lv, &cd_G11133);
+ dp->~G11133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG11133(Test_G11133, "G11133", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6G11133C1Ev();
+extern void _ZN6G11133D1Ev();
+Name_Map name_map_G11133[] = {
+ NSPAIR(_ZN6G11133C1Ev),
+ NSPAIR(_ZN6G11133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_E11;
+extern VTBL_ENTRY _ZTI3E11[];
+extern VTBL_ENTRY _ZTV3E11[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E11[];
+extern Class_Descriptor cd_F13;
+extern VTBL_ENTRY _ZTI3F13[];
+extern VTBL_ENTRY _ZTV3F13[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F13[];
+static Base_Class bases_G11133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E11, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_F13, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G11133[];
+extern void _ZN6G111333fooEv();
+extern void _ZN6G111333barEv();
+extern void ABISELECT(_ZTv0_n32_N6G111333fooEv,_ZTv0_n16_N6G111333fooEv)();
+extern void ABISELECT(_ZThn16_N6G111333fooEv,_ZThn8_N6G111333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G111333fooEv,_ZTv0_n12_N6G111333fooEv)();
+extern void ABISELECT(_ZThn32_N6G111333fooEv,_ZThn16_N6G111333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G111333fooEv,_ZTv0_n16_N6G111333fooEv)();
+extern void ABISELECT(_ZThn48_N6G111333fooEv,_ZThn24_N6G111333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G111333barEv,_ZTv0_n20_N6G111333barEv)();
+extern void ABISELECT(_ZThn48_N6G111333barEv,_ZThn24_N6G111333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G11133[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G11133[0]),
+ (VTBL_ENTRY)&_ZN6G111333fooEv,
+ (VTBL_ENTRY)&_ZN6G111333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G11133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G111333fooEv,_ZTv0_n16_N6G111333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G11133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G111333fooEv,_ZTv0_n12_N6G111333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G11133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G111333fooEv,_ZTv0_n16_N6G111333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G111333barEv,_ZTv0_n20_N6G111333barEv),
+};
+extern VTBL_ENTRY _ZTV6G11133[];
+extern void _ZN3E113fooEv();
+static VTBL_ENTRY _tg__ZTV3E11__6G11133[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E11[0]),
+ (VTBL_ENTRY)&_ZN3E113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv)();
+extern void ABISELECT(_ZThn16_N3E113fooEv,_ZThn8_N3E113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__3E11__6G11133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E11[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv),
+};
+extern void _ZN3F133fooEv();
+extern void _ZN3F133barEv();
+static VTBL_ENTRY _tg__ZTV3F13__6G11133[] = {
+ ABISELECT(-16,-8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F13[0]),
+ (VTBL_ENTRY)&_ZN3F133fooEv,
+ (VTBL_ENTRY)&_ZN3F133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F133fooEv,_ZTv0_n12_N3F133fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__3F13__6G11133[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI3F13[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F133fooEv,_ZTv0_n12_N3F133fooEv),
+};
+static VTT_ENTRY vtt_G11133[] = {
+ {&(_ZTV6G11133[5]), 5,23},
+ {&(_ZTV6G11133[11]), 11,23},
+ {&(_ZTV6G11133[15]), 15,23},
+ {&(_ZTV6G11133[21]), 21,23},
+ {&(_tg__ZTV3E11__6G11133[3]), 3,4},
+ {&(_tg__ZTV3AA1__3E11__6G11133[3]), 3,4},
+ {&(_tg__ZTV3F13__6G11133[3]), 3,5},
+ {&(_tg__ZTV3AA1__3F13__6G11133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G11133[];
+extern VTBL_ENTRY _ZTV6G11133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G11133[];
+static VTBL_ENTRY alt_thunk_names70[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E113fooEv,_ZThn8_N3E113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6G111333barEv,_ZTv0_n20_N6G111333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G111333barEv,_ZThn24_N6G111333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G111333fooEv,_ZTv0_n12_N6G111333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G111333fooEv,_ZThn16_N6G111333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G111333fooEv,_ZTv0_n16_N6G111333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G111333fooEv,_ZThn24_N6G111333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G111333fooEv,_ZThn8_N6G111333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G11133 = { "G11133", // class name
+ bases_G11133, 3,
+ &(vtc_G11133[0]), // expected_vtbl_contents
+ &(vtt_G11133[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6G11133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G11133),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G11133),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 G11211 : virtual E11 , virtual F21 {
+ int pg;
+ virtual void foo(); // _ZN6G112113fooEv
+ ~G11211(); // tgen
+ G11211(); // tgen
+};
+//SIG(1 G11211) C1{ VBC2{ VBC3{ v1 Fi} v1 Fi} VBC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi}
+
+
+void G11211 ::foo(){vfunc_called(this, "_ZN6G112113fooEv");}
+G11211 ::~G11211(){ note_dtor("G11211", this);} // tgen
+G11211 ::G11211(){ note_ctor("G11211", this);} // tgen
+
+static void Test_G11211()
+{
+ extern Class_Descriptor cd_G11211;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G11211, buf);
+ G11211 *dp, &lv = *(dp=new (buf) G11211());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G11211)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G11211)");
+ check_base_class_offset(lv, (AA1*)(E11*), ABISELECT(32,16), "G11211");
+ check_base_class_offset(lv, (E11*), ABISELECT(16,8), "G11211");
+ check_base_class_offset(lv, (AA2*)(F21*), ABISELECT(64,32), "G11211");
+ check_base_class_offset(lv, (F21*), ABISELECT(48,24), "G11211");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G11211.pg");
+ test_class_info(&lv, &cd_G11211);
+ dp->~G11211();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG11211(Test_G11211, "G11211", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G11211C1Ev();
+extern void _ZN6G11211D1Ev();
+Name_Map name_map_G11211[] = {
+ NSPAIR(_ZN6G11211C1Ev),
+ NSPAIR(_ZN6G11211D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_E11;
+extern VTBL_ENTRY _ZTI3E11[];
+extern VTBL_ENTRY _ZTV3E11[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E11[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_F21;
+extern VTBL_ENTRY _ZTI3F21[];
+extern VTBL_ENTRY _ZTV3F21[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F21[];
+static Base_Class bases_G11211[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E11, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(64,32), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F21, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G11211[];
+extern void _ZN6G112113fooEv();
+extern void ABISELECT(_ZTv0_n32_N6G112113fooEv,_ZTv0_n16_N6G112113fooEv)();
+extern void ABISELECT(_ZThn16_N6G112113fooEv,_ZThn8_N6G112113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G112113fooEv,_ZTv0_n12_N6G112113fooEv)();
+extern void ABISELECT(_ZThn32_N6G112113fooEv,_ZThn16_N6G112113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G112113fooEv,_ZTv0_n16_N6G112113fooEv)();
+extern void ABISELECT(_ZThn48_N6G112113fooEv,_ZThn24_N6G112113fooEv)() __attribute__((weak));
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY vtc_G11211[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G11211[0]),
+ (VTBL_ENTRY)&_ZN6G112113fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G11211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G112113fooEv,_ZTv0_n16_N6G112113fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G11211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G112113fooEv,_ZTv0_n12_N6G112113fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G11211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G112113fooEv,_ZTv0_n16_N6G112113fooEv),
+ 0,
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G11211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern VTBL_ENTRY _ZTV6G11211[];
+extern void _ZN3E113fooEv();
+static VTBL_ENTRY _tg__ZTV3E11__6G11211[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E11[0]),
+ (VTBL_ENTRY)&_ZN3E113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv)();
+extern void ABISELECT(_ZThn16_N3E113fooEv,_ZThn8_N3E113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__3E11__6G11211[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E11[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv),
+};
+extern void _ZN3F213fooEv();
+static VTBL_ENTRY _tg__ZTV3F21__6G11211[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F21[0]),
+ (VTBL_ENTRY)&_ZN3F213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__3F21__6G11211[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F21[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+static VTT_ENTRY vtt_G11211[] = {
+ {&(_ZTV6G11211[6]), 6,25},
+ {&(_ZTV6G11211[11]), 11,25},
+ {&(_ZTV6G11211[15]), 15,25},
+ {&(_ZTV6G11211[20]), 20,25},
+ {&(_ZTV6G11211[24]), 24,25},
+ {&(_tg__ZTV3E11__6G11211[3]), 3,4},
+ {&(_tg__ZTV3AA1__3E11__6G11211[3]), 3,4},
+ {&(_tg__ZTV3F21__6G11211[3]), 3,4},
+ {&(_tg__ZTV3AA2__3F21__6G11211[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G11211[];
+extern VTBL_ENTRY _ZTV6G11211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G11211[];
+static VTBL_ENTRY alt_thunk_names71[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E113fooEv,_ZThn8_N3E113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G112113fooEv,_ZTv0_n12_N6G112113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G112113fooEv,_ZThn16_N6G112113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G112113fooEv,_ZTv0_n16_N6G112113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G112113fooEv,_ZThn24_N6G112113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G112113fooEv,_ZThn8_N6G112113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G11211 = { "G11211", // class name
+ bases_G11211, 4,
+ &(vtc_G11211[0]), // expected_vtbl_contents
+ &(vtt_G11211[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G11211),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G11211),25, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G11211),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names71,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G11213 : virtual E11 , virtual F21 {
+ int pg;
+ virtual void foo(); // _ZN6G112133fooEv
+ virtual void bar(); // _ZN6G112133barEv
+ ~G11213(); // tgen
+ G11213(); // tgen
+};
+//SIG(1 G11213) C1{ VBC2{ VBC3{ v1 Fi} v1 Fi} VBC4{ VBC5{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void G11213 ::foo(){vfunc_called(this, "_ZN6G112133fooEv");}
+void G11213 ::bar(){vfunc_called(this, "_ZN6G112133barEv");}
+G11213 ::~G11213(){ note_dtor("G11213", this);} // tgen
+G11213 ::G11213(){ note_ctor("G11213", this);} // tgen
+
+static void Test_G11213()
+{
+ extern Class_Descriptor cd_G11213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G11213, buf);
+ G11213 *dp, &lv = *(dp=new (buf) G11213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G11213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G11213)");
+ check_base_class_offset(lv, (AA1*)(E11*), ABISELECT(32,16), "G11213");
+ check_base_class_offset(lv, (E11*), ABISELECT(16,8), "G11213");
+ check_base_class_offset(lv, (AA2*)(F21*), ABISELECT(64,32), "G11213");
+ check_base_class_offset(lv, (F21*), ABISELECT(48,24), "G11213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G11213.pg");
+ test_class_info(&lv, &cd_G11213);
+ dp->~G11213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG11213(Test_G11213, "G11213", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G11213C1Ev();
+extern void _ZN6G11213D1Ev();
+Name_Map name_map_G11213[] = {
+ NSPAIR(_ZN6G11213C1Ev),
+ NSPAIR(_ZN6G11213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_E11;
+extern VTBL_ENTRY _ZTI3E11[];
+extern VTBL_ENTRY _ZTV3E11[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E11[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_F21;
+extern VTBL_ENTRY _ZTI3F21[];
+extern VTBL_ENTRY _ZTV3F21[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F21[];
+static Base_Class bases_G11213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E11, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F21, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G11213[];
+extern void _ZN6G112133fooEv();
+extern void _ZN6G112133barEv();
+extern void ABISELECT(_ZTv0_n32_N6G112133fooEv,_ZTv0_n16_N6G112133fooEv)();
+extern void ABISELECT(_ZThn16_N6G112133fooEv,_ZThn8_N6G112133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G112133fooEv,_ZTv0_n12_N6G112133fooEv)();
+extern void ABISELECT(_ZThn32_N6G112133fooEv,_ZThn16_N6G112133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G112133fooEv,_ZTv0_n16_N6G112133fooEv)();
+extern void ABISELECT(_ZThn48_N6G112133fooEv,_ZThn24_N6G112133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G112133barEv,_ZTv0_n12_N6G112133barEv)();
+extern void ABISELECT(_ZThn64_N6G112133barEv,_ZThn32_N6G112133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G11213[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G11213[0]),
+ (VTBL_ENTRY)&_ZN6G112133fooEv,
+ (VTBL_ENTRY)&_ZN6G112133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G11213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G112133fooEv,_ZTv0_n16_N6G112133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G11213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G112133fooEv,_ZTv0_n12_N6G112133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G11213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G112133fooEv,_ZTv0_n16_N6G112133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G11213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G112133barEv,_ZTv0_n12_N6G112133barEv),
+};
+extern VTBL_ENTRY _ZTV6G11213[];
+extern void _ZN3E113fooEv();
+static VTBL_ENTRY _tg__ZTV3E11__6G11213[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E11[0]),
+ (VTBL_ENTRY)&_ZN3E113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv)();
+extern void ABISELECT(_ZThn16_N3E113fooEv,_ZThn8_N3E113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__3E11__6G11213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E11[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv),
+};
+extern void _ZN3F213fooEv();
+static VTBL_ENTRY _tg__ZTV3F21__6G11213[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F21[0]),
+ (VTBL_ENTRY)&_ZN3F213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__3F21__6G11213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F21[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+static VTT_ENTRY vtt_G11213[] = {
+ {&(_ZTV6G11213[6]), 6,26},
+ {&(_ZTV6G11213[12]), 12,26},
+ {&(_ZTV6G11213[16]), 16,26},
+ {&(_ZTV6G11213[21]), 21,26},
+ {&(_ZTV6G11213[25]), 25,26},
+ {&(_tg__ZTV3E11__6G11213[3]), 3,4},
+ {&(_tg__ZTV3AA1__3E11__6G11213[3]), 3,4},
+ {&(_tg__ZTV3F21__6G11213[3]), 3,4},
+ {&(_tg__ZTV3AA2__3F21__6G11213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G11213[];
+extern VTBL_ENTRY _ZTV6G11213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G11213[];
+static VTBL_ENTRY alt_thunk_names72[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E113fooEv,_ZThn8_N3E113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G112133barEv,_ZTv0_n12_N6G112133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G112133barEv,_ZThn32_N6G112133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G112133fooEv,_ZTv0_n12_N6G112133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G112133fooEv,_ZThn16_N6G112133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G112133fooEv,_ZTv0_n16_N6G112133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G112133fooEv,_ZThn24_N6G112133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G112133fooEv,_ZThn8_N6G112133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G11213 = { "G11213", // class name
+ bases_G11213, 4,
+ &(vtc_G11213[0]), // expected_vtbl_contents
+ &(vtt_G11213[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G11213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G11213),26, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G11213),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names72,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G11221 : virtual E11 , virtual F22 {
+ int pg;
+ virtual void foo(); // _ZN6G112213fooEv
+ ~G11221(); // tgen
+ G11221(); // tgen
+};
+//SIG(1 G11221) C1{ VBC2{ VBC3{ v1 Fi} v1 Fi} VBC4{ VBC5{ v2 Fi} v2 Fi} v1 Fi}
+
+
+void G11221 ::foo(){vfunc_called(this, "_ZN6G112213fooEv");}
+G11221 ::~G11221(){ note_dtor("G11221", this);} // tgen
+G11221 ::G11221(){ note_ctor("G11221", this);} // tgen
+
+static void Test_G11221()
+{
+ extern Class_Descriptor cd_G11221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G11221, buf);
+ G11221 *dp, &lv = *(dp=new (buf) G11221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G11221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G11221)");
+ check_base_class_offset(lv, (AA1*)(E11*), ABISELECT(32,16), "G11221");
+ check_base_class_offset(lv, (E11*), ABISELECT(16,8), "G11221");
+ check_base_class_offset(lv, (AA2*)(F22*), ABISELECT(64,32), "G11221");
+ check_base_class_offset(lv, (F22*), ABISELECT(48,24), "G11221");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G11221.pg");
+ test_class_info(&lv, &cd_G11221);
+ dp->~G11221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG11221(Test_G11221, "G11221", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G11221C1Ev();
+extern void _ZN6G11221D1Ev();
+Name_Map name_map_G11221[] = {
+ NSPAIR(_ZN6G11221C1Ev),
+ NSPAIR(_ZN6G11221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_E11;
+extern VTBL_ENTRY _ZTI3E11[];
+extern VTBL_ENTRY _ZTV3E11[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E11[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_F22;
+extern VTBL_ENTRY _ZTI3F22[];
+extern VTBL_ENTRY _ZTV3F22[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F22[];
+static Base_Class bases_G11221[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E11, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(64,32), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F22, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G11221[];
+extern void _ZN6G112213fooEv();
+extern void ABISELECT(_ZTv0_n32_N6G112213fooEv,_ZTv0_n16_N6G112213fooEv)();
+extern void ABISELECT(_ZThn16_N6G112213fooEv,_ZThn8_N6G112213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G112213fooEv,_ZTv0_n12_N6G112213fooEv)();
+extern void ABISELECT(_ZThn32_N6G112213fooEv,_ZThn16_N6G112213fooEv)() __attribute__((weak));
+extern void _ZN3F223barEv();
+extern void ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv)();
+extern void ABISELECT(_ZThn16_N3F223barEv,_ZThn8_N3F223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G11221[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G11221[0]),
+ (VTBL_ENTRY)&_ZN6G112213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G11221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G112213fooEv,_ZTv0_n16_N6G112213fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G11221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G112213fooEv,_ZTv0_n12_N6G112213fooEv),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G11221[0]),
+ (VTBL_ENTRY)&_ZN3F223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G11221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv),
+};
+extern VTBL_ENTRY _ZTV6G11221[];
+extern void _ZN3E113fooEv();
+static VTBL_ENTRY _tg__ZTV3E11__6G11221[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E11[0]),
+ (VTBL_ENTRY)&_ZN3E113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv)();
+extern void ABISELECT(_ZThn16_N3E113fooEv,_ZThn8_N3E113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__3E11__6G11221[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E11[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv),
+};
+extern void _ZN3F223barEv();
+static VTBL_ENTRY _tg__ZTV3F22__6G11221[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F22[0]),
+ (VTBL_ENTRY)&_ZN3F223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv)();
+extern void ABISELECT(_ZThn16_N3F223barEv,_ZThn8_N3F223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__3F22__6G11221[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F22[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv),
+};
+static VTT_ENTRY vtt_G11221[] = {
+ {&(_ZTV6G11221[6]), 6,25},
+ {&(_ZTV6G11221[11]), 11,25},
+ {&(_ZTV6G11221[15]), 15,25},
+ {&(_ZTV6G11221[20]), 20,25},
+ {&(_ZTV6G11221[24]), 24,25},
+ {&(_tg__ZTV3E11__6G11221[3]), 3,4},
+ {&(_tg__ZTV3AA1__3E11__6G11221[3]), 3,4},
+ {&(_tg__ZTV3F22__6G11221[3]), 3,4},
+ {&(_tg__ZTV3AA2__3F22__6G11221[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G11221[];
+extern VTBL_ENTRY _ZTV6G11221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G11221[];
+static VTBL_ENTRY alt_thunk_names73[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E113fooEv,_ZThn8_N3E113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F223barEv,_ZThn8_N3F223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F223barEv,_ZThn8_N3F223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G112213fooEv,_ZTv0_n12_N6G112213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G112213fooEv,_ZThn16_N6G112213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G112213fooEv,_ZTv0_n16_N6G112213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G112213fooEv,_ZThn8_N6G112213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G11221 = { "G11221", // class name
+ bases_G11221, 4,
+ &(vtc_G11221[0]), // expected_vtbl_contents
+ &(vtt_G11221[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G11221),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G11221),25, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G11221),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names73,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G11222 : virtual E11 , virtual F22 {
+ int pg;
+ virtual void bar(); // _ZN6G112223barEv
+ ~G11222(); // tgen
+ G11222(); // tgen
+};
+//SIG(1 G11222) C1{ VBC2{ VBC3{ v2 Fi} v2 Fi} VBC4{ VBC5{ v1 Fi} v1 Fi} v1 Fi}
+
+
+void G11222 ::bar(){vfunc_called(this, "_ZN6G112223barEv");}
+G11222 ::~G11222(){ note_dtor("G11222", this);} // tgen
+G11222 ::G11222(){ note_ctor("G11222", this);} // tgen
+
+static void Test_G11222()
+{
+ extern Class_Descriptor cd_G11222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G11222, buf);
+ G11222 *dp, &lv = *(dp=new (buf) G11222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G11222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G11222)");
+ check_base_class_offset(lv, (AA1*)(E11*), ABISELECT(32,16), "G11222");
+ check_base_class_offset(lv, (E11*), ABISELECT(16,8), "G11222");
+ check_base_class_offset(lv, (AA2*)(F22*), ABISELECT(64,32), "G11222");
+ check_base_class_offset(lv, (F22*), ABISELECT(48,24), "G11222");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G11222.pg");
+ test_class_info(&lv, &cd_G11222);
+ dp->~G11222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG11222(Test_G11222, "G11222", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G11222C1Ev();
+extern void _ZN6G11222D1Ev();
+Name_Map name_map_G11222[] = {
+ NSPAIR(_ZN6G11222C1Ev),
+ NSPAIR(_ZN6G11222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_E11;
+extern VTBL_ENTRY _ZTI3E11[];
+extern VTBL_ENTRY _ZTV3E11[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E11[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_F22;
+extern VTBL_ENTRY _ZTI3F22[];
+extern VTBL_ENTRY _ZTV3F22[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F22[];
+static Base_Class bases_G11222[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E11, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(64,32), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F22, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G11222[];
+extern void _ZN6G112223barEv();
+extern void _ZN3E113fooEv();
+extern void ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv)();
+extern void ABISELECT(_ZThn16_N3E113fooEv,_ZThn8_N3E113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G112223barEv,_ZTv0_n16_N6G112223barEv)();
+extern void ABISELECT(_ZThn48_N6G112223barEv,_ZThn24_N6G112223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G112223barEv,_ZTv0_n12_N6G112223barEv)();
+extern void ABISELECT(_ZThn64_N6G112223barEv,_ZThn32_N6G112223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G11222[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G11222[0]),
+ (VTBL_ENTRY)&_ZN6G112223barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G11222[0]),
+ (VTBL_ENTRY)&_ZN3E113fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G11222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G11222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G112223barEv,_ZTv0_n16_N6G112223barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G11222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G112223barEv,_ZTv0_n12_N6G112223barEv),
+};
+extern VTBL_ENTRY _ZTV6G11222[];
+extern void _ZN3E113fooEv();
+static VTBL_ENTRY _tg__ZTV3E11__6G11222[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E11[0]),
+ (VTBL_ENTRY)&_ZN3E113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv)();
+extern void ABISELECT(_ZThn16_N3E113fooEv,_ZThn8_N3E113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__3E11__6G11222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E11[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv),
+};
+extern void _ZN3F223barEv();
+static VTBL_ENTRY _tg__ZTV3F22__6G11222[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F22[0]),
+ (VTBL_ENTRY)&_ZN3F223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv)();
+extern void ABISELECT(_ZThn16_N3F223barEv,_ZThn8_N3F223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__3F22__6G11222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F22[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv),
+};
+static VTT_ENTRY vtt_G11222[] = {
+ {&(_ZTV6G11222[6]), 6,25},
+ {&(_ZTV6G11222[11]), 11,25},
+ {&(_ZTV6G11222[15]), 15,25},
+ {&(_ZTV6G11222[20]), 20,25},
+ {&(_ZTV6G11222[24]), 24,25},
+ {&(_tg__ZTV3E11__6G11222[3]), 3,4},
+ {&(_tg__ZTV3AA1__3E11__6G11222[3]), 3,4},
+ {&(_tg__ZTV3F22__6G11222[3]), 3,4},
+ {&(_tg__ZTV3AA2__3F22__6G11222[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G11222[];
+extern VTBL_ENTRY _ZTV6G11222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G11222[];
+static VTBL_ENTRY alt_thunk_names74[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F223barEv,_ZThn8_N3F223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G112223barEv,_ZTv0_n12_N6G112223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G112223barEv,_ZThn32_N6G112223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G112223barEv,_ZTv0_n16_N6G112223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G112223barEv,_ZThn24_N6G112223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E113fooEv,_ZThn8_N3E113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E113fooEv,_ZThn8_N3E113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G11222 = { "G11222", // class name
+ bases_G11222, 4,
+ &(vtc_G11222[0]), // expected_vtbl_contents
+ &(vtt_G11222[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G11222),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G11222),25, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G11222),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names74,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G11223 : virtual E11 , virtual F22 {
+ int pg;
+ virtual void foo(); // _ZN6G112233fooEv
+ virtual void bar(); // _ZN6G112233barEv
+ ~G11223(); // tgen
+ G11223(); // tgen
+};
+//SIG(1 G11223) C1{ VBC2{ VBC3{ v1 Fi} v1 Fi} VBC4{ VBC5{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void G11223 ::foo(){vfunc_called(this, "_ZN6G112233fooEv");}
+void G11223 ::bar(){vfunc_called(this, "_ZN6G112233barEv");}
+G11223 ::~G11223(){ note_dtor("G11223", this);} // tgen
+G11223 ::G11223(){ note_ctor("G11223", this);} // tgen
+
+static void Test_G11223()
+{
+ extern Class_Descriptor cd_G11223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G11223, buf);
+ G11223 *dp, &lv = *(dp=new (buf) G11223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G11223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G11223)");
+ check_base_class_offset(lv, (AA1*)(E11*), ABISELECT(32,16), "G11223");
+ check_base_class_offset(lv, (E11*), ABISELECT(16,8), "G11223");
+ check_base_class_offset(lv, (AA2*)(F22*), ABISELECT(64,32), "G11223");
+ check_base_class_offset(lv, (F22*), ABISELECT(48,24), "G11223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G11223.pg");
+ test_class_info(&lv, &cd_G11223);
+ dp->~G11223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG11223(Test_G11223, "G11223", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G11223C1Ev();
+extern void _ZN6G11223D1Ev();
+Name_Map name_map_G11223[] = {
+ NSPAIR(_ZN6G11223C1Ev),
+ NSPAIR(_ZN6G11223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_E11;
+extern VTBL_ENTRY _ZTI3E11[];
+extern VTBL_ENTRY _ZTV3E11[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E11[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_F22;
+extern VTBL_ENTRY _ZTI3F22[];
+extern VTBL_ENTRY _ZTV3F22[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F22[];
+static Base_Class bases_G11223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E11, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F22, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G11223[];
+extern void _ZN6G112233fooEv();
+extern void _ZN6G112233barEv();
+extern void ABISELECT(_ZTv0_n32_N6G112233fooEv,_ZTv0_n16_N6G112233fooEv)();
+extern void ABISELECT(_ZThn16_N6G112233fooEv,_ZThn8_N6G112233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G112233fooEv,_ZTv0_n12_N6G112233fooEv)();
+extern void ABISELECT(_ZThn32_N6G112233fooEv,_ZThn16_N6G112233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G112233barEv,_ZTv0_n16_N6G112233barEv)();
+extern void ABISELECT(_ZThn48_N6G112233barEv,_ZThn24_N6G112233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G112233barEv,_ZTv0_n12_N6G112233barEv)();
+extern void ABISELECT(_ZThn64_N6G112233barEv,_ZThn32_N6G112233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G11223[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G11223[0]),
+ (VTBL_ENTRY)&_ZN6G112233fooEv,
+ (VTBL_ENTRY)&_ZN6G112233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G11223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G112233fooEv,_ZTv0_n16_N6G112233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G11223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G112233fooEv,_ZTv0_n12_N6G112233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G11223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G112233barEv,_ZTv0_n16_N6G112233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G11223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G112233barEv,_ZTv0_n12_N6G112233barEv),
+};
+extern VTBL_ENTRY _ZTV6G11223[];
+extern void _ZN3E113fooEv();
+static VTBL_ENTRY _tg__ZTV3E11__6G11223[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E11[0]),
+ (VTBL_ENTRY)&_ZN3E113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv)();
+extern void ABISELECT(_ZThn16_N3E113fooEv,_ZThn8_N3E113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__3E11__6G11223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E11[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv),
+};
+extern void _ZN3F223barEv();
+static VTBL_ENTRY _tg__ZTV3F22__6G11223[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F22[0]),
+ (VTBL_ENTRY)&_ZN3F223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv)();
+extern void ABISELECT(_ZThn16_N3F223barEv,_ZThn8_N3F223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__3F22__6G11223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F22[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv),
+};
+static VTT_ENTRY vtt_G11223[] = {
+ {&(_ZTV6G11223[6]), 6,26},
+ {&(_ZTV6G11223[12]), 12,26},
+ {&(_ZTV6G11223[16]), 16,26},
+ {&(_ZTV6G11223[21]), 21,26},
+ {&(_ZTV6G11223[25]), 25,26},
+ {&(_tg__ZTV3E11__6G11223[3]), 3,4},
+ {&(_tg__ZTV3AA1__3E11__6G11223[3]), 3,4},
+ {&(_tg__ZTV3F22__6G11223[3]), 3,4},
+ {&(_tg__ZTV3AA2__3F22__6G11223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G11223[];
+extern VTBL_ENTRY _ZTV6G11223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G11223[];
+static VTBL_ENTRY alt_thunk_names75[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F223barEv,_ZThn8_N3F223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E113fooEv,_ZThn8_N3E113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G112233barEv,_ZTv0_n12_N6G112233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G112233barEv,_ZThn32_N6G112233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G112233barEv,_ZTv0_n16_N6G112233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G112233barEv,_ZThn24_N6G112233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G112233fooEv,_ZTv0_n12_N6G112233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G112233fooEv,_ZThn16_N6G112233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G112233fooEv,_ZTv0_n16_N6G112233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G112233fooEv,_ZThn8_N6G112233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G11223 = { "G11223", // class name
+ bases_G11223, 4,
+ &(vtc_G11223[0]), // expected_vtbl_contents
+ &(vtt_G11223[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G11223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G11223),26, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G11223),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names75,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G11231 : virtual E11 , virtual F23 {
+ int pg;
+ virtual void foo(); // _ZN6G112313fooEv
+ ~G11231(); // tgen
+ G11231(); // tgen
+};
+//SIG(1 G11231) C1{ VBC2{ VBC3{ v1 Fi} v1 Fi} VBC4{ VBC5{ v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void G11231 ::foo(){vfunc_called(this, "_ZN6G112313fooEv");}
+G11231 ::~G11231(){ note_dtor("G11231", this);} // tgen
+G11231 ::G11231(){ note_ctor("G11231", this);} // tgen
+
+static void Test_G11231()
+{
+ extern Class_Descriptor cd_G11231;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G11231, buf);
+ G11231 *dp, &lv = *(dp=new (buf) G11231());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G11231)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G11231)");
+ check_base_class_offset(lv, (AA1*)(E11*), ABISELECT(32,16), "G11231");
+ check_base_class_offset(lv, (E11*), ABISELECT(16,8), "G11231");
+ check_base_class_offset(lv, (AA2*)(F23*), ABISELECT(64,32), "G11231");
+ check_base_class_offset(lv, (F23*), ABISELECT(48,24), "G11231");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G11231.pg");
+ test_class_info(&lv, &cd_G11231);
+ dp->~G11231();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG11231(Test_G11231, "G11231", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G11231C1Ev();
+extern void _ZN6G11231D1Ev();
+Name_Map name_map_G11231[] = {
+ NSPAIR(_ZN6G11231C1Ev),
+ NSPAIR(_ZN6G11231D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_E11;
+extern VTBL_ENTRY _ZTI3E11[];
+extern VTBL_ENTRY _ZTV3E11[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E11[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_F23;
+extern VTBL_ENTRY _ZTI3F23[];
+extern VTBL_ENTRY _ZTV3F23[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F23[];
+static Base_Class bases_G11231[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E11, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F23, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G11231[];
+extern void _ZN6G112313fooEv();
+extern void ABISELECT(_ZTv0_n32_N6G112313fooEv,_ZTv0_n16_N6G112313fooEv)();
+extern void ABISELECT(_ZThn16_N6G112313fooEv,_ZThn8_N6G112313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G112313fooEv,_ZTv0_n12_N6G112313fooEv)();
+extern void ABISELECT(_ZThn32_N6G112313fooEv,_ZThn16_N6G112313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G112313fooEv,_ZTv0_n16_N6G112313fooEv)();
+extern void ABISELECT(_ZThn48_N6G112313fooEv,_ZThn24_N6G112313fooEv)() __attribute__((weak));
+extern void _ZN3F233barEv();
+extern void ABISELECT(_ZTv0_n24_N3F233barEv,_ZTv0_n12_N3F233barEv)();
+extern void ABISELECT(_ZThn16_N3F233barEv,_ZThn8_N3F233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G11231[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G11231[0]),
+ (VTBL_ENTRY)&_ZN6G112313fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G11231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G112313fooEv,_ZTv0_n16_N6G112313fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G11231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G112313fooEv,_ZTv0_n12_N6G112313fooEv),
+ 0,
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G11231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G112313fooEv,_ZTv0_n16_N6G112313fooEv),
+ (VTBL_ENTRY)&_ZN3F233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G11231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F233barEv,_ZTv0_n12_N3F233barEv),
+};
+extern VTBL_ENTRY _ZTV6G11231[];
+extern void _ZN3E113fooEv();
+static VTBL_ENTRY _tg__ZTV3E11__6G11231[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E11[0]),
+ (VTBL_ENTRY)&_ZN3E113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv)();
+extern void ABISELECT(_ZThn16_N3E113fooEv,_ZThn8_N3E113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__3E11__6G11231[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E11[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv),
+};
+extern void _ZN3F233fooEv();
+extern void _ZN3F233barEv();
+static VTBL_ENTRY _tg__ZTV3F23__6G11231[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F23[0]),
+ (VTBL_ENTRY)&_ZN3F233fooEv,
+ (VTBL_ENTRY)&_ZN3F233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F233barEv,_ZTv0_n12_N3F233barEv)();
+extern void ABISELECT(_ZThn16_N3F233barEv,_ZThn8_N3F233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__3F23__6G11231[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F23[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F233barEv,_ZTv0_n12_N3F233barEv),
+};
+static VTT_ENTRY vtt_G11231[] = {
+ {&(_ZTV6G11231[6]), 6,27},
+ {&(_ZTV6G11231[11]), 11,27},
+ {&(_ZTV6G11231[15]), 15,27},
+ {&(_ZTV6G11231[21]), 21,27},
+ {&(_ZTV6G11231[26]), 26,27},
+ {&(_tg__ZTV3E11__6G11231[3]), 3,4},
+ {&(_tg__ZTV3AA1__3E11__6G11231[3]), 3,4},
+ {&(_tg__ZTV3F23__6G11231[3]), 3,5},
+ {&(_tg__ZTV3AA2__3F23__6G11231[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G11231[];
+extern VTBL_ENTRY _ZTV6G11231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G11231[];
+static VTBL_ENTRY alt_thunk_names76[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E113fooEv,_ZThn8_N3E113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F233barEv,_ZTv0_n12_N3F233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F233barEv,_ZThn8_N3F233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F233barEv,_ZThn8_N3F233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G112313fooEv,_ZTv0_n12_N6G112313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G112313fooEv,_ZThn16_N6G112313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G112313fooEv,_ZTv0_n16_N6G112313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G112313fooEv,_ZThn24_N6G112313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G112313fooEv,_ZThn8_N6G112313fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G11231 = { "G11231", // class name
+ bases_G11231, 4,
+ &(vtc_G11231[0]), // expected_vtbl_contents
+ &(vtt_G11231[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G11231),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G11231),27, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G11231),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names76,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G11233 : virtual E11 , virtual F23 {
+ int pg;
+ virtual void foo(); // _ZN6G112333fooEv
+ virtual void bar(); // _ZN6G112333barEv
+ ~G11233(); // tgen
+ G11233(); // tgen
+};
+//SIG(1 G11233) C1{ VBC2{ VBC3{ v1 Fi} v1 Fi} VBC4{ VBC5{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void G11233 ::foo(){vfunc_called(this, "_ZN6G112333fooEv");}
+void G11233 ::bar(){vfunc_called(this, "_ZN6G112333barEv");}
+G11233 ::~G11233(){ note_dtor("G11233", this);} // tgen
+G11233 ::G11233(){ note_ctor("G11233", this);} // tgen
+
+static void Test_G11233()
+{
+ extern Class_Descriptor cd_G11233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G11233, buf);
+ G11233 *dp, &lv = *(dp=new (buf) G11233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G11233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G11233)");
+ check_base_class_offset(lv, (AA1*)(E11*), ABISELECT(32,16), "G11233");
+ check_base_class_offset(lv, (E11*), ABISELECT(16,8), "G11233");
+ check_base_class_offset(lv, (AA2*)(F23*), ABISELECT(64,32), "G11233");
+ check_base_class_offset(lv, (F23*), ABISELECT(48,24), "G11233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G11233.pg");
+ test_class_info(&lv, &cd_G11233);
+ dp->~G11233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG11233(Test_G11233, "G11233", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G11233C1Ev();
+extern void _ZN6G11233D1Ev();
+Name_Map name_map_G11233[] = {
+ NSPAIR(_ZN6G11233C1Ev),
+ NSPAIR(_ZN6G11233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_E11;
+extern VTBL_ENTRY _ZTI3E11[];
+extern VTBL_ENTRY _ZTV3E11[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E11[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_F23;
+extern VTBL_ENTRY _ZTI3F23[];
+extern VTBL_ENTRY _ZTV3F23[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F23[];
+static Base_Class bases_G11233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E11, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F23, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G11233[];
+extern void _ZN6G112333fooEv();
+extern void _ZN6G112333barEv();
+extern void ABISELECT(_ZTv0_n32_N6G112333fooEv,_ZTv0_n16_N6G112333fooEv)();
+extern void ABISELECT(_ZThn16_N6G112333fooEv,_ZThn8_N6G112333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G112333fooEv,_ZTv0_n12_N6G112333fooEv)();
+extern void ABISELECT(_ZThn32_N6G112333fooEv,_ZThn16_N6G112333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G112333fooEv,_ZTv0_n16_N6G112333fooEv)();
+extern void ABISELECT(_ZThn48_N6G112333fooEv,_ZThn24_N6G112333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G112333barEv,_ZTv0_n20_N6G112333barEv)();
+extern void ABISELECT(_ZThn48_N6G112333barEv,_ZThn24_N6G112333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G112333barEv,_ZTv0_n12_N6G112333barEv)();
+extern void ABISELECT(_ZThn64_N6G112333barEv,_ZThn32_N6G112333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G11233[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G11233[0]),
+ (VTBL_ENTRY)&_ZN6G112333fooEv,
+ (VTBL_ENTRY)&_ZN6G112333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G11233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G112333fooEv,_ZTv0_n16_N6G112333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G11233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G112333fooEv,_ZTv0_n12_N6G112333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G11233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G112333fooEv,_ZTv0_n16_N6G112333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G112333barEv,_ZTv0_n20_N6G112333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G11233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G112333barEv,_ZTv0_n12_N6G112333barEv),
+};
+extern VTBL_ENTRY _ZTV6G11233[];
+extern void _ZN3E113fooEv();
+static VTBL_ENTRY _tg__ZTV3E11__6G11233[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E11[0]),
+ (VTBL_ENTRY)&_ZN3E113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv)();
+extern void ABISELECT(_ZThn16_N3E113fooEv,_ZThn8_N3E113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__3E11__6G11233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E11[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv),
+};
+extern void _ZN3F233fooEv();
+extern void _ZN3F233barEv();
+static VTBL_ENTRY _tg__ZTV3F23__6G11233[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F23[0]),
+ (VTBL_ENTRY)&_ZN3F233fooEv,
+ (VTBL_ENTRY)&_ZN3F233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F233barEv,_ZTv0_n12_N3F233barEv)();
+extern void ABISELECT(_ZThn16_N3F233barEv,_ZThn8_N3F233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__3F23__6G11233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F23[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F233barEv,_ZTv0_n12_N3F233barEv),
+};
+static VTT_ENTRY vtt_G11233[] = {
+ {&(_ZTV6G11233[6]), 6,28},
+ {&(_ZTV6G11233[12]), 12,28},
+ {&(_ZTV6G11233[16]), 16,28},
+ {&(_ZTV6G11233[22]), 22,28},
+ {&(_ZTV6G11233[27]), 27,28},
+ {&(_tg__ZTV3E11__6G11233[3]), 3,4},
+ {&(_tg__ZTV3AA1__3E11__6G11233[3]), 3,4},
+ {&(_tg__ZTV3F23__6G11233[3]), 3,5},
+ {&(_tg__ZTV3AA2__3F23__6G11233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G11233[];
+extern VTBL_ENTRY _ZTV6G11233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G11233[];
+static VTBL_ENTRY alt_thunk_names77[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F233barEv,_ZTv0_n12_N3F233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F233barEv,_ZThn8_N3F233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E113fooEv,_ZThn8_N3E113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G112333barEv,_ZTv0_n12_N6G112333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G112333barEv,_ZThn32_N6G112333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6G112333barEv,_ZTv0_n20_N6G112333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G112333barEv,_ZThn24_N6G112333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G112333fooEv,_ZTv0_n12_N6G112333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G112333fooEv,_ZThn16_N6G112333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G112333fooEv,_ZTv0_n16_N6G112333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G112333fooEv,_ZThn24_N6G112333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G112333fooEv,_ZThn8_N6G112333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G11233 = { "G11233", // class name
+ bases_G11233, 4,
+ &(vtc_G11233[0]), // expected_vtbl_contents
+ &(vtt_G11233[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G11233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G11233),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G11233),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names77,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G11311 : virtual E11 , virtual F31 {
+ int pg;
+ virtual void foo(); // _ZN6G113113fooEv
+ ~G11311(); // tgen
+ G11311(); // tgen
+};
+//SIG(1 G11311) C1{ VBC2{ VBC3{ v1 Fi} v1 Fi} VBC4{ VBC5{ v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void G11311 ::foo(){vfunc_called(this, "_ZN6G113113fooEv");}
+G11311 ::~G11311(){ note_dtor("G11311", this);} // tgen
+G11311 ::G11311(){ note_ctor("G11311", this);} // tgen
+
+static void Test_G11311()
+{
+ extern Class_Descriptor cd_G11311;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G11311, buf);
+ G11311 *dp, &lv = *(dp=new (buf) G11311());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G11311)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G11311)");
+ check_base_class_offset(lv, (AA1*)(E11*), ABISELECT(32,16), "G11311");
+ check_base_class_offset(lv, (E11*), ABISELECT(16,8), "G11311");
+ check_base_class_offset(lv, (AA3*)(F31*), ABISELECT(64,32), "G11311");
+ check_base_class_offset(lv, (F31*), ABISELECT(48,24), "G11311");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G11311.pg");
+ test_class_info(&lv, &cd_G11311);
+ dp->~G11311();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG11311(Test_G11311, "G11311", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G11311C1Ev();
+extern void _ZN6G11311D1Ev();
+Name_Map name_map_G11311[] = {
+ NSPAIR(_ZN6G11311C1Ev),
+ NSPAIR(_ZN6G11311D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_E11;
+extern VTBL_ENTRY _ZTI3E11[];
+extern VTBL_ENTRY _ZTV3E11[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E11[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_F31;
+extern VTBL_ENTRY _ZTI3F31[];
+extern VTBL_ENTRY _ZTV3F31[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F31[];
+static Base_Class bases_G11311[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E11, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(64,32), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F31, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G11311[];
+extern void _ZN6G113113fooEv();
+extern void ABISELECT(_ZTv0_n32_N6G113113fooEv,_ZTv0_n16_N6G113113fooEv)();
+extern void ABISELECT(_ZThn16_N6G113113fooEv,_ZThn8_N6G113113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G113113fooEv,_ZTv0_n12_N6G113113fooEv)();
+extern void ABISELECT(_ZThn32_N6G113113fooEv,_ZThn16_N6G113113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G113113fooEv,_ZTv0_n16_N6G113113fooEv)();
+extern void ABISELECT(_ZThn48_N6G113113fooEv,_ZThn24_N6G113113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G113113fooEv,_ZTv0_n12_N6G113113fooEv)();
+extern void ABISELECT(_ZThn64_N6G113113fooEv,_ZThn32_N6G113113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY vtc_G11311[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G11311[0]),
+ (VTBL_ENTRY)&_ZN6G113113fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G11311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G113113fooEv,_ZTv0_n16_N6G113113fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G11311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G113113fooEv,_ZTv0_n12_N6G113113fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G11311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G113113fooEv,_ZTv0_n16_N6G113113fooEv),
+ 0,
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G11311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G113113fooEv,_ZTv0_n12_N6G113113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern VTBL_ENTRY _ZTV6G11311[];
+extern void _ZN3E113fooEv();
+static VTBL_ENTRY _tg__ZTV3E11__6G11311[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E11[0]),
+ (VTBL_ENTRY)&_ZN3E113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv)();
+extern void ABISELECT(_ZThn16_N3E113fooEv,_ZThn8_N3E113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__3E11__6G11311[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E11[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv),
+};
+extern void _ZN3F313fooEv();
+static VTBL_ENTRY _tg__ZTV3F31__6G11311[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F31[0]),
+ (VTBL_ENTRY)&_ZN3F313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F313fooEv,_ZTv0_n12_N3F313fooEv)();
+extern void ABISELECT(_ZThn16_N3F313fooEv,_ZThn8_N3F313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__3F31__6G11311[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F31[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F313fooEv,_ZTv0_n12_N3F313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+static VTT_ENTRY vtt_G11311[] = {
+ {&(_ZTV6G11311[6]), 6,27},
+ {&(_ZTV6G11311[11]), 11,27},
+ {&(_ZTV6G11311[15]), 15,27},
+ {&(_ZTV6G11311[20]), 20,27},
+ {&(_ZTV6G11311[25]), 25,27},
+ {&(_tg__ZTV3E11__6G11311[3]), 3,4},
+ {&(_tg__ZTV3AA1__3E11__6G11311[3]), 3,4},
+ {&(_tg__ZTV3F31__6G11311[3]), 3,4},
+ {&(_tg__ZTV3AA3__3F31__6G11311[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6G11311[];
+extern VTBL_ENTRY _ZTV6G11311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G11311[];
+static VTBL_ENTRY alt_thunk_names78[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F313fooEv,_ZTv0_n12_N3F313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F313fooEv,_ZThn8_N3F313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E113fooEv,_ZThn8_N3E113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G113113fooEv,_ZTv0_n12_N6G113113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G113113fooEv,_ZThn32_N6G113113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G113113fooEv,_ZThn16_N6G113113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G113113fooEv,_ZTv0_n16_N6G113113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G113113fooEv,_ZThn24_N6G113113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G113113fooEv,_ZThn8_N6G113113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G11311 = { "G11311", // class name
+ bases_G11311, 4,
+ &(vtc_G11311[0]), // expected_vtbl_contents
+ &(vtt_G11311[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G11311),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G11311),27, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G11311),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names78,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G11313 : virtual E11 , virtual F31 {
+ int pg;
+ virtual void foo(); // _ZN6G113133fooEv
+ virtual void bar(); // _ZN6G113133barEv
+ ~G11313(); // tgen
+ G11313(); // tgen
+};
+//SIG(1 G11313) C1{ VBC2{ VBC3{ v1 Fi} v1 Fi} VBC4{ VBC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void G11313 ::foo(){vfunc_called(this, "_ZN6G113133fooEv");}
+void G11313 ::bar(){vfunc_called(this, "_ZN6G113133barEv");}
+G11313 ::~G11313(){ note_dtor("G11313", this);} // tgen
+G11313 ::G11313(){ note_ctor("G11313", this);} // tgen
+
+static void Test_G11313()
+{
+ extern Class_Descriptor cd_G11313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G11313, buf);
+ G11313 *dp, &lv = *(dp=new (buf) G11313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G11313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G11313)");
+ check_base_class_offset(lv, (AA1*)(E11*), ABISELECT(32,16), "G11313");
+ check_base_class_offset(lv, (E11*), ABISELECT(16,8), "G11313");
+ check_base_class_offset(lv, (AA3*)(F31*), ABISELECT(64,32), "G11313");
+ check_base_class_offset(lv, (F31*), ABISELECT(48,24), "G11313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G11313.pg");
+ test_class_info(&lv, &cd_G11313);
+ dp->~G11313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG11313(Test_G11313, "G11313", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G11313C1Ev();
+extern void _ZN6G11313D1Ev();
+Name_Map name_map_G11313[] = {
+ NSPAIR(_ZN6G11313C1Ev),
+ NSPAIR(_ZN6G11313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_E11;
+extern VTBL_ENTRY _ZTI3E11[];
+extern VTBL_ENTRY _ZTV3E11[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E11[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_F31;
+extern VTBL_ENTRY _ZTI3F31[];
+extern VTBL_ENTRY _ZTV3F31[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F31[];
+static Base_Class bases_G11313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E11, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F31, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G11313[];
+extern void _ZN6G113133fooEv();
+extern void _ZN6G113133barEv();
+extern void ABISELECT(_ZTv0_n32_N6G113133fooEv,_ZTv0_n16_N6G113133fooEv)();
+extern void ABISELECT(_ZThn16_N6G113133fooEv,_ZThn8_N6G113133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G113133fooEv,_ZTv0_n12_N6G113133fooEv)();
+extern void ABISELECT(_ZThn32_N6G113133fooEv,_ZThn16_N6G113133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G113133fooEv,_ZTv0_n16_N6G113133fooEv)();
+extern void ABISELECT(_ZThn48_N6G113133fooEv,_ZThn24_N6G113133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G113133fooEv,_ZTv0_n12_N6G113133fooEv)();
+extern void ABISELECT(_ZThn64_N6G113133fooEv,_ZThn32_N6G113133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G113133barEv,_ZTv0_n16_N6G113133barEv)();
+extern void ABISELECT(_ZThn64_N6G113133barEv,_ZThn32_N6G113133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G11313[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G11313[0]),
+ (VTBL_ENTRY)&_ZN6G113133fooEv,
+ (VTBL_ENTRY)&_ZN6G113133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G11313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G113133fooEv,_ZTv0_n16_N6G113133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G11313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G113133fooEv,_ZTv0_n12_N6G113133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G11313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G113133fooEv,_ZTv0_n16_N6G113133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G11313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G113133fooEv,_ZTv0_n12_N6G113133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G113133barEv,_ZTv0_n16_N6G113133barEv),
+};
+extern VTBL_ENTRY _ZTV6G11313[];
+extern void _ZN3E113fooEv();
+static VTBL_ENTRY _tg__ZTV3E11__6G11313[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E11[0]),
+ (VTBL_ENTRY)&_ZN3E113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv)();
+extern void ABISELECT(_ZThn16_N3E113fooEv,_ZThn8_N3E113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__3E11__6G11313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E11[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv),
+};
+extern void _ZN3F313fooEv();
+static VTBL_ENTRY _tg__ZTV3F31__6G11313[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F31[0]),
+ (VTBL_ENTRY)&_ZN3F313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F313fooEv,_ZTv0_n12_N3F313fooEv)();
+extern void ABISELECT(_ZThn16_N3F313fooEv,_ZThn8_N3F313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__3F31__6G11313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F31[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F313fooEv,_ZTv0_n12_N3F313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+static VTT_ENTRY vtt_G11313[] = {
+ {&(_ZTV6G11313[6]), 6,28},
+ {&(_ZTV6G11313[12]), 12,28},
+ {&(_ZTV6G11313[16]), 16,28},
+ {&(_ZTV6G11313[21]), 21,28},
+ {&(_ZTV6G11313[26]), 26,28},
+ {&(_tg__ZTV3E11__6G11313[3]), 3,4},
+ {&(_tg__ZTV3AA1__3E11__6G11313[3]), 3,4},
+ {&(_tg__ZTV3F31__6G11313[3]), 3,4},
+ {&(_tg__ZTV3AA3__3F31__6G11313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6G11313[];
+extern VTBL_ENTRY _ZTV6G11313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G11313[];
+static VTBL_ENTRY alt_thunk_names79[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F313fooEv,_ZTv0_n12_N3F313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F313fooEv,_ZThn8_N3F313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E113fooEv,_ZThn8_N3E113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G113133barEv,_ZTv0_n16_N6G113133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G113133barEv,_ZThn32_N6G113133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G113133fooEv,_ZTv0_n12_N6G113133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G113133fooEv,_ZThn32_N6G113133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G113133fooEv,_ZThn16_N6G113133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G113133fooEv,_ZTv0_n16_N6G113133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G113133fooEv,_ZThn24_N6G113133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G113133fooEv,_ZThn8_N6G113133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G11313 = { "G11313", // class name
+ bases_G11313, 4,
+ &(vtc_G11313[0]), // expected_vtbl_contents
+ &(vtt_G11313[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G11313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G11313),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G11313),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names79,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G11321 : virtual E11 , virtual F32 {
+ int pg;
+ virtual void foo(); // _ZN6G113213fooEv
+ ~G11321(); // tgen
+ G11321(); // tgen
+};
+//SIG(1 G11321) C1{ VBC2{ VBC3{ v1 Fi} v1 Fi} VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void G11321 ::foo(){vfunc_called(this, "_ZN6G113213fooEv");}
+G11321 ::~G11321(){ note_dtor("G11321", this);} // tgen
+G11321 ::G11321(){ note_ctor("G11321", this);} // tgen
+
+static void Test_G11321()
+{
+ extern Class_Descriptor cd_G11321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G11321, buf);
+ G11321 *dp, &lv = *(dp=new (buf) G11321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G11321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G11321)");
+ check_base_class_offset(lv, (AA1*)(E11*), ABISELECT(32,16), "G11321");
+ check_base_class_offset(lv, (E11*), ABISELECT(16,8), "G11321");
+ check_base_class_offset(lv, (AA3*)(F32*), ABISELECT(64,32), "G11321");
+ check_base_class_offset(lv, (F32*), ABISELECT(48,24), "G11321");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G11321.pg");
+ test_class_info(&lv, &cd_G11321);
+ dp->~G11321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG11321(Test_G11321, "G11321", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G11321C1Ev();
+extern void _ZN6G11321D1Ev();
+Name_Map name_map_G11321[] = {
+ NSPAIR(_ZN6G11321C1Ev),
+ NSPAIR(_ZN6G11321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_E11;
+extern VTBL_ENTRY _ZTI3E11[];
+extern VTBL_ENTRY _ZTV3E11[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E11[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_F32;
+extern VTBL_ENTRY _ZTI3F32[];
+extern VTBL_ENTRY _ZTV3F32[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F32[];
+static Base_Class bases_G11321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E11, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(64,32), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F32, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G11321[];
+extern void _ZN6G113213fooEv();
+extern void ABISELECT(_ZTv0_n32_N6G113213fooEv,_ZTv0_n16_N6G113213fooEv)();
+extern void ABISELECT(_ZThn16_N6G113213fooEv,_ZThn8_N6G113213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G113213fooEv,_ZTv0_n12_N6G113213fooEv)();
+extern void ABISELECT(_ZThn32_N6G113213fooEv,_ZThn16_N6G113213fooEv)() __attribute__((weak));
+extern void _ZN3F323barEv();
+extern void ABISELECT(_ZTv0_n24_N6G113213fooEv,_ZTv0_n12_N6G113213fooEv)();
+extern void ABISELECT(_ZThn64_N6G113213fooEv,_ZThn32_N6G113213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N3F323barEv,_ZTv0_n16_N3F323barEv)();
+extern void ABISELECT(_ZThn16_N3F323barEv,_ZThn8_N3F323barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G11321[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G11321[0]),
+ (VTBL_ENTRY)&_ZN6G113213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G11321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G113213fooEv,_ZTv0_n16_N6G113213fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G11321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G113213fooEv,_ZTv0_n12_N6G113213fooEv),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G11321[0]),
+ (VTBL_ENTRY)&_ZN3F323barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G11321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G113213fooEv,_ZTv0_n12_N6G113213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3F323barEv,_ZTv0_n16_N3F323barEv),
+};
+extern VTBL_ENTRY _ZTV6G11321[];
+extern void _ZN3E113fooEv();
+static VTBL_ENTRY _tg__ZTV3E11__6G11321[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E11[0]),
+ (VTBL_ENTRY)&_ZN3E113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv)();
+extern void ABISELECT(_ZThn16_N3E113fooEv,_ZThn8_N3E113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__3E11__6G11321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E11[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv),
+};
+extern void _ZN3F323barEv();
+static VTBL_ENTRY _tg__ZTV3F32__6G11321[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F32[0]),
+ (VTBL_ENTRY)&_ZN3F323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N3F323barEv,_ZTv0_n16_N3F323barEv)();
+extern void ABISELECT(_ZThn16_N3F323barEv,_ZThn8_N3F323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__3F32__6G11321[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F32[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3F323barEv,_ZTv0_n16_N3F323barEv),
+};
+static VTT_ENTRY vtt_G11321[] = {
+ {&(_ZTV6G11321[6]), 6,27},
+ {&(_ZTV6G11321[11]), 11,27},
+ {&(_ZTV6G11321[15]), 15,27},
+ {&(_ZTV6G11321[20]), 20,27},
+ {&(_ZTV6G11321[25]), 25,27},
+ {&(_tg__ZTV3E11__6G11321[3]), 3,4},
+ {&(_tg__ZTV3AA1__3E11__6G11321[3]), 3,4},
+ {&(_tg__ZTV3F32__6G11321[3]), 3,4},
+ {&(_tg__ZTV3AA3__3F32__6G11321[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6G11321[];
+extern VTBL_ENTRY _ZTV6G11321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G11321[];
+static VTBL_ENTRY alt_thunk_names80[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E113fooEv,_ZThn8_N3E113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3F323barEv,_ZTv0_n16_N3F323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F323barEv,_ZThn8_N3F323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F323barEv,_ZThn8_N3F323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G113213fooEv,_ZTv0_n12_N6G113213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G113213fooEv,_ZThn32_N6G113213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G113213fooEv,_ZThn16_N6G113213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G113213fooEv,_ZTv0_n16_N6G113213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G113213fooEv,_ZThn8_N6G113213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G11321 = { "G11321", // class name
+ bases_G11321, 4,
+ &(vtc_G11321[0]), // expected_vtbl_contents
+ &(vtt_G11321[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G11321),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G11321),27, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G11321),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names80,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G11323 : virtual E11 , virtual F32 {
+ int pg;
+ virtual void foo(); // _ZN6G113233fooEv
+ virtual void bar(); // _ZN6G113233barEv
+ ~G11323(); // tgen
+ G11323(); // tgen
+};
+//SIG(1 G11323) C1{ VBC2{ VBC3{ v1 Fi} v1 Fi} VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void G11323 ::foo(){vfunc_called(this, "_ZN6G113233fooEv");}
+void G11323 ::bar(){vfunc_called(this, "_ZN6G113233barEv");}
+G11323 ::~G11323(){ note_dtor("G11323", this);} // tgen
+G11323 ::G11323(){ note_ctor("G11323", this);} // tgen
+
+static void Test_G11323()
+{
+ extern Class_Descriptor cd_G11323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G11323, buf);
+ G11323 *dp, &lv = *(dp=new (buf) G11323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G11323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G11323)");
+ check_base_class_offset(lv, (AA1*)(E11*), ABISELECT(32,16), "G11323");
+ check_base_class_offset(lv, (E11*), ABISELECT(16,8), "G11323");
+ check_base_class_offset(lv, (AA3*)(F32*), ABISELECT(64,32), "G11323");
+ check_base_class_offset(lv, (F32*), ABISELECT(48,24), "G11323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G11323.pg");
+ test_class_info(&lv, &cd_G11323);
+ dp->~G11323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG11323(Test_G11323, "G11323", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G11323C1Ev();
+extern void _ZN6G11323D1Ev();
+Name_Map name_map_G11323[] = {
+ NSPAIR(_ZN6G11323C1Ev),
+ NSPAIR(_ZN6G11323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_E11;
+extern VTBL_ENTRY _ZTI3E11[];
+extern VTBL_ENTRY _ZTV3E11[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E11[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_F32;
+extern VTBL_ENTRY _ZTI3F32[];
+extern VTBL_ENTRY _ZTV3F32[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F32[];
+static Base_Class bases_G11323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E11, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F32, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G11323[];
+extern void _ZN6G113233fooEv();
+extern void _ZN6G113233barEv();
+extern void ABISELECT(_ZTv0_n32_N6G113233fooEv,_ZTv0_n16_N6G113233fooEv)();
+extern void ABISELECT(_ZThn16_N6G113233fooEv,_ZThn8_N6G113233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G113233fooEv,_ZTv0_n12_N6G113233fooEv)();
+extern void ABISELECT(_ZThn32_N6G113233fooEv,_ZThn16_N6G113233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G113233barEv,_ZTv0_n16_N6G113233barEv)();
+extern void ABISELECT(_ZThn48_N6G113233barEv,_ZThn24_N6G113233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G113233fooEv,_ZTv0_n12_N6G113233fooEv)();
+extern void ABISELECT(_ZThn64_N6G113233fooEv,_ZThn32_N6G113233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G113233barEv,_ZTv0_n16_N6G113233barEv)();
+extern void ABISELECT(_ZThn64_N6G113233barEv,_ZThn32_N6G113233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G11323[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G11323[0]),
+ (VTBL_ENTRY)&_ZN6G113233fooEv,
+ (VTBL_ENTRY)&_ZN6G113233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G11323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G113233fooEv,_ZTv0_n16_N6G113233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G11323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G113233fooEv,_ZTv0_n12_N6G113233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G11323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G113233barEv,_ZTv0_n16_N6G113233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G11323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G113233fooEv,_ZTv0_n12_N6G113233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G113233barEv,_ZTv0_n16_N6G113233barEv),
+};
+extern VTBL_ENTRY _ZTV6G11323[];
+extern void _ZN3E113fooEv();
+static VTBL_ENTRY _tg__ZTV3E11__6G11323[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E11[0]),
+ (VTBL_ENTRY)&_ZN3E113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv)();
+extern void ABISELECT(_ZThn16_N3E113fooEv,_ZThn8_N3E113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__3E11__6G11323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E11[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv),
+};
+extern void _ZN3F323barEv();
+static VTBL_ENTRY _tg__ZTV3F32__6G11323[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F32[0]),
+ (VTBL_ENTRY)&_ZN3F323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N3F323barEv,_ZTv0_n16_N3F323barEv)();
+extern void ABISELECT(_ZThn16_N3F323barEv,_ZThn8_N3F323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__3F32__6G11323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F32[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3F323barEv,_ZTv0_n16_N3F323barEv),
+};
+static VTT_ENTRY vtt_G11323[] = {
+ {&(_ZTV6G11323[6]), 6,28},
+ {&(_ZTV6G11323[12]), 12,28},
+ {&(_ZTV6G11323[16]), 16,28},
+ {&(_ZTV6G11323[21]), 21,28},
+ {&(_ZTV6G11323[26]), 26,28},
+ {&(_tg__ZTV3E11__6G11323[3]), 3,4},
+ {&(_tg__ZTV3AA1__3E11__6G11323[3]), 3,4},
+ {&(_tg__ZTV3F32__6G11323[3]), 3,4},
+ {&(_tg__ZTV3AA3__3F32__6G11323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6G11323[];
+extern VTBL_ENTRY _ZTV6G11323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G11323[];
+static VTBL_ENTRY alt_thunk_names81[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3F323barEv,_ZTv0_n16_N3F323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F323barEv,_ZThn8_N3F323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E113fooEv,_ZThn8_N3E113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G113233barEv,_ZTv0_n16_N6G113233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G113233barEv,_ZThn32_N6G113233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G113233barEv,_ZThn24_N6G113233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G113233fooEv,_ZTv0_n12_N6G113233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G113233fooEv,_ZThn32_N6G113233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G113233fooEv,_ZThn16_N6G113233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G113233fooEv,_ZTv0_n16_N6G113233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G113233fooEv,_ZThn8_N6G113233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G11323 = { "G11323", // class name
+ bases_G11323, 4,
+ &(vtc_G11323[0]), // expected_vtbl_contents
+ &(vtt_G11323[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G11323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G11323),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G11323),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names81,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G11331 : virtual E11 , virtual F33 {
+ int pg;
+ virtual void foo(); // _ZN6G113313fooEv
+ ~G11331(); // tgen
+ G11331(); // tgen
+};
+//SIG(1 G11331) C1{ VBC2{ VBC3{ v1 Fi} v1 Fi} VBC4{ VBC5{ v1 v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void G11331 ::foo(){vfunc_called(this, "_ZN6G113313fooEv");}
+G11331 ::~G11331(){ note_dtor("G11331", this);} // tgen
+G11331 ::G11331(){ note_ctor("G11331", this);} // tgen
+
+static void Test_G11331()
+{
+ extern Class_Descriptor cd_G11331;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G11331, buf);
+ G11331 *dp, &lv = *(dp=new (buf) G11331());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G11331)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G11331)");
+ check_base_class_offset(lv, (AA1*)(E11*), ABISELECT(32,16), "G11331");
+ check_base_class_offset(lv, (E11*), ABISELECT(16,8), "G11331");
+ check_base_class_offset(lv, (AA3*)(F33*), ABISELECT(64,32), "G11331");
+ check_base_class_offset(lv, (F33*), ABISELECT(48,24), "G11331");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G11331.pg");
+ test_class_info(&lv, &cd_G11331);
+ dp->~G11331();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG11331(Test_G11331, "G11331", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G11331C1Ev();
+extern void _ZN6G11331D1Ev();
+Name_Map name_map_G11331[] = {
+ NSPAIR(_ZN6G11331C1Ev),
+ NSPAIR(_ZN6G11331D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_E11;
+extern VTBL_ENTRY _ZTI3E11[];
+extern VTBL_ENTRY _ZTV3E11[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E11[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_F33;
+extern VTBL_ENTRY _ZTI3F33[];
+extern VTBL_ENTRY _ZTV3F33[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F33[];
+static Base_Class bases_G11331[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E11, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F33, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G11331[];
+extern void _ZN6G113313fooEv();
+extern void ABISELECT(_ZTv0_n32_N6G113313fooEv,_ZTv0_n16_N6G113313fooEv)();
+extern void ABISELECT(_ZThn16_N6G113313fooEv,_ZThn8_N6G113313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G113313fooEv,_ZTv0_n12_N6G113313fooEv)();
+extern void ABISELECT(_ZThn32_N6G113313fooEv,_ZThn16_N6G113313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G113313fooEv,_ZTv0_n16_N6G113313fooEv)();
+extern void ABISELECT(_ZThn48_N6G113313fooEv,_ZThn24_N6G113313fooEv)() __attribute__((weak));
+extern void _ZN3F333barEv();
+extern void ABISELECT(_ZTv0_n24_N6G113313fooEv,_ZTv0_n12_N6G113313fooEv)();
+extern void ABISELECT(_ZThn64_N6G113313fooEv,_ZThn32_N6G113313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N3F333barEv,_ZTv0_n16_N3F333barEv)();
+extern void ABISELECT(_ZThn16_N3F333barEv,_ZThn8_N3F333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G11331[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G11331[0]),
+ (VTBL_ENTRY)&_ZN6G113313fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G11331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G113313fooEv,_ZTv0_n16_N6G113313fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G11331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G113313fooEv,_ZTv0_n12_N6G113313fooEv),
+ 0,
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G11331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G113313fooEv,_ZTv0_n16_N6G113313fooEv),
+ (VTBL_ENTRY)&_ZN3F333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G11331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G113313fooEv,_ZTv0_n12_N6G113313fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3F333barEv,_ZTv0_n16_N3F333barEv),
+};
+extern VTBL_ENTRY _ZTV6G11331[];
+extern void _ZN3E113fooEv();
+static VTBL_ENTRY _tg__ZTV3E11__6G11331[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E11[0]),
+ (VTBL_ENTRY)&_ZN3E113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv)();
+extern void ABISELECT(_ZThn16_N3E113fooEv,_ZThn8_N3E113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__3E11__6G11331[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E11[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv),
+};
+extern void _ZN3F333fooEv();
+extern void _ZN3F333barEv();
+static VTBL_ENTRY _tg__ZTV3F33__6G11331[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F33[0]),
+ (VTBL_ENTRY)&_ZN3F333fooEv,
+ (VTBL_ENTRY)&_ZN3F333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F333fooEv,_ZTv0_n12_N3F333fooEv)();
+extern void ABISELECT(_ZThn16_N3F333fooEv,_ZThn8_N3F333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N3F333barEv,_ZTv0_n16_N3F333barEv)();
+extern void ABISELECT(_ZThn16_N3F333barEv,_ZThn8_N3F333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__3F33__6G11331[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F33[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F333fooEv,_ZTv0_n12_N3F333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3F333barEv,_ZTv0_n16_N3F333barEv),
+};
+static VTT_ENTRY vtt_G11331[] = {
+ {&(_ZTV6G11331[6]), 6,29},
+ {&(_ZTV6G11331[11]), 11,29},
+ {&(_ZTV6G11331[15]), 15,29},
+ {&(_ZTV6G11331[21]), 21,29},
+ {&(_ZTV6G11331[27]), 27,29},
+ {&(_tg__ZTV3E11__6G11331[3]), 3,4},
+ {&(_tg__ZTV3AA1__3E11__6G11331[3]), 3,4},
+ {&(_tg__ZTV3F33__6G11331[3]), 3,5},
+ {&(_tg__ZTV3AA3__3F33__6G11331[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6G11331[];
+extern VTBL_ENTRY _ZTV6G11331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G11331[];
+static VTBL_ENTRY alt_thunk_names82[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F333fooEv,_ZTv0_n12_N3F333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F333fooEv,_ZThn8_N3F333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E113fooEv,_ZThn8_N3E113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3F333barEv,_ZTv0_n16_N3F333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F333barEv,_ZThn8_N3F333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F333barEv,_ZThn8_N3F333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G113313fooEv,_ZTv0_n12_N6G113313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G113313fooEv,_ZThn32_N6G113313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G113313fooEv,_ZThn16_N6G113313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G113313fooEv,_ZTv0_n16_N6G113313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G113313fooEv,_ZThn24_N6G113313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G113313fooEv,_ZThn8_N6G113313fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G11331 = { "G11331", // class name
+ bases_G11331, 4,
+ &(vtc_G11331[0]), // expected_vtbl_contents
+ &(vtt_G11331[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G11331),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G11331),29, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G11331),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names82,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G11333 : virtual E11 , virtual F33 {
+ int pg;
+ virtual void foo(); // _ZN6G113333fooEv
+ virtual void bar(); // _ZN6G113333barEv
+ ~G11333(); // tgen
+ G11333(); // tgen
+};
+//SIG(1 G11333) C1{ VBC2{ VBC3{ v1 Fi} v1 Fi} VBC4{ VBC5{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void G11333 ::foo(){vfunc_called(this, "_ZN6G113333fooEv");}
+void G11333 ::bar(){vfunc_called(this, "_ZN6G113333barEv");}
+G11333 ::~G11333(){ note_dtor("G11333", this);} // tgen
+G11333 ::G11333(){ note_ctor("G11333", this);} // tgen
+
+static void Test_G11333()
+{
+ extern Class_Descriptor cd_G11333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G11333, buf);
+ G11333 *dp, &lv = *(dp=new (buf) G11333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G11333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G11333)");
+ check_base_class_offset(lv, (AA1*)(E11*), ABISELECT(32,16), "G11333");
+ check_base_class_offset(lv, (E11*), ABISELECT(16,8), "G11333");
+ check_base_class_offset(lv, (AA3*)(F33*), ABISELECT(64,32), "G11333");
+ check_base_class_offset(lv, (F33*), ABISELECT(48,24), "G11333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G11333.pg");
+ test_class_info(&lv, &cd_G11333);
+ dp->~G11333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG11333(Test_G11333, "G11333", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G11333C1Ev();
+extern void _ZN6G11333D1Ev();
+Name_Map name_map_G11333[] = {
+ NSPAIR(_ZN6G11333C1Ev),
+ NSPAIR(_ZN6G11333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_E11;
+extern VTBL_ENTRY _ZTI3E11[];
+extern VTBL_ENTRY _ZTV3E11[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E11[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_F33;
+extern VTBL_ENTRY _ZTI3F33[];
+extern VTBL_ENTRY _ZTV3F33[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F33[];
+static Base_Class bases_G11333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E11, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F33, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G11333[];
+extern void _ZN6G113333fooEv();
+extern void _ZN6G113333barEv();
+extern void ABISELECT(_ZTv0_n32_N6G113333fooEv,_ZTv0_n16_N6G113333fooEv)();
+extern void ABISELECT(_ZThn16_N6G113333fooEv,_ZThn8_N6G113333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G113333fooEv,_ZTv0_n12_N6G113333fooEv)();
+extern void ABISELECT(_ZThn32_N6G113333fooEv,_ZThn16_N6G113333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G113333fooEv,_ZTv0_n16_N6G113333fooEv)();
+extern void ABISELECT(_ZThn48_N6G113333fooEv,_ZThn24_N6G113333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G113333barEv,_ZTv0_n20_N6G113333barEv)();
+extern void ABISELECT(_ZThn48_N6G113333barEv,_ZThn24_N6G113333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G113333fooEv,_ZTv0_n12_N6G113333fooEv)();
+extern void ABISELECT(_ZThn64_N6G113333fooEv,_ZThn32_N6G113333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G113333barEv,_ZTv0_n16_N6G113333barEv)();
+extern void ABISELECT(_ZThn64_N6G113333barEv,_ZThn32_N6G113333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G11333[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G11333[0]),
+ (VTBL_ENTRY)&_ZN6G113333fooEv,
+ (VTBL_ENTRY)&_ZN6G113333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G11333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G113333fooEv,_ZTv0_n16_N6G113333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G11333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G113333fooEv,_ZTv0_n12_N6G113333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G11333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G113333fooEv,_ZTv0_n16_N6G113333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G113333barEv,_ZTv0_n20_N6G113333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G11333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G113333fooEv,_ZTv0_n12_N6G113333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G113333barEv,_ZTv0_n16_N6G113333barEv),
+};
+extern VTBL_ENTRY _ZTV6G11333[];
+extern void _ZN3E113fooEv();
+static VTBL_ENTRY _tg__ZTV3E11__6G11333[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E11[0]),
+ (VTBL_ENTRY)&_ZN3E113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv)();
+extern void ABISELECT(_ZThn16_N3E113fooEv,_ZThn8_N3E113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__3E11__6G11333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E11[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv),
+};
+extern void _ZN3F333fooEv();
+extern void _ZN3F333barEv();
+static VTBL_ENTRY _tg__ZTV3F33__6G11333[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F33[0]),
+ (VTBL_ENTRY)&_ZN3F333fooEv,
+ (VTBL_ENTRY)&_ZN3F333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F333fooEv,_ZTv0_n12_N3F333fooEv)();
+extern void ABISELECT(_ZThn16_N3F333fooEv,_ZThn8_N3F333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N3F333barEv,_ZTv0_n16_N3F333barEv)();
+extern void ABISELECT(_ZThn16_N3F333barEv,_ZThn8_N3F333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__3F33__6G11333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F33[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F333fooEv,_ZTv0_n12_N3F333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3F333barEv,_ZTv0_n16_N3F333barEv),
+};
+static VTT_ENTRY vtt_G11333[] = {
+ {&(_ZTV6G11333[6]), 6,30},
+ {&(_ZTV6G11333[12]), 12,30},
+ {&(_ZTV6G11333[16]), 16,30},
+ {&(_ZTV6G11333[22]), 22,30},
+ {&(_ZTV6G11333[28]), 28,30},
+ {&(_tg__ZTV3E11__6G11333[3]), 3,4},
+ {&(_tg__ZTV3AA1__3E11__6G11333[3]), 3,4},
+ {&(_tg__ZTV3F33__6G11333[3]), 3,5},
+ {&(_tg__ZTV3AA3__3F33__6G11333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6G11333[];
+extern VTBL_ENTRY _ZTV6G11333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G11333[];
+static VTBL_ENTRY alt_thunk_names83[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3F333barEv,_ZTv0_n16_N3F333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F333barEv,_ZThn8_N3F333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F333fooEv,_ZTv0_n12_N3F333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F333fooEv,_ZThn8_N3F333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E113fooEv,_ZTv0_n12_N3E113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E113fooEv,_ZThn8_N3E113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G113333barEv,_ZTv0_n16_N6G113333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G113333barEv,_ZThn32_N6G113333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6G113333barEv,_ZTv0_n20_N6G113333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G113333barEv,_ZThn24_N6G113333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G113333fooEv,_ZTv0_n12_N6G113333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G113333fooEv,_ZThn32_N6G113333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G113333fooEv,_ZThn16_N6G113333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G113333fooEv,_ZTv0_n16_N6G113333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G113333fooEv,_ZThn24_N6G113333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G113333fooEv,_ZThn8_N6G113333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G11333 = { "G11333", // class name
+ bases_G11333, 4,
+ &(vtc_G11333[0]), // expected_vtbl_contents
+ &(vtt_G11333[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G11333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G11333),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G11333),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names83,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G12111 : virtual E12 , virtual F11 {
+ int pg;
+ virtual void foo(); // _ZN6G121113fooEv
+ ~G12111(); // tgen
+ G12111(); // tgen
+};
+//SIG(1 G12111) C1{ VBC2{ VBC3{ v1 Fi} v2 Fi} VBC4{ VBC3 v1 Fi} v1 Fi}
+
+
+void G12111 ::foo(){vfunc_called(this, "_ZN6G121113fooEv");}
+G12111 ::~G12111(){ note_dtor("G12111", this);} // tgen
+G12111 ::G12111(){ note_ctor("G12111", this);} // tgen
+
+static void Test_G12111()
+{
+ extern Class_Descriptor cd_G12111;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_G12111, buf);
+ G12111 *dp, &lv = *(dp=new (buf) G12111());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(G12111)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G12111)");
+ check_base_class_offset(lv, (AA1*)(E12*), ABISELECT(32,16), "G12111");
+ check_base_class_offset(lv, (AA1*)(F11*), ABISELECT(32,16), "G12111");
+ check_base_class_offset(lv, (E12*), ABISELECT(16,8), "G12111");
+ check_base_class_offset(lv, (F11*), ABISELECT(48,24), "G12111");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G12111.pg");
+ test_class_info(&lv, &cd_G12111);
+ dp->~G12111();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG12111(Test_G12111, "G12111", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6G12111C1Ev();
+extern void _ZN6G12111D1Ev();
+Name_Map name_map_G12111[] = {
+ NSPAIR(_ZN6G12111C1Ev),
+ NSPAIR(_ZN6G12111D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_E12;
+extern VTBL_ENTRY _ZTI3E12[];
+extern VTBL_ENTRY _ZTV3E12[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E12[];
+extern Class_Descriptor cd_F11;
+extern VTBL_ENTRY _ZTI3F11[];
+extern VTBL_ENTRY _ZTV3F11[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F11[];
+static Base_Class bases_G12111[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E12, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_F11, 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
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G12111[];
+extern void _ZN6G121113fooEv();
+extern void _ZN3E123barEv();
+extern void ABISELECT(_ZTv0_n24_N6G121113fooEv,_ZTv0_n12_N6G121113fooEv)();
+extern void ABISELECT(_ZThn32_N6G121113fooEv,_ZThn16_N6G121113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G121113fooEv,_ZTv0_n16_N6G121113fooEv)();
+extern void ABISELECT(_ZThn48_N6G121113fooEv,_ZThn24_N6G121113fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G12111[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G12111[0]),
+ (VTBL_ENTRY)&_ZN6G121113fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G12111[0]),
+ (VTBL_ENTRY)&_ZN3E123barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G12111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G121113fooEv,_ZTv0_n12_N6G121113fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G12111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G121113fooEv,_ZTv0_n16_N6G121113fooEv),
+};
+extern VTBL_ENTRY _ZTV6G12111[];
+extern void _ZN3E123barEv();
+static VTBL_ENTRY _tg__ZTV3E12__6G12111[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E12[0]),
+ (VTBL_ENTRY)&_ZN3E123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__3E12__6G12111[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E12[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3F113fooEv();
+static VTBL_ENTRY _tg__ZTV3F11__6G12111[] = {
+ ABISELECT(-16,-8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F11[0]),
+ (VTBL_ENTRY)&_ZN3F113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__3F11__6G12111[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI3F11[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv),
+};
+static VTT_ENTRY vtt_G12111[] = {
+ {&(_ZTV6G12111[5]), 5,20},
+ {&(_ZTV6G12111[10]), 10,20},
+ {&(_ZTV6G12111[14]), 14,20},
+ {&(_ZTV6G12111[19]), 19,20},
+ {&(_tg__ZTV3E12__6G12111[3]), 3,4},
+ {&(_tg__ZTV3AA1__3E12__6G12111[3]), 3,4},
+ {&(_tg__ZTV3F11__6G12111[3]), 3,4},
+ {&(_tg__ZTV3AA1__3F11__6G12111[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G12111[];
+extern VTBL_ENTRY _ZTV6G12111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G12111[];
+static VTBL_ENTRY alt_thunk_names84[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G121113fooEv,_ZTv0_n16_N6G121113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G121113fooEv,_ZThn24_N6G121113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G121113fooEv,_ZTv0_n12_N6G121113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G121113fooEv,_ZThn16_N6G121113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G12111 = { "G12111", // class name
+ bases_G12111, 3,
+ &(vtc_G12111[0]), // expected_vtbl_contents
+ &(vtt_G12111[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6G12111),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G12111),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G12111),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names84,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G12113 : virtual E12 , virtual F11 {
+ int pg;
+ virtual void foo(); // _ZN6G121133fooEv
+ virtual void bar(); // _ZN6G121133barEv
+ ~G12113(); // tgen
+ G12113(); // tgen
+};
+//SIG(1 G12113) C1{ VBC2{ VBC3{ v1 Fi} v2 Fi} VBC4{ VBC3 v1 Fi} v1 v2 Fi}
+
+
+void G12113 ::foo(){vfunc_called(this, "_ZN6G121133fooEv");}
+void G12113 ::bar(){vfunc_called(this, "_ZN6G121133barEv");}
+G12113 ::~G12113(){ note_dtor("G12113", this);} // tgen
+G12113 ::G12113(){ note_ctor("G12113", this);} // tgen
+
+static void Test_G12113()
+{
+ extern Class_Descriptor cd_G12113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_G12113, buf);
+ G12113 *dp, &lv = *(dp=new (buf) G12113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(G12113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G12113)");
+ check_base_class_offset(lv, (AA1*)(E12*), ABISELECT(32,16), "G12113");
+ check_base_class_offset(lv, (AA1*)(F11*), ABISELECT(32,16), "G12113");
+ check_base_class_offset(lv, (E12*), ABISELECT(16,8), "G12113");
+ check_base_class_offset(lv, (F11*), ABISELECT(48,24), "G12113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G12113.pg");
+ test_class_info(&lv, &cd_G12113);
+ dp->~G12113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG12113(Test_G12113, "G12113", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6G12113C1Ev();
+extern void _ZN6G12113D1Ev();
+Name_Map name_map_G12113[] = {
+ NSPAIR(_ZN6G12113C1Ev),
+ NSPAIR(_ZN6G12113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_E12;
+extern VTBL_ENTRY _ZTI3E12[];
+extern VTBL_ENTRY _ZTV3E12[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E12[];
+extern Class_Descriptor cd_F11;
+extern VTBL_ENTRY _ZTI3F11[];
+extern VTBL_ENTRY _ZTV3F11[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F11[];
+static Base_Class bases_G12113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E12, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_F11, 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
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G12113[];
+extern void _ZN6G121133fooEv();
+extern void _ZN6G121133barEv();
+extern void ABISELECT(_ZTv0_n32_N6G121133barEv,_ZTv0_n16_N6G121133barEv)();
+extern void ABISELECT(_ZThn16_N6G121133barEv,_ZThn8_N6G121133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G121133fooEv,_ZTv0_n12_N6G121133fooEv)();
+extern void ABISELECT(_ZThn32_N6G121133fooEv,_ZThn16_N6G121133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G121133fooEv,_ZTv0_n16_N6G121133fooEv)();
+extern void ABISELECT(_ZThn48_N6G121133fooEv,_ZThn24_N6G121133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G12113[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G12113[0]),
+ (VTBL_ENTRY)&_ZN6G121133fooEv,
+ (VTBL_ENTRY)&_ZN6G121133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G12113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G121133barEv,_ZTv0_n16_N6G121133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G12113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G121133fooEv,_ZTv0_n12_N6G121133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G12113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G121133fooEv,_ZTv0_n16_N6G121133fooEv),
+};
+extern VTBL_ENTRY _ZTV6G12113[];
+extern void _ZN3E123barEv();
+static VTBL_ENTRY _tg__ZTV3E12__6G12113[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E12[0]),
+ (VTBL_ENTRY)&_ZN3E123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__3E12__6G12113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E12[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3F113fooEv();
+static VTBL_ENTRY _tg__ZTV3F11__6G12113[] = {
+ ABISELECT(-16,-8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F11[0]),
+ (VTBL_ENTRY)&_ZN3F113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__3F11__6G12113[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI3F11[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv),
+};
+static VTT_ENTRY vtt_G12113[] = {
+ {&(_ZTV6G12113[5]), 5,21},
+ {&(_ZTV6G12113[11]), 11,21},
+ {&(_ZTV6G12113[15]), 15,21},
+ {&(_ZTV6G12113[20]), 20,21},
+ {&(_tg__ZTV3E12__6G12113[3]), 3,4},
+ {&(_tg__ZTV3AA1__3E12__6G12113[3]), 3,4},
+ {&(_tg__ZTV3F11__6G12113[3]), 3,4},
+ {&(_tg__ZTV3AA1__3F11__6G12113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G12113[];
+extern VTBL_ENTRY _ZTV6G12113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G12113[];
+static VTBL_ENTRY alt_thunk_names85[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G121133fooEv,_ZTv0_n16_N6G121133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G121133fooEv,_ZThn24_N6G121133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G121133fooEv,_ZTv0_n12_N6G121133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G121133fooEv,_ZThn16_N6G121133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G121133barEv,_ZTv0_n16_N6G121133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G121133barEv,_ZThn8_N6G121133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G12113 = { "G12113", // class name
+ bases_G12113, 3,
+ &(vtc_G12113[0]), // expected_vtbl_contents
+ &(vtt_G12113[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6G12113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G12113),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G12113),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names85,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G12123 : virtual E12 , virtual F12 {
+ int pg;
+ virtual void foo(); // _ZN6G121233fooEv
+ virtual void bar(); // _ZN6G121233barEv
+ ~G12123(); // tgen
+ G12123(); // tgen
+};
+//SIG(1 G12123) C1{ VBC2{ VBC3{ v1 Fi} v2 Fi} VBC4{ VBC3 v2 Fi} v1 v2 Fi}
+
+
+void G12123 ::foo(){vfunc_called(this, "_ZN6G121233fooEv");}
+void G12123 ::bar(){vfunc_called(this, "_ZN6G121233barEv");}
+G12123 ::~G12123(){ note_dtor("G12123", this);} // tgen
+G12123 ::G12123(){ note_ctor("G12123", this);} // tgen
+
+static void Test_G12123()
+{
+ extern Class_Descriptor cd_G12123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_G12123, buf);
+ G12123 *dp, &lv = *(dp=new (buf) G12123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(G12123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G12123)");
+ check_base_class_offset(lv, (AA1*)(E12*), ABISELECT(32,16), "G12123");
+ check_base_class_offset(lv, (AA1*)(F12*), ABISELECT(32,16), "G12123");
+ check_base_class_offset(lv, (E12*), ABISELECT(16,8), "G12123");
+ check_base_class_offset(lv, (F12*), ABISELECT(48,24), "G12123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G12123.pg");
+ test_class_info(&lv, &cd_G12123);
+ dp->~G12123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG12123(Test_G12123, "G12123", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6G12123C1Ev();
+extern void _ZN6G12123D1Ev();
+Name_Map name_map_G12123[] = {
+ NSPAIR(_ZN6G12123C1Ev),
+ NSPAIR(_ZN6G12123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_E12;
+extern VTBL_ENTRY _ZTI3E12[];
+extern VTBL_ENTRY _ZTV3E12[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E12[];
+extern Class_Descriptor cd_F12;
+extern VTBL_ENTRY _ZTI3F12[];
+extern VTBL_ENTRY _ZTV3F12[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F12[];
+static Base_Class bases_G12123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E12, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_F12, 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
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G12123[];
+extern void _ZN6G121233fooEv();
+extern void _ZN6G121233barEv();
+extern void ABISELECT(_ZTv0_n32_N6G121233barEv,_ZTv0_n16_N6G121233barEv)();
+extern void ABISELECT(_ZThn16_N6G121233barEv,_ZThn8_N6G121233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G121233fooEv,_ZTv0_n12_N6G121233fooEv)();
+extern void ABISELECT(_ZThn32_N6G121233fooEv,_ZThn16_N6G121233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G121233barEv,_ZTv0_n16_N6G121233barEv)();
+extern void ABISELECT(_ZThn48_N6G121233barEv,_ZThn24_N6G121233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G12123[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G12123[0]),
+ (VTBL_ENTRY)&_ZN6G121233fooEv,
+ (VTBL_ENTRY)&_ZN6G121233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G12123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G121233barEv,_ZTv0_n16_N6G121233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G12123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G121233fooEv,_ZTv0_n12_N6G121233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G12123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G121233barEv,_ZTv0_n16_N6G121233barEv),
+};
+extern VTBL_ENTRY _ZTV6G12123[];
+extern void _ZN3E123barEv();
+static VTBL_ENTRY _tg__ZTV3E12__6G12123[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E12[0]),
+ (VTBL_ENTRY)&_ZN3E123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__3E12__6G12123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E12[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3F123barEv();
+static VTBL_ENTRY _tg__ZTV3F12__6G12123[] = {
+ ABISELECT(-16,-8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F12[0]),
+ (VTBL_ENTRY)&_ZN3F123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__3F12__6G12123[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI3F12[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+static VTT_ENTRY vtt_G12123[] = {
+ {&(_ZTV6G12123[5]), 5,21},
+ {&(_ZTV6G12123[11]), 11,21},
+ {&(_ZTV6G12123[15]), 15,21},
+ {&(_ZTV6G12123[20]), 20,21},
+ {&(_tg__ZTV3E12__6G12123[3]), 3,4},
+ {&(_tg__ZTV3AA1__3E12__6G12123[3]), 3,4},
+ {&(_tg__ZTV3F12__6G12123[3]), 3,4},
+ {&(_tg__ZTV3AA1__3F12__6G12123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G12123[];
+extern VTBL_ENTRY _ZTV6G12123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G12123[];
+static VTBL_ENTRY alt_thunk_names86[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G121233fooEv,_ZTv0_n12_N6G121233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G121233fooEv,_ZThn16_N6G121233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G121233barEv,_ZTv0_n16_N6G121233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G121233barEv,_ZThn24_N6G121233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G121233barEv,_ZThn8_N6G121233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G12123 = { "G12123", // class name
+ bases_G12123, 3,
+ &(vtc_G12123[0]), // expected_vtbl_contents
+ &(vtt_G12123[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6G12123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G12123),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G12123),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 G12133 : virtual E12 , virtual F13 {
+ int pg;
+ virtual void foo(); // _ZN6G121333fooEv
+ virtual void bar(); // _ZN6G121333barEv
+ ~G12133(); // tgen
+ G12133(); // tgen
+};
+//SIG(1 G12133) C1{ VBC2{ VBC3{ v1 Fi} v2 Fi} VBC4{ VBC3 v1 v2 Fi} v1 v2 Fi}
+
+
+void G12133 ::foo(){vfunc_called(this, "_ZN6G121333fooEv");}
+void G12133 ::bar(){vfunc_called(this, "_ZN6G121333barEv");}
+G12133 ::~G12133(){ note_dtor("G12133", this);} // tgen
+G12133 ::G12133(){ note_ctor("G12133", this);} // tgen
+
+static void Test_G12133()
+{
+ extern Class_Descriptor cd_G12133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_G12133, buf);
+ G12133 *dp, &lv = *(dp=new (buf) G12133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(G12133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G12133)");
+ check_base_class_offset(lv, (AA1*)(E12*), ABISELECT(32,16), "G12133");
+ check_base_class_offset(lv, (AA1*)(F13*), ABISELECT(32,16), "G12133");
+ check_base_class_offset(lv, (E12*), ABISELECT(16,8), "G12133");
+ check_base_class_offset(lv, (F13*), ABISELECT(48,24), "G12133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G12133.pg");
+ test_class_info(&lv, &cd_G12133);
+ dp->~G12133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG12133(Test_G12133, "G12133", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6G12133C1Ev();
+extern void _ZN6G12133D1Ev();
+Name_Map name_map_G12133[] = {
+ NSPAIR(_ZN6G12133C1Ev),
+ NSPAIR(_ZN6G12133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_E12;
+extern VTBL_ENTRY _ZTI3E12[];
+extern VTBL_ENTRY _ZTV3E12[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E12[];
+extern Class_Descriptor cd_F13;
+extern VTBL_ENTRY _ZTI3F13[];
+extern VTBL_ENTRY _ZTV3F13[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F13[];
+static Base_Class bases_G12133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E12, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_F13, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G12133[];
+extern void _ZN6G121333fooEv();
+extern void _ZN6G121333barEv();
+extern void ABISELECT(_ZTv0_n32_N6G121333barEv,_ZTv0_n16_N6G121333barEv)();
+extern void ABISELECT(_ZThn16_N6G121333barEv,_ZThn8_N6G121333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G121333fooEv,_ZTv0_n12_N6G121333fooEv)();
+extern void ABISELECT(_ZThn32_N6G121333fooEv,_ZThn16_N6G121333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G121333fooEv,_ZTv0_n16_N6G121333fooEv)();
+extern void ABISELECT(_ZThn48_N6G121333fooEv,_ZThn24_N6G121333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G121333barEv,_ZTv0_n20_N6G121333barEv)();
+extern void ABISELECT(_ZThn48_N6G121333barEv,_ZThn24_N6G121333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G12133[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G12133[0]),
+ (VTBL_ENTRY)&_ZN6G121333fooEv,
+ (VTBL_ENTRY)&_ZN6G121333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G12133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G121333barEv,_ZTv0_n16_N6G121333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G12133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G121333fooEv,_ZTv0_n12_N6G121333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G12133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G121333fooEv,_ZTv0_n16_N6G121333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G121333barEv,_ZTv0_n20_N6G121333barEv),
+};
+extern VTBL_ENTRY _ZTV6G12133[];
+extern void _ZN3E123barEv();
+static VTBL_ENTRY _tg__ZTV3E12__6G12133[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E12[0]),
+ (VTBL_ENTRY)&_ZN3E123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__3E12__6G12133[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E12[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3F133fooEv();
+extern void _ZN3F133barEv();
+static VTBL_ENTRY _tg__ZTV3F13__6G12133[] = {
+ ABISELECT(-16,-8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F13[0]),
+ (VTBL_ENTRY)&_ZN3F133fooEv,
+ (VTBL_ENTRY)&_ZN3F133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F133fooEv,_ZTv0_n12_N3F133fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__3F13__6G12133[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI3F13[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F133fooEv,_ZTv0_n12_N3F133fooEv),
+};
+static VTT_ENTRY vtt_G12133[] = {
+ {&(_ZTV6G12133[5]), 5,23},
+ {&(_ZTV6G12133[11]), 11,23},
+ {&(_ZTV6G12133[15]), 15,23},
+ {&(_ZTV6G12133[21]), 21,23},
+ {&(_tg__ZTV3E12__6G12133[3]), 3,4},
+ {&(_tg__ZTV3AA1__3E12__6G12133[3]), 3,4},
+ {&(_tg__ZTV3F13__6G12133[3]), 3,5},
+ {&(_tg__ZTV3AA1__3F13__6G12133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G12133[];
+extern VTBL_ENTRY _ZTV6G12133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G12133[];
+static VTBL_ENTRY alt_thunk_names87[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6G121333barEv,_ZTv0_n20_N6G121333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G121333barEv,_ZThn24_N6G121333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G121333fooEv,_ZTv0_n16_N6G121333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G121333fooEv,_ZThn24_N6G121333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G121333fooEv,_ZTv0_n12_N6G121333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G121333fooEv,_ZThn16_N6G121333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G121333barEv,_ZTv0_n16_N6G121333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G121333barEv,_ZThn8_N6G121333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G12133 = { "G12133", // class name
+ bases_G12133, 3,
+ &(vtc_G12133[0]), // expected_vtbl_contents
+ &(vtt_G12133[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6G12133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G12133),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G12133),8, //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 G12213 : virtual E12 , virtual F21 {
+ int pg;
+ virtual void foo(); // _ZN6G122133fooEv
+ virtual void bar(); // _ZN6G122133barEv
+ ~G12213(); // tgen
+ G12213(); // tgen
+};
+//SIG(1 G12213) C1{ VBC2{ VBC3{ v1 Fi} v2 Fi} VBC4{ VBC5{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void G12213 ::foo(){vfunc_called(this, "_ZN6G122133fooEv");}
+void G12213 ::bar(){vfunc_called(this, "_ZN6G122133barEv");}
+G12213 ::~G12213(){ note_dtor("G12213", this);} // tgen
+G12213 ::G12213(){ note_ctor("G12213", this);} // tgen
+
+static void Test_G12213()
+{
+ extern Class_Descriptor cd_G12213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G12213, buf);
+ G12213 *dp, &lv = *(dp=new (buf) G12213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G12213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G12213)");
+ check_base_class_offset(lv, (AA1*)(E12*), ABISELECT(32,16), "G12213");
+ check_base_class_offset(lv, (E12*), ABISELECT(16,8), "G12213");
+ check_base_class_offset(lv, (AA2*)(F21*), ABISELECT(64,32), "G12213");
+ check_base_class_offset(lv, (F21*), ABISELECT(48,24), "G12213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G12213.pg");
+ test_class_info(&lv, &cd_G12213);
+ dp->~G12213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG12213(Test_G12213, "G12213", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G12213C1Ev();
+extern void _ZN6G12213D1Ev();
+Name_Map name_map_G12213[] = {
+ NSPAIR(_ZN6G12213C1Ev),
+ NSPAIR(_ZN6G12213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_E12;
+extern VTBL_ENTRY _ZTI3E12[];
+extern VTBL_ENTRY _ZTV3E12[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E12[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_F21;
+extern VTBL_ENTRY _ZTI3F21[];
+extern VTBL_ENTRY _ZTV3F21[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F21[];
+static Base_Class bases_G12213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E12, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F21, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G12213[];
+extern void _ZN6G122133fooEv();
+extern void _ZN6G122133barEv();
+extern void ABISELECT(_ZTv0_n32_N6G122133barEv,_ZTv0_n16_N6G122133barEv)();
+extern void ABISELECT(_ZThn16_N6G122133barEv,_ZThn8_N6G122133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G122133fooEv,_ZTv0_n12_N6G122133fooEv)();
+extern void ABISELECT(_ZThn32_N6G122133fooEv,_ZThn16_N6G122133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G122133fooEv,_ZTv0_n16_N6G122133fooEv)();
+extern void ABISELECT(_ZThn48_N6G122133fooEv,_ZThn24_N6G122133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G122133barEv,_ZTv0_n12_N6G122133barEv)();
+extern void ABISELECT(_ZThn64_N6G122133barEv,_ZThn32_N6G122133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G12213[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G12213[0]),
+ (VTBL_ENTRY)&_ZN6G122133fooEv,
+ (VTBL_ENTRY)&_ZN6G122133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G12213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G122133barEv,_ZTv0_n16_N6G122133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G12213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G122133fooEv,_ZTv0_n12_N6G122133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G12213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G122133fooEv,_ZTv0_n16_N6G122133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G12213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G122133barEv,_ZTv0_n12_N6G122133barEv),
+};
+extern VTBL_ENTRY _ZTV6G12213[];
+extern void _ZN3E123barEv();
+static VTBL_ENTRY _tg__ZTV3E12__6G12213[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E12[0]),
+ (VTBL_ENTRY)&_ZN3E123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__3E12__6G12213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E12[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3F213fooEv();
+static VTBL_ENTRY _tg__ZTV3F21__6G12213[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F21[0]),
+ (VTBL_ENTRY)&_ZN3F213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__3F21__6G12213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F21[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+static VTT_ENTRY vtt_G12213[] = {
+ {&(_ZTV6G12213[6]), 6,26},
+ {&(_ZTV6G12213[12]), 12,26},
+ {&(_ZTV6G12213[16]), 16,26},
+ {&(_ZTV6G12213[21]), 21,26},
+ {&(_ZTV6G12213[25]), 25,26},
+ {&(_tg__ZTV3E12__6G12213[3]), 3,4},
+ {&(_tg__ZTV3AA1__3E12__6G12213[3]), 3,4},
+ {&(_tg__ZTV3F21__6G12213[3]), 3,4},
+ {&(_tg__ZTV3AA2__3F21__6G12213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G12213[];
+extern VTBL_ENTRY _ZTV6G12213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G12213[];
+static VTBL_ENTRY alt_thunk_names88[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G122133barEv,_ZTv0_n12_N6G122133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G122133barEv,_ZThn32_N6G122133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G122133fooEv,_ZTv0_n16_N6G122133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G122133fooEv,_ZThn24_N6G122133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G122133fooEv,_ZTv0_n12_N6G122133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G122133fooEv,_ZThn16_N6G122133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G122133barEv,_ZTv0_n16_N6G122133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G122133barEv,_ZThn8_N6G122133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G12213 = { "G12213", // class name
+ bases_G12213, 4,
+ &(vtc_G12213[0]), // expected_vtbl_contents
+ &(vtt_G12213[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G12213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G12213),26, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G12213),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names88,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G12222 : virtual E12 , virtual F22 {
+ int pg;
+ virtual void bar(); // _ZN6G122223barEv
+ ~G12222(); // tgen
+ G12222(); // tgen
+};
+//SIG(1 G12222) C1{ VBC2{ VBC3{ v2 Fi} v1 Fi} VBC4{ VBC5{ v1 Fi} v1 Fi} v1 Fi}
+
+
+void G12222 ::bar(){vfunc_called(this, "_ZN6G122223barEv");}
+G12222 ::~G12222(){ note_dtor("G12222", this);} // tgen
+G12222 ::G12222(){ note_ctor("G12222", this);} // tgen
+
+static void Test_G12222()
+{
+ extern Class_Descriptor cd_G12222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G12222, buf);
+ G12222 *dp, &lv = *(dp=new (buf) G12222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G12222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G12222)");
+ check_base_class_offset(lv, (AA1*)(E12*), ABISELECT(32,16), "G12222");
+ check_base_class_offset(lv, (E12*), ABISELECT(16,8), "G12222");
+ check_base_class_offset(lv, (AA2*)(F22*), ABISELECT(64,32), "G12222");
+ check_base_class_offset(lv, (F22*), ABISELECT(48,24), "G12222");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G12222.pg");
+ test_class_info(&lv, &cd_G12222);
+ dp->~G12222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG12222(Test_G12222, "G12222", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G12222C1Ev();
+extern void _ZN6G12222D1Ev();
+Name_Map name_map_G12222[] = {
+ NSPAIR(_ZN6G12222C1Ev),
+ NSPAIR(_ZN6G12222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_E12;
+extern VTBL_ENTRY _ZTI3E12[];
+extern VTBL_ENTRY _ZTV3E12[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E12[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_F22;
+extern VTBL_ENTRY _ZTI3F22[];
+extern VTBL_ENTRY _ZTV3F22[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F22[];
+static Base_Class bases_G12222[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E12, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(64,32), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F22, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G12222[];
+extern void _ZN6G122223barEv();
+extern void ABISELECT(_ZTv0_n32_N6G122223barEv,_ZTv0_n16_N6G122223barEv)();
+extern void ABISELECT(_ZThn16_N6G122223barEv,_ZThn8_N6G122223barEv)() __attribute__((weak));
+extern void _ZN3AA13fooEv();
+extern void ABISELECT(_ZTv0_n32_N6G122223barEv,_ZTv0_n16_N6G122223barEv)();
+extern void ABISELECT(_ZThn48_N6G122223barEv,_ZThn24_N6G122223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G122223barEv,_ZTv0_n12_N6G122223barEv)();
+extern void ABISELECT(_ZThn64_N6G122223barEv,_ZThn32_N6G122223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G12222[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G12222[0]),
+ (VTBL_ENTRY)&_ZN6G122223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G12222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G122223barEv,_ZTv0_n16_N6G122223barEv),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G12222[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G12222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G122223barEv,_ZTv0_n16_N6G122223barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G12222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G122223barEv,_ZTv0_n12_N6G122223barEv),
+};
+extern VTBL_ENTRY _ZTV6G12222[];
+extern void _ZN3E123barEv();
+static VTBL_ENTRY _tg__ZTV3E12__6G12222[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E12[0]),
+ (VTBL_ENTRY)&_ZN3E123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__3E12__6G12222[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E12[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3F223barEv();
+static VTBL_ENTRY _tg__ZTV3F22__6G12222[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F22[0]),
+ (VTBL_ENTRY)&_ZN3F223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv)();
+extern void ABISELECT(_ZThn16_N3F223barEv,_ZThn8_N3F223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__3F22__6G12222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F22[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv),
+};
+static VTT_ENTRY vtt_G12222[] = {
+ {&(_ZTV6G12222[6]), 6,25},
+ {&(_ZTV6G12222[11]), 11,25},
+ {&(_ZTV6G12222[15]), 15,25},
+ {&(_ZTV6G12222[20]), 20,25},
+ {&(_ZTV6G12222[24]), 24,25},
+ {&(_tg__ZTV3E12__6G12222[3]), 3,4},
+ {&(_tg__ZTV3AA1__3E12__6G12222[3]), 3,4},
+ {&(_tg__ZTV3F22__6G12222[3]), 3,4},
+ {&(_tg__ZTV3AA2__3F22__6G12222[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G12222[];
+extern VTBL_ENTRY _ZTV6G12222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G12222[];
+static VTBL_ENTRY alt_thunk_names89[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F223barEv,_ZThn8_N3F223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G122223barEv,_ZTv0_n12_N6G122223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G122223barEv,_ZThn32_N6G122223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G122223barEv,_ZTv0_n16_N6G122223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G122223barEv,_ZThn24_N6G122223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G122223barEv,_ZThn8_N6G122223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G12222 = { "G12222", // class name
+ bases_G12222, 4,
+ &(vtc_G12222[0]), // expected_vtbl_contents
+ &(vtt_G12222[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G12222),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G12222),25, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G12222),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names89,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G12223 : virtual E12 , virtual F22 {
+ int pg;
+ virtual void foo(); // _ZN6G122233fooEv
+ virtual void bar(); // _ZN6G122233barEv
+ ~G12223(); // tgen
+ G12223(); // tgen
+};
+//SIG(1 G12223) C1{ VBC2{ VBC3{ v1 Fi} v2 Fi} VBC4{ VBC5{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void G12223 ::foo(){vfunc_called(this, "_ZN6G122233fooEv");}
+void G12223 ::bar(){vfunc_called(this, "_ZN6G122233barEv");}
+G12223 ::~G12223(){ note_dtor("G12223", this);} // tgen
+G12223 ::G12223(){ note_ctor("G12223", this);} // tgen
+
+static void Test_G12223()
+{
+ extern Class_Descriptor cd_G12223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G12223, buf);
+ G12223 *dp, &lv = *(dp=new (buf) G12223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G12223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G12223)");
+ check_base_class_offset(lv, (AA1*)(E12*), ABISELECT(32,16), "G12223");
+ check_base_class_offset(lv, (E12*), ABISELECT(16,8), "G12223");
+ check_base_class_offset(lv, (AA2*)(F22*), ABISELECT(64,32), "G12223");
+ check_base_class_offset(lv, (F22*), ABISELECT(48,24), "G12223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G12223.pg");
+ test_class_info(&lv, &cd_G12223);
+ dp->~G12223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG12223(Test_G12223, "G12223", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G12223C1Ev();
+extern void _ZN6G12223D1Ev();
+Name_Map name_map_G12223[] = {
+ NSPAIR(_ZN6G12223C1Ev),
+ NSPAIR(_ZN6G12223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_E12;
+extern VTBL_ENTRY _ZTI3E12[];
+extern VTBL_ENTRY _ZTV3E12[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E12[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_F22;
+extern VTBL_ENTRY _ZTI3F22[];
+extern VTBL_ENTRY _ZTV3F22[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F22[];
+static Base_Class bases_G12223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E12, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F22, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G12223[];
+extern void _ZN6G122233fooEv();
+extern void _ZN6G122233barEv();
+extern void ABISELECT(_ZTv0_n32_N6G122233barEv,_ZTv0_n16_N6G122233barEv)();
+extern void ABISELECT(_ZThn16_N6G122233barEv,_ZThn8_N6G122233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G122233fooEv,_ZTv0_n12_N6G122233fooEv)();
+extern void ABISELECT(_ZThn32_N6G122233fooEv,_ZThn16_N6G122233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G122233barEv,_ZTv0_n16_N6G122233barEv)();
+extern void ABISELECT(_ZThn48_N6G122233barEv,_ZThn24_N6G122233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G122233barEv,_ZTv0_n12_N6G122233barEv)();
+extern void ABISELECT(_ZThn64_N6G122233barEv,_ZThn32_N6G122233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G12223[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G12223[0]),
+ (VTBL_ENTRY)&_ZN6G122233fooEv,
+ (VTBL_ENTRY)&_ZN6G122233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G12223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G122233barEv,_ZTv0_n16_N6G122233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G12223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G122233fooEv,_ZTv0_n12_N6G122233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G12223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G122233barEv,_ZTv0_n16_N6G122233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G12223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G122233barEv,_ZTv0_n12_N6G122233barEv),
+};
+extern VTBL_ENTRY _ZTV6G12223[];
+extern void _ZN3E123barEv();
+static VTBL_ENTRY _tg__ZTV3E12__6G12223[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E12[0]),
+ (VTBL_ENTRY)&_ZN3E123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__3E12__6G12223[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E12[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3F223barEv();
+static VTBL_ENTRY _tg__ZTV3F22__6G12223[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F22[0]),
+ (VTBL_ENTRY)&_ZN3F223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv)();
+extern void ABISELECT(_ZThn16_N3F223barEv,_ZThn8_N3F223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__3F22__6G12223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F22[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv),
+};
+static VTT_ENTRY vtt_G12223[] = {
+ {&(_ZTV6G12223[6]), 6,26},
+ {&(_ZTV6G12223[12]), 12,26},
+ {&(_ZTV6G12223[16]), 16,26},
+ {&(_ZTV6G12223[21]), 21,26},
+ {&(_ZTV6G12223[25]), 25,26},
+ {&(_tg__ZTV3E12__6G12223[3]), 3,4},
+ {&(_tg__ZTV3AA1__3E12__6G12223[3]), 3,4},
+ {&(_tg__ZTV3F22__6G12223[3]), 3,4},
+ {&(_tg__ZTV3AA2__3F22__6G12223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G12223[];
+extern VTBL_ENTRY _ZTV6G12223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G12223[];
+static VTBL_ENTRY alt_thunk_names90[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F223barEv,_ZThn8_N3F223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G122233barEv,_ZTv0_n12_N6G122233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G122233barEv,_ZThn32_N6G122233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G122233fooEv,_ZTv0_n12_N6G122233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G122233fooEv,_ZThn16_N6G122233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G122233barEv,_ZTv0_n16_N6G122233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G122233barEv,_ZThn24_N6G122233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G122233barEv,_ZThn8_N6G122233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G12223 = { "G12223", // class name
+ bases_G12223, 4,
+ &(vtc_G12223[0]), // expected_vtbl_contents
+ &(vtt_G12223[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G12223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G12223),26, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G12223),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names90,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G12233 : virtual E12 , virtual F23 {
+ int pg;
+ virtual void foo(); // _ZN6G122333fooEv
+ virtual void bar(); // _ZN6G122333barEv
+ ~G12233(); // tgen
+ G12233(); // tgen
+};
+//SIG(1 G12233) C1{ VBC2{ VBC3{ v1 Fi} v2 Fi} VBC4{ VBC5{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void G12233 ::foo(){vfunc_called(this, "_ZN6G122333fooEv");}
+void G12233 ::bar(){vfunc_called(this, "_ZN6G122333barEv");}
+G12233 ::~G12233(){ note_dtor("G12233", this);} // tgen
+G12233 ::G12233(){ note_ctor("G12233", this);} // tgen
+
+static void Test_G12233()
+{
+ extern Class_Descriptor cd_G12233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G12233, buf);
+ G12233 *dp, &lv = *(dp=new (buf) G12233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G12233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G12233)");
+ check_base_class_offset(lv, (AA1*)(E12*), ABISELECT(32,16), "G12233");
+ check_base_class_offset(lv, (E12*), ABISELECT(16,8), "G12233");
+ check_base_class_offset(lv, (AA2*)(F23*), ABISELECT(64,32), "G12233");
+ check_base_class_offset(lv, (F23*), ABISELECT(48,24), "G12233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G12233.pg");
+ test_class_info(&lv, &cd_G12233);
+ dp->~G12233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG12233(Test_G12233, "G12233", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G12233C1Ev();
+extern void _ZN6G12233D1Ev();
+Name_Map name_map_G12233[] = {
+ NSPAIR(_ZN6G12233C1Ev),
+ NSPAIR(_ZN6G12233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_E12;
+extern VTBL_ENTRY _ZTI3E12[];
+extern VTBL_ENTRY _ZTV3E12[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E12[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_F23;
+extern VTBL_ENTRY _ZTI3F23[];
+extern VTBL_ENTRY _ZTV3F23[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F23[];
+static Base_Class bases_G12233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E12, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F23, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G12233[];
+extern void _ZN6G122333fooEv();
+extern void _ZN6G122333barEv();
+extern void ABISELECT(_ZTv0_n32_N6G122333barEv,_ZTv0_n16_N6G122333barEv)();
+extern void ABISELECT(_ZThn16_N6G122333barEv,_ZThn8_N6G122333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G122333fooEv,_ZTv0_n12_N6G122333fooEv)();
+extern void ABISELECT(_ZThn32_N6G122333fooEv,_ZThn16_N6G122333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G122333fooEv,_ZTv0_n16_N6G122333fooEv)();
+extern void ABISELECT(_ZThn48_N6G122333fooEv,_ZThn24_N6G122333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G122333barEv,_ZTv0_n20_N6G122333barEv)();
+extern void ABISELECT(_ZThn48_N6G122333barEv,_ZThn24_N6G122333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G122333barEv,_ZTv0_n12_N6G122333barEv)();
+extern void ABISELECT(_ZThn64_N6G122333barEv,_ZThn32_N6G122333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G12233[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G12233[0]),
+ (VTBL_ENTRY)&_ZN6G122333fooEv,
+ (VTBL_ENTRY)&_ZN6G122333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G12233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G122333barEv,_ZTv0_n16_N6G122333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G12233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G122333fooEv,_ZTv0_n12_N6G122333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G12233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G122333fooEv,_ZTv0_n16_N6G122333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G122333barEv,_ZTv0_n20_N6G122333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G12233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G122333barEv,_ZTv0_n12_N6G122333barEv),
+};
+extern VTBL_ENTRY _ZTV6G12233[];
+extern void _ZN3E123barEv();
+static VTBL_ENTRY _tg__ZTV3E12__6G12233[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E12[0]),
+ (VTBL_ENTRY)&_ZN3E123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__3E12__6G12233[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E12[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3F233fooEv();
+extern void _ZN3F233barEv();
+static VTBL_ENTRY _tg__ZTV3F23__6G12233[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F23[0]),
+ (VTBL_ENTRY)&_ZN3F233fooEv,
+ (VTBL_ENTRY)&_ZN3F233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F233barEv,_ZTv0_n12_N3F233barEv)();
+extern void ABISELECT(_ZThn16_N3F233barEv,_ZThn8_N3F233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__3F23__6G12233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F23[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F233barEv,_ZTv0_n12_N3F233barEv),
+};
+static VTT_ENTRY vtt_G12233[] = {
+ {&(_ZTV6G12233[6]), 6,28},
+ {&(_ZTV6G12233[12]), 12,28},
+ {&(_ZTV6G12233[16]), 16,28},
+ {&(_ZTV6G12233[22]), 22,28},
+ {&(_ZTV6G12233[27]), 27,28},
+ {&(_tg__ZTV3E12__6G12233[3]), 3,4},
+ {&(_tg__ZTV3AA1__3E12__6G12233[3]), 3,4},
+ {&(_tg__ZTV3F23__6G12233[3]), 3,5},
+ {&(_tg__ZTV3AA2__3F23__6G12233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G12233[];
+extern VTBL_ENTRY _ZTV6G12233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G12233[];
+static VTBL_ENTRY alt_thunk_names91[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F233barEv,_ZTv0_n12_N3F233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F233barEv,_ZThn8_N3F233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G122333barEv,_ZTv0_n12_N6G122333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G122333barEv,_ZThn32_N6G122333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6G122333barEv,_ZTv0_n20_N6G122333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G122333barEv,_ZThn24_N6G122333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G122333fooEv,_ZTv0_n16_N6G122333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G122333fooEv,_ZThn24_N6G122333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G122333fooEv,_ZTv0_n12_N6G122333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G122333fooEv,_ZThn16_N6G122333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G122333barEv,_ZTv0_n16_N6G122333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G122333barEv,_ZThn8_N6G122333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G12233 = { "G12233", // class name
+ bases_G12233, 4,
+ &(vtc_G12233[0]), // expected_vtbl_contents
+ &(vtt_G12233[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G12233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G12233),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G12233),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names91,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G12313 : virtual E12 , virtual F31 {
+ int pg;
+ virtual void foo(); // _ZN6G123133fooEv
+ virtual void bar(); // _ZN6G123133barEv
+ ~G12313(); // tgen
+ G12313(); // tgen
+};
+//SIG(1 G12313) C1{ VBC2{ VBC3{ v1 Fi} v2 Fi} VBC4{ VBC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void G12313 ::foo(){vfunc_called(this, "_ZN6G123133fooEv");}
+void G12313 ::bar(){vfunc_called(this, "_ZN6G123133barEv");}
+G12313 ::~G12313(){ note_dtor("G12313", this);} // tgen
+G12313 ::G12313(){ note_ctor("G12313", this);} // tgen
+
+static void Test_G12313()
+{
+ extern Class_Descriptor cd_G12313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G12313, buf);
+ G12313 *dp, &lv = *(dp=new (buf) G12313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G12313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G12313)");
+ check_base_class_offset(lv, (AA1*)(E12*), ABISELECT(32,16), "G12313");
+ check_base_class_offset(lv, (E12*), ABISELECT(16,8), "G12313");
+ check_base_class_offset(lv, (AA3*)(F31*), ABISELECT(64,32), "G12313");
+ check_base_class_offset(lv, (F31*), ABISELECT(48,24), "G12313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G12313.pg");
+ test_class_info(&lv, &cd_G12313);
+ dp->~G12313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG12313(Test_G12313, "G12313", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G12313C1Ev();
+extern void _ZN6G12313D1Ev();
+Name_Map name_map_G12313[] = {
+ NSPAIR(_ZN6G12313C1Ev),
+ NSPAIR(_ZN6G12313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_E12;
+extern VTBL_ENTRY _ZTI3E12[];
+extern VTBL_ENTRY _ZTV3E12[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E12[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_F31;
+extern VTBL_ENTRY _ZTI3F31[];
+extern VTBL_ENTRY _ZTV3F31[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F31[];
+static Base_Class bases_G12313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E12, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F31, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G12313[];
+extern void _ZN6G123133fooEv();
+extern void _ZN6G123133barEv();
+extern void ABISELECT(_ZTv0_n32_N6G123133barEv,_ZTv0_n16_N6G123133barEv)();
+extern void ABISELECT(_ZThn16_N6G123133barEv,_ZThn8_N6G123133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G123133fooEv,_ZTv0_n12_N6G123133fooEv)();
+extern void ABISELECT(_ZThn32_N6G123133fooEv,_ZThn16_N6G123133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G123133fooEv,_ZTv0_n16_N6G123133fooEv)();
+extern void ABISELECT(_ZThn48_N6G123133fooEv,_ZThn24_N6G123133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G123133fooEv,_ZTv0_n12_N6G123133fooEv)();
+extern void ABISELECT(_ZThn64_N6G123133fooEv,_ZThn32_N6G123133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G123133barEv,_ZTv0_n16_N6G123133barEv)();
+extern void ABISELECT(_ZThn64_N6G123133barEv,_ZThn32_N6G123133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G12313[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G12313[0]),
+ (VTBL_ENTRY)&_ZN6G123133fooEv,
+ (VTBL_ENTRY)&_ZN6G123133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G12313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G123133barEv,_ZTv0_n16_N6G123133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G12313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G123133fooEv,_ZTv0_n12_N6G123133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G12313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G123133fooEv,_ZTv0_n16_N6G123133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G12313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G123133fooEv,_ZTv0_n12_N6G123133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G123133barEv,_ZTv0_n16_N6G123133barEv),
+};
+extern VTBL_ENTRY _ZTV6G12313[];
+extern void _ZN3E123barEv();
+static VTBL_ENTRY _tg__ZTV3E12__6G12313[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E12[0]),
+ (VTBL_ENTRY)&_ZN3E123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__3E12__6G12313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E12[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3F313fooEv();
+static VTBL_ENTRY _tg__ZTV3F31__6G12313[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F31[0]),
+ (VTBL_ENTRY)&_ZN3F313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F313fooEv,_ZTv0_n12_N3F313fooEv)();
+extern void ABISELECT(_ZThn16_N3F313fooEv,_ZThn8_N3F313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__3F31__6G12313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F31[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F313fooEv,_ZTv0_n12_N3F313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+static VTT_ENTRY vtt_G12313[] = {
+ {&(_ZTV6G12313[6]), 6,28},
+ {&(_ZTV6G12313[12]), 12,28},
+ {&(_ZTV6G12313[16]), 16,28},
+ {&(_ZTV6G12313[21]), 21,28},
+ {&(_ZTV6G12313[26]), 26,28},
+ {&(_tg__ZTV3E12__6G12313[3]), 3,4},
+ {&(_tg__ZTV3AA1__3E12__6G12313[3]), 3,4},
+ {&(_tg__ZTV3F31__6G12313[3]), 3,4},
+ {&(_tg__ZTV3AA3__3F31__6G12313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6G12313[];
+extern VTBL_ENTRY _ZTV6G12313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G12313[];
+static VTBL_ENTRY alt_thunk_names92[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F313fooEv,_ZTv0_n12_N3F313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F313fooEv,_ZThn8_N3F313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G123133fooEv,_ZTv0_n16_N6G123133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G123133fooEv,_ZThn24_N6G123133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G123133fooEv,_ZTv0_n12_N6G123133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G123133fooEv,_ZThn32_N6G123133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G123133fooEv,_ZThn16_N6G123133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G123133barEv,_ZTv0_n16_N6G123133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G123133barEv,_ZThn32_N6G123133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G123133barEv,_ZThn8_N6G123133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G12313 = { "G12313", // class name
+ bases_G12313, 4,
+ &(vtc_G12313[0]), // expected_vtbl_contents
+ &(vtt_G12313[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G12313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G12313),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G12313),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names92,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G12323 : virtual E12 , virtual F32 {
+ int pg;
+ virtual void foo(); // _ZN6G123233fooEv
+ virtual void bar(); // _ZN6G123233barEv
+ ~G12323(); // tgen
+ G12323(); // tgen
+};
+//SIG(1 G12323) C1{ VBC2{ VBC3{ v1 Fi} v2 Fi} VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void G12323 ::foo(){vfunc_called(this, "_ZN6G123233fooEv");}
+void G12323 ::bar(){vfunc_called(this, "_ZN6G123233barEv");}
+G12323 ::~G12323(){ note_dtor("G12323", this);} // tgen
+G12323 ::G12323(){ note_ctor("G12323", this);} // tgen
+
+static void Test_G12323()
+{
+ extern Class_Descriptor cd_G12323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G12323, buf);
+ G12323 *dp, &lv = *(dp=new (buf) G12323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G12323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G12323)");
+ check_base_class_offset(lv, (AA1*)(E12*), ABISELECT(32,16), "G12323");
+ check_base_class_offset(lv, (E12*), ABISELECT(16,8), "G12323");
+ check_base_class_offset(lv, (AA3*)(F32*), ABISELECT(64,32), "G12323");
+ check_base_class_offset(lv, (F32*), ABISELECT(48,24), "G12323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G12323.pg");
+ test_class_info(&lv, &cd_G12323);
+ dp->~G12323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG12323(Test_G12323, "G12323", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G12323C1Ev();
+extern void _ZN6G12323D1Ev();
+Name_Map name_map_G12323[] = {
+ NSPAIR(_ZN6G12323C1Ev),
+ NSPAIR(_ZN6G12323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_E12;
+extern VTBL_ENTRY _ZTI3E12[];
+extern VTBL_ENTRY _ZTV3E12[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E12[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_F32;
+extern VTBL_ENTRY _ZTI3F32[];
+extern VTBL_ENTRY _ZTV3F32[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F32[];
+static Base_Class bases_G12323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E12, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F32, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G12323[];
+extern void _ZN6G123233fooEv();
+extern void _ZN6G123233barEv();
+extern void ABISELECT(_ZTv0_n32_N6G123233barEv,_ZTv0_n16_N6G123233barEv)();
+extern void ABISELECT(_ZThn16_N6G123233barEv,_ZThn8_N6G123233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G123233fooEv,_ZTv0_n12_N6G123233fooEv)();
+extern void ABISELECT(_ZThn32_N6G123233fooEv,_ZThn16_N6G123233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G123233barEv,_ZTv0_n16_N6G123233barEv)();
+extern void ABISELECT(_ZThn48_N6G123233barEv,_ZThn24_N6G123233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G123233fooEv,_ZTv0_n12_N6G123233fooEv)();
+extern void ABISELECT(_ZThn64_N6G123233fooEv,_ZThn32_N6G123233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G123233barEv,_ZTv0_n16_N6G123233barEv)();
+extern void ABISELECT(_ZThn64_N6G123233barEv,_ZThn32_N6G123233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G12323[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G12323[0]),
+ (VTBL_ENTRY)&_ZN6G123233fooEv,
+ (VTBL_ENTRY)&_ZN6G123233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G12323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G123233barEv,_ZTv0_n16_N6G123233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G12323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G123233fooEv,_ZTv0_n12_N6G123233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G12323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G123233barEv,_ZTv0_n16_N6G123233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G12323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G123233fooEv,_ZTv0_n12_N6G123233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G123233barEv,_ZTv0_n16_N6G123233barEv),
+};
+extern VTBL_ENTRY _ZTV6G12323[];
+extern void _ZN3E123barEv();
+static VTBL_ENTRY _tg__ZTV3E12__6G12323[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E12[0]),
+ (VTBL_ENTRY)&_ZN3E123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__3E12__6G12323[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E12[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3F323barEv();
+static VTBL_ENTRY _tg__ZTV3F32__6G12323[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F32[0]),
+ (VTBL_ENTRY)&_ZN3F323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N3F323barEv,_ZTv0_n16_N3F323barEv)();
+extern void ABISELECT(_ZThn16_N3F323barEv,_ZThn8_N3F323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__3F32__6G12323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F32[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3F323barEv,_ZTv0_n16_N3F323barEv),
+};
+static VTT_ENTRY vtt_G12323[] = {
+ {&(_ZTV6G12323[6]), 6,28},
+ {&(_ZTV6G12323[12]), 12,28},
+ {&(_ZTV6G12323[16]), 16,28},
+ {&(_ZTV6G12323[21]), 21,28},
+ {&(_ZTV6G12323[26]), 26,28},
+ {&(_tg__ZTV3E12__6G12323[3]), 3,4},
+ {&(_tg__ZTV3AA1__3E12__6G12323[3]), 3,4},
+ {&(_tg__ZTV3F32__6G12323[3]), 3,4},
+ {&(_tg__ZTV3AA3__3F32__6G12323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6G12323[];
+extern VTBL_ENTRY _ZTV6G12323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G12323[];
+static VTBL_ENTRY alt_thunk_names93[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3F323barEv,_ZTv0_n16_N3F323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F323barEv,_ZThn8_N3F323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G123233fooEv,_ZTv0_n12_N6G123233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G123233fooEv,_ZThn32_N6G123233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G123233fooEv,_ZThn16_N6G123233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G123233barEv,_ZTv0_n16_N6G123233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G123233barEv,_ZThn32_N6G123233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G123233barEv,_ZThn24_N6G123233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G123233barEv,_ZThn8_N6G123233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G12323 = { "G12323", // class name
+ bases_G12323, 4,
+ &(vtc_G12323[0]), // expected_vtbl_contents
+ &(vtt_G12323[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G12323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G12323),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G12323),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names93,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G12333 : virtual E12 , virtual F33 {
+ int pg;
+ virtual void foo(); // _ZN6G123333fooEv
+ virtual void bar(); // _ZN6G123333barEv
+ ~G12333(); // tgen
+ G12333(); // tgen
+};
+//SIG(1 G12333) C1{ VBC2{ VBC3{ v1 Fi} v2 Fi} VBC4{ VBC5{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void G12333 ::foo(){vfunc_called(this, "_ZN6G123333fooEv");}
+void G12333 ::bar(){vfunc_called(this, "_ZN6G123333barEv");}
+G12333 ::~G12333(){ note_dtor("G12333", this);} // tgen
+G12333 ::G12333(){ note_ctor("G12333", this);} // tgen
+
+static void Test_G12333()
+{
+ extern Class_Descriptor cd_G12333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G12333, buf);
+ G12333 *dp, &lv = *(dp=new (buf) G12333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G12333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G12333)");
+ check_base_class_offset(lv, (AA1*)(E12*), ABISELECT(32,16), "G12333");
+ check_base_class_offset(lv, (E12*), ABISELECT(16,8), "G12333");
+ check_base_class_offset(lv, (AA3*)(F33*), ABISELECT(64,32), "G12333");
+ check_base_class_offset(lv, (F33*), ABISELECT(48,24), "G12333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G12333.pg");
+ test_class_info(&lv, &cd_G12333);
+ dp->~G12333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG12333(Test_G12333, "G12333", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G12333C1Ev();
+extern void _ZN6G12333D1Ev();
+Name_Map name_map_G12333[] = {
+ NSPAIR(_ZN6G12333C1Ev),
+ NSPAIR(_ZN6G12333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_E12;
+extern VTBL_ENTRY _ZTI3E12[];
+extern VTBL_ENTRY _ZTV3E12[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E12[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_F33;
+extern VTBL_ENTRY _ZTI3F33[];
+extern VTBL_ENTRY _ZTV3F33[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F33[];
+static Base_Class bases_G12333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E12, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F33, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G12333[];
+extern void _ZN6G123333fooEv();
+extern void _ZN6G123333barEv();
+extern void ABISELECT(_ZTv0_n32_N6G123333barEv,_ZTv0_n16_N6G123333barEv)();
+extern void ABISELECT(_ZThn16_N6G123333barEv,_ZThn8_N6G123333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G123333fooEv,_ZTv0_n12_N6G123333fooEv)();
+extern void ABISELECT(_ZThn32_N6G123333fooEv,_ZThn16_N6G123333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G123333fooEv,_ZTv0_n16_N6G123333fooEv)();
+extern void ABISELECT(_ZThn48_N6G123333fooEv,_ZThn24_N6G123333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G123333barEv,_ZTv0_n20_N6G123333barEv)();
+extern void ABISELECT(_ZThn48_N6G123333barEv,_ZThn24_N6G123333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G123333fooEv,_ZTv0_n12_N6G123333fooEv)();
+extern void ABISELECT(_ZThn64_N6G123333fooEv,_ZThn32_N6G123333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G123333barEv,_ZTv0_n16_N6G123333barEv)();
+extern void ABISELECT(_ZThn64_N6G123333barEv,_ZThn32_N6G123333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G12333[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G12333[0]),
+ (VTBL_ENTRY)&_ZN6G123333fooEv,
+ (VTBL_ENTRY)&_ZN6G123333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G12333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G123333barEv,_ZTv0_n16_N6G123333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G12333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G123333fooEv,_ZTv0_n12_N6G123333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G12333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G123333fooEv,_ZTv0_n16_N6G123333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G123333barEv,_ZTv0_n20_N6G123333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G12333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G123333fooEv,_ZTv0_n12_N6G123333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G123333barEv,_ZTv0_n16_N6G123333barEv),
+};
+extern VTBL_ENTRY _ZTV6G12333[];
+extern void _ZN3E123barEv();
+static VTBL_ENTRY _tg__ZTV3E12__6G12333[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E12[0]),
+ (VTBL_ENTRY)&_ZN3E123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__3E12__6G12333[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E12[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3F333fooEv();
+extern void _ZN3F333barEv();
+static VTBL_ENTRY _tg__ZTV3F33__6G12333[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F33[0]),
+ (VTBL_ENTRY)&_ZN3F333fooEv,
+ (VTBL_ENTRY)&_ZN3F333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F333fooEv,_ZTv0_n12_N3F333fooEv)();
+extern void ABISELECT(_ZThn16_N3F333fooEv,_ZThn8_N3F333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N3F333barEv,_ZTv0_n16_N3F333barEv)();
+extern void ABISELECT(_ZThn16_N3F333barEv,_ZThn8_N3F333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__3F33__6G12333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F33[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F333fooEv,_ZTv0_n12_N3F333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3F333barEv,_ZTv0_n16_N3F333barEv),
+};
+static VTT_ENTRY vtt_G12333[] = {
+ {&(_ZTV6G12333[6]), 6,30},
+ {&(_ZTV6G12333[12]), 12,30},
+ {&(_ZTV6G12333[16]), 16,30},
+ {&(_ZTV6G12333[22]), 22,30},
+ {&(_ZTV6G12333[28]), 28,30},
+ {&(_tg__ZTV3E12__6G12333[3]), 3,4},
+ {&(_tg__ZTV3AA1__3E12__6G12333[3]), 3,4},
+ {&(_tg__ZTV3F33__6G12333[3]), 3,5},
+ {&(_tg__ZTV3AA3__3F33__6G12333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6G12333[];
+extern VTBL_ENTRY _ZTV6G12333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G12333[];
+static VTBL_ENTRY alt_thunk_names94[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3F333barEv,_ZTv0_n16_N3F333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F333barEv,_ZThn8_N3F333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F333fooEv,_ZTv0_n12_N3F333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F333fooEv,_ZThn8_N3F333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6G123333barEv,_ZTv0_n20_N6G123333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G123333barEv,_ZThn24_N6G123333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G123333fooEv,_ZTv0_n16_N6G123333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G123333fooEv,_ZThn24_N6G123333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G123333fooEv,_ZTv0_n12_N6G123333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G123333fooEv,_ZThn32_N6G123333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G123333fooEv,_ZThn16_N6G123333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G123333barEv,_ZTv0_n16_N6G123333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G123333barEv,_ZThn32_N6G123333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G123333barEv,_ZThn8_N6G123333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G12333 = { "G12333", // class name
+ bases_G12333, 4,
+ &(vtc_G12333[0]), // expected_vtbl_contents
+ &(vtt_G12333[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G12333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G12333),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G12333),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names94,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G13111 : virtual E13 , virtual F11 {
+ int pg;
+ virtual void foo(); // _ZN6G131113fooEv
+ ~G13111(); // tgen
+ G13111(); // tgen
+};
+//SIG(1 G13111) C1{ VBC2{ VBC3{ v1 Fi} v1 v2 Fi} VBC4{ VBC3 v1 Fi} v1 Fi}
+
+
+void G13111 ::foo(){vfunc_called(this, "_ZN6G131113fooEv");}
+G13111 ::~G13111(){ note_dtor("G13111", this);} // tgen
+G13111 ::G13111(){ note_ctor("G13111", this);} // tgen
+
+static void Test_G13111()
+{
+ extern Class_Descriptor cd_G13111;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_G13111, buf);
+ G13111 *dp, &lv = *(dp=new (buf) G13111());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(G13111)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G13111)");
+ check_base_class_offset(lv, (AA1*)(E13*), ABISELECT(32,16), "G13111");
+ check_base_class_offset(lv, (AA1*)(F11*), ABISELECT(32,16), "G13111");
+ check_base_class_offset(lv, (E13*), ABISELECT(16,8), "G13111");
+ check_base_class_offset(lv, (F11*), ABISELECT(48,24), "G13111");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G13111.pg");
+ test_class_info(&lv, &cd_G13111);
+ dp->~G13111();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG13111(Test_G13111, "G13111", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6G13111C1Ev();
+extern void _ZN6G13111D1Ev();
+Name_Map name_map_G13111[] = {
+ NSPAIR(_ZN6G13111C1Ev),
+ NSPAIR(_ZN6G13111D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_E13;
+extern VTBL_ENTRY _ZTI3E13[];
+extern VTBL_ENTRY _ZTV3E13[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E13[];
+extern Class_Descriptor cd_F11;
+extern VTBL_ENTRY _ZTI3F11[];
+extern VTBL_ENTRY _ZTV3F11[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F11[];
+static Base_Class bases_G13111[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E13, ABISELECT(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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_F11, 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
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G13111[];
+extern void _ZN6G131113fooEv();
+extern void ABISELECT(_ZTv0_n32_N6G131113fooEv,_ZTv0_n16_N6G131113fooEv)();
+extern void ABISELECT(_ZThn16_N6G131113fooEv,_ZThn8_N6G131113fooEv)() __attribute__((weak));
+extern void _ZN3E133barEv();
+extern void ABISELECT(_ZTv0_n24_N6G131113fooEv,_ZTv0_n12_N6G131113fooEv)();
+extern void ABISELECT(_ZThn32_N6G131113fooEv,_ZThn16_N6G131113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G131113fooEv,_ZTv0_n16_N6G131113fooEv)();
+extern void ABISELECT(_ZThn48_N6G131113fooEv,_ZThn24_N6G131113fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G13111[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G13111[0]),
+ (VTBL_ENTRY)&_ZN6G131113fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G13111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G131113fooEv,_ZTv0_n16_N6G131113fooEv),
+ (VTBL_ENTRY)&_ZN3E133barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G13111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G131113fooEv,_ZTv0_n12_N6G131113fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G13111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G131113fooEv,_ZTv0_n16_N6G131113fooEv),
+};
+extern VTBL_ENTRY _ZTV6G13111[];
+extern void _ZN3E133fooEv();
+extern void _ZN3E133barEv();
+static VTBL_ENTRY _tg__ZTV3E13__6G13111[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E13[0]),
+ (VTBL_ENTRY)&_ZN3E133fooEv,
+ (VTBL_ENTRY)&_ZN3E133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E133fooEv,_ZTv0_n12_N3E133fooEv)();
+extern void ABISELECT(_ZThn16_N3E133fooEv,_ZThn8_N3E133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__3E13__6G13111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E13[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E133fooEv,_ZTv0_n12_N3E133fooEv),
+};
+extern void _ZN3F113fooEv();
+static VTBL_ENTRY _tg__ZTV3F11__6G13111[] = {
+ ABISELECT(-16,-8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F11[0]),
+ (VTBL_ENTRY)&_ZN3F113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__3F11__6G13111[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI3F11[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv),
+};
+static VTT_ENTRY vtt_G13111[] = {
+ {&(_ZTV6G13111[5]), 5,22},
+ {&(_ZTV6G13111[11]), 11,22},
+ {&(_ZTV6G13111[16]), 16,22},
+ {&(_ZTV6G13111[21]), 21,22},
+ {&(_tg__ZTV3E13__6G13111[3]), 3,5},
+ {&(_tg__ZTV3AA1__3E13__6G13111[3]), 3,4},
+ {&(_tg__ZTV3F11__6G13111[3]), 3,4},
+ {&(_tg__ZTV3AA1__3F11__6G13111[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G13111[];
+extern VTBL_ENTRY _ZTV6G13111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G13111[];
+static VTBL_ENTRY alt_thunk_names95[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E133fooEv,_ZTv0_n12_N3E133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E133fooEv,_ZThn8_N3E133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G131113fooEv,_ZTv0_n12_N6G131113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G131113fooEv,_ZThn16_N6G131113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G131113fooEv,_ZTv0_n16_N6G131113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G131113fooEv,_ZThn24_N6G131113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G131113fooEv,_ZThn8_N6G131113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G13111 = { "G13111", // class name
+ bases_G13111, 3,
+ &(vtc_G13111[0]), // expected_vtbl_contents
+ &(vtt_G13111[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6G13111),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G13111),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G13111),8, //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 G13113 : virtual E13 , virtual F11 {
+ int pg;
+ virtual void foo(); // _ZN6G131133fooEv
+ virtual void bar(); // _ZN6G131133barEv
+ ~G13113(); // tgen
+ G13113(); // tgen
+};
+//SIG(1 G13113) C1{ VBC2{ VBC3{ v1 Fi} v1 v2 Fi} VBC4{ VBC3 v1 Fi} v1 v2 Fi}
+
+
+void G13113 ::foo(){vfunc_called(this, "_ZN6G131133fooEv");}
+void G13113 ::bar(){vfunc_called(this, "_ZN6G131133barEv");}
+G13113 ::~G13113(){ note_dtor("G13113", this);} // tgen
+G13113 ::G13113(){ note_ctor("G13113", this);} // tgen
+
+static void Test_G13113()
+{
+ extern Class_Descriptor cd_G13113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_G13113, buf);
+ G13113 *dp, &lv = *(dp=new (buf) G13113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(G13113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G13113)");
+ check_base_class_offset(lv, (AA1*)(E13*), ABISELECT(32,16), "G13113");
+ check_base_class_offset(lv, (AA1*)(F11*), ABISELECT(32,16), "G13113");
+ check_base_class_offset(lv, (E13*), ABISELECT(16,8), "G13113");
+ check_base_class_offset(lv, (F11*), ABISELECT(48,24), "G13113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G13113.pg");
+ test_class_info(&lv, &cd_G13113);
+ dp->~G13113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG13113(Test_G13113, "G13113", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6G13113C1Ev();
+extern void _ZN6G13113D1Ev();
+Name_Map name_map_G13113[] = {
+ NSPAIR(_ZN6G13113C1Ev),
+ NSPAIR(_ZN6G13113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_E13;
+extern VTBL_ENTRY _ZTI3E13[];
+extern VTBL_ENTRY _ZTV3E13[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E13[];
+extern Class_Descriptor cd_F11;
+extern VTBL_ENTRY _ZTI3F11[];
+extern VTBL_ENTRY _ZTV3F11[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F11[];
+static Base_Class bases_G13113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E13, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_F11, 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
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G13113[];
+extern void _ZN6G131133fooEv();
+extern void _ZN6G131133barEv();
+extern void ABISELECT(_ZTv0_n32_N6G131133fooEv,_ZTv0_n16_N6G131133fooEv)();
+extern void ABISELECT(_ZThn16_N6G131133fooEv,_ZThn8_N6G131133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G131133barEv,_ZTv0_n20_N6G131133barEv)();
+extern void ABISELECT(_ZThn16_N6G131133barEv,_ZThn8_N6G131133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G131133fooEv,_ZTv0_n12_N6G131133fooEv)();
+extern void ABISELECT(_ZThn32_N6G131133fooEv,_ZThn16_N6G131133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G131133fooEv,_ZTv0_n16_N6G131133fooEv)();
+extern void ABISELECT(_ZThn48_N6G131133fooEv,_ZThn24_N6G131133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G13113[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G13113[0]),
+ (VTBL_ENTRY)&_ZN6G131133fooEv,
+ (VTBL_ENTRY)&_ZN6G131133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G13113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G131133fooEv,_ZTv0_n16_N6G131133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G131133barEv,_ZTv0_n20_N6G131133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G13113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G131133fooEv,_ZTv0_n12_N6G131133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G13113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G131133fooEv,_ZTv0_n16_N6G131133fooEv),
+};
+extern VTBL_ENTRY _ZTV6G13113[];
+extern void _ZN3E133fooEv();
+extern void _ZN3E133barEv();
+static VTBL_ENTRY _tg__ZTV3E13__6G13113[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E13[0]),
+ (VTBL_ENTRY)&_ZN3E133fooEv,
+ (VTBL_ENTRY)&_ZN3E133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E133fooEv,_ZTv0_n12_N3E133fooEv)();
+extern void ABISELECT(_ZThn16_N3E133fooEv,_ZThn8_N3E133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__3E13__6G13113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E13[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E133fooEv,_ZTv0_n12_N3E133fooEv),
+};
+extern void _ZN3F113fooEv();
+static VTBL_ENTRY _tg__ZTV3F11__6G13113[] = {
+ ABISELECT(-16,-8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F11[0]),
+ (VTBL_ENTRY)&_ZN3F113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__3F11__6G13113[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI3F11[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv),
+};
+static VTT_ENTRY vtt_G13113[] = {
+ {&(_ZTV6G13113[5]), 5,23},
+ {&(_ZTV6G13113[12]), 12,23},
+ {&(_ZTV6G13113[17]), 17,23},
+ {&(_ZTV6G13113[22]), 22,23},
+ {&(_tg__ZTV3E13__6G13113[3]), 3,5},
+ {&(_tg__ZTV3AA1__3E13__6G13113[3]), 3,4},
+ {&(_tg__ZTV3F11__6G13113[3]), 3,4},
+ {&(_tg__ZTV3AA1__3F11__6G13113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G13113[];
+extern VTBL_ENTRY _ZTV6G13113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G13113[];
+static VTBL_ENTRY alt_thunk_names96[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E133fooEv,_ZTv0_n12_N3E133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E133fooEv,_ZThn8_N3E133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G131133fooEv,_ZTv0_n12_N6G131133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G131133fooEv,_ZThn16_N6G131133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6G131133barEv,_ZTv0_n20_N6G131133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G131133barEv,_ZThn8_N6G131133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G131133fooEv,_ZTv0_n16_N6G131133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G131133fooEv,_ZThn24_N6G131133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G131133fooEv,_ZThn8_N6G131133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G13113 = { "G13113", // class name
+ bases_G13113, 3,
+ &(vtc_G13113[0]), // expected_vtbl_contents
+ &(vtt_G13113[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6G13113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G13113),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G13113),8, //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 G13123 : virtual E13 , virtual F12 {
+ int pg;
+ virtual void foo(); // _ZN6G131233fooEv
+ virtual void bar(); // _ZN6G131233barEv
+ ~G13123(); // tgen
+ G13123(); // tgen
+};
+//SIG(1 G13123) C1{ VBC2{ VBC3{ v1 Fi} v1 v2 Fi} VBC4{ VBC3 v2 Fi} v1 v2 Fi}
+
+
+void G13123 ::foo(){vfunc_called(this, "_ZN6G131233fooEv");}
+void G13123 ::bar(){vfunc_called(this, "_ZN6G131233barEv");}
+G13123 ::~G13123(){ note_dtor("G13123", this);} // tgen
+G13123 ::G13123(){ note_ctor("G13123", this);} // tgen
+
+static void Test_G13123()
+{
+ extern Class_Descriptor cd_G13123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_G13123, buf);
+ G13123 *dp, &lv = *(dp=new (buf) G13123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(G13123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G13123)");
+ check_base_class_offset(lv, (AA1*)(E13*), ABISELECT(32,16), "G13123");
+ check_base_class_offset(lv, (AA1*)(F12*), ABISELECT(32,16), "G13123");
+ check_base_class_offset(lv, (E13*), ABISELECT(16,8), "G13123");
+ check_base_class_offset(lv, (F12*), ABISELECT(48,24), "G13123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G13123.pg");
+ test_class_info(&lv, &cd_G13123);
+ dp->~G13123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG13123(Test_G13123, "G13123", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6G13123C1Ev();
+extern void _ZN6G13123D1Ev();
+Name_Map name_map_G13123[] = {
+ NSPAIR(_ZN6G13123C1Ev),
+ NSPAIR(_ZN6G13123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_E13;
+extern VTBL_ENTRY _ZTI3E13[];
+extern VTBL_ENTRY _ZTV3E13[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E13[];
+extern Class_Descriptor cd_F12;
+extern VTBL_ENTRY _ZTI3F12[];
+extern VTBL_ENTRY _ZTV3F12[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F12[];
+static Base_Class bases_G13123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E13, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_F12, 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
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G13123[];
+extern void _ZN6G131233fooEv();
+extern void _ZN6G131233barEv();
+extern void ABISELECT(_ZTv0_n32_N6G131233fooEv,_ZTv0_n16_N6G131233fooEv)();
+extern void ABISELECT(_ZThn16_N6G131233fooEv,_ZThn8_N6G131233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G131233barEv,_ZTv0_n20_N6G131233barEv)();
+extern void ABISELECT(_ZThn16_N6G131233barEv,_ZThn8_N6G131233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G131233fooEv,_ZTv0_n12_N6G131233fooEv)();
+extern void ABISELECT(_ZThn32_N6G131233fooEv,_ZThn16_N6G131233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G131233barEv,_ZTv0_n16_N6G131233barEv)();
+extern void ABISELECT(_ZThn48_N6G131233barEv,_ZThn24_N6G131233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G13123[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G13123[0]),
+ (VTBL_ENTRY)&_ZN6G131233fooEv,
+ (VTBL_ENTRY)&_ZN6G131233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G13123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G131233fooEv,_ZTv0_n16_N6G131233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G131233barEv,_ZTv0_n20_N6G131233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G13123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G131233fooEv,_ZTv0_n12_N6G131233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G13123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G131233barEv,_ZTv0_n16_N6G131233barEv),
+};
+extern VTBL_ENTRY _ZTV6G13123[];
+extern void _ZN3E133fooEv();
+extern void _ZN3E133barEv();
+static VTBL_ENTRY _tg__ZTV3E13__6G13123[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E13[0]),
+ (VTBL_ENTRY)&_ZN3E133fooEv,
+ (VTBL_ENTRY)&_ZN3E133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E133fooEv,_ZTv0_n12_N3E133fooEv)();
+extern void ABISELECT(_ZThn16_N3E133fooEv,_ZThn8_N3E133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__3E13__6G13123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E13[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E133fooEv,_ZTv0_n12_N3E133fooEv),
+};
+extern void _ZN3F123barEv();
+static VTBL_ENTRY _tg__ZTV3F12__6G13123[] = {
+ ABISELECT(-16,-8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F12[0]),
+ (VTBL_ENTRY)&_ZN3F123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__3F12__6G13123[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI3F12[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+static VTT_ENTRY vtt_G13123[] = {
+ {&(_ZTV6G13123[5]), 5,23},
+ {&(_ZTV6G13123[12]), 12,23},
+ {&(_ZTV6G13123[17]), 17,23},
+ {&(_ZTV6G13123[22]), 22,23},
+ {&(_tg__ZTV3E13__6G13123[3]), 3,5},
+ {&(_tg__ZTV3AA1__3E13__6G13123[3]), 3,4},
+ {&(_tg__ZTV3F12__6G13123[3]), 3,4},
+ {&(_tg__ZTV3AA1__3F12__6G13123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G13123[];
+extern VTBL_ENTRY _ZTV6G13123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G13123[];
+static VTBL_ENTRY alt_thunk_names97[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E133fooEv,_ZTv0_n12_N3E133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E133fooEv,_ZThn8_N3E133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G131233barEv,_ZTv0_n16_N6G131233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G131233barEv,_ZThn24_N6G131233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G131233fooEv,_ZTv0_n12_N6G131233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G131233fooEv,_ZThn16_N6G131233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6G131233barEv,_ZTv0_n20_N6G131233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G131233barEv,_ZThn8_N6G131233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G131233fooEv,_ZTv0_n16_N6G131233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G131233fooEv,_ZThn8_N6G131233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G13123 = { "G13123", // class name
+ bases_G13123, 3,
+ &(vtc_G13123[0]), // expected_vtbl_contents
+ &(vtt_G13123[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6G13123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G13123),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G13123),8, //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 G13133 : virtual E13 , virtual F13 {
+ int pg;
+ virtual void foo(); // _ZN6G131333fooEv
+ virtual void bar(); // _ZN6G131333barEv
+ ~G13133(); // tgen
+ G13133(); // tgen
+};
+//SIG(1 G13133) C1{ VBC2{ VBC3{ v1 Fi} v1 v2 Fi} VBC4{ VBC3 v1 v2 Fi} v1 v2 Fi}
+
+
+void G13133 ::foo(){vfunc_called(this, "_ZN6G131333fooEv");}
+void G13133 ::bar(){vfunc_called(this, "_ZN6G131333barEv");}
+G13133 ::~G13133(){ note_dtor("G13133", this);} // tgen
+G13133 ::G13133(){ note_ctor("G13133", this);} // tgen
+
+static void Test_G13133()
+{
+ extern Class_Descriptor cd_G13133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_G13133, buf);
+ G13133 *dp, &lv = *(dp=new (buf) G13133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(G13133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G13133)");
+ check_base_class_offset(lv, (AA1*)(E13*), ABISELECT(32,16), "G13133");
+ check_base_class_offset(lv, (AA1*)(F13*), ABISELECT(32,16), "G13133");
+ check_base_class_offset(lv, (E13*), ABISELECT(16,8), "G13133");
+ check_base_class_offset(lv, (F13*), ABISELECT(48,24), "G13133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G13133.pg");
+ test_class_info(&lv, &cd_G13133);
+ dp->~G13133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG13133(Test_G13133, "G13133", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6G13133C1Ev();
+extern void _ZN6G13133D1Ev();
+Name_Map name_map_G13133[] = {
+ NSPAIR(_ZN6G13133C1Ev),
+ NSPAIR(_ZN6G13133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_E13;
+extern VTBL_ENTRY _ZTI3E13[];
+extern VTBL_ENTRY _ZTV3E13[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E13[];
+extern Class_Descriptor cd_F13;
+extern VTBL_ENTRY _ZTI3F13[];
+extern VTBL_ENTRY _ZTV3F13[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F13[];
+static Base_Class bases_G13133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E13, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_F13, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G13133[];
+extern void _ZN6G131333fooEv();
+extern void _ZN6G131333barEv();
+extern void ABISELECT(_ZTv0_n32_N6G131333fooEv,_ZTv0_n16_N6G131333fooEv)();
+extern void ABISELECT(_ZThn16_N6G131333fooEv,_ZThn8_N6G131333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G131333barEv,_ZTv0_n20_N6G131333barEv)();
+extern void ABISELECT(_ZThn16_N6G131333barEv,_ZThn8_N6G131333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G131333fooEv,_ZTv0_n12_N6G131333fooEv)();
+extern void ABISELECT(_ZThn32_N6G131333fooEv,_ZThn16_N6G131333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G131333fooEv,_ZTv0_n16_N6G131333fooEv)();
+extern void ABISELECT(_ZThn48_N6G131333fooEv,_ZThn24_N6G131333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G131333barEv,_ZTv0_n20_N6G131333barEv)();
+extern void ABISELECT(_ZThn48_N6G131333barEv,_ZThn24_N6G131333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G13133[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G13133[0]),
+ (VTBL_ENTRY)&_ZN6G131333fooEv,
+ (VTBL_ENTRY)&_ZN6G131333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G13133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G131333fooEv,_ZTv0_n16_N6G131333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G131333barEv,_ZTv0_n20_N6G131333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G13133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G131333fooEv,_ZTv0_n12_N6G131333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G13133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G131333fooEv,_ZTv0_n16_N6G131333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G131333barEv,_ZTv0_n20_N6G131333barEv),
+};
+extern VTBL_ENTRY _ZTV6G13133[];
+extern void _ZN3E133fooEv();
+extern void _ZN3E133barEv();
+static VTBL_ENTRY _tg__ZTV3E13__6G13133[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E13[0]),
+ (VTBL_ENTRY)&_ZN3E133fooEv,
+ (VTBL_ENTRY)&_ZN3E133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E133fooEv,_ZTv0_n12_N3E133fooEv)();
+extern void ABISELECT(_ZThn16_N3E133fooEv,_ZThn8_N3E133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__3E13__6G13133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E13[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E133fooEv,_ZTv0_n12_N3E133fooEv),
+};
+extern void _ZN3F133fooEv();
+extern void _ZN3F133barEv();
+static VTBL_ENTRY _tg__ZTV3F13__6G13133[] = {
+ ABISELECT(-16,-8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F13[0]),
+ (VTBL_ENTRY)&_ZN3F133fooEv,
+ (VTBL_ENTRY)&_ZN3F133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F133fooEv,_ZTv0_n12_N3F133fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__3F13__6G13133[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI3F13[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F133fooEv,_ZTv0_n12_N3F133fooEv),
+};
+static VTT_ENTRY vtt_G13133[] = {
+ {&(_ZTV6G13133[5]), 5,25},
+ {&(_ZTV6G13133[12]), 12,25},
+ {&(_ZTV6G13133[17]), 17,25},
+ {&(_ZTV6G13133[23]), 23,25},
+ {&(_tg__ZTV3E13__6G13133[3]), 3,5},
+ {&(_tg__ZTV3AA1__3E13__6G13133[3]), 3,4},
+ {&(_tg__ZTV3F13__6G13133[3]), 3,5},
+ {&(_tg__ZTV3AA1__3F13__6G13133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G13133[];
+extern VTBL_ENTRY _ZTV6G13133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G13133[];
+static VTBL_ENTRY alt_thunk_names98[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E133fooEv,_ZTv0_n12_N3E133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E133fooEv,_ZThn8_N3E133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G131333fooEv,_ZTv0_n12_N6G131333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G131333fooEv,_ZThn16_N6G131333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6G131333barEv,_ZTv0_n20_N6G131333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G131333barEv,_ZThn24_N6G131333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G131333barEv,_ZThn8_N6G131333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G131333fooEv,_ZTv0_n16_N6G131333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G131333fooEv,_ZThn24_N6G131333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G131333fooEv,_ZThn8_N6G131333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G13133 = { "G13133", // class name
+ bases_G13133, 3,
+ &(vtc_G13133[0]), // expected_vtbl_contents
+ &(vtt_G13133[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6G13133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G13133),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G13133),8, //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 G13213 : virtual E13 , virtual F21 {
+ int pg;
+ virtual void foo(); // _ZN6G132133fooEv
+ virtual void bar(); // _ZN6G132133barEv
+ ~G13213(); // tgen
+ G13213(); // tgen
+};
+//SIG(1 G13213) C1{ VBC2{ VBC3{ v1 Fi} v1 v2 Fi} VBC4{ VBC5{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void G13213 ::foo(){vfunc_called(this, "_ZN6G132133fooEv");}
+void G13213 ::bar(){vfunc_called(this, "_ZN6G132133barEv");}
+G13213 ::~G13213(){ note_dtor("G13213", this);} // tgen
+G13213 ::G13213(){ note_ctor("G13213", this);} // tgen
+
+static void Test_G13213()
+{
+ extern Class_Descriptor cd_G13213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G13213, buf);
+ G13213 *dp, &lv = *(dp=new (buf) G13213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G13213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G13213)");
+ check_base_class_offset(lv, (AA1*)(E13*), ABISELECT(32,16), "G13213");
+ check_base_class_offset(lv, (E13*), ABISELECT(16,8), "G13213");
+ check_base_class_offset(lv, (AA2*)(F21*), ABISELECT(64,32), "G13213");
+ check_base_class_offset(lv, (F21*), ABISELECT(48,24), "G13213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G13213.pg");
+ test_class_info(&lv, &cd_G13213);
+ dp->~G13213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG13213(Test_G13213, "G13213", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G13213C1Ev();
+extern void _ZN6G13213D1Ev();
+Name_Map name_map_G13213[] = {
+ NSPAIR(_ZN6G13213C1Ev),
+ NSPAIR(_ZN6G13213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_E13;
+extern VTBL_ENTRY _ZTI3E13[];
+extern VTBL_ENTRY _ZTV3E13[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E13[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_F21;
+extern VTBL_ENTRY _ZTI3F21[];
+extern VTBL_ENTRY _ZTV3F21[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F21[];
+static Base_Class bases_G13213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E13, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F21, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G13213[];
+extern void _ZN6G132133fooEv();
+extern void _ZN6G132133barEv();
+extern void ABISELECT(_ZTv0_n32_N6G132133fooEv,_ZTv0_n16_N6G132133fooEv)();
+extern void ABISELECT(_ZThn16_N6G132133fooEv,_ZThn8_N6G132133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G132133barEv,_ZTv0_n20_N6G132133barEv)();
+extern void ABISELECT(_ZThn16_N6G132133barEv,_ZThn8_N6G132133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G132133fooEv,_ZTv0_n12_N6G132133fooEv)();
+extern void ABISELECT(_ZThn32_N6G132133fooEv,_ZThn16_N6G132133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G132133fooEv,_ZTv0_n16_N6G132133fooEv)();
+extern void ABISELECT(_ZThn48_N6G132133fooEv,_ZThn24_N6G132133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G132133barEv,_ZTv0_n12_N6G132133barEv)();
+extern void ABISELECT(_ZThn64_N6G132133barEv,_ZThn32_N6G132133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G13213[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G13213[0]),
+ (VTBL_ENTRY)&_ZN6G132133fooEv,
+ (VTBL_ENTRY)&_ZN6G132133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G13213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G132133fooEv,_ZTv0_n16_N6G132133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G132133barEv,_ZTv0_n20_N6G132133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G13213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G132133fooEv,_ZTv0_n12_N6G132133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G13213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G132133fooEv,_ZTv0_n16_N6G132133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G13213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G132133barEv,_ZTv0_n12_N6G132133barEv),
+};
+extern VTBL_ENTRY _ZTV6G13213[];
+extern void _ZN3E133fooEv();
+extern void _ZN3E133barEv();
+static VTBL_ENTRY _tg__ZTV3E13__6G13213[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E13[0]),
+ (VTBL_ENTRY)&_ZN3E133fooEv,
+ (VTBL_ENTRY)&_ZN3E133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E133fooEv,_ZTv0_n12_N3E133fooEv)();
+extern void ABISELECT(_ZThn16_N3E133fooEv,_ZThn8_N3E133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__3E13__6G13213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E13[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E133fooEv,_ZTv0_n12_N3E133fooEv),
+};
+extern void _ZN3F213fooEv();
+static VTBL_ENTRY _tg__ZTV3F21__6G13213[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F21[0]),
+ (VTBL_ENTRY)&_ZN3F213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__3F21__6G13213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F21[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+static VTT_ENTRY vtt_G13213[] = {
+ {&(_ZTV6G13213[6]), 6,28},
+ {&(_ZTV6G13213[13]), 13,28},
+ {&(_ZTV6G13213[18]), 18,28},
+ {&(_ZTV6G13213[23]), 23,28},
+ {&(_ZTV6G13213[27]), 27,28},
+ {&(_tg__ZTV3E13__6G13213[3]), 3,5},
+ {&(_tg__ZTV3AA1__3E13__6G13213[3]), 3,4},
+ {&(_tg__ZTV3F21__6G13213[3]), 3,4},
+ {&(_tg__ZTV3AA2__3F21__6G13213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G13213[];
+extern VTBL_ENTRY _ZTV6G13213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G13213[];
+static VTBL_ENTRY alt_thunk_names99[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E133fooEv,_ZTv0_n12_N3E133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E133fooEv,_ZThn8_N3E133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G132133barEv,_ZTv0_n12_N6G132133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G132133barEv,_ZThn32_N6G132133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G132133fooEv,_ZTv0_n12_N6G132133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G132133fooEv,_ZThn16_N6G132133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6G132133barEv,_ZTv0_n20_N6G132133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G132133barEv,_ZThn8_N6G132133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G132133fooEv,_ZTv0_n16_N6G132133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G132133fooEv,_ZThn24_N6G132133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G132133fooEv,_ZThn8_N6G132133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G13213 = { "G13213", // class name
+ bases_G13213, 4,
+ &(vtc_G13213[0]), // expected_vtbl_contents
+ &(vtt_G13213[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G13213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G13213),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G13213),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names99,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G13222 : virtual E13 , virtual F22 {
+ int pg;
+ virtual void bar(); // _ZN6G132223barEv
+ ~G13222(); // tgen
+ G13222(); // tgen
+};
+//SIG(1 G13222) C1{ VBC2{ VBC3{ v2 Fi} v2 v1 Fi} VBC4{ VBC5{ v1 Fi} v1 Fi} v1 Fi}
+
+
+void G13222 ::bar(){vfunc_called(this, "_ZN6G132223barEv");}
+G13222 ::~G13222(){ note_dtor("G13222", this);} // tgen
+G13222 ::G13222(){ note_ctor("G13222", this);} // tgen
+
+static void Test_G13222()
+{
+ extern Class_Descriptor cd_G13222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G13222, buf);
+ G13222 *dp, &lv = *(dp=new (buf) G13222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G13222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G13222)");
+ check_base_class_offset(lv, (AA1*)(E13*), ABISELECT(32,16), "G13222");
+ check_base_class_offset(lv, (E13*), ABISELECT(16,8), "G13222");
+ check_base_class_offset(lv, (AA2*)(F22*), ABISELECT(64,32), "G13222");
+ check_base_class_offset(lv, (F22*), ABISELECT(48,24), "G13222");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G13222.pg");
+ test_class_info(&lv, &cd_G13222);
+ dp->~G13222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG13222(Test_G13222, "G13222", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G13222C1Ev();
+extern void _ZN6G13222D1Ev();
+Name_Map name_map_G13222[] = {
+ NSPAIR(_ZN6G13222C1Ev),
+ NSPAIR(_ZN6G13222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_E13;
+extern VTBL_ENTRY _ZTI3E13[];
+extern VTBL_ENTRY _ZTV3E13[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E13[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_F22;
+extern VTBL_ENTRY _ZTI3F22[];
+extern VTBL_ENTRY _ZTV3F22[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F22[];
+static Base_Class bases_G13222[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E13, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F22, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G13222[];
+extern void _ZN6G132223barEv();
+extern void _ZN3E133fooEv();
+extern void ABISELECT(_ZTv0_n40_N6G132223barEv,_ZTv0_n20_N6G132223barEv)();
+extern void ABISELECT(_ZThn16_N6G132223barEv,_ZThn8_N6G132223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N3E133fooEv,_ZTv0_n12_N3E133fooEv)();
+extern void ABISELECT(_ZThn16_N3E133fooEv,_ZThn8_N3E133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G132223barEv,_ZTv0_n16_N6G132223barEv)();
+extern void ABISELECT(_ZThn48_N6G132223barEv,_ZThn24_N6G132223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G132223barEv,_ZTv0_n12_N6G132223barEv)();
+extern void ABISELECT(_ZThn64_N6G132223barEv,_ZThn32_N6G132223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G13222[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G13222[0]),
+ (VTBL_ENTRY)&_ZN6G132223barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G13222[0]),
+ (VTBL_ENTRY)&_ZN3E133fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G132223barEv,_ZTv0_n20_N6G132223barEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G13222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E133fooEv,_ZTv0_n12_N3E133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G13222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G132223barEv,_ZTv0_n16_N6G132223barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G13222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G132223barEv,_ZTv0_n12_N6G132223barEv),
+};
+extern VTBL_ENTRY _ZTV6G13222[];
+extern void _ZN3E133fooEv();
+extern void _ZN3E133barEv();
+static VTBL_ENTRY _tg__ZTV3E13__6G13222[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E13[0]),
+ (VTBL_ENTRY)&_ZN3E133fooEv,
+ (VTBL_ENTRY)&_ZN3E133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E133fooEv,_ZTv0_n12_N3E133fooEv)();
+extern void ABISELECT(_ZThn16_N3E133fooEv,_ZThn8_N3E133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__3E13__6G13222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E13[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E133fooEv,_ZTv0_n12_N3E133fooEv),
+};
+extern void _ZN3F223barEv();
+static VTBL_ENTRY _tg__ZTV3F22__6G13222[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F22[0]),
+ (VTBL_ENTRY)&_ZN3F223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv)();
+extern void ABISELECT(_ZThn16_N3F223barEv,_ZThn8_N3F223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__3F22__6G13222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F22[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv),
+};
+static VTT_ENTRY vtt_G13222[] = {
+ {&(_ZTV6G13222[6]), 6,27},
+ {&(_ZTV6G13222[12]), 12,27},
+ {&(_ZTV6G13222[17]), 17,27},
+ {&(_ZTV6G13222[22]), 22,27},
+ {&(_ZTV6G13222[26]), 26,27},
+ {&(_tg__ZTV3E13__6G13222[3]), 3,5},
+ {&(_tg__ZTV3AA1__3E13__6G13222[3]), 3,4},
+ {&(_tg__ZTV3F22__6G13222[3]), 3,4},
+ {&(_tg__ZTV3AA2__3F22__6G13222[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G13222[];
+extern VTBL_ENTRY _ZTV6G13222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G13222[];
+static VTBL_ENTRY alt_thunk_names100[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F223barEv,_ZThn8_N3F223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G132223barEv,_ZTv0_n12_N6G132223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G132223barEv,_ZThn32_N6G132223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G132223barEv,_ZTv0_n16_N6G132223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G132223barEv,_ZThn24_N6G132223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E133fooEv,_ZTv0_n12_N3E133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E133fooEv,_ZThn8_N3E133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E133fooEv,_ZThn8_N3E133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6G132223barEv,_ZTv0_n20_N6G132223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G132223barEv,_ZThn8_N6G132223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G13222 = { "G13222", // class name
+ bases_G13222, 4,
+ &(vtc_G13222[0]), // expected_vtbl_contents
+ &(vtt_G13222[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G13222),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G13222),27, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G13222),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names100,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G13223 : virtual E13 , virtual F22 {
+ int pg;
+ virtual void foo(); // _ZN6G132233fooEv
+ virtual void bar(); // _ZN6G132233barEv
+ ~G13223(); // tgen
+ G13223(); // tgen
+};
+//SIG(1 G13223) C1{ VBC2{ VBC3{ v1 Fi} v1 v2 Fi} VBC4{ VBC5{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void G13223 ::foo(){vfunc_called(this, "_ZN6G132233fooEv");}
+void G13223 ::bar(){vfunc_called(this, "_ZN6G132233barEv");}
+G13223 ::~G13223(){ note_dtor("G13223", this);} // tgen
+G13223 ::G13223(){ note_ctor("G13223", this);} // tgen
+
+static void Test_G13223()
+{
+ extern Class_Descriptor cd_G13223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G13223, buf);
+ G13223 *dp, &lv = *(dp=new (buf) G13223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G13223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G13223)");
+ check_base_class_offset(lv, (AA1*)(E13*), ABISELECT(32,16), "G13223");
+ check_base_class_offset(lv, (E13*), ABISELECT(16,8), "G13223");
+ check_base_class_offset(lv, (AA2*)(F22*), ABISELECT(64,32), "G13223");
+ check_base_class_offset(lv, (F22*), ABISELECT(48,24), "G13223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G13223.pg");
+ test_class_info(&lv, &cd_G13223);
+ dp->~G13223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG13223(Test_G13223, "G13223", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G13223C1Ev();
+extern void _ZN6G13223D1Ev();
+Name_Map name_map_G13223[] = {
+ NSPAIR(_ZN6G13223C1Ev),
+ NSPAIR(_ZN6G13223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_E13;
+extern VTBL_ENTRY _ZTI3E13[];
+extern VTBL_ENTRY _ZTV3E13[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E13[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_F22;
+extern VTBL_ENTRY _ZTI3F22[];
+extern VTBL_ENTRY _ZTV3F22[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F22[];
+static Base_Class bases_G13223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E13, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F22, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G13223[];
+extern void _ZN6G132233fooEv();
+extern void _ZN6G132233barEv();
+extern void ABISELECT(_ZTv0_n32_N6G132233fooEv,_ZTv0_n16_N6G132233fooEv)();
+extern void ABISELECT(_ZThn16_N6G132233fooEv,_ZThn8_N6G132233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G132233barEv,_ZTv0_n20_N6G132233barEv)();
+extern void ABISELECT(_ZThn16_N6G132233barEv,_ZThn8_N6G132233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G132233fooEv,_ZTv0_n12_N6G132233fooEv)();
+extern void ABISELECT(_ZThn32_N6G132233fooEv,_ZThn16_N6G132233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G132233barEv,_ZTv0_n16_N6G132233barEv)();
+extern void ABISELECT(_ZThn48_N6G132233barEv,_ZThn24_N6G132233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G132233barEv,_ZTv0_n12_N6G132233barEv)();
+extern void ABISELECT(_ZThn64_N6G132233barEv,_ZThn32_N6G132233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G13223[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G13223[0]),
+ (VTBL_ENTRY)&_ZN6G132233fooEv,
+ (VTBL_ENTRY)&_ZN6G132233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G13223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G132233fooEv,_ZTv0_n16_N6G132233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G132233barEv,_ZTv0_n20_N6G132233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G13223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G132233fooEv,_ZTv0_n12_N6G132233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G13223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G132233barEv,_ZTv0_n16_N6G132233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G13223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G132233barEv,_ZTv0_n12_N6G132233barEv),
+};
+extern VTBL_ENTRY _ZTV6G13223[];
+extern void _ZN3E133fooEv();
+extern void _ZN3E133barEv();
+static VTBL_ENTRY _tg__ZTV3E13__6G13223[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E13[0]),
+ (VTBL_ENTRY)&_ZN3E133fooEv,
+ (VTBL_ENTRY)&_ZN3E133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E133fooEv,_ZTv0_n12_N3E133fooEv)();
+extern void ABISELECT(_ZThn16_N3E133fooEv,_ZThn8_N3E133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__3E13__6G13223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E13[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E133fooEv,_ZTv0_n12_N3E133fooEv),
+};
+extern void _ZN3F223barEv();
+static VTBL_ENTRY _tg__ZTV3F22__6G13223[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F22[0]),
+ (VTBL_ENTRY)&_ZN3F223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv)();
+extern void ABISELECT(_ZThn16_N3F223barEv,_ZThn8_N3F223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__3F22__6G13223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F22[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv),
+};
+static VTT_ENTRY vtt_G13223[] = {
+ {&(_ZTV6G13223[6]), 6,28},
+ {&(_ZTV6G13223[13]), 13,28},
+ {&(_ZTV6G13223[18]), 18,28},
+ {&(_ZTV6G13223[23]), 23,28},
+ {&(_ZTV6G13223[27]), 27,28},
+ {&(_tg__ZTV3E13__6G13223[3]), 3,5},
+ {&(_tg__ZTV3AA1__3E13__6G13223[3]), 3,4},
+ {&(_tg__ZTV3F22__6G13223[3]), 3,4},
+ {&(_tg__ZTV3AA2__3F22__6G13223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G13223[];
+extern VTBL_ENTRY _ZTV6G13223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G13223[];
+static VTBL_ENTRY alt_thunk_names101[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F223barEv,_ZThn8_N3F223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E133fooEv,_ZTv0_n12_N3E133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E133fooEv,_ZThn8_N3E133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G132233barEv,_ZTv0_n12_N6G132233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G132233barEv,_ZThn32_N6G132233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G132233barEv,_ZTv0_n16_N6G132233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G132233barEv,_ZThn24_N6G132233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G132233fooEv,_ZTv0_n12_N6G132233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G132233fooEv,_ZThn16_N6G132233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6G132233barEv,_ZTv0_n20_N6G132233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G132233barEv,_ZThn8_N6G132233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G132233fooEv,_ZTv0_n16_N6G132233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G132233fooEv,_ZThn8_N6G132233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G13223 = { "G13223", // class name
+ bases_G13223, 4,
+ &(vtc_G13223[0]), // expected_vtbl_contents
+ &(vtt_G13223[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G13223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G13223),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G13223),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names101,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G13233 : virtual E13 , virtual F23 {
+ int pg;
+ virtual void foo(); // _ZN6G132333fooEv
+ virtual void bar(); // _ZN6G132333barEv
+ ~G13233(); // tgen
+ G13233(); // tgen
+};
+//SIG(1 G13233) C1{ VBC2{ VBC3{ v1 Fi} v1 v2 Fi} VBC4{ VBC5{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void G13233 ::foo(){vfunc_called(this, "_ZN6G132333fooEv");}
+void G13233 ::bar(){vfunc_called(this, "_ZN6G132333barEv");}
+G13233 ::~G13233(){ note_dtor("G13233", this);} // tgen
+G13233 ::G13233(){ note_ctor("G13233", this);} // tgen
+
+static void Test_G13233()
+{
+ extern Class_Descriptor cd_G13233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G13233, buf);
+ G13233 *dp, &lv = *(dp=new (buf) G13233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G13233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G13233)");
+ check_base_class_offset(lv, (AA1*)(E13*), ABISELECT(32,16), "G13233");
+ check_base_class_offset(lv, (E13*), ABISELECT(16,8), "G13233");
+ check_base_class_offset(lv, (AA2*)(F23*), ABISELECT(64,32), "G13233");
+ check_base_class_offset(lv, (F23*), ABISELECT(48,24), "G13233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G13233.pg");
+ test_class_info(&lv, &cd_G13233);
+ dp->~G13233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG13233(Test_G13233, "G13233", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G13233C1Ev();
+extern void _ZN6G13233D1Ev();
+Name_Map name_map_G13233[] = {
+ NSPAIR(_ZN6G13233C1Ev),
+ NSPAIR(_ZN6G13233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_E13;
+extern VTBL_ENTRY _ZTI3E13[];
+extern VTBL_ENTRY _ZTV3E13[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E13[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_F23;
+extern VTBL_ENTRY _ZTI3F23[];
+extern VTBL_ENTRY _ZTV3F23[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F23[];
+static Base_Class bases_G13233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E13, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F23, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G13233[];
+extern void _ZN6G132333fooEv();
+extern void _ZN6G132333barEv();
+extern void ABISELECT(_ZTv0_n32_N6G132333fooEv,_ZTv0_n16_N6G132333fooEv)();
+extern void ABISELECT(_ZThn16_N6G132333fooEv,_ZThn8_N6G132333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G132333barEv,_ZTv0_n20_N6G132333barEv)();
+extern void ABISELECT(_ZThn16_N6G132333barEv,_ZThn8_N6G132333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G132333fooEv,_ZTv0_n12_N6G132333fooEv)();
+extern void ABISELECT(_ZThn32_N6G132333fooEv,_ZThn16_N6G132333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G132333fooEv,_ZTv0_n16_N6G132333fooEv)();
+extern void ABISELECT(_ZThn48_N6G132333fooEv,_ZThn24_N6G132333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G132333barEv,_ZTv0_n20_N6G132333barEv)();
+extern void ABISELECT(_ZThn48_N6G132333barEv,_ZThn24_N6G132333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G132333barEv,_ZTv0_n12_N6G132333barEv)();
+extern void ABISELECT(_ZThn64_N6G132333barEv,_ZThn32_N6G132333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G13233[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G13233[0]),
+ (VTBL_ENTRY)&_ZN6G132333fooEv,
+ (VTBL_ENTRY)&_ZN6G132333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G13233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G132333fooEv,_ZTv0_n16_N6G132333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G132333barEv,_ZTv0_n20_N6G132333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G13233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G132333fooEv,_ZTv0_n12_N6G132333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G13233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G132333fooEv,_ZTv0_n16_N6G132333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G132333barEv,_ZTv0_n20_N6G132333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G13233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G132333barEv,_ZTv0_n12_N6G132333barEv),
+};
+extern VTBL_ENTRY _ZTV6G13233[];
+extern void _ZN3E133fooEv();
+extern void _ZN3E133barEv();
+static VTBL_ENTRY _tg__ZTV3E13__6G13233[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E13[0]),
+ (VTBL_ENTRY)&_ZN3E133fooEv,
+ (VTBL_ENTRY)&_ZN3E133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E133fooEv,_ZTv0_n12_N3E133fooEv)();
+extern void ABISELECT(_ZThn16_N3E133fooEv,_ZThn8_N3E133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__3E13__6G13233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E13[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E133fooEv,_ZTv0_n12_N3E133fooEv),
+};
+extern void _ZN3F233fooEv();
+extern void _ZN3F233barEv();
+static VTBL_ENTRY _tg__ZTV3F23__6G13233[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F23[0]),
+ (VTBL_ENTRY)&_ZN3F233fooEv,
+ (VTBL_ENTRY)&_ZN3F233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F233barEv,_ZTv0_n12_N3F233barEv)();
+extern void ABISELECT(_ZThn16_N3F233barEv,_ZThn8_N3F233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__3F23__6G13233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F23[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F233barEv,_ZTv0_n12_N3F233barEv),
+};
+static VTT_ENTRY vtt_G13233[] = {
+ {&(_ZTV6G13233[6]), 6,30},
+ {&(_ZTV6G13233[13]), 13,30},
+ {&(_ZTV6G13233[18]), 18,30},
+ {&(_ZTV6G13233[24]), 24,30},
+ {&(_ZTV6G13233[29]), 29,30},
+ {&(_tg__ZTV3E13__6G13233[3]), 3,5},
+ {&(_tg__ZTV3AA1__3E13__6G13233[3]), 3,4},
+ {&(_tg__ZTV3F23__6G13233[3]), 3,5},
+ {&(_tg__ZTV3AA2__3F23__6G13233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G13233[];
+extern VTBL_ENTRY _ZTV6G13233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G13233[];
+static VTBL_ENTRY alt_thunk_names102[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F233barEv,_ZTv0_n12_N3F233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F233barEv,_ZThn8_N3F233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E133fooEv,_ZTv0_n12_N3E133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E133fooEv,_ZThn8_N3E133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G132333barEv,_ZTv0_n12_N6G132333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G132333barEv,_ZThn32_N6G132333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G132333fooEv,_ZTv0_n12_N6G132333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G132333fooEv,_ZThn16_N6G132333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6G132333barEv,_ZTv0_n20_N6G132333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G132333barEv,_ZThn24_N6G132333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G132333barEv,_ZThn8_N6G132333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G132333fooEv,_ZTv0_n16_N6G132333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G132333fooEv,_ZThn24_N6G132333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G132333fooEv,_ZThn8_N6G132333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G13233 = { "G13233", // class name
+ bases_G13233, 4,
+ &(vtc_G13233[0]), // expected_vtbl_contents
+ &(vtt_G13233[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G13233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G13233),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G13233),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names102,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G13313 : virtual E13 , virtual F31 {
+ int pg;
+ virtual void foo(); // _ZN6G133133fooEv
+ virtual void bar(); // _ZN6G133133barEv
+ ~G13313(); // tgen
+ G13313(); // tgen
+};
+//SIG(1 G13313) C1{ VBC2{ VBC3{ v1 Fi} v1 v2 Fi} VBC4{ VBC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void G13313 ::foo(){vfunc_called(this, "_ZN6G133133fooEv");}
+void G13313 ::bar(){vfunc_called(this, "_ZN6G133133barEv");}
+G13313 ::~G13313(){ note_dtor("G13313", this);} // tgen
+G13313 ::G13313(){ note_ctor("G13313", this);} // tgen
+
+static void Test_G13313()
+{
+ extern Class_Descriptor cd_G13313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G13313, buf);
+ G13313 *dp, &lv = *(dp=new (buf) G13313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G13313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G13313)");
+ check_base_class_offset(lv, (AA1*)(E13*), ABISELECT(32,16), "G13313");
+ check_base_class_offset(lv, (E13*), ABISELECT(16,8), "G13313");
+ check_base_class_offset(lv, (AA3*)(F31*), ABISELECT(64,32), "G13313");
+ check_base_class_offset(lv, (F31*), ABISELECT(48,24), "G13313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G13313.pg");
+ test_class_info(&lv, &cd_G13313);
+ dp->~G13313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG13313(Test_G13313, "G13313", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G13313C1Ev();
+extern void _ZN6G13313D1Ev();
+Name_Map name_map_G13313[] = {
+ NSPAIR(_ZN6G13313C1Ev),
+ NSPAIR(_ZN6G13313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_E13;
+extern VTBL_ENTRY _ZTI3E13[];
+extern VTBL_ENTRY _ZTV3E13[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E13[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_F31;
+extern VTBL_ENTRY _ZTI3F31[];
+extern VTBL_ENTRY _ZTV3F31[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F31[];
+static Base_Class bases_G13313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E13, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F31, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G13313[];
+extern void _ZN6G133133fooEv();
+extern void _ZN6G133133barEv();
+extern void ABISELECT(_ZTv0_n32_N6G133133fooEv,_ZTv0_n16_N6G133133fooEv)();
+extern void ABISELECT(_ZThn16_N6G133133fooEv,_ZThn8_N6G133133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G133133barEv,_ZTv0_n20_N6G133133barEv)();
+extern void ABISELECT(_ZThn16_N6G133133barEv,_ZThn8_N6G133133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G133133fooEv,_ZTv0_n12_N6G133133fooEv)();
+extern void ABISELECT(_ZThn32_N6G133133fooEv,_ZThn16_N6G133133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G133133fooEv,_ZTv0_n16_N6G133133fooEv)();
+extern void ABISELECT(_ZThn48_N6G133133fooEv,_ZThn24_N6G133133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G133133fooEv,_ZTv0_n12_N6G133133fooEv)();
+extern void ABISELECT(_ZThn64_N6G133133fooEv,_ZThn32_N6G133133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G133133barEv,_ZTv0_n16_N6G133133barEv)();
+extern void ABISELECT(_ZThn64_N6G133133barEv,_ZThn32_N6G133133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G13313[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G13313[0]),
+ (VTBL_ENTRY)&_ZN6G133133fooEv,
+ (VTBL_ENTRY)&_ZN6G133133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G13313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G133133fooEv,_ZTv0_n16_N6G133133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G133133barEv,_ZTv0_n20_N6G133133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G13313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G133133fooEv,_ZTv0_n12_N6G133133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G13313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G133133fooEv,_ZTv0_n16_N6G133133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G13313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G133133fooEv,_ZTv0_n12_N6G133133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G133133barEv,_ZTv0_n16_N6G133133barEv),
+};
+extern VTBL_ENTRY _ZTV6G13313[];
+extern void _ZN3E133fooEv();
+extern void _ZN3E133barEv();
+static VTBL_ENTRY _tg__ZTV3E13__6G13313[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E13[0]),
+ (VTBL_ENTRY)&_ZN3E133fooEv,
+ (VTBL_ENTRY)&_ZN3E133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E133fooEv,_ZTv0_n12_N3E133fooEv)();
+extern void ABISELECT(_ZThn16_N3E133fooEv,_ZThn8_N3E133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__3E13__6G13313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E13[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E133fooEv,_ZTv0_n12_N3E133fooEv),
+};
+extern void _ZN3F313fooEv();
+static VTBL_ENTRY _tg__ZTV3F31__6G13313[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F31[0]),
+ (VTBL_ENTRY)&_ZN3F313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F313fooEv,_ZTv0_n12_N3F313fooEv)();
+extern void ABISELECT(_ZThn16_N3F313fooEv,_ZThn8_N3F313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__3F31__6G13313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F31[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F313fooEv,_ZTv0_n12_N3F313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+static VTT_ENTRY vtt_G13313[] = {
+ {&(_ZTV6G13313[6]), 6,30},
+ {&(_ZTV6G13313[13]), 13,30},
+ {&(_ZTV6G13313[18]), 18,30},
+ {&(_ZTV6G13313[23]), 23,30},
+ {&(_ZTV6G13313[28]), 28,30},
+ {&(_tg__ZTV3E13__6G13313[3]), 3,5},
+ {&(_tg__ZTV3AA1__3E13__6G13313[3]), 3,4},
+ {&(_tg__ZTV3F31__6G13313[3]), 3,4},
+ {&(_tg__ZTV3AA3__3F31__6G13313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6G13313[];
+extern VTBL_ENTRY _ZTV6G13313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G13313[];
+static VTBL_ENTRY alt_thunk_names103[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F313fooEv,_ZTv0_n12_N3F313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F313fooEv,_ZThn8_N3F313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E133fooEv,_ZTv0_n12_N3E133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E133fooEv,_ZThn8_N3E133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G133133barEv,_ZTv0_n16_N6G133133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G133133barEv,_ZThn32_N6G133133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G133133fooEv,_ZTv0_n12_N6G133133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G133133fooEv,_ZThn32_N6G133133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G133133fooEv,_ZThn16_N6G133133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6G133133barEv,_ZTv0_n20_N6G133133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G133133barEv,_ZThn8_N6G133133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G133133fooEv,_ZTv0_n16_N6G133133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G133133fooEv,_ZThn24_N6G133133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G133133fooEv,_ZThn8_N6G133133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G13313 = { "G13313", // class name
+ bases_G13313, 4,
+ &(vtc_G13313[0]), // expected_vtbl_contents
+ &(vtt_G13313[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G13313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G13313),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G13313),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names103,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G13323 : virtual E13 , virtual F32 {
+ int pg;
+ virtual void foo(); // _ZN6G133233fooEv
+ virtual void bar(); // _ZN6G133233barEv
+ ~G13323(); // tgen
+ G13323(); // tgen
+};
+//SIG(1 G13323) C1{ VBC2{ VBC3{ v1 Fi} v1 v2 Fi} VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void G13323 ::foo(){vfunc_called(this, "_ZN6G133233fooEv");}
+void G13323 ::bar(){vfunc_called(this, "_ZN6G133233barEv");}
+G13323 ::~G13323(){ note_dtor("G13323", this);} // tgen
+G13323 ::G13323(){ note_ctor("G13323", this);} // tgen
+
+static void Test_G13323()
+{
+ extern Class_Descriptor cd_G13323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G13323, buf);
+ G13323 *dp, &lv = *(dp=new (buf) G13323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G13323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G13323)");
+ check_base_class_offset(lv, (AA1*)(E13*), ABISELECT(32,16), "G13323");
+ check_base_class_offset(lv, (E13*), ABISELECT(16,8), "G13323");
+ check_base_class_offset(lv, (AA3*)(F32*), ABISELECT(64,32), "G13323");
+ check_base_class_offset(lv, (F32*), ABISELECT(48,24), "G13323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G13323.pg");
+ test_class_info(&lv, &cd_G13323);
+ dp->~G13323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG13323(Test_G13323, "G13323", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G13323C1Ev();
+extern void _ZN6G13323D1Ev();
+Name_Map name_map_G13323[] = {
+ NSPAIR(_ZN6G13323C1Ev),
+ NSPAIR(_ZN6G13323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_E13;
+extern VTBL_ENTRY _ZTI3E13[];
+extern VTBL_ENTRY _ZTV3E13[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E13[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_F32;
+extern VTBL_ENTRY _ZTI3F32[];
+extern VTBL_ENTRY _ZTV3F32[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F32[];
+static Base_Class bases_G13323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E13, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F32, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G13323[];
+extern void _ZN6G133233fooEv();
+extern void _ZN6G133233barEv();
+extern void ABISELECT(_ZTv0_n32_N6G133233fooEv,_ZTv0_n16_N6G133233fooEv)();
+extern void ABISELECT(_ZThn16_N6G133233fooEv,_ZThn8_N6G133233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G133233barEv,_ZTv0_n20_N6G133233barEv)();
+extern void ABISELECT(_ZThn16_N6G133233barEv,_ZThn8_N6G133233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G133233fooEv,_ZTv0_n12_N6G133233fooEv)();
+extern void ABISELECT(_ZThn32_N6G133233fooEv,_ZThn16_N6G133233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G133233barEv,_ZTv0_n16_N6G133233barEv)();
+extern void ABISELECT(_ZThn48_N6G133233barEv,_ZThn24_N6G133233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G133233fooEv,_ZTv0_n12_N6G133233fooEv)();
+extern void ABISELECT(_ZThn64_N6G133233fooEv,_ZThn32_N6G133233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G133233barEv,_ZTv0_n16_N6G133233barEv)();
+extern void ABISELECT(_ZThn64_N6G133233barEv,_ZThn32_N6G133233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G13323[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G13323[0]),
+ (VTBL_ENTRY)&_ZN6G133233fooEv,
+ (VTBL_ENTRY)&_ZN6G133233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G13323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G133233fooEv,_ZTv0_n16_N6G133233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G133233barEv,_ZTv0_n20_N6G133233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G13323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G133233fooEv,_ZTv0_n12_N6G133233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G13323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G133233barEv,_ZTv0_n16_N6G133233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G13323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G133233fooEv,_ZTv0_n12_N6G133233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G133233barEv,_ZTv0_n16_N6G133233barEv),
+};
+extern VTBL_ENTRY _ZTV6G13323[];
+extern void _ZN3E133fooEv();
+extern void _ZN3E133barEv();
+static VTBL_ENTRY _tg__ZTV3E13__6G13323[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E13[0]),
+ (VTBL_ENTRY)&_ZN3E133fooEv,
+ (VTBL_ENTRY)&_ZN3E133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E133fooEv,_ZTv0_n12_N3E133fooEv)();
+extern void ABISELECT(_ZThn16_N3E133fooEv,_ZThn8_N3E133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__3E13__6G13323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E13[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E133fooEv,_ZTv0_n12_N3E133fooEv),
+};
+extern void _ZN3F323barEv();
+static VTBL_ENTRY _tg__ZTV3F32__6G13323[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F32[0]),
+ (VTBL_ENTRY)&_ZN3F323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N3F323barEv,_ZTv0_n16_N3F323barEv)();
+extern void ABISELECT(_ZThn16_N3F323barEv,_ZThn8_N3F323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__3F32__6G13323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F32[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3F323barEv,_ZTv0_n16_N3F323barEv),
+};
+static VTT_ENTRY vtt_G13323[] = {
+ {&(_ZTV6G13323[6]), 6,30},
+ {&(_ZTV6G13323[13]), 13,30},
+ {&(_ZTV6G13323[18]), 18,30},
+ {&(_ZTV6G13323[23]), 23,30},
+ {&(_ZTV6G13323[28]), 28,30},
+ {&(_tg__ZTV3E13__6G13323[3]), 3,5},
+ {&(_tg__ZTV3AA1__3E13__6G13323[3]), 3,4},
+ {&(_tg__ZTV3F32__6G13323[3]), 3,4},
+ {&(_tg__ZTV3AA3__3F32__6G13323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6G13323[];
+extern VTBL_ENTRY _ZTV6G13323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G13323[];
+static VTBL_ENTRY alt_thunk_names104[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3F323barEv,_ZTv0_n16_N3F323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F323barEv,_ZThn8_N3F323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E133fooEv,_ZTv0_n12_N3E133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E133fooEv,_ZThn8_N3E133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G133233barEv,_ZTv0_n16_N6G133233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G133233barEv,_ZThn32_N6G133233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G133233barEv,_ZThn24_N6G133233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G133233fooEv,_ZTv0_n12_N6G133233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G133233fooEv,_ZThn32_N6G133233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G133233fooEv,_ZThn16_N6G133233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6G133233barEv,_ZTv0_n20_N6G133233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G133233barEv,_ZThn8_N6G133233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G133233fooEv,_ZTv0_n16_N6G133233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G133233fooEv,_ZThn8_N6G133233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G13323 = { "G13323", // class name
+ bases_G13323, 4,
+ &(vtc_G13323[0]), // expected_vtbl_contents
+ &(vtt_G13323[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G13323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G13323),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G13323),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names104,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G13333 : virtual E13 , virtual F33 {
+ int pg;
+ virtual void foo(); // _ZN6G133333fooEv
+ virtual void bar(); // _ZN6G133333barEv
+ ~G13333(); // tgen
+ G13333(); // tgen
+};
+//SIG(1 G13333) C1{ VBC2{ VBC3{ v1 Fi} v1 v2 Fi} VBC4{ VBC5{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void G13333 ::foo(){vfunc_called(this, "_ZN6G133333fooEv");}
+void G13333 ::bar(){vfunc_called(this, "_ZN6G133333barEv");}
+G13333 ::~G13333(){ note_dtor("G13333", this);} // tgen
+G13333 ::G13333(){ note_ctor("G13333", this);} // tgen
+
+static void Test_G13333()
+{
+ extern Class_Descriptor cd_G13333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G13333, buf);
+ G13333 *dp, &lv = *(dp=new (buf) G13333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G13333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G13333)");
+ check_base_class_offset(lv, (AA1*)(E13*), ABISELECT(32,16), "G13333");
+ check_base_class_offset(lv, (E13*), ABISELECT(16,8), "G13333");
+ check_base_class_offset(lv, (AA3*)(F33*), ABISELECT(64,32), "G13333");
+ check_base_class_offset(lv, (F33*), ABISELECT(48,24), "G13333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G13333.pg");
+ test_class_info(&lv, &cd_G13333);
+ dp->~G13333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG13333(Test_G13333, "G13333", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G13333C1Ev();
+extern void _ZN6G13333D1Ev();
+Name_Map name_map_G13333[] = {
+ NSPAIR(_ZN6G13333C1Ev),
+ NSPAIR(_ZN6G13333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_E13;
+extern VTBL_ENTRY _ZTI3E13[];
+extern VTBL_ENTRY _ZTV3E13[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E13[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_F33;
+extern VTBL_ENTRY _ZTI3F33[];
+extern VTBL_ENTRY _ZTV3F33[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F33[];
+static Base_Class bases_G13333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E13, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F33, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G13333[];
+extern void _ZN6G133333fooEv();
+extern void _ZN6G133333barEv();
+extern void ABISELECT(_ZTv0_n32_N6G133333fooEv,_ZTv0_n16_N6G133333fooEv)();
+extern void ABISELECT(_ZThn16_N6G133333fooEv,_ZThn8_N6G133333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G133333barEv,_ZTv0_n20_N6G133333barEv)();
+extern void ABISELECT(_ZThn16_N6G133333barEv,_ZThn8_N6G133333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G133333fooEv,_ZTv0_n12_N6G133333fooEv)();
+extern void ABISELECT(_ZThn32_N6G133333fooEv,_ZThn16_N6G133333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G133333fooEv,_ZTv0_n16_N6G133333fooEv)();
+extern void ABISELECT(_ZThn48_N6G133333fooEv,_ZThn24_N6G133333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G133333barEv,_ZTv0_n20_N6G133333barEv)();
+extern void ABISELECT(_ZThn48_N6G133333barEv,_ZThn24_N6G133333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G133333fooEv,_ZTv0_n12_N6G133333fooEv)();
+extern void ABISELECT(_ZThn64_N6G133333fooEv,_ZThn32_N6G133333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G133333barEv,_ZTv0_n16_N6G133333barEv)();
+extern void ABISELECT(_ZThn64_N6G133333barEv,_ZThn32_N6G133333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G13333[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G13333[0]),
+ (VTBL_ENTRY)&_ZN6G133333fooEv,
+ (VTBL_ENTRY)&_ZN6G133333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G13333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G133333fooEv,_ZTv0_n16_N6G133333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G133333barEv,_ZTv0_n20_N6G133333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G13333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G133333fooEv,_ZTv0_n12_N6G133333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G13333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G133333fooEv,_ZTv0_n16_N6G133333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G133333barEv,_ZTv0_n20_N6G133333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G13333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G133333fooEv,_ZTv0_n12_N6G133333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G133333barEv,_ZTv0_n16_N6G133333barEv),
+};
+extern VTBL_ENTRY _ZTV6G13333[];
+extern void _ZN3E133fooEv();
+extern void _ZN3E133barEv();
+static VTBL_ENTRY _tg__ZTV3E13__6G13333[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E13[0]),
+ (VTBL_ENTRY)&_ZN3E133fooEv,
+ (VTBL_ENTRY)&_ZN3E133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E133fooEv,_ZTv0_n12_N3E133fooEv)();
+extern void ABISELECT(_ZThn16_N3E133fooEv,_ZThn8_N3E133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__3E13__6G13333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E13[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E133fooEv,_ZTv0_n12_N3E133fooEv),
+};
+extern void _ZN3F333fooEv();
+extern void _ZN3F333barEv();
+static VTBL_ENTRY _tg__ZTV3F33__6G13333[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F33[0]),
+ (VTBL_ENTRY)&_ZN3F333fooEv,
+ (VTBL_ENTRY)&_ZN3F333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F333fooEv,_ZTv0_n12_N3F333fooEv)();
+extern void ABISELECT(_ZThn16_N3F333fooEv,_ZThn8_N3F333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N3F333barEv,_ZTv0_n16_N3F333barEv)();
+extern void ABISELECT(_ZThn16_N3F333barEv,_ZThn8_N3F333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__3F33__6G13333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F33[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F333fooEv,_ZTv0_n12_N3F333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3F333barEv,_ZTv0_n16_N3F333barEv),
+};
+static VTT_ENTRY vtt_G13333[] = {
+ {&(_ZTV6G13333[6]), 6,32},
+ {&(_ZTV6G13333[13]), 13,32},
+ {&(_ZTV6G13333[18]), 18,32},
+ {&(_ZTV6G13333[24]), 24,32},
+ {&(_ZTV6G13333[30]), 30,32},
+ {&(_tg__ZTV3E13__6G13333[3]), 3,5},
+ {&(_tg__ZTV3AA1__3E13__6G13333[3]), 3,4},
+ {&(_tg__ZTV3F33__6G13333[3]), 3,5},
+ {&(_tg__ZTV3AA3__3F33__6G13333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6G13333[];
+extern VTBL_ENTRY _ZTV6G13333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G13333[];
+static VTBL_ENTRY alt_thunk_names105[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3F333barEv,_ZTv0_n16_N3F333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F333barEv,_ZThn8_N3F333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F333fooEv,_ZTv0_n12_N3F333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F333fooEv,_ZThn8_N3F333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E133fooEv,_ZTv0_n12_N3E133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E133fooEv,_ZThn8_N3E133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G133333barEv,_ZTv0_n16_N6G133333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G133333barEv,_ZThn32_N6G133333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G133333fooEv,_ZTv0_n12_N6G133333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G133333fooEv,_ZThn32_N6G133333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G133333fooEv,_ZThn16_N6G133333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6G133333barEv,_ZTv0_n20_N6G133333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G133333barEv,_ZThn24_N6G133333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G133333barEv,_ZThn8_N6G133333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G133333fooEv,_ZTv0_n16_N6G133333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G133333fooEv,_ZThn24_N6G133333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G133333fooEv,_ZThn8_N6G133333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G13333 = { "G13333", // class name
+ bases_G13333, 4,
+ &(vtc_G13333[0]), // expected_vtbl_contents
+ &(vtt_G13333[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G13333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G13333),32, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G13333),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names105,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G21111 : virtual E21 , virtual F11 {
+ int pg;
+ virtual void foo(); // _ZN6G211113fooEv
+ ~G21111(); // tgen
+ G21111(); // tgen
+};
+//SIG(1 G21111) C1{ VBC2{ VBC3{ v2 Fi} v1 Fi} VBC4{ VBC5{ v1 Fi} v1 Fi} v1 Fi}
+
+
+void G21111 ::foo(){vfunc_called(this, "_ZN6G211113fooEv");}
+G21111 ::~G21111(){ note_dtor("G21111", this);} // tgen
+G21111 ::G21111(){ note_ctor("G21111", this);} // tgen
+
+static void Test_G21111()
+{
+ extern Class_Descriptor cd_G21111;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G21111, buf);
+ G21111 *dp, &lv = *(dp=new (buf) G21111());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G21111)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G21111)");
+ check_base_class_offset(lv, (AA2*)(E21*), ABISELECT(32,16), "G21111");
+ check_base_class_offset(lv, (E21*), ABISELECT(16,8), "G21111");
+ check_base_class_offset(lv, (AA1*)(F11*), ABISELECT(64,32), "G21111");
+ check_base_class_offset(lv, (F11*), ABISELECT(48,24), "G21111");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G21111.pg");
+ test_class_info(&lv, &cd_G21111);
+ dp->~G21111();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG21111(Test_G21111, "G21111", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G21111C1Ev();
+extern void _ZN6G21111D1Ev();
+Name_Map name_map_G21111[] = {
+ NSPAIR(_ZN6G21111C1Ev),
+ NSPAIR(_ZN6G21111D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_E21;
+extern VTBL_ENTRY _ZTI3E21[];
+extern VTBL_ENTRY _ZTV3E21[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E21[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_F11;
+extern VTBL_ENTRY _ZTI3F11[];
+extern VTBL_ENTRY _ZTV3F11[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F11[];
+static Base_Class bases_G21111[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E21, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(64,32), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F11, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G21111[];
+extern void _ZN6G211113fooEv();
+extern void ABISELECT(_ZTv0_n32_N6G211113fooEv,_ZTv0_n16_N6G211113fooEv)();
+extern void ABISELECT(_ZThn16_N6G211113fooEv,_ZThn8_N6G211113fooEv)() __attribute__((weak));
+extern void _ZN3AA23barEv();
+extern void ABISELECT(_ZTv0_n32_N6G211113fooEv,_ZTv0_n16_N6G211113fooEv)();
+extern void ABISELECT(_ZThn48_N6G211113fooEv,_ZThn24_N6G211113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G211113fooEv,_ZTv0_n12_N6G211113fooEv)();
+extern void ABISELECT(_ZThn64_N6G211113fooEv,_ZThn32_N6G211113fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G21111[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G21111[0]),
+ (VTBL_ENTRY)&_ZN6G211113fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G21111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G211113fooEv,_ZTv0_n16_N6G211113fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G21111[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G21111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G211113fooEv,_ZTv0_n16_N6G211113fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G21111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G211113fooEv,_ZTv0_n12_N6G211113fooEv),
+};
+extern VTBL_ENTRY _ZTV6G21111[];
+extern void _ZN3E213fooEv();
+static VTBL_ENTRY _tg__ZTV3E21__6G21111[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E21[0]),
+ (VTBL_ENTRY)&_ZN3E213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__3E21__6G21111[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E21[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3F113fooEv();
+static VTBL_ENTRY _tg__ZTV3F11__6G21111[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F11[0]),
+ (VTBL_ENTRY)&_ZN3F113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv)();
+extern void ABISELECT(_ZThn16_N3F113fooEv,_ZThn8_N3F113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__3F11__6G21111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F11[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv),
+};
+static VTT_ENTRY vtt_G21111[] = {
+ {&(_ZTV6G21111[6]), 6,25},
+ {&(_ZTV6G21111[11]), 11,25},
+ {&(_ZTV6G21111[15]), 15,25},
+ {&(_ZTV6G21111[20]), 20,25},
+ {&(_ZTV6G21111[24]), 24,25},
+ {&(_tg__ZTV3E21__6G21111[3]), 3,4},
+ {&(_tg__ZTV3AA2__3E21__6G21111[3]), 3,4},
+ {&(_tg__ZTV3F11__6G21111[3]), 3,4},
+ {&(_tg__ZTV3AA1__3F11__6G21111[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G21111[];
+extern VTBL_ENTRY _ZTV6G21111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G21111[];
+static VTBL_ENTRY alt_thunk_names106[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F113fooEv,_ZThn8_N3F113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G211113fooEv,_ZTv0_n12_N6G211113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G211113fooEv,_ZThn32_N6G211113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G211113fooEv,_ZTv0_n16_N6G211113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G211113fooEv,_ZThn24_N6G211113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G211113fooEv,_ZThn8_N6G211113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G21111 = { "G21111", // class name
+ bases_G21111, 4,
+ &(vtc_G21111[0]), // expected_vtbl_contents
+ &(vtt_G21111[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G21111),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G21111),25, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G21111),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names106,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G21113 : virtual E21 , virtual F11 {
+ int pg;
+ virtual void foo(); // _ZN6G211133fooEv
+ virtual void bar(); // _ZN6G211133barEv
+ ~G21113(); // tgen
+ G21113(); // tgen
+};
+//SIG(1 G21113) C1{ VBC2{ VBC3{ v2 Fi} v1 Fi} VBC4{ VBC5{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void G21113 ::foo(){vfunc_called(this, "_ZN6G211133fooEv");}
+void G21113 ::bar(){vfunc_called(this, "_ZN6G211133barEv");}
+G21113 ::~G21113(){ note_dtor("G21113", this);} // tgen
+G21113 ::G21113(){ note_ctor("G21113", this);} // tgen
+
+static void Test_G21113()
+{
+ extern Class_Descriptor cd_G21113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G21113, buf);
+ G21113 *dp, &lv = *(dp=new (buf) G21113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G21113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G21113)");
+ check_base_class_offset(lv, (AA2*)(E21*), ABISELECT(32,16), "G21113");
+ check_base_class_offset(lv, (E21*), ABISELECT(16,8), "G21113");
+ check_base_class_offset(lv, (AA1*)(F11*), ABISELECT(64,32), "G21113");
+ check_base_class_offset(lv, (F11*), ABISELECT(48,24), "G21113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G21113.pg");
+ test_class_info(&lv, &cd_G21113);
+ dp->~G21113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG21113(Test_G21113, "G21113", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G21113C1Ev();
+extern void _ZN6G21113D1Ev();
+Name_Map name_map_G21113[] = {
+ NSPAIR(_ZN6G21113C1Ev),
+ NSPAIR(_ZN6G21113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_E21;
+extern VTBL_ENTRY _ZTI3E21[];
+extern VTBL_ENTRY _ZTV3E21[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E21[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_F11;
+extern VTBL_ENTRY _ZTI3F11[];
+extern VTBL_ENTRY _ZTV3F11[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F11[];
+static Base_Class bases_G21113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E21, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F11, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G21113[];
+extern void _ZN6G211133fooEv();
+extern void _ZN6G211133barEv();
+extern void ABISELECT(_ZTv0_n32_N6G211133fooEv,_ZTv0_n16_N6G211133fooEv)();
+extern void ABISELECT(_ZThn16_N6G211133fooEv,_ZThn8_N6G211133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G211133barEv,_ZTv0_n12_N6G211133barEv)();
+extern void ABISELECT(_ZThn32_N6G211133barEv,_ZThn16_N6G211133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G211133fooEv,_ZTv0_n16_N6G211133fooEv)();
+extern void ABISELECT(_ZThn48_N6G211133fooEv,_ZThn24_N6G211133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G211133fooEv,_ZTv0_n12_N6G211133fooEv)();
+extern void ABISELECT(_ZThn64_N6G211133fooEv,_ZThn32_N6G211133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G21113[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G21113[0]),
+ (VTBL_ENTRY)&_ZN6G211133fooEv,
+ (VTBL_ENTRY)&_ZN6G211133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G21113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G211133fooEv,_ZTv0_n16_N6G211133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G21113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G211133barEv,_ZTv0_n12_N6G211133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G21113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G211133fooEv,_ZTv0_n16_N6G211133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G21113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G211133fooEv,_ZTv0_n12_N6G211133fooEv),
+};
+extern VTBL_ENTRY _ZTV6G21113[];
+extern void _ZN3E213fooEv();
+static VTBL_ENTRY _tg__ZTV3E21__6G21113[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E21[0]),
+ (VTBL_ENTRY)&_ZN3E213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__3E21__6G21113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E21[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3F113fooEv();
+static VTBL_ENTRY _tg__ZTV3F11__6G21113[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F11[0]),
+ (VTBL_ENTRY)&_ZN3F113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv)();
+extern void ABISELECT(_ZThn16_N3F113fooEv,_ZThn8_N3F113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__3F11__6G21113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F11[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv),
+};
+static VTT_ENTRY vtt_G21113[] = {
+ {&(_ZTV6G21113[6]), 6,26},
+ {&(_ZTV6G21113[12]), 12,26},
+ {&(_ZTV6G21113[16]), 16,26},
+ {&(_ZTV6G21113[21]), 21,26},
+ {&(_ZTV6G21113[25]), 25,26},
+ {&(_tg__ZTV3E21__6G21113[3]), 3,4},
+ {&(_tg__ZTV3AA2__3E21__6G21113[3]), 3,4},
+ {&(_tg__ZTV3F11__6G21113[3]), 3,4},
+ {&(_tg__ZTV3AA1__3F11__6G21113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G21113[];
+extern VTBL_ENTRY _ZTV6G21113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G21113[];
+static VTBL_ENTRY alt_thunk_names107[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F113fooEv,_ZThn8_N3F113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G211133fooEv,_ZTv0_n12_N6G211133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G211133fooEv,_ZThn32_N6G211133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G211133barEv,_ZTv0_n12_N6G211133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G211133barEv,_ZThn16_N6G211133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G211133fooEv,_ZTv0_n16_N6G211133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G211133fooEv,_ZThn24_N6G211133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G211133fooEv,_ZThn8_N6G211133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G21113 = { "G21113", // class name
+ bases_G21113, 4,
+ &(vtc_G21113[0]), // expected_vtbl_contents
+ &(vtt_G21113[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G21113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G21113),26, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G21113),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names107,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G21123 : virtual E21 , virtual F12 {
+ int pg;
+ virtual void foo(); // _ZN6G211233fooEv
+ virtual void bar(); // _ZN6G211233barEv
+ ~G21123(); // tgen
+ G21123(); // tgen
+};
+//SIG(1 G21123) C1{ VBC2{ VBC3{ v2 Fi} v1 Fi} VBC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void G21123 ::foo(){vfunc_called(this, "_ZN6G211233fooEv");}
+void G21123 ::bar(){vfunc_called(this, "_ZN6G211233barEv");}
+G21123 ::~G21123(){ note_dtor("G21123", this);} // tgen
+G21123 ::G21123(){ note_ctor("G21123", this);} // tgen
+
+static void Test_G21123()
+{
+ extern Class_Descriptor cd_G21123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G21123, buf);
+ G21123 *dp, &lv = *(dp=new (buf) G21123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G21123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G21123)");
+ check_base_class_offset(lv, (AA2*)(E21*), ABISELECT(32,16), "G21123");
+ check_base_class_offset(lv, (E21*), ABISELECT(16,8), "G21123");
+ check_base_class_offset(lv, (AA1*)(F12*), ABISELECT(64,32), "G21123");
+ check_base_class_offset(lv, (F12*), ABISELECT(48,24), "G21123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G21123.pg");
+ test_class_info(&lv, &cd_G21123);
+ dp->~G21123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG21123(Test_G21123, "G21123", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G21123C1Ev();
+extern void _ZN6G21123D1Ev();
+Name_Map name_map_G21123[] = {
+ NSPAIR(_ZN6G21123C1Ev),
+ NSPAIR(_ZN6G21123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_E21;
+extern VTBL_ENTRY _ZTI3E21[];
+extern VTBL_ENTRY _ZTV3E21[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E21[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_F12;
+extern VTBL_ENTRY _ZTI3F12[];
+extern VTBL_ENTRY _ZTV3F12[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F12[];
+static Base_Class bases_G21123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E21, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F12, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G21123[];
+extern void _ZN6G211233fooEv();
+extern void _ZN6G211233barEv();
+extern void ABISELECT(_ZTv0_n32_N6G211233fooEv,_ZTv0_n16_N6G211233fooEv)();
+extern void ABISELECT(_ZThn16_N6G211233fooEv,_ZThn8_N6G211233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G211233barEv,_ZTv0_n12_N6G211233barEv)();
+extern void ABISELECT(_ZThn32_N6G211233barEv,_ZThn16_N6G211233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G211233barEv,_ZTv0_n16_N6G211233barEv)();
+extern void ABISELECT(_ZThn48_N6G211233barEv,_ZThn24_N6G211233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G211233fooEv,_ZTv0_n12_N6G211233fooEv)();
+extern void ABISELECT(_ZThn64_N6G211233fooEv,_ZThn32_N6G211233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G21123[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G21123[0]),
+ (VTBL_ENTRY)&_ZN6G211233fooEv,
+ (VTBL_ENTRY)&_ZN6G211233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G21123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G211233fooEv,_ZTv0_n16_N6G211233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G21123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G211233barEv,_ZTv0_n12_N6G211233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G21123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G211233barEv,_ZTv0_n16_N6G211233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G21123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G211233fooEv,_ZTv0_n12_N6G211233fooEv),
+};
+extern VTBL_ENTRY _ZTV6G21123[];
+extern void _ZN3E213fooEv();
+static VTBL_ENTRY _tg__ZTV3E21__6G21123[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E21[0]),
+ (VTBL_ENTRY)&_ZN3E213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__3E21__6G21123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E21[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3F123barEv();
+static VTBL_ENTRY _tg__ZTV3F12__6G21123[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F12[0]),
+ (VTBL_ENTRY)&_ZN3F123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__3F12__6G21123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F12[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+static VTT_ENTRY vtt_G21123[] = {
+ {&(_ZTV6G21123[6]), 6,26},
+ {&(_ZTV6G21123[12]), 12,26},
+ {&(_ZTV6G21123[16]), 16,26},
+ {&(_ZTV6G21123[21]), 21,26},
+ {&(_ZTV6G21123[25]), 25,26},
+ {&(_tg__ZTV3E21__6G21123[3]), 3,4},
+ {&(_tg__ZTV3AA2__3E21__6G21123[3]), 3,4},
+ {&(_tg__ZTV3F12__6G21123[3]), 3,4},
+ {&(_tg__ZTV3AA1__3F12__6G21123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G21123[];
+extern VTBL_ENTRY _ZTV6G21123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G21123[];
+static VTBL_ENTRY alt_thunk_names108[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G211233fooEv,_ZTv0_n12_N6G211233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G211233fooEv,_ZThn32_N6G211233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G211233barEv,_ZTv0_n16_N6G211233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G211233barEv,_ZThn24_N6G211233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G211233barEv,_ZTv0_n12_N6G211233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G211233barEv,_ZThn16_N6G211233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G211233fooEv,_ZTv0_n16_N6G211233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G211233fooEv,_ZThn8_N6G211233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G21123 = { "G21123", // class name
+ bases_G21123, 4,
+ &(vtc_G21123[0]), // expected_vtbl_contents
+ &(vtt_G21123[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G21123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G21123),26, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G21123),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names108,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G21133 : virtual E21 , virtual F13 {
+ int pg;
+ virtual void foo(); // _ZN6G211333fooEv
+ virtual void bar(); // _ZN6G211333barEv
+ ~G21133(); // tgen
+ G21133(); // tgen
+};
+//SIG(1 G21133) C1{ VBC2{ VBC3{ v2 Fi} v1 Fi} VBC4{ VBC5{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void G21133 ::foo(){vfunc_called(this, "_ZN6G211333fooEv");}
+void G21133 ::bar(){vfunc_called(this, "_ZN6G211333barEv");}
+G21133 ::~G21133(){ note_dtor("G21133", this);} // tgen
+G21133 ::G21133(){ note_ctor("G21133", this);} // tgen
+
+static void Test_G21133()
+{
+ extern Class_Descriptor cd_G21133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G21133, buf);
+ G21133 *dp, &lv = *(dp=new (buf) G21133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G21133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G21133)");
+ check_base_class_offset(lv, (AA2*)(E21*), ABISELECT(32,16), "G21133");
+ check_base_class_offset(lv, (E21*), ABISELECT(16,8), "G21133");
+ check_base_class_offset(lv, (AA1*)(F13*), ABISELECT(64,32), "G21133");
+ check_base_class_offset(lv, (F13*), ABISELECT(48,24), "G21133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G21133.pg");
+ test_class_info(&lv, &cd_G21133);
+ dp->~G21133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG21133(Test_G21133, "G21133", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G21133C1Ev();
+extern void _ZN6G21133D1Ev();
+Name_Map name_map_G21133[] = {
+ NSPAIR(_ZN6G21133C1Ev),
+ NSPAIR(_ZN6G21133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_E21;
+extern VTBL_ENTRY _ZTI3E21[];
+extern VTBL_ENTRY _ZTV3E21[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E21[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_F13;
+extern VTBL_ENTRY _ZTI3F13[];
+extern VTBL_ENTRY _ZTV3F13[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F13[];
+static Base_Class bases_G21133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E21, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F13, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G21133[];
+extern void _ZN6G211333fooEv();
+extern void _ZN6G211333barEv();
+extern void ABISELECT(_ZTv0_n32_N6G211333fooEv,_ZTv0_n16_N6G211333fooEv)();
+extern void ABISELECT(_ZThn16_N6G211333fooEv,_ZThn8_N6G211333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G211333barEv,_ZTv0_n12_N6G211333barEv)();
+extern void ABISELECT(_ZThn32_N6G211333barEv,_ZThn16_N6G211333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G211333fooEv,_ZTv0_n16_N6G211333fooEv)();
+extern void ABISELECT(_ZThn48_N6G211333fooEv,_ZThn24_N6G211333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G211333barEv,_ZTv0_n20_N6G211333barEv)();
+extern void ABISELECT(_ZThn48_N6G211333barEv,_ZThn24_N6G211333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G211333fooEv,_ZTv0_n12_N6G211333fooEv)();
+extern void ABISELECT(_ZThn64_N6G211333fooEv,_ZThn32_N6G211333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G21133[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G21133[0]),
+ (VTBL_ENTRY)&_ZN6G211333fooEv,
+ (VTBL_ENTRY)&_ZN6G211333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G21133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G211333fooEv,_ZTv0_n16_N6G211333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G21133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G211333barEv,_ZTv0_n12_N6G211333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G21133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G211333fooEv,_ZTv0_n16_N6G211333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G211333barEv,_ZTv0_n20_N6G211333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G21133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G211333fooEv,_ZTv0_n12_N6G211333fooEv),
+};
+extern VTBL_ENTRY _ZTV6G21133[];
+extern void _ZN3E213fooEv();
+static VTBL_ENTRY _tg__ZTV3E21__6G21133[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E21[0]),
+ (VTBL_ENTRY)&_ZN3E213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__3E21__6G21133[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E21[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3F133fooEv();
+extern void _ZN3F133barEv();
+static VTBL_ENTRY _tg__ZTV3F13__6G21133[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F13[0]),
+ (VTBL_ENTRY)&_ZN3F133fooEv,
+ (VTBL_ENTRY)&_ZN3F133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F133fooEv,_ZTv0_n12_N3F133fooEv)();
+extern void ABISELECT(_ZThn16_N3F133fooEv,_ZThn8_N3F133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__3F13__6G21133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F13[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F133fooEv,_ZTv0_n12_N3F133fooEv),
+};
+static VTT_ENTRY vtt_G21133[] = {
+ {&(_ZTV6G21133[6]), 6,28},
+ {&(_ZTV6G21133[12]), 12,28},
+ {&(_ZTV6G21133[16]), 16,28},
+ {&(_ZTV6G21133[22]), 22,28},
+ {&(_ZTV6G21133[27]), 27,28},
+ {&(_tg__ZTV3E21__6G21133[3]), 3,4},
+ {&(_tg__ZTV3AA2__3E21__6G21133[3]), 3,4},
+ {&(_tg__ZTV3F13__6G21133[3]), 3,5},
+ {&(_tg__ZTV3AA1__3F13__6G21133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G21133[];
+extern VTBL_ENTRY _ZTV6G21133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G21133[];
+static VTBL_ENTRY alt_thunk_names109[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F133fooEv,_ZTv0_n12_N3F133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F133fooEv,_ZThn8_N3F133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G211333fooEv,_ZTv0_n12_N6G211333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G211333fooEv,_ZThn32_N6G211333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6G211333barEv,_ZTv0_n20_N6G211333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G211333barEv,_ZThn24_N6G211333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G211333barEv,_ZTv0_n12_N6G211333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G211333barEv,_ZThn16_N6G211333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G211333fooEv,_ZTv0_n16_N6G211333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G211333fooEv,_ZThn24_N6G211333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G211333fooEv,_ZThn8_N6G211333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G21133 = { "G21133", // class name
+ bases_G21133, 4,
+ &(vtc_G21133[0]), // expected_vtbl_contents
+ &(vtt_G21133[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G21133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G21133),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G21133),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names109,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G21213 : virtual E21 , virtual F21 {
+ int pg;
+ virtual void foo(); // _ZN6G212133fooEv
+ virtual void bar(); // _ZN6G212133barEv
+ ~G21213(); // tgen
+ G21213(); // tgen
+};
+//SIG(1 G21213) C1{ VBC2{ VBC3{ v2 Fi} v1 Fi} VBC4{ VBC3 v1 Fi} v1 v2 Fi}
+
+
+void G21213 ::foo(){vfunc_called(this, "_ZN6G212133fooEv");}
+void G21213 ::bar(){vfunc_called(this, "_ZN6G212133barEv");}
+G21213 ::~G21213(){ note_dtor("G21213", this);} // tgen
+G21213 ::G21213(){ note_ctor("G21213", this);} // tgen
+
+static void Test_G21213()
+{
+ extern Class_Descriptor cd_G21213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_G21213, buf);
+ G21213 *dp, &lv = *(dp=new (buf) G21213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(G21213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G21213)");
+ check_base_class_offset(lv, (AA2*)(E21*), ABISELECT(32,16), "G21213");
+ check_base_class_offset(lv, (AA2*)(F21*), ABISELECT(32,16), "G21213");
+ check_base_class_offset(lv, (E21*), ABISELECT(16,8), "G21213");
+ check_base_class_offset(lv, (F21*), ABISELECT(48,24), "G21213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G21213.pg");
+ test_class_info(&lv, &cd_G21213);
+ dp->~G21213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG21213(Test_G21213, "G21213", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6G21213C1Ev();
+extern void _ZN6G21213D1Ev();
+Name_Map name_map_G21213[] = {
+ NSPAIR(_ZN6G21213C1Ev),
+ NSPAIR(_ZN6G21213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_E21;
+extern VTBL_ENTRY _ZTI3E21[];
+extern VTBL_ENTRY _ZTV3E21[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E21[];
+extern Class_Descriptor cd_F21;
+extern VTBL_ENTRY _ZTI3F21[];
+extern VTBL_ENTRY _ZTV3F21[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F21[];
+static Base_Class bases_G21213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E21, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_F21, 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
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G21213[];
+extern void _ZN6G212133fooEv();
+extern void _ZN6G212133barEv();
+extern void ABISELECT(_ZTv0_n32_N6G212133fooEv,_ZTv0_n16_N6G212133fooEv)();
+extern void ABISELECT(_ZThn16_N6G212133fooEv,_ZThn8_N6G212133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G212133barEv,_ZTv0_n12_N6G212133barEv)();
+extern void ABISELECT(_ZThn32_N6G212133barEv,_ZThn16_N6G212133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G212133fooEv,_ZTv0_n16_N6G212133fooEv)();
+extern void ABISELECT(_ZThn48_N6G212133fooEv,_ZThn24_N6G212133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G21213[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G21213[0]),
+ (VTBL_ENTRY)&_ZN6G212133fooEv,
+ (VTBL_ENTRY)&_ZN6G212133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G21213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G212133fooEv,_ZTv0_n16_N6G212133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G21213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G212133barEv,_ZTv0_n12_N6G212133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G21213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G212133fooEv,_ZTv0_n16_N6G212133fooEv),
+};
+extern VTBL_ENTRY _ZTV6G21213[];
+extern void _ZN3E213fooEv();
+static VTBL_ENTRY _tg__ZTV3E21__6G21213[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E21[0]),
+ (VTBL_ENTRY)&_ZN3E213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__3E21__6G21213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E21[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3F213fooEv();
+static VTBL_ENTRY _tg__ZTV3F21__6G21213[] = {
+ ABISELECT(-16,-8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F21[0]),
+ (VTBL_ENTRY)&_ZN3F213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__3F21__6G21213[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI3F21[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+static VTT_ENTRY vtt_G21213[] = {
+ {&(_ZTV6G21213[5]), 5,21},
+ {&(_ZTV6G21213[11]), 11,21},
+ {&(_ZTV6G21213[15]), 15,21},
+ {&(_ZTV6G21213[20]), 20,21},
+ {&(_tg__ZTV3E21__6G21213[3]), 3,4},
+ {&(_tg__ZTV3AA2__3E21__6G21213[3]), 3,4},
+ {&(_tg__ZTV3F21__6G21213[3]), 3,4},
+ {&(_tg__ZTV3AA2__3F21__6G21213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G21213[];
+extern VTBL_ENTRY _ZTV6G21213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G21213[];
+static VTBL_ENTRY alt_thunk_names110[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G212133barEv,_ZTv0_n12_N6G212133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G212133barEv,_ZThn16_N6G212133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G212133fooEv,_ZTv0_n16_N6G212133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G212133fooEv,_ZThn24_N6G212133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G212133fooEv,_ZThn8_N6G212133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G21213 = { "G21213", // class name
+ bases_G21213, 3,
+ &(vtc_G21213[0]), // expected_vtbl_contents
+ &(vtt_G21213[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6G21213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G21213),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G21213),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 G21222 : virtual E21 , virtual F22 {
+ int pg;
+ virtual void bar(); // _ZN6G212223barEv
+ ~G21222(); // tgen
+ G21222(); // tgen
+};
+//SIG(1 G21222) C1{ VBC2{ VBC3{ v1 Fi} v2 Fi} VBC4{ VBC3 v1 Fi} v1 Fi}
+
+
+void G21222 ::bar(){vfunc_called(this, "_ZN6G212223barEv");}
+G21222 ::~G21222(){ note_dtor("G21222", this);} // tgen
+G21222 ::G21222(){ note_ctor("G21222", this);} // tgen
+
+static void Test_G21222()
+{
+ extern Class_Descriptor cd_G21222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_G21222, buf);
+ G21222 *dp, &lv = *(dp=new (buf) G21222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(G21222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G21222)");
+ check_base_class_offset(lv, (AA2*)(E21*), ABISELECT(32,16), "G21222");
+ check_base_class_offset(lv, (AA2*)(F22*), ABISELECT(32,16), "G21222");
+ check_base_class_offset(lv, (E21*), ABISELECT(16,8), "G21222");
+ check_base_class_offset(lv, (F22*), ABISELECT(48,24), "G21222");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G21222.pg");
+ test_class_info(&lv, &cd_G21222);
+ dp->~G21222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG21222(Test_G21222, "G21222", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6G21222C1Ev();
+extern void _ZN6G21222D1Ev();
+Name_Map name_map_G21222[] = {
+ NSPAIR(_ZN6G21222C1Ev),
+ NSPAIR(_ZN6G21222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_E21;
+extern VTBL_ENTRY _ZTI3E21[];
+extern VTBL_ENTRY _ZTV3E21[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E21[];
+extern Class_Descriptor cd_F22;
+extern VTBL_ENTRY _ZTI3F22[];
+extern VTBL_ENTRY _ZTV3F22[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F22[];
+static Base_Class bases_G21222[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E21, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_F22, 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
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G21222[];
+extern void _ZN6G212223barEv();
+extern void _ZN3E213fooEv();
+extern void ABISELECT(_ZTv0_n24_N6G212223barEv,_ZTv0_n12_N6G212223barEv)();
+extern void ABISELECT(_ZThn32_N6G212223barEv,_ZThn16_N6G212223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G212223barEv,_ZTv0_n16_N6G212223barEv)();
+extern void ABISELECT(_ZThn48_N6G212223barEv,_ZThn24_N6G212223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G21222[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G21222[0]),
+ (VTBL_ENTRY)&_ZN6G212223barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G21222[0]),
+ (VTBL_ENTRY)&_ZN3E213fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G21222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G212223barEv,_ZTv0_n12_N6G212223barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G21222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G212223barEv,_ZTv0_n16_N6G212223barEv),
+};
+extern VTBL_ENTRY _ZTV6G21222[];
+extern void _ZN3E213fooEv();
+static VTBL_ENTRY _tg__ZTV3E21__6G21222[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E21[0]),
+ (VTBL_ENTRY)&_ZN3E213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__3E21__6G21222[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E21[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3F223barEv();
+static VTBL_ENTRY _tg__ZTV3F22__6G21222[] = {
+ ABISELECT(-16,-8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F22[0]),
+ (VTBL_ENTRY)&_ZN3F223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__3F22__6G21222[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI3F22[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv),
+};
+static VTT_ENTRY vtt_G21222[] = {
+ {&(_ZTV6G21222[5]), 5,20},
+ {&(_ZTV6G21222[10]), 10,20},
+ {&(_ZTV6G21222[14]), 14,20},
+ {&(_ZTV6G21222[19]), 19,20},
+ {&(_tg__ZTV3E21__6G21222[3]), 3,4},
+ {&(_tg__ZTV3AA2__3E21__6G21222[3]), 3,4},
+ {&(_tg__ZTV3F22__6G21222[3]), 3,4},
+ {&(_tg__ZTV3AA2__3F22__6G21222[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G21222[];
+extern VTBL_ENTRY _ZTV6G21222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G21222[];
+static VTBL_ENTRY alt_thunk_names111[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G212223barEv,_ZTv0_n16_N6G212223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G212223barEv,_ZThn24_N6G212223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G212223barEv,_ZTv0_n12_N6G212223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G212223barEv,_ZThn16_N6G212223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G21222 = { "G21222", // class name
+ bases_G21222, 3,
+ &(vtc_G21222[0]), // expected_vtbl_contents
+ &(vtt_G21222[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6G21222),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G21222),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G21222),8, //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 G21223 : virtual E21 , virtual F22 {
+ int pg;
+ virtual void foo(); // _ZN6G212233fooEv
+ virtual void bar(); // _ZN6G212233barEv
+ ~G21223(); // tgen
+ G21223(); // tgen
+};
+//SIG(1 G21223) C1{ VBC2{ VBC3{ v2 Fi} v1 Fi} VBC4{ VBC3 v2 Fi} v1 v2 Fi}
+
+
+void G21223 ::foo(){vfunc_called(this, "_ZN6G212233fooEv");}
+void G21223 ::bar(){vfunc_called(this, "_ZN6G212233barEv");}
+G21223 ::~G21223(){ note_dtor("G21223", this);} // tgen
+G21223 ::G21223(){ note_ctor("G21223", this);} // tgen
+
+static void Test_G21223()
+{
+ extern Class_Descriptor cd_G21223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_G21223, buf);
+ G21223 *dp, &lv = *(dp=new (buf) G21223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(G21223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G21223)");
+ check_base_class_offset(lv, (AA2*)(E21*), ABISELECT(32,16), "G21223");
+ check_base_class_offset(lv, (AA2*)(F22*), ABISELECT(32,16), "G21223");
+ check_base_class_offset(lv, (E21*), ABISELECT(16,8), "G21223");
+ check_base_class_offset(lv, (F22*), ABISELECT(48,24), "G21223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G21223.pg");
+ test_class_info(&lv, &cd_G21223);
+ dp->~G21223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG21223(Test_G21223, "G21223", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6G21223C1Ev();
+extern void _ZN6G21223D1Ev();
+Name_Map name_map_G21223[] = {
+ NSPAIR(_ZN6G21223C1Ev),
+ NSPAIR(_ZN6G21223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_E21;
+extern VTBL_ENTRY _ZTI3E21[];
+extern VTBL_ENTRY _ZTV3E21[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E21[];
+extern Class_Descriptor cd_F22;
+extern VTBL_ENTRY _ZTI3F22[];
+extern VTBL_ENTRY _ZTV3F22[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F22[];
+static Base_Class bases_G21223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E21, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_F22, 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
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G21223[];
+extern void _ZN6G212233fooEv();
+extern void _ZN6G212233barEv();
+extern void ABISELECT(_ZTv0_n32_N6G212233fooEv,_ZTv0_n16_N6G212233fooEv)();
+extern void ABISELECT(_ZThn16_N6G212233fooEv,_ZThn8_N6G212233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G212233barEv,_ZTv0_n12_N6G212233barEv)();
+extern void ABISELECT(_ZThn32_N6G212233barEv,_ZThn16_N6G212233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G212233barEv,_ZTv0_n16_N6G212233barEv)();
+extern void ABISELECT(_ZThn48_N6G212233barEv,_ZThn24_N6G212233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G21223[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G21223[0]),
+ (VTBL_ENTRY)&_ZN6G212233fooEv,
+ (VTBL_ENTRY)&_ZN6G212233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G21223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G212233fooEv,_ZTv0_n16_N6G212233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G21223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G212233barEv,_ZTv0_n12_N6G212233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G21223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G212233barEv,_ZTv0_n16_N6G212233barEv),
+};
+extern VTBL_ENTRY _ZTV6G21223[];
+extern void _ZN3E213fooEv();
+static VTBL_ENTRY _tg__ZTV3E21__6G21223[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E21[0]),
+ (VTBL_ENTRY)&_ZN3E213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__3E21__6G21223[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E21[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3F223barEv();
+static VTBL_ENTRY _tg__ZTV3F22__6G21223[] = {
+ ABISELECT(-16,-8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F22[0]),
+ (VTBL_ENTRY)&_ZN3F223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__3F22__6G21223[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI3F22[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv),
+};
+static VTT_ENTRY vtt_G21223[] = {
+ {&(_ZTV6G21223[5]), 5,21},
+ {&(_ZTV6G21223[11]), 11,21},
+ {&(_ZTV6G21223[15]), 15,21},
+ {&(_ZTV6G21223[20]), 20,21},
+ {&(_tg__ZTV3E21__6G21223[3]), 3,4},
+ {&(_tg__ZTV3AA2__3E21__6G21223[3]), 3,4},
+ {&(_tg__ZTV3F22__6G21223[3]), 3,4},
+ {&(_tg__ZTV3AA2__3F22__6G21223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G21223[];
+extern VTBL_ENTRY _ZTV6G21223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G21223[];
+static VTBL_ENTRY alt_thunk_names112[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G212233barEv,_ZTv0_n16_N6G212233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G212233barEv,_ZThn24_N6G212233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G212233barEv,_ZTv0_n12_N6G212233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G212233barEv,_ZThn16_N6G212233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G212233fooEv,_ZTv0_n16_N6G212233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G212233fooEv,_ZThn8_N6G212233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G21223 = { "G21223", // class name
+ bases_G21223, 3,
+ &(vtc_G21223[0]), // expected_vtbl_contents
+ &(vtt_G21223[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6G21223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G21223),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G21223),8, //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 G21233 : virtual E21 , virtual F23 {
+ int pg;
+ virtual void foo(); // _ZN6G212333fooEv
+ virtual void bar(); // _ZN6G212333barEv
+ ~G21233(); // tgen
+ G21233(); // tgen
+};
+//SIG(1 G21233) C1{ VBC2{ VBC3{ v2 Fi} v1 Fi} VBC4{ VBC3 v1 v2 Fi} v1 v2 Fi}
+
+
+void G21233 ::foo(){vfunc_called(this, "_ZN6G212333fooEv");}
+void G21233 ::bar(){vfunc_called(this, "_ZN6G212333barEv");}
+G21233 ::~G21233(){ note_dtor("G21233", this);} // tgen
+G21233 ::G21233(){ note_ctor("G21233", this);} // tgen
+
+static void Test_G21233()
+{
+ extern Class_Descriptor cd_G21233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_G21233, buf);
+ G21233 *dp, &lv = *(dp=new (buf) G21233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(G21233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G21233)");
+ check_base_class_offset(lv, (AA2*)(E21*), ABISELECT(32,16), "G21233");
+ check_base_class_offset(lv, (AA2*)(F23*), ABISELECT(32,16), "G21233");
+ check_base_class_offset(lv, (E21*), ABISELECT(16,8), "G21233");
+ check_base_class_offset(lv, (F23*), ABISELECT(48,24), "G21233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G21233.pg");
+ test_class_info(&lv, &cd_G21233);
+ dp->~G21233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG21233(Test_G21233, "G21233", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6G21233C1Ev();
+extern void _ZN6G21233D1Ev();
+Name_Map name_map_G21233[] = {
+ NSPAIR(_ZN6G21233C1Ev),
+ NSPAIR(_ZN6G21233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_E21;
+extern VTBL_ENTRY _ZTI3E21[];
+extern VTBL_ENTRY _ZTV3E21[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E21[];
+extern Class_Descriptor cd_F23;
+extern VTBL_ENTRY _ZTI3F23[];
+extern VTBL_ENTRY _ZTV3F23[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F23[];
+static Base_Class bases_G21233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E21, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_F23, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G21233[];
+extern void _ZN6G212333fooEv();
+extern void _ZN6G212333barEv();
+extern void ABISELECT(_ZTv0_n32_N6G212333fooEv,_ZTv0_n16_N6G212333fooEv)();
+extern void ABISELECT(_ZThn16_N6G212333fooEv,_ZThn8_N6G212333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G212333barEv,_ZTv0_n12_N6G212333barEv)();
+extern void ABISELECT(_ZThn32_N6G212333barEv,_ZThn16_N6G212333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G212333fooEv,_ZTv0_n16_N6G212333fooEv)();
+extern void ABISELECT(_ZThn48_N6G212333fooEv,_ZThn24_N6G212333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G212333barEv,_ZTv0_n20_N6G212333barEv)();
+extern void ABISELECT(_ZThn48_N6G212333barEv,_ZThn24_N6G212333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G21233[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G21233[0]),
+ (VTBL_ENTRY)&_ZN6G212333fooEv,
+ (VTBL_ENTRY)&_ZN6G212333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G21233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G212333fooEv,_ZTv0_n16_N6G212333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G21233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G212333barEv,_ZTv0_n12_N6G212333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G21233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G212333fooEv,_ZTv0_n16_N6G212333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G212333barEv,_ZTv0_n20_N6G212333barEv),
+};
+extern VTBL_ENTRY _ZTV6G21233[];
+extern void _ZN3E213fooEv();
+static VTBL_ENTRY _tg__ZTV3E21__6G21233[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E21[0]),
+ (VTBL_ENTRY)&_ZN3E213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__3E21__6G21233[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E21[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3F233fooEv();
+extern void _ZN3F233barEv();
+static VTBL_ENTRY _tg__ZTV3F23__6G21233[] = {
+ ABISELECT(-16,-8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F23[0]),
+ (VTBL_ENTRY)&_ZN3F233fooEv,
+ (VTBL_ENTRY)&_ZN3F233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F233barEv,_ZTv0_n12_N3F233barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__3F23__6G21233[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI3F23[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F233barEv,_ZTv0_n12_N3F233barEv),
+};
+static VTT_ENTRY vtt_G21233[] = {
+ {&(_ZTV6G21233[5]), 5,23},
+ {&(_ZTV6G21233[11]), 11,23},
+ {&(_ZTV6G21233[15]), 15,23},
+ {&(_ZTV6G21233[21]), 21,23},
+ {&(_tg__ZTV3E21__6G21233[3]), 3,4},
+ {&(_tg__ZTV3AA2__3E21__6G21233[3]), 3,4},
+ {&(_tg__ZTV3F23__6G21233[3]), 3,5},
+ {&(_tg__ZTV3AA2__3F23__6G21233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G21233[];
+extern VTBL_ENTRY _ZTV6G21233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G21233[];
+static VTBL_ENTRY alt_thunk_names113[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6G212333barEv,_ZTv0_n20_N6G212333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G212333barEv,_ZThn24_N6G212333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G212333barEv,_ZTv0_n12_N6G212333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G212333barEv,_ZThn16_N6G212333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G212333fooEv,_ZTv0_n16_N6G212333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G212333fooEv,_ZThn24_N6G212333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G212333fooEv,_ZThn8_N6G212333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G21233 = { "G21233", // class name
+ bases_G21233, 3,
+ &(vtc_G21233[0]), // expected_vtbl_contents
+ &(vtt_G21233[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6G21233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G21233),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G21233),8, //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 G21313 : virtual E21 , virtual F31 {
+ int pg;
+ virtual void foo(); // _ZN6G213133fooEv
+ virtual void bar(); // _ZN6G213133barEv
+ ~G21313(); // tgen
+ G21313(); // tgen
+};
+//SIG(1 G21313) C1{ VBC2{ VBC3{ v2 Fi} v1 Fi} VBC4{ VBC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void G21313 ::foo(){vfunc_called(this, "_ZN6G213133fooEv");}
+void G21313 ::bar(){vfunc_called(this, "_ZN6G213133barEv");}
+G21313 ::~G21313(){ note_dtor("G21313", this);} // tgen
+G21313 ::G21313(){ note_ctor("G21313", this);} // tgen
+
+static void Test_G21313()
+{
+ extern Class_Descriptor cd_G21313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G21313, buf);
+ G21313 *dp, &lv = *(dp=new (buf) G21313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G21313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G21313)");
+ check_base_class_offset(lv, (AA2*)(E21*), ABISELECT(32,16), "G21313");
+ check_base_class_offset(lv, (E21*), ABISELECT(16,8), "G21313");
+ check_base_class_offset(lv, (AA3*)(F31*), ABISELECT(64,32), "G21313");
+ check_base_class_offset(lv, (F31*), ABISELECT(48,24), "G21313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G21313.pg");
+ test_class_info(&lv, &cd_G21313);
+ dp->~G21313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG21313(Test_G21313, "G21313", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G21313C1Ev();
+extern void _ZN6G21313D1Ev();
+Name_Map name_map_G21313[] = {
+ NSPAIR(_ZN6G21313C1Ev),
+ NSPAIR(_ZN6G21313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_E21;
+extern VTBL_ENTRY _ZTI3E21[];
+extern VTBL_ENTRY _ZTV3E21[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E21[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_F31;
+extern VTBL_ENTRY _ZTI3F31[];
+extern VTBL_ENTRY _ZTV3F31[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F31[];
+static Base_Class bases_G21313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E21, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F31, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G21313[];
+extern void _ZN6G213133fooEv();
+extern void _ZN6G213133barEv();
+extern void ABISELECT(_ZTv0_n32_N6G213133fooEv,_ZTv0_n16_N6G213133fooEv)();
+extern void ABISELECT(_ZThn16_N6G213133fooEv,_ZThn8_N6G213133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G213133barEv,_ZTv0_n12_N6G213133barEv)();
+extern void ABISELECT(_ZThn32_N6G213133barEv,_ZThn16_N6G213133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G213133fooEv,_ZTv0_n16_N6G213133fooEv)();
+extern void ABISELECT(_ZThn48_N6G213133fooEv,_ZThn24_N6G213133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G213133fooEv,_ZTv0_n12_N6G213133fooEv)();
+extern void ABISELECT(_ZThn64_N6G213133fooEv,_ZThn32_N6G213133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G213133barEv,_ZTv0_n16_N6G213133barEv)();
+extern void ABISELECT(_ZThn64_N6G213133barEv,_ZThn32_N6G213133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G21313[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G21313[0]),
+ (VTBL_ENTRY)&_ZN6G213133fooEv,
+ (VTBL_ENTRY)&_ZN6G213133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G21313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G213133fooEv,_ZTv0_n16_N6G213133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G21313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G213133barEv,_ZTv0_n12_N6G213133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G21313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G213133fooEv,_ZTv0_n16_N6G213133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G21313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G213133fooEv,_ZTv0_n12_N6G213133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G213133barEv,_ZTv0_n16_N6G213133barEv),
+};
+extern VTBL_ENTRY _ZTV6G21313[];
+extern void _ZN3E213fooEv();
+static VTBL_ENTRY _tg__ZTV3E21__6G21313[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E21[0]),
+ (VTBL_ENTRY)&_ZN3E213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__3E21__6G21313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E21[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3F313fooEv();
+static VTBL_ENTRY _tg__ZTV3F31__6G21313[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F31[0]),
+ (VTBL_ENTRY)&_ZN3F313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F313fooEv,_ZTv0_n12_N3F313fooEv)();
+extern void ABISELECT(_ZThn16_N3F313fooEv,_ZThn8_N3F313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__3F31__6G21313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F31[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F313fooEv,_ZTv0_n12_N3F313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+static VTT_ENTRY vtt_G21313[] = {
+ {&(_ZTV6G21313[6]), 6,28},
+ {&(_ZTV6G21313[12]), 12,28},
+ {&(_ZTV6G21313[16]), 16,28},
+ {&(_ZTV6G21313[21]), 21,28},
+ {&(_ZTV6G21313[26]), 26,28},
+ {&(_tg__ZTV3E21__6G21313[3]), 3,4},
+ {&(_tg__ZTV3AA2__3E21__6G21313[3]), 3,4},
+ {&(_tg__ZTV3F31__6G21313[3]), 3,4},
+ {&(_tg__ZTV3AA3__3F31__6G21313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6G21313[];
+extern VTBL_ENTRY _ZTV6G21313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G21313[];
+static VTBL_ENTRY alt_thunk_names114[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F313fooEv,_ZTv0_n12_N3F313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F313fooEv,_ZThn8_N3F313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G213133barEv,_ZTv0_n16_N6G213133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G213133barEv,_ZThn32_N6G213133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G213133fooEv,_ZTv0_n12_N6G213133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G213133fooEv,_ZThn32_N6G213133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G213133barEv,_ZTv0_n12_N6G213133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G213133barEv,_ZThn16_N6G213133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G213133fooEv,_ZTv0_n16_N6G213133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G213133fooEv,_ZThn24_N6G213133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G213133fooEv,_ZThn8_N6G213133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G21313 = { "G21313", // class name
+ bases_G21313, 4,
+ &(vtc_G21313[0]), // expected_vtbl_contents
+ &(vtt_G21313[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G21313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G21313),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G21313),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names114,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G21323 : virtual E21 , virtual F32 {
+ int pg;
+ virtual void foo(); // _ZN6G213233fooEv
+ virtual void bar(); // _ZN6G213233barEv
+ ~G21323(); // tgen
+ G21323(); // tgen
+};
+//SIG(1 G21323) C1{ VBC2{ VBC3{ v2 Fi} v1 Fi} VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void G21323 ::foo(){vfunc_called(this, "_ZN6G213233fooEv");}
+void G21323 ::bar(){vfunc_called(this, "_ZN6G213233barEv");}
+G21323 ::~G21323(){ note_dtor("G21323", this);} // tgen
+G21323 ::G21323(){ note_ctor("G21323", this);} // tgen
+
+static void Test_G21323()
+{
+ extern Class_Descriptor cd_G21323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G21323, buf);
+ G21323 *dp, &lv = *(dp=new (buf) G21323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G21323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G21323)");
+ check_base_class_offset(lv, (AA2*)(E21*), ABISELECT(32,16), "G21323");
+ check_base_class_offset(lv, (E21*), ABISELECT(16,8), "G21323");
+ check_base_class_offset(lv, (AA3*)(F32*), ABISELECT(64,32), "G21323");
+ check_base_class_offset(lv, (F32*), ABISELECT(48,24), "G21323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G21323.pg");
+ test_class_info(&lv, &cd_G21323);
+ dp->~G21323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG21323(Test_G21323, "G21323", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G21323C1Ev();
+extern void _ZN6G21323D1Ev();
+Name_Map name_map_G21323[] = {
+ NSPAIR(_ZN6G21323C1Ev),
+ NSPAIR(_ZN6G21323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_E21;
+extern VTBL_ENTRY _ZTI3E21[];
+extern VTBL_ENTRY _ZTV3E21[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E21[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_F32;
+extern VTBL_ENTRY _ZTI3F32[];
+extern VTBL_ENTRY _ZTV3F32[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F32[];
+static Base_Class bases_G21323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E21, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F32, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G21323[];
+extern void _ZN6G213233fooEv();
+extern void _ZN6G213233barEv();
+extern void ABISELECT(_ZTv0_n32_N6G213233fooEv,_ZTv0_n16_N6G213233fooEv)();
+extern void ABISELECT(_ZThn16_N6G213233fooEv,_ZThn8_N6G213233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G213233barEv,_ZTv0_n12_N6G213233barEv)();
+extern void ABISELECT(_ZThn32_N6G213233barEv,_ZThn16_N6G213233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G213233barEv,_ZTv0_n16_N6G213233barEv)();
+extern void ABISELECT(_ZThn48_N6G213233barEv,_ZThn24_N6G213233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G213233fooEv,_ZTv0_n12_N6G213233fooEv)();
+extern void ABISELECT(_ZThn64_N6G213233fooEv,_ZThn32_N6G213233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G213233barEv,_ZTv0_n16_N6G213233barEv)();
+extern void ABISELECT(_ZThn64_N6G213233barEv,_ZThn32_N6G213233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G21323[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G21323[0]),
+ (VTBL_ENTRY)&_ZN6G213233fooEv,
+ (VTBL_ENTRY)&_ZN6G213233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G21323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G213233fooEv,_ZTv0_n16_N6G213233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G21323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G213233barEv,_ZTv0_n12_N6G213233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G21323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G213233barEv,_ZTv0_n16_N6G213233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G21323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G213233fooEv,_ZTv0_n12_N6G213233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G213233barEv,_ZTv0_n16_N6G213233barEv),
+};
+extern VTBL_ENTRY _ZTV6G21323[];
+extern void _ZN3E213fooEv();
+static VTBL_ENTRY _tg__ZTV3E21__6G21323[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E21[0]),
+ (VTBL_ENTRY)&_ZN3E213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__3E21__6G21323[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E21[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3F323barEv();
+static VTBL_ENTRY _tg__ZTV3F32__6G21323[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F32[0]),
+ (VTBL_ENTRY)&_ZN3F323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N3F323barEv,_ZTv0_n16_N3F323barEv)();
+extern void ABISELECT(_ZThn16_N3F323barEv,_ZThn8_N3F323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__3F32__6G21323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F32[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3F323barEv,_ZTv0_n16_N3F323barEv),
+};
+static VTT_ENTRY vtt_G21323[] = {
+ {&(_ZTV6G21323[6]), 6,28},
+ {&(_ZTV6G21323[12]), 12,28},
+ {&(_ZTV6G21323[16]), 16,28},
+ {&(_ZTV6G21323[21]), 21,28},
+ {&(_ZTV6G21323[26]), 26,28},
+ {&(_tg__ZTV3E21__6G21323[3]), 3,4},
+ {&(_tg__ZTV3AA2__3E21__6G21323[3]), 3,4},
+ {&(_tg__ZTV3F32__6G21323[3]), 3,4},
+ {&(_tg__ZTV3AA3__3F32__6G21323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6G21323[];
+extern VTBL_ENTRY _ZTV6G21323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G21323[];
+static VTBL_ENTRY alt_thunk_names115[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3F323barEv,_ZTv0_n16_N3F323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F323barEv,_ZThn8_N3F323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G213233fooEv,_ZTv0_n12_N6G213233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G213233fooEv,_ZThn32_N6G213233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G213233barEv,_ZTv0_n16_N6G213233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G213233barEv,_ZThn32_N6G213233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G213233barEv,_ZThn24_N6G213233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G213233barEv,_ZTv0_n12_N6G213233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G213233barEv,_ZThn16_N6G213233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G213233fooEv,_ZTv0_n16_N6G213233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G213233fooEv,_ZThn8_N6G213233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G21323 = { "G21323", // class name
+ bases_G21323, 4,
+ &(vtc_G21323[0]), // expected_vtbl_contents
+ &(vtt_G21323[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G21323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G21323),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G21323),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names115,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G21333 : virtual E21 , virtual F33 {
+ int pg;
+ virtual void foo(); // _ZN6G213333fooEv
+ virtual void bar(); // _ZN6G213333barEv
+ ~G21333(); // tgen
+ G21333(); // tgen
+};
+//SIG(1 G21333) C1{ VBC2{ VBC3{ v2 Fi} v1 Fi} VBC4{ VBC5{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void G21333 ::foo(){vfunc_called(this, "_ZN6G213333fooEv");}
+void G21333 ::bar(){vfunc_called(this, "_ZN6G213333barEv");}
+G21333 ::~G21333(){ note_dtor("G21333", this);} // tgen
+G21333 ::G21333(){ note_ctor("G21333", this);} // tgen
+
+static void Test_G21333()
+{
+ extern Class_Descriptor cd_G21333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G21333, buf);
+ G21333 *dp, &lv = *(dp=new (buf) G21333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G21333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G21333)");
+ check_base_class_offset(lv, (AA2*)(E21*), ABISELECT(32,16), "G21333");
+ check_base_class_offset(lv, (E21*), ABISELECT(16,8), "G21333");
+ check_base_class_offset(lv, (AA3*)(F33*), ABISELECT(64,32), "G21333");
+ check_base_class_offset(lv, (F33*), ABISELECT(48,24), "G21333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G21333.pg");
+ test_class_info(&lv, &cd_G21333);
+ dp->~G21333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG21333(Test_G21333, "G21333", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G21333C1Ev();
+extern void _ZN6G21333D1Ev();
+Name_Map name_map_G21333[] = {
+ NSPAIR(_ZN6G21333C1Ev),
+ NSPAIR(_ZN6G21333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_E21;
+extern VTBL_ENTRY _ZTI3E21[];
+extern VTBL_ENTRY _ZTV3E21[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E21[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_F33;
+extern VTBL_ENTRY _ZTI3F33[];
+extern VTBL_ENTRY _ZTV3F33[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F33[];
+static Base_Class bases_G21333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E21, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F33, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G21333[];
+extern void _ZN6G213333fooEv();
+extern void _ZN6G213333barEv();
+extern void ABISELECT(_ZTv0_n32_N6G213333fooEv,_ZTv0_n16_N6G213333fooEv)();
+extern void ABISELECT(_ZThn16_N6G213333fooEv,_ZThn8_N6G213333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G213333barEv,_ZTv0_n12_N6G213333barEv)();
+extern void ABISELECT(_ZThn32_N6G213333barEv,_ZThn16_N6G213333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G213333fooEv,_ZTv0_n16_N6G213333fooEv)();
+extern void ABISELECT(_ZThn48_N6G213333fooEv,_ZThn24_N6G213333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G213333barEv,_ZTv0_n20_N6G213333barEv)();
+extern void ABISELECT(_ZThn48_N6G213333barEv,_ZThn24_N6G213333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G213333fooEv,_ZTv0_n12_N6G213333fooEv)();
+extern void ABISELECT(_ZThn64_N6G213333fooEv,_ZThn32_N6G213333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G213333barEv,_ZTv0_n16_N6G213333barEv)();
+extern void ABISELECT(_ZThn64_N6G213333barEv,_ZThn32_N6G213333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G21333[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G21333[0]),
+ (VTBL_ENTRY)&_ZN6G213333fooEv,
+ (VTBL_ENTRY)&_ZN6G213333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G21333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G213333fooEv,_ZTv0_n16_N6G213333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G21333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G213333barEv,_ZTv0_n12_N6G213333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G21333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G213333fooEv,_ZTv0_n16_N6G213333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G213333barEv,_ZTv0_n20_N6G213333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G21333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G213333fooEv,_ZTv0_n12_N6G213333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G213333barEv,_ZTv0_n16_N6G213333barEv),
+};
+extern VTBL_ENTRY _ZTV6G21333[];
+extern void _ZN3E213fooEv();
+static VTBL_ENTRY _tg__ZTV3E21__6G21333[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E21[0]),
+ (VTBL_ENTRY)&_ZN3E213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__3E21__6G21333[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E21[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3F333fooEv();
+extern void _ZN3F333barEv();
+static VTBL_ENTRY _tg__ZTV3F33__6G21333[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F33[0]),
+ (VTBL_ENTRY)&_ZN3F333fooEv,
+ (VTBL_ENTRY)&_ZN3F333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F333fooEv,_ZTv0_n12_N3F333fooEv)();
+extern void ABISELECT(_ZThn16_N3F333fooEv,_ZThn8_N3F333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N3F333barEv,_ZTv0_n16_N3F333barEv)();
+extern void ABISELECT(_ZThn16_N3F333barEv,_ZThn8_N3F333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__3F33__6G21333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F33[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F333fooEv,_ZTv0_n12_N3F333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3F333barEv,_ZTv0_n16_N3F333barEv),
+};
+static VTT_ENTRY vtt_G21333[] = {
+ {&(_ZTV6G21333[6]), 6,30},
+ {&(_ZTV6G21333[12]), 12,30},
+ {&(_ZTV6G21333[16]), 16,30},
+ {&(_ZTV6G21333[22]), 22,30},
+ {&(_ZTV6G21333[28]), 28,30},
+ {&(_tg__ZTV3E21__6G21333[3]), 3,4},
+ {&(_tg__ZTV3AA2__3E21__6G21333[3]), 3,4},
+ {&(_tg__ZTV3F33__6G21333[3]), 3,5},
+ {&(_tg__ZTV3AA3__3F33__6G21333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6G21333[];
+extern VTBL_ENTRY _ZTV6G21333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G21333[];
+static VTBL_ENTRY alt_thunk_names116[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3F333barEv,_ZTv0_n16_N3F333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F333barEv,_ZThn8_N3F333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F333fooEv,_ZTv0_n12_N3F333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F333fooEv,_ZThn8_N3F333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G213333barEv,_ZTv0_n16_N6G213333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G213333barEv,_ZThn32_N6G213333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G213333fooEv,_ZTv0_n12_N6G213333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G213333fooEv,_ZThn32_N6G213333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6G213333barEv,_ZTv0_n20_N6G213333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G213333barEv,_ZThn24_N6G213333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G213333barEv,_ZTv0_n12_N6G213333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G213333barEv,_ZThn16_N6G213333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G213333fooEv,_ZTv0_n16_N6G213333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G213333fooEv,_ZThn24_N6G213333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G213333fooEv,_ZThn8_N6G213333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G21333 = { "G21333", // class name
+ bases_G21333, 4,
+ &(vtc_G21333[0]), // expected_vtbl_contents
+ &(vtt_G21333[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G21333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G21333),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G21333),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names116,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G22111 : virtual E22 , virtual F11 {
+ int pg;
+ virtual void foo(); // _ZN6G221113fooEv
+ ~G22111(); // tgen
+ G22111(); // tgen
+};
+//SIG(1 G22111) C1{ VBC2{ VBC3{ v2 Fi} v2 Fi} VBC4{ VBC5{ v1 Fi} v1 Fi} v1 Fi}
+
+
+void G22111 ::foo(){vfunc_called(this, "_ZN6G221113fooEv");}
+G22111 ::~G22111(){ note_dtor("G22111", this);} // tgen
+G22111 ::G22111(){ note_ctor("G22111", this);} // tgen
+
+static void Test_G22111()
+{
+ extern Class_Descriptor cd_G22111;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G22111, buf);
+ G22111 *dp, &lv = *(dp=new (buf) G22111());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G22111)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G22111)");
+ check_base_class_offset(lv, (AA2*)(E22*), ABISELECT(32,16), "G22111");
+ check_base_class_offset(lv, (E22*), ABISELECT(16,8), "G22111");
+ check_base_class_offset(lv, (AA1*)(F11*), ABISELECT(64,32), "G22111");
+ check_base_class_offset(lv, (F11*), ABISELECT(48,24), "G22111");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G22111.pg");
+ test_class_info(&lv, &cd_G22111);
+ dp->~G22111();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG22111(Test_G22111, "G22111", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G22111C1Ev();
+extern void _ZN6G22111D1Ev();
+Name_Map name_map_G22111[] = {
+ NSPAIR(_ZN6G22111C1Ev),
+ NSPAIR(_ZN6G22111D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_E22;
+extern VTBL_ENTRY _ZTI3E22[];
+extern VTBL_ENTRY _ZTV3E22[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E22[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_F11;
+extern VTBL_ENTRY _ZTI3F11[];
+extern VTBL_ENTRY _ZTV3F11[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F11[];
+static Base_Class bases_G22111[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E22, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(64,32), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F11, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G22111[];
+extern void _ZN6G221113fooEv();
+extern void _ZN3E223barEv();
+extern void ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv)();
+extern void ABISELECT(_ZThn16_N3E223barEv,_ZThn8_N3E223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G221113fooEv,_ZTv0_n16_N6G221113fooEv)();
+extern void ABISELECT(_ZThn48_N6G221113fooEv,_ZThn24_N6G221113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G221113fooEv,_ZTv0_n12_N6G221113fooEv)();
+extern void ABISELECT(_ZThn64_N6G221113fooEv,_ZThn32_N6G221113fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G22111[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G22111[0]),
+ (VTBL_ENTRY)&_ZN6G221113fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G22111[0]),
+ (VTBL_ENTRY)&_ZN3E223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G22111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G22111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G221113fooEv,_ZTv0_n16_N6G221113fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G22111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G221113fooEv,_ZTv0_n12_N6G221113fooEv),
+};
+extern VTBL_ENTRY _ZTV6G22111[];
+extern void _ZN3E223barEv();
+static VTBL_ENTRY _tg__ZTV3E22__6G22111[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E22[0]),
+ (VTBL_ENTRY)&_ZN3E223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv)();
+extern void ABISELECT(_ZThn16_N3E223barEv,_ZThn8_N3E223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__3E22__6G22111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E22[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv),
+};
+extern void _ZN3F113fooEv();
+static VTBL_ENTRY _tg__ZTV3F11__6G22111[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F11[0]),
+ (VTBL_ENTRY)&_ZN3F113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv)();
+extern void ABISELECT(_ZThn16_N3F113fooEv,_ZThn8_N3F113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__3F11__6G22111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F11[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv),
+};
+static VTT_ENTRY vtt_G22111[] = {
+ {&(_ZTV6G22111[6]), 6,25},
+ {&(_ZTV6G22111[11]), 11,25},
+ {&(_ZTV6G22111[15]), 15,25},
+ {&(_ZTV6G22111[20]), 20,25},
+ {&(_ZTV6G22111[24]), 24,25},
+ {&(_tg__ZTV3E22__6G22111[3]), 3,4},
+ {&(_tg__ZTV3AA2__3E22__6G22111[3]), 3,4},
+ {&(_tg__ZTV3F11__6G22111[3]), 3,4},
+ {&(_tg__ZTV3AA1__3F11__6G22111[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G22111[];
+extern VTBL_ENTRY _ZTV6G22111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G22111[];
+static VTBL_ENTRY alt_thunk_names117[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F113fooEv,_ZThn8_N3F113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G221113fooEv,_ZTv0_n12_N6G221113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G221113fooEv,_ZThn32_N6G221113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G221113fooEv,_ZTv0_n16_N6G221113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G221113fooEv,_ZThn24_N6G221113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E223barEv,_ZThn8_N3E223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E223barEv,_ZThn8_N3E223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G22111 = { "G22111", // class name
+ bases_G22111, 4,
+ &(vtc_G22111[0]), // expected_vtbl_contents
+ &(vtt_G22111[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G22111),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G22111),25, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G22111),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names117,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G22112 : virtual E22 , virtual F11 {
+ int pg;
+ virtual void bar(); // _ZN6G221123barEv
+ ~G22112(); // tgen
+ G22112(); // tgen
+};
+//SIG(1 G22112) C1{ VBC2{ VBC3{ v1 Fi} v1 Fi} VBC4{ VBC5{ v2 Fi} v2 Fi} v1 Fi}
+
+
+void G22112 ::bar(){vfunc_called(this, "_ZN6G221123barEv");}
+G22112 ::~G22112(){ note_dtor("G22112", this);} // tgen
+G22112 ::G22112(){ note_ctor("G22112", this);} // tgen
+
+static void Test_G22112()
+{
+ extern Class_Descriptor cd_G22112;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G22112, buf);
+ G22112 *dp, &lv = *(dp=new (buf) G22112());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G22112)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G22112)");
+ check_base_class_offset(lv, (AA2*)(E22*), ABISELECT(32,16), "G22112");
+ check_base_class_offset(lv, (E22*), ABISELECT(16,8), "G22112");
+ check_base_class_offset(lv, (AA1*)(F11*), ABISELECT(64,32), "G22112");
+ check_base_class_offset(lv, (F11*), ABISELECT(48,24), "G22112");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G22112.pg");
+ test_class_info(&lv, &cd_G22112);
+ dp->~G22112();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG22112(Test_G22112, "G22112", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G22112C1Ev();
+extern void _ZN6G22112D1Ev();
+Name_Map name_map_G22112[] = {
+ NSPAIR(_ZN6G22112C1Ev),
+ NSPAIR(_ZN6G22112D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_E22;
+extern VTBL_ENTRY _ZTI3E22[];
+extern VTBL_ENTRY _ZTV3E22[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E22[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_F11;
+extern VTBL_ENTRY _ZTI3F11[];
+extern VTBL_ENTRY _ZTV3F11[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F11[];
+static Base_Class bases_G22112[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E22, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(64,32), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F11, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G22112[];
+extern void _ZN6G221123barEv();
+extern void ABISELECT(_ZTv0_n32_N6G221123barEv,_ZTv0_n16_N6G221123barEv)();
+extern void ABISELECT(_ZThn16_N6G221123barEv,_ZThn8_N6G221123barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G221123barEv,_ZTv0_n12_N6G221123barEv)();
+extern void ABISELECT(_ZThn32_N6G221123barEv,_ZThn16_N6G221123barEv)() __attribute__((weak));
+extern void _ZN3F113fooEv();
+extern void ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv)();
+extern void ABISELECT(_ZThn16_N3F113fooEv,_ZThn8_N3F113fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G22112[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G22112[0]),
+ (VTBL_ENTRY)&_ZN6G221123barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G22112[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G221123barEv,_ZTv0_n16_N6G221123barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G22112[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G221123barEv,_ZTv0_n12_N6G221123barEv),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G22112[0]),
+ (VTBL_ENTRY)&_ZN3F113fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G22112[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv),
+};
+extern VTBL_ENTRY _ZTV6G22112[];
+extern void _ZN3E223barEv();
+static VTBL_ENTRY _tg__ZTV3E22__6G22112[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E22[0]),
+ (VTBL_ENTRY)&_ZN3E223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv)();
+extern void ABISELECT(_ZThn16_N3E223barEv,_ZThn8_N3E223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__3E22__6G22112[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E22[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv),
+};
+extern void _ZN3F113fooEv();
+static VTBL_ENTRY _tg__ZTV3F11__6G22112[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F11[0]),
+ (VTBL_ENTRY)&_ZN3F113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv)();
+extern void ABISELECT(_ZThn16_N3F113fooEv,_ZThn8_N3F113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__3F11__6G22112[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F11[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv),
+};
+static VTT_ENTRY vtt_G22112[] = {
+ {&(_ZTV6G22112[6]), 6,25},
+ {&(_ZTV6G22112[11]), 11,25},
+ {&(_ZTV6G22112[15]), 15,25},
+ {&(_ZTV6G22112[20]), 20,25},
+ {&(_ZTV6G22112[24]), 24,25},
+ {&(_tg__ZTV3E22__6G22112[3]), 3,4},
+ {&(_tg__ZTV3AA2__3E22__6G22112[3]), 3,4},
+ {&(_tg__ZTV3F11__6G22112[3]), 3,4},
+ {&(_tg__ZTV3AA1__3F11__6G22112[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G22112[];
+extern VTBL_ENTRY _ZTV6G22112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G22112[];
+static VTBL_ENTRY alt_thunk_names118[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E223barEv,_ZThn8_N3E223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F113fooEv,_ZThn8_N3F113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F113fooEv,_ZThn8_N3F113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G221123barEv,_ZTv0_n12_N6G221123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G221123barEv,_ZThn16_N6G221123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G221123barEv,_ZTv0_n16_N6G221123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G221123barEv,_ZThn8_N6G221123barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G22112 = { "G22112", // class name
+ bases_G22112, 4,
+ &(vtc_G22112[0]), // expected_vtbl_contents
+ &(vtt_G22112[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G22112),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G22112),25, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G22112),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names118,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G22113 : virtual E22 , virtual F11 {
+ int pg;
+ virtual void foo(); // _ZN6G221133fooEv
+ virtual void bar(); // _ZN6G221133barEv
+ ~G22113(); // tgen
+ G22113(); // tgen
+};
+//SIG(1 G22113) C1{ VBC2{ VBC3{ v2 Fi} v2 Fi} VBC4{ VBC5{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void G22113 ::foo(){vfunc_called(this, "_ZN6G221133fooEv");}
+void G22113 ::bar(){vfunc_called(this, "_ZN6G221133barEv");}
+G22113 ::~G22113(){ note_dtor("G22113", this);} // tgen
+G22113 ::G22113(){ note_ctor("G22113", this);} // tgen
+
+static void Test_G22113()
+{
+ extern Class_Descriptor cd_G22113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G22113, buf);
+ G22113 *dp, &lv = *(dp=new (buf) G22113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G22113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G22113)");
+ check_base_class_offset(lv, (AA2*)(E22*), ABISELECT(32,16), "G22113");
+ check_base_class_offset(lv, (E22*), ABISELECT(16,8), "G22113");
+ check_base_class_offset(lv, (AA1*)(F11*), ABISELECT(64,32), "G22113");
+ check_base_class_offset(lv, (F11*), ABISELECT(48,24), "G22113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G22113.pg");
+ test_class_info(&lv, &cd_G22113);
+ dp->~G22113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG22113(Test_G22113, "G22113", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G22113C1Ev();
+extern void _ZN6G22113D1Ev();
+Name_Map name_map_G22113[] = {
+ NSPAIR(_ZN6G22113C1Ev),
+ NSPAIR(_ZN6G22113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_E22;
+extern VTBL_ENTRY _ZTI3E22[];
+extern VTBL_ENTRY _ZTV3E22[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E22[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_F11;
+extern VTBL_ENTRY _ZTI3F11[];
+extern VTBL_ENTRY _ZTV3F11[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F11[];
+static Base_Class bases_G22113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E22, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F11, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G22113[];
+extern void _ZN6G221133fooEv();
+extern void _ZN6G221133barEv();
+extern void ABISELECT(_ZTv0_n32_N6G221133barEv,_ZTv0_n16_N6G221133barEv)();
+extern void ABISELECT(_ZThn16_N6G221133barEv,_ZThn8_N6G221133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G221133barEv,_ZTv0_n12_N6G221133barEv)();
+extern void ABISELECT(_ZThn32_N6G221133barEv,_ZThn16_N6G221133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G221133fooEv,_ZTv0_n16_N6G221133fooEv)();
+extern void ABISELECT(_ZThn48_N6G221133fooEv,_ZThn24_N6G221133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G221133fooEv,_ZTv0_n12_N6G221133fooEv)();
+extern void ABISELECT(_ZThn64_N6G221133fooEv,_ZThn32_N6G221133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G22113[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G22113[0]),
+ (VTBL_ENTRY)&_ZN6G221133fooEv,
+ (VTBL_ENTRY)&_ZN6G221133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G22113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G221133barEv,_ZTv0_n16_N6G221133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G22113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G221133barEv,_ZTv0_n12_N6G221133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G22113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G221133fooEv,_ZTv0_n16_N6G221133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G22113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G221133fooEv,_ZTv0_n12_N6G221133fooEv),
+};
+extern VTBL_ENTRY _ZTV6G22113[];
+extern void _ZN3E223barEv();
+static VTBL_ENTRY _tg__ZTV3E22__6G22113[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E22[0]),
+ (VTBL_ENTRY)&_ZN3E223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv)();
+extern void ABISELECT(_ZThn16_N3E223barEv,_ZThn8_N3E223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__3E22__6G22113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E22[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv),
+};
+extern void _ZN3F113fooEv();
+static VTBL_ENTRY _tg__ZTV3F11__6G22113[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F11[0]),
+ (VTBL_ENTRY)&_ZN3F113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv)();
+extern void ABISELECT(_ZThn16_N3F113fooEv,_ZThn8_N3F113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__3F11__6G22113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F11[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv),
+};
+static VTT_ENTRY vtt_G22113[] = {
+ {&(_ZTV6G22113[6]), 6,26},
+ {&(_ZTV6G22113[12]), 12,26},
+ {&(_ZTV6G22113[16]), 16,26},
+ {&(_ZTV6G22113[21]), 21,26},
+ {&(_ZTV6G22113[25]), 25,26},
+ {&(_tg__ZTV3E22__6G22113[3]), 3,4},
+ {&(_tg__ZTV3AA2__3E22__6G22113[3]), 3,4},
+ {&(_tg__ZTV3F11__6G22113[3]), 3,4},
+ {&(_tg__ZTV3AA1__3F11__6G22113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G22113[];
+extern VTBL_ENTRY _ZTV6G22113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G22113[];
+static VTBL_ENTRY alt_thunk_names119[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F113fooEv,_ZThn8_N3F113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E223barEv,_ZThn8_N3E223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G221133fooEv,_ZTv0_n12_N6G221133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G221133fooEv,_ZThn32_N6G221133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G221133fooEv,_ZTv0_n16_N6G221133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G221133fooEv,_ZThn24_N6G221133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G221133barEv,_ZTv0_n12_N6G221133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G221133barEv,_ZThn16_N6G221133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G221133barEv,_ZTv0_n16_N6G221133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G221133barEv,_ZThn8_N6G221133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G22113 = { "G22113", // class name
+ bases_G22113, 4,
+ &(vtc_G22113[0]), // expected_vtbl_contents
+ &(vtt_G22113[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G22113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G22113),26, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G22113),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names119,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G22122 : virtual E22 , virtual F12 {
+ int pg;
+ virtual void bar(); // _ZN6G221223barEv
+ ~G22122(); // tgen
+ G22122(); // tgen
+};
+//SIG(1 G22122) C1{ VBC2{ VBC3{ v1 Fi} v1 Fi} VBC4{ VBC5{ v2 Fi} v1 Fi} v1 Fi}
+
+
+void G22122 ::bar(){vfunc_called(this, "_ZN6G221223barEv");}
+G22122 ::~G22122(){ note_dtor("G22122", this);} // tgen
+G22122 ::G22122(){ note_ctor("G22122", this);} // tgen
+
+static void Test_G22122()
+{
+ extern Class_Descriptor cd_G22122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G22122, buf);
+ G22122 *dp, &lv = *(dp=new (buf) G22122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G22122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G22122)");
+ check_base_class_offset(lv, (AA2*)(E22*), ABISELECT(32,16), "G22122");
+ check_base_class_offset(lv, (E22*), ABISELECT(16,8), "G22122");
+ check_base_class_offset(lv, (AA1*)(F12*), ABISELECT(64,32), "G22122");
+ check_base_class_offset(lv, (F12*), ABISELECT(48,24), "G22122");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G22122.pg");
+ test_class_info(&lv, &cd_G22122);
+ dp->~G22122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG22122(Test_G22122, "G22122", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G22122C1Ev();
+extern void _ZN6G22122D1Ev();
+Name_Map name_map_G22122[] = {
+ NSPAIR(_ZN6G22122C1Ev),
+ NSPAIR(_ZN6G22122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_E22;
+extern VTBL_ENTRY _ZTI3E22[];
+extern VTBL_ENTRY _ZTV3E22[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E22[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_F12;
+extern VTBL_ENTRY _ZTI3F12[];
+extern VTBL_ENTRY _ZTV3F12[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F12[];
+static Base_Class bases_G22122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E22, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(64,32), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F12, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G22122[];
+extern void _ZN6G221223barEv();
+extern void ABISELECT(_ZTv0_n32_N6G221223barEv,_ZTv0_n16_N6G221223barEv)();
+extern void ABISELECT(_ZThn16_N6G221223barEv,_ZThn8_N6G221223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G221223barEv,_ZTv0_n12_N6G221223barEv)();
+extern void ABISELECT(_ZThn32_N6G221223barEv,_ZThn16_N6G221223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G221223barEv,_ZTv0_n16_N6G221223barEv)();
+extern void ABISELECT(_ZThn48_N6G221223barEv,_ZThn24_N6G221223barEv)() __attribute__((weak));
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY vtc_G22122[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G22122[0]),
+ (VTBL_ENTRY)&_ZN6G221223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G22122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G221223barEv,_ZTv0_n16_N6G221223barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G22122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G221223barEv,_ZTv0_n12_N6G221223barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G22122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G221223barEv,_ZTv0_n16_N6G221223barEv),
+ 0,
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G22122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern VTBL_ENTRY _ZTV6G22122[];
+extern void _ZN3E223barEv();
+static VTBL_ENTRY _tg__ZTV3E22__6G22122[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E22[0]),
+ (VTBL_ENTRY)&_ZN3E223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv)();
+extern void ABISELECT(_ZThn16_N3E223barEv,_ZThn8_N3E223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__3E22__6G22122[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E22[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv),
+};
+extern void _ZN3F123barEv();
+static VTBL_ENTRY _tg__ZTV3F12__6G22122[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F12[0]),
+ (VTBL_ENTRY)&_ZN3F123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__3F12__6G22122[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F12[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+static VTT_ENTRY vtt_G22122[] = {
+ {&(_ZTV6G22122[6]), 6,25},
+ {&(_ZTV6G22122[11]), 11,25},
+ {&(_ZTV6G22122[15]), 15,25},
+ {&(_ZTV6G22122[20]), 20,25},
+ {&(_ZTV6G22122[24]), 24,25},
+ {&(_tg__ZTV3E22__6G22122[3]), 3,4},
+ {&(_tg__ZTV3AA2__3E22__6G22122[3]), 3,4},
+ {&(_tg__ZTV3F12__6G22122[3]), 3,4},
+ {&(_tg__ZTV3AA1__3F12__6G22122[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G22122[];
+extern VTBL_ENTRY _ZTV6G22122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G22122[];
+static VTBL_ENTRY alt_thunk_names120[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E223barEv,_ZThn8_N3E223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G221223barEv,_ZTv0_n12_N6G221223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G221223barEv,_ZThn16_N6G221223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G221223barEv,_ZTv0_n16_N6G221223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G221223barEv,_ZThn24_N6G221223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G221223barEv,_ZThn8_N6G221223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G22122 = { "G22122", // class name
+ bases_G22122, 4,
+ &(vtc_G22122[0]), // expected_vtbl_contents
+ &(vtt_G22122[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G22122),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G22122),25, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G22122),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names120,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G22123 : virtual E22 , virtual F12 {
+ int pg;
+ virtual void foo(); // _ZN6G221233fooEv
+ virtual void bar(); // _ZN6G221233barEv
+ ~G22123(); // tgen
+ G22123(); // tgen
+};
+//SIG(1 G22123) C1{ VBC2{ VBC3{ v2 Fi} v2 Fi} VBC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void G22123 ::foo(){vfunc_called(this, "_ZN6G221233fooEv");}
+void G22123 ::bar(){vfunc_called(this, "_ZN6G221233barEv");}
+G22123 ::~G22123(){ note_dtor("G22123", this);} // tgen
+G22123 ::G22123(){ note_ctor("G22123", this);} // tgen
+
+static void Test_G22123()
+{
+ extern Class_Descriptor cd_G22123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G22123, buf);
+ G22123 *dp, &lv = *(dp=new (buf) G22123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G22123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G22123)");
+ check_base_class_offset(lv, (AA2*)(E22*), ABISELECT(32,16), "G22123");
+ check_base_class_offset(lv, (E22*), ABISELECT(16,8), "G22123");
+ check_base_class_offset(lv, (AA1*)(F12*), ABISELECT(64,32), "G22123");
+ check_base_class_offset(lv, (F12*), ABISELECT(48,24), "G22123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G22123.pg");
+ test_class_info(&lv, &cd_G22123);
+ dp->~G22123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG22123(Test_G22123, "G22123", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G22123C1Ev();
+extern void _ZN6G22123D1Ev();
+Name_Map name_map_G22123[] = {
+ NSPAIR(_ZN6G22123C1Ev),
+ NSPAIR(_ZN6G22123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_E22;
+extern VTBL_ENTRY _ZTI3E22[];
+extern VTBL_ENTRY _ZTV3E22[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E22[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_F12;
+extern VTBL_ENTRY _ZTI3F12[];
+extern VTBL_ENTRY _ZTV3F12[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F12[];
+static Base_Class bases_G22123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E22, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F12, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G22123[];
+extern void _ZN6G221233fooEv();
+extern void _ZN6G221233barEv();
+extern void ABISELECT(_ZTv0_n32_N6G221233barEv,_ZTv0_n16_N6G221233barEv)();
+extern void ABISELECT(_ZThn16_N6G221233barEv,_ZThn8_N6G221233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G221233barEv,_ZTv0_n12_N6G221233barEv)();
+extern void ABISELECT(_ZThn32_N6G221233barEv,_ZThn16_N6G221233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G221233barEv,_ZTv0_n16_N6G221233barEv)();
+extern void ABISELECT(_ZThn48_N6G221233barEv,_ZThn24_N6G221233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G221233fooEv,_ZTv0_n12_N6G221233fooEv)();
+extern void ABISELECT(_ZThn64_N6G221233fooEv,_ZThn32_N6G221233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G22123[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G22123[0]),
+ (VTBL_ENTRY)&_ZN6G221233fooEv,
+ (VTBL_ENTRY)&_ZN6G221233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G22123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G221233barEv,_ZTv0_n16_N6G221233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G22123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G221233barEv,_ZTv0_n12_N6G221233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G22123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G221233barEv,_ZTv0_n16_N6G221233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G22123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G221233fooEv,_ZTv0_n12_N6G221233fooEv),
+};
+extern VTBL_ENTRY _ZTV6G22123[];
+extern void _ZN3E223barEv();
+static VTBL_ENTRY _tg__ZTV3E22__6G22123[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E22[0]),
+ (VTBL_ENTRY)&_ZN3E223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv)();
+extern void ABISELECT(_ZThn16_N3E223barEv,_ZThn8_N3E223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__3E22__6G22123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E22[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv),
+};
+extern void _ZN3F123barEv();
+static VTBL_ENTRY _tg__ZTV3F12__6G22123[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F12[0]),
+ (VTBL_ENTRY)&_ZN3F123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__3F12__6G22123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F12[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+static VTT_ENTRY vtt_G22123[] = {
+ {&(_ZTV6G22123[6]), 6,26},
+ {&(_ZTV6G22123[12]), 12,26},
+ {&(_ZTV6G22123[16]), 16,26},
+ {&(_ZTV6G22123[21]), 21,26},
+ {&(_ZTV6G22123[25]), 25,26},
+ {&(_tg__ZTV3E22__6G22123[3]), 3,4},
+ {&(_tg__ZTV3AA2__3E22__6G22123[3]), 3,4},
+ {&(_tg__ZTV3F12__6G22123[3]), 3,4},
+ {&(_tg__ZTV3AA1__3F12__6G22123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G22123[];
+extern VTBL_ENTRY _ZTV6G22123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G22123[];
+static VTBL_ENTRY alt_thunk_names121[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E223barEv,_ZThn8_N3E223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G221233fooEv,_ZTv0_n12_N6G221233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G221233fooEv,_ZThn32_N6G221233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G221233barEv,_ZTv0_n12_N6G221233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G221233barEv,_ZThn16_N6G221233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G221233barEv,_ZTv0_n16_N6G221233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G221233barEv,_ZThn24_N6G221233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G221233barEv,_ZThn8_N6G221233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G22123 = { "G22123", // class name
+ bases_G22123, 4,
+ &(vtc_G22123[0]), // expected_vtbl_contents
+ &(vtt_G22123[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G22123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G22123),26, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G22123),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names121,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G22132 : virtual E22 , virtual F13 {
+ int pg;
+ virtual void bar(); // _ZN6G221323barEv
+ ~G22132(); // tgen
+ G22132(); // tgen
+};
+//SIG(1 G22132) C1{ VBC2{ VBC3{ v1 Fi} v1 Fi} VBC4{ VBC5{ v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void G22132 ::bar(){vfunc_called(this, "_ZN6G221323barEv");}
+G22132 ::~G22132(){ note_dtor("G22132", this);} // tgen
+G22132 ::G22132(){ note_ctor("G22132", this);} // tgen
+
+static void Test_G22132()
+{
+ extern Class_Descriptor cd_G22132;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G22132, buf);
+ G22132 *dp, &lv = *(dp=new (buf) G22132());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G22132)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G22132)");
+ check_base_class_offset(lv, (AA2*)(E22*), ABISELECT(32,16), "G22132");
+ check_base_class_offset(lv, (E22*), ABISELECT(16,8), "G22132");
+ check_base_class_offset(lv, (AA1*)(F13*), ABISELECT(64,32), "G22132");
+ check_base_class_offset(lv, (F13*), ABISELECT(48,24), "G22132");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G22132.pg");
+ test_class_info(&lv, &cd_G22132);
+ dp->~G22132();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG22132(Test_G22132, "G22132", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G22132C1Ev();
+extern void _ZN6G22132D1Ev();
+Name_Map name_map_G22132[] = {
+ NSPAIR(_ZN6G22132C1Ev),
+ NSPAIR(_ZN6G22132D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_E22;
+extern VTBL_ENTRY _ZTI3E22[];
+extern VTBL_ENTRY _ZTV3E22[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E22[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_F13;
+extern VTBL_ENTRY _ZTI3F13[];
+extern VTBL_ENTRY _ZTV3F13[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F13[];
+static Base_Class bases_G22132[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E22, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F13, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G22132[];
+extern void _ZN6G221323barEv();
+extern void ABISELECT(_ZTv0_n32_N6G221323barEv,_ZTv0_n16_N6G221323barEv)();
+extern void ABISELECT(_ZThn16_N6G221323barEv,_ZThn8_N6G221323barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G221323barEv,_ZTv0_n12_N6G221323barEv)();
+extern void ABISELECT(_ZThn32_N6G221323barEv,_ZThn16_N6G221323barEv)() __attribute__((weak));
+extern void _ZN3F133fooEv();
+extern void ABISELECT(_ZTv0_n40_N6G221323barEv,_ZTv0_n20_N6G221323barEv)();
+extern void ABISELECT(_ZThn48_N6G221323barEv,_ZThn24_N6G221323barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N3F133fooEv,_ZTv0_n12_N3F133fooEv)();
+extern void ABISELECT(_ZThn16_N3F133fooEv,_ZThn8_N3F133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G22132[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G22132[0]),
+ (VTBL_ENTRY)&_ZN6G221323barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G22132[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G221323barEv,_ZTv0_n16_N6G221323barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G22132[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G221323barEv,_ZTv0_n12_N6G221323barEv),
+ ABISELECT(-48,-24),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G22132[0]),
+ (VTBL_ENTRY)&_ZN3F133fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G221323barEv,_ZTv0_n20_N6G221323barEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G22132[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F133fooEv,_ZTv0_n12_N3F133fooEv),
+};
+extern VTBL_ENTRY _ZTV6G22132[];
+extern void _ZN3E223barEv();
+static VTBL_ENTRY _tg__ZTV3E22__6G22132[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E22[0]),
+ (VTBL_ENTRY)&_ZN3E223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv)();
+extern void ABISELECT(_ZThn16_N3E223barEv,_ZThn8_N3E223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__3E22__6G22132[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E22[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv),
+};
+extern void _ZN3F133fooEv();
+extern void _ZN3F133barEv();
+static VTBL_ENTRY _tg__ZTV3F13__6G22132[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F13[0]),
+ (VTBL_ENTRY)&_ZN3F133fooEv,
+ (VTBL_ENTRY)&_ZN3F133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F133fooEv,_ZTv0_n12_N3F133fooEv)();
+extern void ABISELECT(_ZThn16_N3F133fooEv,_ZThn8_N3F133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__3F13__6G22132[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F13[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F133fooEv,_ZTv0_n12_N3F133fooEv),
+};
+static VTT_ENTRY vtt_G22132[] = {
+ {&(_ZTV6G22132[6]), 6,27},
+ {&(_ZTV6G22132[11]), 11,27},
+ {&(_ZTV6G22132[15]), 15,27},
+ {&(_ZTV6G22132[21]), 21,27},
+ {&(_ZTV6G22132[26]), 26,27},
+ {&(_tg__ZTV3E22__6G22132[3]), 3,4},
+ {&(_tg__ZTV3AA2__3E22__6G22132[3]), 3,4},
+ {&(_tg__ZTV3F13__6G22132[3]), 3,5},
+ {&(_tg__ZTV3AA1__3F13__6G22132[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G22132[];
+extern VTBL_ENTRY _ZTV6G22132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G22132[];
+static VTBL_ENTRY alt_thunk_names122[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E223barEv,_ZThn8_N3E223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F133fooEv,_ZTv0_n12_N3F133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F133fooEv,_ZThn8_N3F133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F133fooEv,_ZThn8_N3F133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6G221323barEv,_ZTv0_n20_N6G221323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G221323barEv,_ZThn24_N6G221323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G221323barEv,_ZTv0_n12_N6G221323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G221323barEv,_ZThn16_N6G221323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G221323barEv,_ZTv0_n16_N6G221323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G221323barEv,_ZThn8_N6G221323barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G22132 = { "G22132", // class name
+ bases_G22132, 4,
+ &(vtc_G22132[0]), // expected_vtbl_contents
+ &(vtt_G22132[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G22132),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G22132),27, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G22132),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names122,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G22133 : virtual E22 , virtual F13 {
+ int pg;
+ virtual void foo(); // _ZN6G221333fooEv
+ virtual void bar(); // _ZN6G221333barEv
+ ~G22133(); // tgen
+ G22133(); // tgen
+};
+//SIG(1 G22133) C1{ VBC2{ VBC3{ v2 Fi} v2 Fi} VBC4{ VBC5{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void G22133 ::foo(){vfunc_called(this, "_ZN6G221333fooEv");}
+void G22133 ::bar(){vfunc_called(this, "_ZN6G221333barEv");}
+G22133 ::~G22133(){ note_dtor("G22133", this);} // tgen
+G22133 ::G22133(){ note_ctor("G22133", this);} // tgen
+
+static void Test_G22133()
+{
+ extern Class_Descriptor cd_G22133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G22133, buf);
+ G22133 *dp, &lv = *(dp=new (buf) G22133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G22133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G22133)");
+ check_base_class_offset(lv, (AA2*)(E22*), ABISELECT(32,16), "G22133");
+ check_base_class_offset(lv, (E22*), ABISELECT(16,8), "G22133");
+ check_base_class_offset(lv, (AA1*)(F13*), ABISELECT(64,32), "G22133");
+ check_base_class_offset(lv, (F13*), ABISELECT(48,24), "G22133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G22133.pg");
+ test_class_info(&lv, &cd_G22133);
+ dp->~G22133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG22133(Test_G22133, "G22133", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G22133C1Ev();
+extern void _ZN6G22133D1Ev();
+Name_Map name_map_G22133[] = {
+ NSPAIR(_ZN6G22133C1Ev),
+ NSPAIR(_ZN6G22133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_E22;
+extern VTBL_ENTRY _ZTI3E22[];
+extern VTBL_ENTRY _ZTV3E22[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E22[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_F13;
+extern VTBL_ENTRY _ZTI3F13[];
+extern VTBL_ENTRY _ZTV3F13[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F13[];
+static Base_Class bases_G22133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E22, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F13, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G22133[];
+extern void _ZN6G221333fooEv();
+extern void _ZN6G221333barEv();
+extern void ABISELECT(_ZTv0_n32_N6G221333barEv,_ZTv0_n16_N6G221333barEv)();
+extern void ABISELECT(_ZThn16_N6G221333barEv,_ZThn8_N6G221333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G221333barEv,_ZTv0_n12_N6G221333barEv)();
+extern void ABISELECT(_ZThn32_N6G221333barEv,_ZThn16_N6G221333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G221333fooEv,_ZTv0_n16_N6G221333fooEv)();
+extern void ABISELECT(_ZThn48_N6G221333fooEv,_ZThn24_N6G221333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G221333barEv,_ZTv0_n20_N6G221333barEv)();
+extern void ABISELECT(_ZThn48_N6G221333barEv,_ZThn24_N6G221333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G221333fooEv,_ZTv0_n12_N6G221333fooEv)();
+extern void ABISELECT(_ZThn64_N6G221333fooEv,_ZThn32_N6G221333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G22133[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G22133[0]),
+ (VTBL_ENTRY)&_ZN6G221333fooEv,
+ (VTBL_ENTRY)&_ZN6G221333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G22133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G221333barEv,_ZTv0_n16_N6G221333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G22133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G221333barEv,_ZTv0_n12_N6G221333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G22133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G221333fooEv,_ZTv0_n16_N6G221333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G221333barEv,_ZTv0_n20_N6G221333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G22133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G221333fooEv,_ZTv0_n12_N6G221333fooEv),
+};
+extern VTBL_ENTRY _ZTV6G22133[];
+extern void _ZN3E223barEv();
+static VTBL_ENTRY _tg__ZTV3E22__6G22133[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E22[0]),
+ (VTBL_ENTRY)&_ZN3E223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv)();
+extern void ABISELECT(_ZThn16_N3E223barEv,_ZThn8_N3E223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__3E22__6G22133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E22[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv),
+};
+extern void _ZN3F133fooEv();
+extern void _ZN3F133barEv();
+static VTBL_ENTRY _tg__ZTV3F13__6G22133[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F13[0]),
+ (VTBL_ENTRY)&_ZN3F133fooEv,
+ (VTBL_ENTRY)&_ZN3F133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F133fooEv,_ZTv0_n12_N3F133fooEv)();
+extern void ABISELECT(_ZThn16_N3F133fooEv,_ZThn8_N3F133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__3F13__6G22133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F13[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F133fooEv,_ZTv0_n12_N3F133fooEv),
+};
+static VTT_ENTRY vtt_G22133[] = {
+ {&(_ZTV6G22133[6]), 6,28},
+ {&(_ZTV6G22133[12]), 12,28},
+ {&(_ZTV6G22133[16]), 16,28},
+ {&(_ZTV6G22133[22]), 22,28},
+ {&(_ZTV6G22133[27]), 27,28},
+ {&(_tg__ZTV3E22__6G22133[3]), 3,4},
+ {&(_tg__ZTV3AA2__3E22__6G22133[3]), 3,4},
+ {&(_tg__ZTV3F13__6G22133[3]), 3,5},
+ {&(_tg__ZTV3AA1__3F13__6G22133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G22133[];
+extern VTBL_ENTRY _ZTV6G22133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G22133[];
+static VTBL_ENTRY alt_thunk_names123[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F133fooEv,_ZTv0_n12_N3F133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F133fooEv,_ZThn8_N3F133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E223barEv,_ZThn8_N3E223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G221333fooEv,_ZTv0_n12_N6G221333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G221333fooEv,_ZThn32_N6G221333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6G221333barEv,_ZTv0_n20_N6G221333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G221333barEv,_ZThn24_N6G221333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G221333fooEv,_ZTv0_n16_N6G221333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G221333fooEv,_ZThn24_N6G221333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G221333barEv,_ZTv0_n12_N6G221333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G221333barEv,_ZThn16_N6G221333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G221333barEv,_ZTv0_n16_N6G221333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G221333barEv,_ZThn8_N6G221333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G22133 = { "G22133", // class name
+ bases_G22133, 4,
+ &(vtc_G22133[0]), // expected_vtbl_contents
+ &(vtt_G22133[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G22133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G22133),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G22133),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names123,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G22212 : virtual E22 , virtual F21 {
+ int pg;
+ virtual void bar(); // _ZN6G222123barEv
+ ~G22212(); // tgen
+ G22212(); // tgen
+};
+//SIG(1 G22212) C1{ VBC2{ VBC3{ v1 Fi} v1 Fi} VBC4{ VBC3 v2 Fi} v1 Fi}
+
+
+void G22212 ::bar(){vfunc_called(this, "_ZN6G222123barEv");}
+G22212 ::~G22212(){ note_dtor("G22212", this);} // tgen
+G22212 ::G22212(){ note_ctor("G22212", this);} // tgen
+
+static void Test_G22212()
+{
+ extern Class_Descriptor cd_G22212;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_G22212, buf);
+ G22212 *dp, &lv = *(dp=new (buf) G22212());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(G22212)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G22212)");
+ check_base_class_offset(lv, (AA2*)(E22*), ABISELECT(32,16), "G22212");
+ check_base_class_offset(lv, (AA2*)(F21*), ABISELECT(32,16), "G22212");
+ check_base_class_offset(lv, (E22*), ABISELECT(16,8), "G22212");
+ check_base_class_offset(lv, (F21*), ABISELECT(48,24), "G22212");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G22212.pg");
+ test_class_info(&lv, &cd_G22212);
+ dp->~G22212();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG22212(Test_G22212, "G22212", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6G22212C1Ev();
+extern void _ZN6G22212D1Ev();
+Name_Map name_map_G22212[] = {
+ NSPAIR(_ZN6G22212C1Ev),
+ NSPAIR(_ZN6G22212D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_E22;
+extern VTBL_ENTRY _ZTI3E22[];
+extern VTBL_ENTRY _ZTV3E22[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E22[];
+extern Class_Descriptor cd_F21;
+extern VTBL_ENTRY _ZTI3F21[];
+extern VTBL_ENTRY _ZTV3F21[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F21[];
+static Base_Class bases_G22212[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E22, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_F21, 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
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G22212[];
+extern void _ZN6G222123barEv();
+extern void ABISELECT(_ZTv0_n32_N6G222123barEv,_ZTv0_n16_N6G222123barEv)();
+extern void ABISELECT(_ZThn16_N6G222123barEv,_ZThn8_N6G222123barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G222123barEv,_ZTv0_n12_N6G222123barEv)();
+extern void ABISELECT(_ZThn32_N6G222123barEv,_ZThn16_N6G222123barEv)() __attribute__((weak));
+extern void _ZN3F213fooEv();
+static VTBL_ENTRY vtc_G22212[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G22212[0]),
+ (VTBL_ENTRY)&_ZN6G222123barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G22212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G222123barEv,_ZTv0_n16_N6G222123barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G22212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G222123barEv,_ZTv0_n12_N6G222123barEv),
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G22212[0]),
+ (VTBL_ENTRY)&_ZN3F213fooEv,
+};
+extern VTBL_ENTRY _ZTV6G22212[];
+extern void _ZN3E223barEv();
+static VTBL_ENTRY _tg__ZTV3E22__6G22212[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E22[0]),
+ (VTBL_ENTRY)&_ZN3E223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv)();
+extern void ABISELECT(_ZThn16_N3E223barEv,_ZThn8_N3E223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__3E22__6G22212[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E22[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv),
+};
+extern void _ZN3F213fooEv();
+static VTBL_ENTRY _tg__ZTV3F21__6G22212[] = {
+ ABISELECT(-16,-8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F21[0]),
+ (VTBL_ENTRY)&_ZN3F213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__3F21__6G22212[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI3F21[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+static VTT_ENTRY vtt_G22212[] = {
+ {&(_ZTV6G22212[5]), 5,20},
+ {&(_ZTV6G22212[10]), 10,20},
+ {&(_ZTV6G22212[14]), 14,20},
+ {&(_ZTV6G22212[19]), 19,20},
+ {&(_tg__ZTV3E22__6G22212[3]), 3,4},
+ {&(_tg__ZTV3AA2__3E22__6G22212[3]), 3,4},
+ {&(_tg__ZTV3F21__6G22212[3]), 3,4},
+ {&(_tg__ZTV3AA2__3F21__6G22212[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G22212[];
+extern VTBL_ENTRY _ZTV6G22212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G22212[];
+static VTBL_ENTRY alt_thunk_names124[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E223barEv,_ZThn8_N3E223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G222123barEv,_ZTv0_n12_N6G222123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G222123barEv,_ZThn16_N6G222123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G222123barEv,_ZTv0_n16_N6G222123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G222123barEv,_ZThn8_N6G222123barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G22212 = { "G22212", // class name
+ bases_G22212, 3,
+ &(vtc_G22212[0]), // expected_vtbl_contents
+ &(vtt_G22212[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6G22212),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G22212),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G22212),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names124,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G22213 : virtual E22 , virtual F21 {
+ int pg;
+ virtual void foo(); // _ZN6G222133fooEv
+ virtual void bar(); // _ZN6G222133barEv
+ ~G22213(); // tgen
+ G22213(); // tgen
+};
+//SIG(1 G22213) C1{ VBC2{ VBC3{ v2 Fi} v2 Fi} VBC4{ VBC3 v1 Fi} v1 v2 Fi}
+
+
+void G22213 ::foo(){vfunc_called(this, "_ZN6G222133fooEv");}
+void G22213 ::bar(){vfunc_called(this, "_ZN6G222133barEv");}
+G22213 ::~G22213(){ note_dtor("G22213", this);} // tgen
+G22213 ::G22213(){ note_ctor("G22213", this);} // tgen
+
+static void Test_G22213()
+{
+ extern Class_Descriptor cd_G22213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_G22213, buf);
+ G22213 *dp, &lv = *(dp=new (buf) G22213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(G22213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G22213)");
+ check_base_class_offset(lv, (AA2*)(E22*), ABISELECT(32,16), "G22213");
+ check_base_class_offset(lv, (AA2*)(F21*), ABISELECT(32,16), "G22213");
+ check_base_class_offset(lv, (E22*), ABISELECT(16,8), "G22213");
+ check_base_class_offset(lv, (F21*), ABISELECT(48,24), "G22213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G22213.pg");
+ test_class_info(&lv, &cd_G22213);
+ dp->~G22213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG22213(Test_G22213, "G22213", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6G22213C1Ev();
+extern void _ZN6G22213D1Ev();
+Name_Map name_map_G22213[] = {
+ NSPAIR(_ZN6G22213C1Ev),
+ NSPAIR(_ZN6G22213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_E22;
+extern VTBL_ENTRY _ZTI3E22[];
+extern VTBL_ENTRY _ZTV3E22[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E22[];
+extern Class_Descriptor cd_F21;
+extern VTBL_ENTRY _ZTI3F21[];
+extern VTBL_ENTRY _ZTV3F21[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F21[];
+static Base_Class bases_G22213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E22, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_F21, 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
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G22213[];
+extern void _ZN6G222133fooEv();
+extern void _ZN6G222133barEv();
+extern void ABISELECT(_ZTv0_n32_N6G222133barEv,_ZTv0_n16_N6G222133barEv)();
+extern void ABISELECT(_ZThn16_N6G222133barEv,_ZThn8_N6G222133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G222133barEv,_ZTv0_n12_N6G222133barEv)();
+extern void ABISELECT(_ZThn32_N6G222133barEv,_ZThn16_N6G222133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G222133fooEv,_ZTv0_n16_N6G222133fooEv)();
+extern void ABISELECT(_ZThn48_N6G222133fooEv,_ZThn24_N6G222133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G22213[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G22213[0]),
+ (VTBL_ENTRY)&_ZN6G222133fooEv,
+ (VTBL_ENTRY)&_ZN6G222133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G22213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G222133barEv,_ZTv0_n16_N6G222133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G22213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G222133barEv,_ZTv0_n12_N6G222133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G22213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G222133fooEv,_ZTv0_n16_N6G222133fooEv),
+};
+extern VTBL_ENTRY _ZTV6G22213[];
+extern void _ZN3E223barEv();
+static VTBL_ENTRY _tg__ZTV3E22__6G22213[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E22[0]),
+ (VTBL_ENTRY)&_ZN3E223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv)();
+extern void ABISELECT(_ZThn16_N3E223barEv,_ZThn8_N3E223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__3E22__6G22213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E22[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv),
+};
+extern void _ZN3F213fooEv();
+static VTBL_ENTRY _tg__ZTV3F21__6G22213[] = {
+ ABISELECT(-16,-8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F21[0]),
+ (VTBL_ENTRY)&_ZN3F213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__3F21__6G22213[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI3F21[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+static VTT_ENTRY vtt_G22213[] = {
+ {&(_ZTV6G22213[5]), 5,21},
+ {&(_ZTV6G22213[11]), 11,21},
+ {&(_ZTV6G22213[15]), 15,21},
+ {&(_ZTV6G22213[20]), 20,21},
+ {&(_tg__ZTV3E22__6G22213[3]), 3,4},
+ {&(_tg__ZTV3AA2__3E22__6G22213[3]), 3,4},
+ {&(_tg__ZTV3F21__6G22213[3]), 3,4},
+ {&(_tg__ZTV3AA2__3F21__6G22213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G22213[];
+extern VTBL_ENTRY _ZTV6G22213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G22213[];
+static VTBL_ENTRY alt_thunk_names125[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E223barEv,_ZThn8_N3E223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G222133fooEv,_ZTv0_n16_N6G222133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G222133fooEv,_ZThn24_N6G222133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G222133barEv,_ZTv0_n12_N6G222133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G222133barEv,_ZThn16_N6G222133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G222133barEv,_ZTv0_n16_N6G222133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G222133barEv,_ZThn8_N6G222133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G22213 = { "G22213", // class name
+ bases_G22213, 3,
+ &(vtc_G22213[0]), // expected_vtbl_contents
+ &(vtt_G22213[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6G22213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G22213),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G22213),8, //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 G22222 : virtual E22 , virtual F22 {
+ int pg;
+ virtual void bar(); // _ZN6G222223barEv
+ ~G22222(); // tgen
+ G22222(); // tgen
+};
+//SIG(1 G22222) C1{ VBC2{ VBC3{ v1 Fi} v1 Fi} VBC4{ VBC3 v1 Fi} v1 Fi}
+
+
+void G22222 ::bar(){vfunc_called(this, "_ZN6G222223barEv");}
+G22222 ::~G22222(){ note_dtor("G22222", this);} // tgen
+G22222 ::G22222(){ note_ctor("G22222", this);} // tgen
+
+static void Test_G22222()
+{
+ extern Class_Descriptor cd_G22222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_G22222, buf);
+ G22222 *dp, &lv = *(dp=new (buf) G22222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(G22222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G22222)");
+ check_base_class_offset(lv, (AA2*)(E22*), ABISELECT(32,16), "G22222");
+ check_base_class_offset(lv, (AA2*)(F22*), ABISELECT(32,16), "G22222");
+ check_base_class_offset(lv, (E22*), ABISELECT(16,8), "G22222");
+ check_base_class_offset(lv, (F22*), ABISELECT(48,24), "G22222");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G22222.pg");
+ test_class_info(&lv, &cd_G22222);
+ dp->~G22222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG22222(Test_G22222, "G22222", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6G22222C1Ev();
+extern void _ZN6G22222D1Ev();
+Name_Map name_map_G22222[] = {
+ NSPAIR(_ZN6G22222C1Ev),
+ NSPAIR(_ZN6G22222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_E22;
+extern VTBL_ENTRY _ZTI3E22[];
+extern VTBL_ENTRY _ZTV3E22[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E22[];
+extern Class_Descriptor cd_F22;
+extern VTBL_ENTRY _ZTI3F22[];
+extern VTBL_ENTRY _ZTV3F22[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F22[];
+static Base_Class bases_G22222[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E22, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_F22, 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
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G22222[];
+extern void _ZN6G222223barEv();
+extern void ABISELECT(_ZTv0_n32_N6G222223barEv,_ZTv0_n16_N6G222223barEv)();
+extern void ABISELECT(_ZThn16_N6G222223barEv,_ZThn8_N6G222223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G222223barEv,_ZTv0_n12_N6G222223barEv)();
+extern void ABISELECT(_ZThn32_N6G222223barEv,_ZThn16_N6G222223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G222223barEv,_ZTv0_n16_N6G222223barEv)();
+extern void ABISELECT(_ZThn48_N6G222223barEv,_ZThn24_N6G222223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G22222[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G22222[0]),
+ (VTBL_ENTRY)&_ZN6G222223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G22222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G222223barEv,_ZTv0_n16_N6G222223barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G22222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G222223barEv,_ZTv0_n12_N6G222223barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G22222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G222223barEv,_ZTv0_n16_N6G222223barEv),
+};
+extern VTBL_ENTRY _ZTV6G22222[];
+extern void _ZN3E223barEv();
+static VTBL_ENTRY _tg__ZTV3E22__6G22222[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E22[0]),
+ (VTBL_ENTRY)&_ZN3E223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv)();
+extern void ABISELECT(_ZThn16_N3E223barEv,_ZThn8_N3E223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__3E22__6G22222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E22[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv),
+};
+extern void _ZN3F223barEv();
+static VTBL_ENTRY _tg__ZTV3F22__6G22222[] = {
+ ABISELECT(-16,-8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F22[0]),
+ (VTBL_ENTRY)&_ZN3F223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__3F22__6G22222[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI3F22[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv),
+};
+static VTT_ENTRY vtt_G22222[] = {
+ {&(_ZTV6G22222[5]), 5,20},
+ {&(_ZTV6G22222[10]), 10,20},
+ {&(_ZTV6G22222[14]), 14,20},
+ {&(_ZTV6G22222[19]), 19,20},
+ {&(_tg__ZTV3E22__6G22222[3]), 3,4},
+ {&(_tg__ZTV3AA2__3E22__6G22222[3]), 3,4},
+ {&(_tg__ZTV3F22__6G22222[3]), 3,4},
+ {&(_tg__ZTV3AA2__3F22__6G22222[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G22222[];
+extern VTBL_ENTRY _ZTV6G22222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G22222[];
+static VTBL_ENTRY alt_thunk_names126[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E223barEv,_ZThn8_N3E223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G222223barEv,_ZTv0_n12_N6G222223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G222223barEv,_ZThn16_N6G222223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G222223barEv,_ZTv0_n16_N6G222223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G222223barEv,_ZThn24_N6G222223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G222223barEv,_ZThn8_N6G222223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G22222 = { "G22222", // class name
+ bases_G22222, 3,
+ &(vtc_G22222[0]), // expected_vtbl_contents
+ &(vtt_G22222[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6G22222),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G22222),20, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G22222),8, //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 G22223 : virtual E22 , virtual F22 {
+ int pg;
+ virtual void foo(); // _ZN6G222233fooEv
+ virtual void bar(); // _ZN6G222233barEv
+ ~G22223(); // tgen
+ G22223(); // tgen
+};
+//SIG(1 G22223) C1{ VBC2{ VBC3{ v2 Fi} v2 Fi} VBC4{ VBC3 v2 Fi} v1 v2 Fi}
+
+
+void G22223 ::foo(){vfunc_called(this, "_ZN6G222233fooEv");}
+void G22223 ::bar(){vfunc_called(this, "_ZN6G222233barEv");}
+G22223 ::~G22223(){ note_dtor("G22223", this);} // tgen
+G22223 ::G22223(){ note_ctor("G22223", this);} // tgen
+
+static void Test_G22223()
+{
+ extern Class_Descriptor cd_G22223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_G22223, buf);
+ G22223 *dp, &lv = *(dp=new (buf) G22223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(G22223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G22223)");
+ check_base_class_offset(lv, (AA2*)(E22*), ABISELECT(32,16), "G22223");
+ check_base_class_offset(lv, (AA2*)(F22*), ABISELECT(32,16), "G22223");
+ check_base_class_offset(lv, (E22*), ABISELECT(16,8), "G22223");
+ check_base_class_offset(lv, (F22*), ABISELECT(48,24), "G22223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G22223.pg");
+ test_class_info(&lv, &cd_G22223);
+ dp->~G22223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG22223(Test_G22223, "G22223", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6G22223C1Ev();
+extern void _ZN6G22223D1Ev();
+Name_Map name_map_G22223[] = {
+ NSPAIR(_ZN6G22223C1Ev),
+ NSPAIR(_ZN6G22223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_E22;
+extern VTBL_ENTRY _ZTI3E22[];
+extern VTBL_ENTRY _ZTV3E22[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E22[];
+extern Class_Descriptor cd_F22;
+extern VTBL_ENTRY _ZTI3F22[];
+extern VTBL_ENTRY _ZTV3F22[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F22[];
+static Base_Class bases_G22223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E22, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_F22, 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
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G22223[];
+extern void _ZN6G222233fooEv();
+extern void _ZN6G222233barEv();
+extern void ABISELECT(_ZTv0_n32_N6G222233barEv,_ZTv0_n16_N6G222233barEv)();
+extern void ABISELECT(_ZThn16_N6G222233barEv,_ZThn8_N6G222233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G222233barEv,_ZTv0_n12_N6G222233barEv)();
+extern void ABISELECT(_ZThn32_N6G222233barEv,_ZThn16_N6G222233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G222233barEv,_ZTv0_n16_N6G222233barEv)();
+extern void ABISELECT(_ZThn48_N6G222233barEv,_ZThn24_N6G222233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G22223[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G22223[0]),
+ (VTBL_ENTRY)&_ZN6G222233fooEv,
+ (VTBL_ENTRY)&_ZN6G222233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G22223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G222233barEv,_ZTv0_n16_N6G222233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G22223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G222233barEv,_ZTv0_n12_N6G222233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G22223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G222233barEv,_ZTv0_n16_N6G222233barEv),
+};
+extern VTBL_ENTRY _ZTV6G22223[];
+extern void _ZN3E223barEv();
+static VTBL_ENTRY _tg__ZTV3E22__6G22223[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E22[0]),
+ (VTBL_ENTRY)&_ZN3E223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv)();
+extern void ABISELECT(_ZThn16_N3E223barEv,_ZThn8_N3E223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__3E22__6G22223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E22[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv),
+};
+extern void _ZN3F223barEv();
+static VTBL_ENTRY _tg__ZTV3F22__6G22223[] = {
+ ABISELECT(-16,-8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F22[0]),
+ (VTBL_ENTRY)&_ZN3F223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__3F22__6G22223[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI3F22[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv),
+};
+static VTT_ENTRY vtt_G22223[] = {
+ {&(_ZTV6G22223[5]), 5,21},
+ {&(_ZTV6G22223[11]), 11,21},
+ {&(_ZTV6G22223[15]), 15,21},
+ {&(_ZTV6G22223[20]), 20,21},
+ {&(_tg__ZTV3E22__6G22223[3]), 3,4},
+ {&(_tg__ZTV3AA2__3E22__6G22223[3]), 3,4},
+ {&(_tg__ZTV3F22__6G22223[3]), 3,4},
+ {&(_tg__ZTV3AA2__3F22__6G22223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G22223[];
+extern VTBL_ENTRY _ZTV6G22223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G22223[];
+static VTBL_ENTRY alt_thunk_names127[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E223barEv,_ZThn8_N3E223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G222233barEv,_ZTv0_n12_N6G222233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G222233barEv,_ZThn16_N6G222233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G222233barEv,_ZTv0_n16_N6G222233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G222233barEv,_ZThn24_N6G222233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G222233barEv,_ZThn8_N6G222233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G22223 = { "G22223", // class name
+ bases_G22223, 3,
+ &(vtc_G22223[0]), // expected_vtbl_contents
+ &(vtt_G22223[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6G22223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G22223),21, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G22223),8, //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 G22232 : virtual E22 , virtual F23 {
+ int pg;
+ virtual void bar(); // _ZN6G222323barEv
+ ~G22232(); // tgen
+ G22232(); // tgen
+};
+//SIG(1 G22232) C1{ VBC2{ VBC3{ v1 Fi} v1 Fi} VBC4{ VBC3 v2 v1 Fi} v1 Fi}
+
+
+void G22232 ::bar(){vfunc_called(this, "_ZN6G222323barEv");}
+G22232 ::~G22232(){ note_dtor("G22232", this);} // tgen
+G22232 ::G22232(){ note_ctor("G22232", this);} // tgen
+
+static void Test_G22232()
+{
+ extern Class_Descriptor cd_G22232;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_G22232, buf);
+ G22232 *dp, &lv = *(dp=new (buf) G22232());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(G22232)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G22232)");
+ check_base_class_offset(lv, (AA2*)(E22*), ABISELECT(32,16), "G22232");
+ check_base_class_offset(lv, (AA2*)(F23*), ABISELECT(32,16), "G22232");
+ check_base_class_offset(lv, (E22*), ABISELECT(16,8), "G22232");
+ check_base_class_offset(lv, (F23*), ABISELECT(48,24), "G22232");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G22232.pg");
+ test_class_info(&lv, &cd_G22232);
+ dp->~G22232();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG22232(Test_G22232, "G22232", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6G22232C1Ev();
+extern void _ZN6G22232D1Ev();
+Name_Map name_map_G22232[] = {
+ NSPAIR(_ZN6G22232C1Ev),
+ NSPAIR(_ZN6G22232D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_E22;
+extern VTBL_ENTRY _ZTI3E22[];
+extern VTBL_ENTRY _ZTV3E22[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E22[];
+extern Class_Descriptor cd_F23;
+extern VTBL_ENTRY _ZTI3F23[];
+extern VTBL_ENTRY _ZTV3F23[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F23[];
+static Base_Class bases_G22232[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 11, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E22, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_F23, ABISELECT(48,24), //bcp->offset
+ 15, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G22232[];
+extern void _ZN6G222323barEv();
+extern void ABISELECT(_ZTv0_n32_N6G222323barEv,_ZTv0_n16_N6G222323barEv)();
+extern void ABISELECT(_ZThn16_N6G222323barEv,_ZThn8_N6G222323barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G222323barEv,_ZTv0_n12_N6G222323barEv)();
+extern void ABISELECT(_ZThn32_N6G222323barEv,_ZThn16_N6G222323barEv)() __attribute__((weak));
+extern void _ZN3F233fooEv();
+extern void ABISELECT(_ZTv0_n40_N6G222323barEv,_ZTv0_n20_N6G222323barEv)();
+extern void ABISELECT(_ZThn48_N6G222323barEv,_ZThn24_N6G222323barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G22232[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G22232[0]),
+ (VTBL_ENTRY)&_ZN6G222323barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G22232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G222323barEv,_ZTv0_n16_N6G222323barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G22232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G222323barEv,_ZTv0_n12_N6G222323barEv),
+ ABISELECT(-48,-24),
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G22232[0]),
+ (VTBL_ENTRY)&_ZN3F233fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G222323barEv,_ZTv0_n20_N6G222323barEv),
+};
+extern VTBL_ENTRY _ZTV6G22232[];
+extern void _ZN3E223barEv();
+static VTBL_ENTRY _tg__ZTV3E22__6G22232[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E22[0]),
+ (VTBL_ENTRY)&_ZN3E223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv)();
+extern void ABISELECT(_ZThn16_N3E223barEv,_ZThn8_N3E223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__3E22__6G22232[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E22[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv),
+};
+extern void _ZN3F233fooEv();
+extern void _ZN3F233barEv();
+static VTBL_ENTRY _tg__ZTV3F23__6G22232[] = {
+ ABISELECT(-16,-8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F23[0]),
+ (VTBL_ENTRY)&_ZN3F233fooEv,
+ (VTBL_ENTRY)&_ZN3F233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F233barEv,_ZTv0_n12_N3F233barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__3F23__6G22232[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI3F23[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F233barEv,_ZTv0_n12_N3F233barEv),
+};
+static VTT_ENTRY vtt_G22232[] = {
+ {&(_ZTV6G22232[5]), 5,22},
+ {&(_ZTV6G22232[10]), 10,22},
+ {&(_ZTV6G22232[14]), 14,22},
+ {&(_ZTV6G22232[20]), 20,22},
+ {&(_tg__ZTV3E22__6G22232[3]), 3,4},
+ {&(_tg__ZTV3AA2__3E22__6G22232[3]), 3,4},
+ {&(_tg__ZTV3F23__6G22232[3]), 3,5},
+ {&(_tg__ZTV3AA2__3F23__6G22232[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G22232[];
+extern VTBL_ENTRY _ZTV6G22232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G22232[];
+static VTBL_ENTRY alt_thunk_names128[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E223barEv,_ZThn8_N3E223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6G222323barEv,_ZTv0_n20_N6G222323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G222323barEv,_ZThn24_N6G222323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G222323barEv,_ZTv0_n12_N6G222323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G222323barEv,_ZThn16_N6G222323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G222323barEv,_ZTv0_n16_N6G222323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G222323barEv,_ZThn8_N6G222323barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G22232 = { "G22232", // class name
+ bases_G22232, 3,
+ &(vtc_G22232[0]), // expected_vtbl_contents
+ &(vtt_G22232[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6G22232),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G22232),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G22232),8, //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 G22233 : virtual E22 , virtual F23 {
+ int pg;
+ virtual void foo(); // _ZN6G222333fooEv
+ virtual void bar(); // _ZN6G222333barEv
+ ~G22233(); // tgen
+ G22233(); // tgen
+};
+//SIG(1 G22233) C1{ VBC2{ VBC3{ v2 Fi} v2 Fi} VBC4{ VBC3 v1 v2 Fi} v1 v2 Fi}
+
+
+void G22233 ::foo(){vfunc_called(this, "_ZN6G222333fooEv");}
+void G22233 ::bar(){vfunc_called(this, "_ZN6G222333barEv");}
+G22233 ::~G22233(){ note_dtor("G22233", this);} // tgen
+G22233 ::G22233(){ note_ctor("G22233", this);} // tgen
+
+static void Test_G22233()
+{
+ extern Class_Descriptor cd_G22233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_G22233, buf);
+ G22233 *dp, &lv = *(dp=new (buf) G22233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(G22233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G22233)");
+ check_base_class_offset(lv, (AA2*)(E22*), ABISELECT(32,16), "G22233");
+ check_base_class_offset(lv, (AA2*)(F23*), ABISELECT(32,16), "G22233");
+ check_base_class_offset(lv, (E22*), ABISELECT(16,8), "G22233");
+ check_base_class_offset(lv, (F23*), ABISELECT(48,24), "G22233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G22233.pg");
+ test_class_info(&lv, &cd_G22233);
+ dp->~G22233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG22233(Test_G22233, "G22233", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6G22233C1Ev();
+extern void _ZN6G22233D1Ev();
+Name_Map name_map_G22233[] = {
+ NSPAIR(_ZN6G22233C1Ev),
+ NSPAIR(_ZN6G22233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_E22;
+extern VTBL_ENTRY _ZTI3E22[];
+extern VTBL_ENTRY _ZTV3E22[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E22[];
+extern Class_Descriptor cd_F23;
+extern VTBL_ENTRY _ZTI3F23[];
+extern VTBL_ENTRY _ZTV3F23[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F23[];
+static Base_Class bases_G22233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E22, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_F23, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G22233[];
+extern void _ZN6G222333fooEv();
+extern void _ZN6G222333barEv();
+extern void ABISELECT(_ZTv0_n32_N6G222333barEv,_ZTv0_n16_N6G222333barEv)();
+extern void ABISELECT(_ZThn16_N6G222333barEv,_ZThn8_N6G222333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G222333barEv,_ZTv0_n12_N6G222333barEv)();
+extern void ABISELECT(_ZThn32_N6G222333barEv,_ZThn16_N6G222333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G222333fooEv,_ZTv0_n16_N6G222333fooEv)();
+extern void ABISELECT(_ZThn48_N6G222333fooEv,_ZThn24_N6G222333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G222333barEv,_ZTv0_n20_N6G222333barEv)();
+extern void ABISELECT(_ZThn48_N6G222333barEv,_ZThn24_N6G222333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G22233[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G22233[0]),
+ (VTBL_ENTRY)&_ZN6G222333fooEv,
+ (VTBL_ENTRY)&_ZN6G222333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G22233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G222333barEv,_ZTv0_n16_N6G222333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G22233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G222333barEv,_ZTv0_n12_N6G222333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G22233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G222333fooEv,_ZTv0_n16_N6G222333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G222333barEv,_ZTv0_n20_N6G222333barEv),
+};
+extern VTBL_ENTRY _ZTV6G22233[];
+extern void _ZN3E223barEv();
+static VTBL_ENTRY _tg__ZTV3E22__6G22233[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E22[0]),
+ (VTBL_ENTRY)&_ZN3E223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv)();
+extern void ABISELECT(_ZThn16_N3E223barEv,_ZThn8_N3E223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__3E22__6G22233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E22[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv),
+};
+extern void _ZN3F233fooEv();
+extern void _ZN3F233barEv();
+static VTBL_ENTRY _tg__ZTV3F23__6G22233[] = {
+ ABISELECT(-16,-8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F23[0]),
+ (VTBL_ENTRY)&_ZN3F233fooEv,
+ (VTBL_ENTRY)&_ZN3F233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F233barEv,_ZTv0_n12_N3F233barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__3F23__6G22233[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI3F23[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F233barEv,_ZTv0_n12_N3F233barEv),
+};
+static VTT_ENTRY vtt_G22233[] = {
+ {&(_ZTV6G22233[5]), 5,23},
+ {&(_ZTV6G22233[11]), 11,23},
+ {&(_ZTV6G22233[15]), 15,23},
+ {&(_ZTV6G22233[21]), 21,23},
+ {&(_tg__ZTV3E22__6G22233[3]), 3,4},
+ {&(_tg__ZTV3AA2__3E22__6G22233[3]), 3,4},
+ {&(_tg__ZTV3F23__6G22233[3]), 3,5},
+ {&(_tg__ZTV3AA2__3F23__6G22233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G22233[];
+extern VTBL_ENTRY _ZTV6G22233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G22233[];
+static VTBL_ENTRY alt_thunk_names129[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E223barEv,_ZThn8_N3E223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6G222333barEv,_ZTv0_n20_N6G222333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G222333barEv,_ZThn24_N6G222333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G222333fooEv,_ZTv0_n16_N6G222333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G222333fooEv,_ZThn24_N6G222333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G222333barEv,_ZTv0_n12_N6G222333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G222333barEv,_ZThn16_N6G222333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G222333barEv,_ZTv0_n16_N6G222333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G222333barEv,_ZThn8_N6G222333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G22233 = { "G22233", // class name
+ bases_G22233, 3,
+ &(vtc_G22233[0]), // expected_vtbl_contents
+ &(vtt_G22233[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6G22233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G22233),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G22233),8, //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 G22312 : virtual E22 , virtual F31 {
+ int pg;
+ virtual void bar(); // _ZN6G223123barEv
+ ~G22312(); // tgen
+ G22312(); // tgen
+};
+//SIG(1 G22312) C1{ VBC2{ VBC3{ v1 Fi} v1 Fi} VBC4{ VBC5{ v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void G22312 ::bar(){vfunc_called(this, "_ZN6G223123barEv");}
+G22312 ::~G22312(){ note_dtor("G22312", this);} // tgen
+G22312 ::G22312(){ note_ctor("G22312", this);} // tgen
+
+static void Test_G22312()
+{
+ extern Class_Descriptor cd_G22312;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G22312, buf);
+ G22312 *dp, &lv = *(dp=new (buf) G22312());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G22312)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G22312)");
+ check_base_class_offset(lv, (AA2*)(E22*), ABISELECT(32,16), "G22312");
+ check_base_class_offset(lv, (E22*), ABISELECT(16,8), "G22312");
+ check_base_class_offset(lv, (AA3*)(F31*), ABISELECT(64,32), "G22312");
+ check_base_class_offset(lv, (F31*), ABISELECT(48,24), "G22312");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G22312.pg");
+ test_class_info(&lv, &cd_G22312);
+ dp->~G22312();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG22312(Test_G22312, "G22312", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G22312C1Ev();
+extern void _ZN6G22312D1Ev();
+Name_Map name_map_G22312[] = {
+ NSPAIR(_ZN6G22312C1Ev),
+ NSPAIR(_ZN6G22312D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_E22;
+extern VTBL_ENTRY _ZTI3E22[];
+extern VTBL_ENTRY _ZTV3E22[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E22[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_F31;
+extern VTBL_ENTRY _ZTI3F31[];
+extern VTBL_ENTRY _ZTV3F31[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F31[];
+static Base_Class bases_G22312[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E22, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(64,32), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F31, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G22312[];
+extern void _ZN6G223123barEv();
+extern void ABISELECT(_ZTv0_n32_N6G223123barEv,_ZTv0_n16_N6G223123barEv)();
+extern void ABISELECT(_ZThn16_N6G223123barEv,_ZThn8_N6G223123barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G223123barEv,_ZTv0_n12_N6G223123barEv)();
+extern void ABISELECT(_ZThn32_N6G223123barEv,_ZThn16_N6G223123barEv)() __attribute__((weak));
+extern void _ZN3F313fooEv();
+extern void ABISELECT(_ZTv0_n24_N3F313fooEv,_ZTv0_n12_N3F313fooEv)();
+extern void ABISELECT(_ZThn16_N3F313fooEv,_ZThn8_N3F313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G223123barEv,_ZTv0_n16_N6G223123barEv)();
+extern void ABISELECT(_ZThn64_N6G223123barEv,_ZThn32_N6G223123barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G22312[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G22312[0]),
+ (VTBL_ENTRY)&_ZN6G223123barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G22312[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G223123barEv,_ZTv0_n16_N6G223123barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G22312[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G223123barEv,_ZTv0_n12_N6G223123barEv),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G22312[0]),
+ (VTBL_ENTRY)&_ZN3F313fooEv,
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G22312[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F313fooEv,_ZTv0_n12_N3F313fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G223123barEv,_ZTv0_n16_N6G223123barEv),
+};
+extern VTBL_ENTRY _ZTV6G22312[];
+extern void _ZN3E223barEv();
+static VTBL_ENTRY _tg__ZTV3E22__6G22312[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E22[0]),
+ (VTBL_ENTRY)&_ZN3E223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv)();
+extern void ABISELECT(_ZThn16_N3E223barEv,_ZThn8_N3E223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__3E22__6G22312[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E22[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv),
+};
+extern void _ZN3F313fooEv();
+static VTBL_ENTRY _tg__ZTV3F31__6G22312[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F31[0]),
+ (VTBL_ENTRY)&_ZN3F313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F313fooEv,_ZTv0_n12_N3F313fooEv)();
+extern void ABISELECT(_ZThn16_N3F313fooEv,_ZThn8_N3F313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__3F31__6G22312[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F31[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F313fooEv,_ZTv0_n12_N3F313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+static VTT_ENTRY vtt_G22312[] = {
+ {&(_ZTV6G22312[6]), 6,27},
+ {&(_ZTV6G22312[11]), 11,27},
+ {&(_ZTV6G22312[15]), 15,27},
+ {&(_ZTV6G22312[20]), 20,27},
+ {&(_ZTV6G22312[25]), 25,27},
+ {&(_tg__ZTV3E22__6G22312[3]), 3,4},
+ {&(_tg__ZTV3AA2__3E22__6G22312[3]), 3,4},
+ {&(_tg__ZTV3F31__6G22312[3]), 3,4},
+ {&(_tg__ZTV3AA3__3F31__6G22312[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6G22312[];
+extern VTBL_ENTRY _ZTV6G22312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G22312[];
+static VTBL_ENTRY alt_thunk_names130[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E223barEv,_ZThn8_N3E223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F313fooEv,_ZTv0_n12_N3F313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F313fooEv,_ZThn8_N3F313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F313fooEv,_ZThn8_N3F313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G223123barEv,_ZTv0_n12_N6G223123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G223123barEv,_ZThn16_N6G223123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G223123barEv,_ZTv0_n16_N6G223123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G223123barEv,_ZThn32_N6G223123barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G223123barEv,_ZThn8_N6G223123barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G22312 = { "G22312", // class name
+ bases_G22312, 4,
+ &(vtc_G22312[0]), // expected_vtbl_contents
+ &(vtt_G22312[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G22312),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G22312),27, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G22312),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names130,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G22313 : virtual E22 , virtual F31 {
+ int pg;
+ virtual void foo(); // _ZN6G223133fooEv
+ virtual void bar(); // _ZN6G223133barEv
+ ~G22313(); // tgen
+ G22313(); // tgen
+};
+//SIG(1 G22313) C1{ VBC2{ VBC3{ v2 Fi} v2 Fi} VBC4{ VBC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void G22313 ::foo(){vfunc_called(this, "_ZN6G223133fooEv");}
+void G22313 ::bar(){vfunc_called(this, "_ZN6G223133barEv");}
+G22313 ::~G22313(){ note_dtor("G22313", this);} // tgen
+G22313 ::G22313(){ note_ctor("G22313", this);} // tgen
+
+static void Test_G22313()
+{
+ extern Class_Descriptor cd_G22313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G22313, buf);
+ G22313 *dp, &lv = *(dp=new (buf) G22313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G22313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G22313)");
+ check_base_class_offset(lv, (AA2*)(E22*), ABISELECT(32,16), "G22313");
+ check_base_class_offset(lv, (E22*), ABISELECT(16,8), "G22313");
+ check_base_class_offset(lv, (AA3*)(F31*), ABISELECT(64,32), "G22313");
+ check_base_class_offset(lv, (F31*), ABISELECT(48,24), "G22313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G22313.pg");
+ test_class_info(&lv, &cd_G22313);
+ dp->~G22313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG22313(Test_G22313, "G22313", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G22313C1Ev();
+extern void _ZN6G22313D1Ev();
+Name_Map name_map_G22313[] = {
+ NSPAIR(_ZN6G22313C1Ev),
+ NSPAIR(_ZN6G22313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_E22;
+extern VTBL_ENTRY _ZTI3E22[];
+extern VTBL_ENTRY _ZTV3E22[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E22[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_F31;
+extern VTBL_ENTRY _ZTI3F31[];
+extern VTBL_ENTRY _ZTV3F31[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F31[];
+static Base_Class bases_G22313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E22, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F31, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G22313[];
+extern void _ZN6G223133fooEv();
+extern void _ZN6G223133barEv();
+extern void ABISELECT(_ZTv0_n32_N6G223133barEv,_ZTv0_n16_N6G223133barEv)();
+extern void ABISELECT(_ZThn16_N6G223133barEv,_ZThn8_N6G223133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G223133barEv,_ZTv0_n12_N6G223133barEv)();
+extern void ABISELECT(_ZThn32_N6G223133barEv,_ZThn16_N6G223133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G223133fooEv,_ZTv0_n16_N6G223133fooEv)();
+extern void ABISELECT(_ZThn48_N6G223133fooEv,_ZThn24_N6G223133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G223133fooEv,_ZTv0_n12_N6G223133fooEv)();
+extern void ABISELECT(_ZThn64_N6G223133fooEv,_ZThn32_N6G223133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G223133barEv,_ZTv0_n16_N6G223133barEv)();
+extern void ABISELECT(_ZThn64_N6G223133barEv,_ZThn32_N6G223133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G22313[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G22313[0]),
+ (VTBL_ENTRY)&_ZN6G223133fooEv,
+ (VTBL_ENTRY)&_ZN6G223133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G22313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G223133barEv,_ZTv0_n16_N6G223133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G22313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G223133barEv,_ZTv0_n12_N6G223133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G22313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G223133fooEv,_ZTv0_n16_N6G223133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G22313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G223133fooEv,_ZTv0_n12_N6G223133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G223133barEv,_ZTv0_n16_N6G223133barEv),
+};
+extern VTBL_ENTRY _ZTV6G22313[];
+extern void _ZN3E223barEv();
+static VTBL_ENTRY _tg__ZTV3E22__6G22313[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E22[0]),
+ (VTBL_ENTRY)&_ZN3E223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv)();
+extern void ABISELECT(_ZThn16_N3E223barEv,_ZThn8_N3E223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__3E22__6G22313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E22[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv),
+};
+extern void _ZN3F313fooEv();
+static VTBL_ENTRY _tg__ZTV3F31__6G22313[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F31[0]),
+ (VTBL_ENTRY)&_ZN3F313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F313fooEv,_ZTv0_n12_N3F313fooEv)();
+extern void ABISELECT(_ZThn16_N3F313fooEv,_ZThn8_N3F313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__3F31__6G22313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F31[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F313fooEv,_ZTv0_n12_N3F313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+static VTT_ENTRY vtt_G22313[] = {
+ {&(_ZTV6G22313[6]), 6,28},
+ {&(_ZTV6G22313[12]), 12,28},
+ {&(_ZTV6G22313[16]), 16,28},
+ {&(_ZTV6G22313[21]), 21,28},
+ {&(_ZTV6G22313[26]), 26,28},
+ {&(_tg__ZTV3E22__6G22313[3]), 3,4},
+ {&(_tg__ZTV3AA2__3E22__6G22313[3]), 3,4},
+ {&(_tg__ZTV3F31__6G22313[3]), 3,4},
+ {&(_tg__ZTV3AA3__3F31__6G22313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6G22313[];
+extern VTBL_ENTRY _ZTV6G22313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G22313[];
+static VTBL_ENTRY alt_thunk_names131[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F313fooEv,_ZTv0_n12_N3F313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F313fooEv,_ZThn8_N3F313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E223barEv,_ZThn8_N3E223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G223133fooEv,_ZTv0_n12_N6G223133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G223133fooEv,_ZThn32_N6G223133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G223133fooEv,_ZTv0_n16_N6G223133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G223133fooEv,_ZThn24_N6G223133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G223133barEv,_ZTv0_n12_N6G223133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G223133barEv,_ZThn16_N6G223133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G223133barEv,_ZTv0_n16_N6G223133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G223133barEv,_ZThn32_N6G223133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G223133barEv,_ZThn8_N6G223133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G22313 = { "G22313", // class name
+ bases_G22313, 4,
+ &(vtc_G22313[0]), // expected_vtbl_contents
+ &(vtt_G22313[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G22313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G22313),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G22313),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names131,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G22322 : virtual E22 , virtual F32 {
+ int pg;
+ virtual void bar(); // _ZN6G223223barEv
+ ~G22322(); // tgen
+ G22322(); // tgen
+};
+//SIG(1 G22322) C1{ VBC2{ VBC3{ v1 Fi} v1 Fi} VBC4{ VBC5{ v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void G22322 ::bar(){vfunc_called(this, "_ZN6G223223barEv");}
+G22322 ::~G22322(){ note_dtor("G22322", this);} // tgen
+G22322 ::G22322(){ note_ctor("G22322", this);} // tgen
+
+static void Test_G22322()
+{
+ extern Class_Descriptor cd_G22322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G22322, buf);
+ G22322 *dp, &lv = *(dp=new (buf) G22322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G22322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G22322)");
+ check_base_class_offset(lv, (AA2*)(E22*), ABISELECT(32,16), "G22322");
+ check_base_class_offset(lv, (E22*), ABISELECT(16,8), "G22322");
+ check_base_class_offset(lv, (AA3*)(F32*), ABISELECT(64,32), "G22322");
+ check_base_class_offset(lv, (F32*), ABISELECT(48,24), "G22322");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G22322.pg");
+ test_class_info(&lv, &cd_G22322);
+ dp->~G22322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG22322(Test_G22322, "G22322", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G22322C1Ev();
+extern void _ZN6G22322D1Ev();
+Name_Map name_map_G22322[] = {
+ NSPAIR(_ZN6G22322C1Ev),
+ NSPAIR(_ZN6G22322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_E22;
+extern VTBL_ENTRY _ZTI3E22[];
+extern VTBL_ENTRY _ZTV3E22[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E22[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_F32;
+extern VTBL_ENTRY _ZTI3F32[];
+extern VTBL_ENTRY _ZTV3F32[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F32[];
+static Base_Class bases_G22322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E22, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(64,32), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F32, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G22322[];
+extern void _ZN6G223223barEv();
+extern void ABISELECT(_ZTv0_n32_N6G223223barEv,_ZTv0_n16_N6G223223barEv)();
+extern void ABISELECT(_ZThn16_N6G223223barEv,_ZThn8_N6G223223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G223223barEv,_ZTv0_n12_N6G223223barEv)();
+extern void ABISELECT(_ZThn32_N6G223223barEv,_ZThn16_N6G223223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G223223barEv,_ZTv0_n16_N6G223223barEv)();
+extern void ABISELECT(_ZThn48_N6G223223barEv,_ZThn24_N6G223223barEv)() __attribute__((weak));
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N6G223223barEv,_ZTv0_n16_N6G223223barEv)();
+extern void ABISELECT(_ZThn64_N6G223223barEv,_ZThn32_N6G223223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G22322[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G22322[0]),
+ (VTBL_ENTRY)&_ZN6G223223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G22322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G223223barEv,_ZTv0_n16_N6G223223barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G22322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G223223barEv,_ZTv0_n12_N6G223223barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G22322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G223223barEv,_ZTv0_n16_N6G223223barEv),
+ ABISELECT(-64,-32),
+ 0,
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G22322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G223223barEv,_ZTv0_n16_N6G223223barEv),
+};
+extern VTBL_ENTRY _ZTV6G22322[];
+extern void _ZN3E223barEv();
+static VTBL_ENTRY _tg__ZTV3E22__6G22322[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E22[0]),
+ (VTBL_ENTRY)&_ZN3E223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv)();
+extern void ABISELECT(_ZThn16_N3E223barEv,_ZThn8_N3E223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__3E22__6G22322[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E22[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv),
+};
+extern void _ZN3F323barEv();
+static VTBL_ENTRY _tg__ZTV3F32__6G22322[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F32[0]),
+ (VTBL_ENTRY)&_ZN3F323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N3F323barEv,_ZTv0_n16_N3F323barEv)();
+extern void ABISELECT(_ZThn16_N3F323barEv,_ZThn8_N3F323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__3F32__6G22322[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F32[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3F323barEv,_ZTv0_n16_N3F323barEv),
+};
+static VTT_ENTRY vtt_G22322[] = {
+ {&(_ZTV6G22322[6]), 6,27},
+ {&(_ZTV6G22322[11]), 11,27},
+ {&(_ZTV6G22322[15]), 15,27},
+ {&(_ZTV6G22322[20]), 20,27},
+ {&(_ZTV6G22322[25]), 25,27},
+ {&(_tg__ZTV3E22__6G22322[3]), 3,4},
+ {&(_tg__ZTV3AA2__3E22__6G22322[3]), 3,4},
+ {&(_tg__ZTV3F32__6G22322[3]), 3,4},
+ {&(_tg__ZTV3AA3__3F32__6G22322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6G22322[];
+extern VTBL_ENTRY _ZTV6G22322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G22322[];
+static VTBL_ENTRY alt_thunk_names132[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3F323barEv,_ZTv0_n16_N3F323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F323barEv,_ZThn8_N3F323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E223barEv,_ZThn8_N3E223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G223223barEv,_ZTv0_n12_N6G223223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G223223barEv,_ZThn16_N6G223223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G223223barEv,_ZTv0_n16_N6G223223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G223223barEv,_ZThn32_N6G223223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G223223barEv,_ZThn24_N6G223223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G223223barEv,_ZThn8_N6G223223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G22322 = { "G22322", // class name
+ bases_G22322, 4,
+ &(vtc_G22322[0]), // expected_vtbl_contents
+ &(vtt_G22322[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G22322),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G22322),27, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G22322),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names132,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G22323 : virtual E22 , virtual F32 {
+ int pg;
+ virtual void foo(); // _ZN6G223233fooEv
+ virtual void bar(); // _ZN6G223233barEv
+ ~G22323(); // tgen
+ G22323(); // tgen
+};
+//SIG(1 G22323) C1{ VBC2{ VBC3{ v2 Fi} v2 Fi} VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void G22323 ::foo(){vfunc_called(this, "_ZN6G223233fooEv");}
+void G22323 ::bar(){vfunc_called(this, "_ZN6G223233barEv");}
+G22323 ::~G22323(){ note_dtor("G22323", this);} // tgen
+G22323 ::G22323(){ note_ctor("G22323", this);} // tgen
+
+static void Test_G22323()
+{
+ extern Class_Descriptor cd_G22323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G22323, buf);
+ G22323 *dp, &lv = *(dp=new (buf) G22323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G22323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G22323)");
+ check_base_class_offset(lv, (AA2*)(E22*), ABISELECT(32,16), "G22323");
+ check_base_class_offset(lv, (E22*), ABISELECT(16,8), "G22323");
+ check_base_class_offset(lv, (AA3*)(F32*), ABISELECT(64,32), "G22323");
+ check_base_class_offset(lv, (F32*), ABISELECT(48,24), "G22323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G22323.pg");
+ test_class_info(&lv, &cd_G22323);
+ dp->~G22323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG22323(Test_G22323, "G22323", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G22323C1Ev();
+extern void _ZN6G22323D1Ev();
+Name_Map name_map_G22323[] = {
+ NSPAIR(_ZN6G22323C1Ev),
+ NSPAIR(_ZN6G22323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_E22;
+extern VTBL_ENTRY _ZTI3E22[];
+extern VTBL_ENTRY _ZTV3E22[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E22[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_F32;
+extern VTBL_ENTRY _ZTI3F32[];
+extern VTBL_ENTRY _ZTV3F32[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F32[];
+static Base_Class bases_G22323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E22, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F32, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G22323[];
+extern void _ZN6G223233fooEv();
+extern void _ZN6G223233barEv();
+extern void ABISELECT(_ZTv0_n32_N6G223233barEv,_ZTv0_n16_N6G223233barEv)();
+extern void ABISELECT(_ZThn16_N6G223233barEv,_ZThn8_N6G223233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G223233barEv,_ZTv0_n12_N6G223233barEv)();
+extern void ABISELECT(_ZThn32_N6G223233barEv,_ZThn16_N6G223233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G223233barEv,_ZTv0_n16_N6G223233barEv)();
+extern void ABISELECT(_ZThn48_N6G223233barEv,_ZThn24_N6G223233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G223233fooEv,_ZTv0_n12_N6G223233fooEv)();
+extern void ABISELECT(_ZThn64_N6G223233fooEv,_ZThn32_N6G223233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G223233barEv,_ZTv0_n16_N6G223233barEv)();
+extern void ABISELECT(_ZThn64_N6G223233barEv,_ZThn32_N6G223233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G22323[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G22323[0]),
+ (VTBL_ENTRY)&_ZN6G223233fooEv,
+ (VTBL_ENTRY)&_ZN6G223233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G22323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G223233barEv,_ZTv0_n16_N6G223233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G22323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G223233barEv,_ZTv0_n12_N6G223233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G22323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G223233barEv,_ZTv0_n16_N6G223233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G22323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G223233fooEv,_ZTv0_n12_N6G223233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G223233barEv,_ZTv0_n16_N6G223233barEv),
+};
+extern VTBL_ENTRY _ZTV6G22323[];
+extern void _ZN3E223barEv();
+static VTBL_ENTRY _tg__ZTV3E22__6G22323[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E22[0]),
+ (VTBL_ENTRY)&_ZN3E223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv)();
+extern void ABISELECT(_ZThn16_N3E223barEv,_ZThn8_N3E223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__3E22__6G22323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E22[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv),
+};
+extern void _ZN3F323barEv();
+static VTBL_ENTRY _tg__ZTV3F32__6G22323[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F32[0]),
+ (VTBL_ENTRY)&_ZN3F323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N3F323barEv,_ZTv0_n16_N3F323barEv)();
+extern void ABISELECT(_ZThn16_N3F323barEv,_ZThn8_N3F323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__3F32__6G22323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F32[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3F323barEv,_ZTv0_n16_N3F323barEv),
+};
+static VTT_ENTRY vtt_G22323[] = {
+ {&(_ZTV6G22323[6]), 6,28},
+ {&(_ZTV6G22323[12]), 12,28},
+ {&(_ZTV6G22323[16]), 16,28},
+ {&(_ZTV6G22323[21]), 21,28},
+ {&(_ZTV6G22323[26]), 26,28},
+ {&(_tg__ZTV3E22__6G22323[3]), 3,4},
+ {&(_tg__ZTV3AA2__3E22__6G22323[3]), 3,4},
+ {&(_tg__ZTV3F32__6G22323[3]), 3,4},
+ {&(_tg__ZTV3AA3__3F32__6G22323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6G22323[];
+extern VTBL_ENTRY _ZTV6G22323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G22323[];
+static VTBL_ENTRY alt_thunk_names133[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3F323barEv,_ZTv0_n16_N3F323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F323barEv,_ZThn8_N3F323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E223barEv,_ZThn8_N3E223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G223233fooEv,_ZTv0_n12_N6G223233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G223233fooEv,_ZThn32_N6G223233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G223233barEv,_ZTv0_n12_N6G223233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G223233barEv,_ZThn16_N6G223233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G223233barEv,_ZTv0_n16_N6G223233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G223233barEv,_ZThn32_N6G223233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G223233barEv,_ZThn24_N6G223233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G223233barEv,_ZThn8_N6G223233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G22323 = { "G22323", // class name
+ bases_G22323, 4,
+ &(vtc_G22323[0]), // expected_vtbl_contents
+ &(vtt_G22323[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G22323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G22323),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G22323),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names133,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G22332 : virtual E22 , virtual F33 {
+ int pg;
+ virtual void bar(); // _ZN6G223323barEv
+ ~G22332(); // tgen
+ G22332(); // tgen
+};
+//SIG(1 G22332) C1{ VBC2{ VBC3{ v1 Fi} v1 Fi} VBC4{ VBC5{ v2 v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void G22332 ::bar(){vfunc_called(this, "_ZN6G223323barEv");}
+G22332 ::~G22332(){ note_dtor("G22332", this);} // tgen
+G22332 ::G22332(){ note_ctor("G22332", this);} // tgen
+
+static void Test_G22332()
+{
+ extern Class_Descriptor cd_G22332;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G22332, buf);
+ G22332 *dp, &lv = *(dp=new (buf) G22332());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G22332)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G22332)");
+ check_base_class_offset(lv, (AA2*)(E22*), ABISELECT(32,16), "G22332");
+ check_base_class_offset(lv, (E22*), ABISELECT(16,8), "G22332");
+ check_base_class_offset(lv, (AA3*)(F33*), ABISELECT(64,32), "G22332");
+ check_base_class_offset(lv, (F33*), ABISELECT(48,24), "G22332");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G22332.pg");
+ test_class_info(&lv, &cd_G22332);
+ dp->~G22332();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG22332(Test_G22332, "G22332", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G22332C1Ev();
+extern void _ZN6G22332D1Ev();
+Name_Map name_map_G22332[] = {
+ NSPAIR(_ZN6G22332C1Ev),
+ NSPAIR(_ZN6G22332D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_E22;
+extern VTBL_ENTRY _ZTI3E22[];
+extern VTBL_ENTRY _ZTV3E22[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E22[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_F33;
+extern VTBL_ENTRY _ZTI3F33[];
+extern VTBL_ENTRY _ZTV3F33[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F33[];
+static Base_Class bases_G22332[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 12, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E22, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F33, ABISELECT(48,24), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G22332[];
+extern void _ZN6G223323barEv();
+extern void ABISELECT(_ZTv0_n32_N6G223323barEv,_ZTv0_n16_N6G223323barEv)();
+extern void ABISELECT(_ZThn16_N6G223323barEv,_ZThn8_N6G223323barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G223323barEv,_ZTv0_n12_N6G223323barEv)();
+extern void ABISELECT(_ZThn32_N6G223323barEv,_ZThn16_N6G223323barEv)() __attribute__((weak));
+extern void _ZN3F333fooEv();
+extern void ABISELECT(_ZTv0_n40_N6G223323barEv,_ZTv0_n20_N6G223323barEv)();
+extern void ABISELECT(_ZThn48_N6G223323barEv,_ZThn24_N6G223323barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N3F333fooEv,_ZTv0_n12_N3F333fooEv)();
+extern void ABISELECT(_ZThn16_N3F333fooEv,_ZThn8_N3F333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G223323barEv,_ZTv0_n16_N6G223323barEv)();
+extern void ABISELECT(_ZThn64_N6G223323barEv,_ZThn32_N6G223323barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G22332[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G22332[0]),
+ (VTBL_ENTRY)&_ZN6G223323barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G22332[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G223323barEv,_ZTv0_n16_N6G223323barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G22332[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G223323barEv,_ZTv0_n12_N6G223323barEv),
+ ABISELECT(-48,-24),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G22332[0]),
+ (VTBL_ENTRY)&_ZN3F333fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G223323barEv,_ZTv0_n20_N6G223323barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G22332[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F333fooEv,_ZTv0_n12_N3F333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G223323barEv,_ZTv0_n16_N6G223323barEv),
+};
+extern VTBL_ENTRY _ZTV6G22332[];
+extern void _ZN3E223barEv();
+static VTBL_ENTRY _tg__ZTV3E22__6G22332[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E22[0]),
+ (VTBL_ENTRY)&_ZN3E223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv)();
+extern void ABISELECT(_ZThn16_N3E223barEv,_ZThn8_N3E223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__3E22__6G22332[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E22[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv),
+};
+extern void _ZN3F333fooEv();
+extern void _ZN3F333barEv();
+static VTBL_ENTRY _tg__ZTV3F33__6G22332[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F33[0]),
+ (VTBL_ENTRY)&_ZN3F333fooEv,
+ (VTBL_ENTRY)&_ZN3F333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F333fooEv,_ZTv0_n12_N3F333fooEv)();
+extern void ABISELECT(_ZThn16_N3F333fooEv,_ZThn8_N3F333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N3F333barEv,_ZTv0_n16_N3F333barEv)();
+extern void ABISELECT(_ZThn16_N3F333barEv,_ZThn8_N3F333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__3F33__6G22332[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F33[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F333fooEv,_ZTv0_n12_N3F333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3F333barEv,_ZTv0_n16_N3F333barEv),
+};
+static VTT_ENTRY vtt_G22332[] = {
+ {&(_ZTV6G22332[6]), 6,29},
+ {&(_ZTV6G22332[11]), 11,29},
+ {&(_ZTV6G22332[15]), 15,29},
+ {&(_ZTV6G22332[21]), 21,29},
+ {&(_ZTV6G22332[27]), 27,29},
+ {&(_tg__ZTV3E22__6G22332[3]), 3,4},
+ {&(_tg__ZTV3AA2__3E22__6G22332[3]), 3,4},
+ {&(_tg__ZTV3F33__6G22332[3]), 3,5},
+ {&(_tg__ZTV3AA3__3F33__6G22332[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6G22332[];
+extern VTBL_ENTRY _ZTV6G22332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G22332[];
+static VTBL_ENTRY alt_thunk_names134[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3F333barEv,_ZTv0_n16_N3F333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F333barEv,_ZThn8_N3F333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E223barEv,_ZThn8_N3E223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F333fooEv,_ZTv0_n12_N3F333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F333fooEv,_ZThn8_N3F333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F333fooEv,_ZThn8_N3F333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6G223323barEv,_ZTv0_n20_N6G223323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G223323barEv,_ZThn24_N6G223323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G223323barEv,_ZTv0_n12_N6G223323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G223323barEv,_ZThn16_N6G223323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G223323barEv,_ZTv0_n16_N6G223323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G223323barEv,_ZThn32_N6G223323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G223323barEv,_ZThn8_N6G223323barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G22332 = { "G22332", // class name
+ bases_G22332, 4,
+ &(vtc_G22332[0]), // expected_vtbl_contents
+ &(vtt_G22332[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G22332),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G22332),29, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G22332),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names134,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G22333 : virtual E22 , virtual F33 {
+ int pg;
+ virtual void foo(); // _ZN6G223333fooEv
+ virtual void bar(); // _ZN6G223333barEv
+ ~G22333(); // tgen
+ G22333(); // tgen
+};
+//SIG(1 G22333) C1{ VBC2{ VBC3{ v2 Fi} v2 Fi} VBC4{ VBC5{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void G22333 ::foo(){vfunc_called(this, "_ZN6G223333fooEv");}
+void G22333 ::bar(){vfunc_called(this, "_ZN6G223333barEv");}
+G22333 ::~G22333(){ note_dtor("G22333", this);} // tgen
+G22333 ::G22333(){ note_ctor("G22333", this);} // tgen
+
+static void Test_G22333()
+{
+ extern Class_Descriptor cd_G22333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G22333, buf);
+ G22333 *dp, &lv = *(dp=new (buf) G22333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G22333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G22333)");
+ check_base_class_offset(lv, (AA2*)(E22*), ABISELECT(32,16), "G22333");
+ check_base_class_offset(lv, (E22*), ABISELECT(16,8), "G22333");
+ check_base_class_offset(lv, (AA3*)(F33*), ABISELECT(64,32), "G22333");
+ check_base_class_offset(lv, (F33*), ABISELECT(48,24), "G22333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G22333.pg");
+ test_class_info(&lv, &cd_G22333);
+ dp->~G22333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG22333(Test_G22333, "G22333", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G22333C1Ev();
+extern void _ZN6G22333D1Ev();
+Name_Map name_map_G22333[] = {
+ NSPAIR(_ZN6G22333C1Ev),
+ NSPAIR(_ZN6G22333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_E22;
+extern VTBL_ENTRY _ZTI3E22[];
+extern VTBL_ENTRY _ZTV3E22[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E22[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_F33;
+extern VTBL_ENTRY _ZTI3F33[];
+extern VTBL_ENTRY _ZTV3F33[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F33[];
+static Base_Class bases_G22333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E22, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F33, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G22333[];
+extern void _ZN6G223333fooEv();
+extern void _ZN6G223333barEv();
+extern void ABISELECT(_ZTv0_n32_N6G223333barEv,_ZTv0_n16_N6G223333barEv)();
+extern void ABISELECT(_ZThn16_N6G223333barEv,_ZThn8_N6G223333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G223333barEv,_ZTv0_n12_N6G223333barEv)();
+extern void ABISELECT(_ZThn32_N6G223333barEv,_ZThn16_N6G223333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G223333fooEv,_ZTv0_n16_N6G223333fooEv)();
+extern void ABISELECT(_ZThn48_N6G223333fooEv,_ZThn24_N6G223333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G223333barEv,_ZTv0_n20_N6G223333barEv)();
+extern void ABISELECT(_ZThn48_N6G223333barEv,_ZThn24_N6G223333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G223333fooEv,_ZTv0_n12_N6G223333fooEv)();
+extern void ABISELECT(_ZThn64_N6G223333fooEv,_ZThn32_N6G223333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G223333barEv,_ZTv0_n16_N6G223333barEv)();
+extern void ABISELECT(_ZThn64_N6G223333barEv,_ZThn32_N6G223333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G22333[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G22333[0]),
+ (VTBL_ENTRY)&_ZN6G223333fooEv,
+ (VTBL_ENTRY)&_ZN6G223333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G22333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G223333barEv,_ZTv0_n16_N6G223333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G22333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G223333barEv,_ZTv0_n12_N6G223333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G22333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G223333fooEv,_ZTv0_n16_N6G223333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G223333barEv,_ZTv0_n20_N6G223333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G22333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G223333fooEv,_ZTv0_n12_N6G223333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G223333barEv,_ZTv0_n16_N6G223333barEv),
+};
+extern VTBL_ENTRY _ZTV6G22333[];
+extern void _ZN3E223barEv();
+static VTBL_ENTRY _tg__ZTV3E22__6G22333[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E22[0]),
+ (VTBL_ENTRY)&_ZN3E223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv)();
+extern void ABISELECT(_ZThn16_N3E223barEv,_ZThn8_N3E223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__3E22__6G22333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E22[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv),
+};
+extern void _ZN3F333fooEv();
+extern void _ZN3F333barEv();
+static VTBL_ENTRY _tg__ZTV3F33__6G22333[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F33[0]),
+ (VTBL_ENTRY)&_ZN3F333fooEv,
+ (VTBL_ENTRY)&_ZN3F333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F333fooEv,_ZTv0_n12_N3F333fooEv)();
+extern void ABISELECT(_ZThn16_N3F333fooEv,_ZThn8_N3F333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N3F333barEv,_ZTv0_n16_N3F333barEv)();
+extern void ABISELECT(_ZThn16_N3F333barEv,_ZThn8_N3F333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__3F33__6G22333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F33[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F333fooEv,_ZTv0_n12_N3F333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3F333barEv,_ZTv0_n16_N3F333barEv),
+};
+static VTT_ENTRY vtt_G22333[] = {
+ {&(_ZTV6G22333[6]), 6,30},
+ {&(_ZTV6G22333[12]), 12,30},
+ {&(_ZTV6G22333[16]), 16,30},
+ {&(_ZTV6G22333[22]), 22,30},
+ {&(_ZTV6G22333[28]), 28,30},
+ {&(_tg__ZTV3E22__6G22333[3]), 3,4},
+ {&(_tg__ZTV3AA2__3E22__6G22333[3]), 3,4},
+ {&(_tg__ZTV3F33__6G22333[3]), 3,5},
+ {&(_tg__ZTV3AA3__3F33__6G22333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6G22333[];
+extern VTBL_ENTRY _ZTV6G22333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G22333[];
+static VTBL_ENTRY alt_thunk_names135[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3F333barEv,_ZTv0_n16_N3F333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F333barEv,_ZThn8_N3F333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F333fooEv,_ZTv0_n12_N3F333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F333fooEv,_ZThn8_N3F333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E223barEv,_ZTv0_n12_N3E223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E223barEv,_ZThn8_N3E223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G223333fooEv,_ZTv0_n12_N6G223333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G223333fooEv,_ZThn32_N6G223333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6G223333barEv,_ZTv0_n20_N6G223333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G223333barEv,_ZThn24_N6G223333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G223333fooEv,_ZTv0_n16_N6G223333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G223333fooEv,_ZThn24_N6G223333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G223333barEv,_ZTv0_n12_N6G223333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G223333barEv,_ZThn16_N6G223333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G223333barEv,_ZTv0_n16_N6G223333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G223333barEv,_ZThn32_N6G223333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G223333barEv,_ZThn8_N6G223333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G22333 = { "G22333", // class name
+ bases_G22333, 4,
+ &(vtc_G22333[0]), // expected_vtbl_contents
+ &(vtt_G22333[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G22333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G22333),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G22333),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names135,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G23111 : virtual E23 , virtual F11 {
+ int pg;
+ virtual void foo(); // _ZN6G231113fooEv
+ ~G23111(); // tgen
+ G23111(); // tgen
+};
+//SIG(1 G23111) C1{ VBC2{ VBC3{ v2 Fi} v1 v2 Fi} VBC4{ VBC5{ v1 Fi} v1 Fi} v1 Fi}
+
+
+void G23111 ::foo(){vfunc_called(this, "_ZN6G231113fooEv");}
+G23111 ::~G23111(){ note_dtor("G23111", this);} // tgen
+G23111 ::G23111(){ note_ctor("G23111", this);} // tgen
+
+static void Test_G23111()
+{
+ extern Class_Descriptor cd_G23111;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G23111, buf);
+ G23111 *dp, &lv = *(dp=new (buf) G23111());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G23111)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G23111)");
+ check_base_class_offset(lv, (AA2*)(E23*), ABISELECT(32,16), "G23111");
+ check_base_class_offset(lv, (E23*), ABISELECT(16,8), "G23111");
+ check_base_class_offset(lv, (AA1*)(F11*), ABISELECT(64,32), "G23111");
+ check_base_class_offset(lv, (F11*), ABISELECT(48,24), "G23111");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G23111.pg");
+ test_class_info(&lv, &cd_G23111);
+ dp->~G23111();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG23111(Test_G23111, "G23111", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G23111C1Ev();
+extern void _ZN6G23111D1Ev();
+Name_Map name_map_G23111[] = {
+ NSPAIR(_ZN6G23111C1Ev),
+ NSPAIR(_ZN6G23111D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_E23;
+extern VTBL_ENTRY _ZTI3E23[];
+extern VTBL_ENTRY _ZTV3E23[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E23[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_F11;
+extern VTBL_ENTRY _ZTI3F11[];
+extern VTBL_ENTRY _ZTV3F11[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F11[];
+static Base_Class bases_G23111[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E23, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F11, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G23111[];
+extern void _ZN6G231113fooEv();
+extern void ABISELECT(_ZTv0_n32_N6G231113fooEv,_ZTv0_n16_N6G231113fooEv)();
+extern void ABISELECT(_ZThn16_N6G231113fooEv,_ZThn8_N6G231113fooEv)() __attribute__((weak));
+extern void _ZN3E233barEv();
+extern void ABISELECT(_ZTv0_n24_N3E233barEv,_ZTv0_n12_N3E233barEv)();
+extern void ABISELECT(_ZThn16_N3E233barEv,_ZThn8_N3E233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G231113fooEv,_ZTv0_n16_N6G231113fooEv)();
+extern void ABISELECT(_ZThn48_N6G231113fooEv,_ZThn24_N6G231113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G231113fooEv,_ZTv0_n12_N6G231113fooEv)();
+extern void ABISELECT(_ZThn64_N6G231113fooEv,_ZThn32_N6G231113fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G23111[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G23111[0]),
+ (VTBL_ENTRY)&_ZN6G231113fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G23111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G231113fooEv,_ZTv0_n16_N6G231113fooEv),
+ (VTBL_ENTRY)&_ZN3E233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G23111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E233barEv,_ZTv0_n12_N3E233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G23111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G231113fooEv,_ZTv0_n16_N6G231113fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G23111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G231113fooEv,_ZTv0_n12_N6G231113fooEv),
+};
+extern VTBL_ENTRY _ZTV6G23111[];
+extern void _ZN3E233fooEv();
+extern void _ZN3E233barEv();
+static VTBL_ENTRY _tg__ZTV3E23__6G23111[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E23[0]),
+ (VTBL_ENTRY)&_ZN3E233fooEv,
+ (VTBL_ENTRY)&_ZN3E233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E233barEv,_ZTv0_n12_N3E233barEv)();
+extern void ABISELECT(_ZThn16_N3E233barEv,_ZThn8_N3E233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__3E23__6G23111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E23[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E233barEv,_ZTv0_n12_N3E233barEv),
+};
+extern void _ZN3F113fooEv();
+static VTBL_ENTRY _tg__ZTV3F11__6G23111[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F11[0]),
+ (VTBL_ENTRY)&_ZN3F113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv)();
+extern void ABISELECT(_ZThn16_N3F113fooEv,_ZThn8_N3F113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__3F11__6G23111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F11[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv),
+};
+static VTT_ENTRY vtt_G23111[] = {
+ {&(_ZTV6G23111[6]), 6,27},
+ {&(_ZTV6G23111[12]), 12,27},
+ {&(_ZTV6G23111[17]), 17,27},
+ {&(_ZTV6G23111[22]), 22,27},
+ {&(_ZTV6G23111[26]), 26,27},
+ {&(_tg__ZTV3E23__6G23111[3]), 3,5},
+ {&(_tg__ZTV3AA2__3E23__6G23111[3]), 3,4},
+ {&(_tg__ZTV3F11__6G23111[3]), 3,4},
+ {&(_tg__ZTV3AA1__3F11__6G23111[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G23111[];
+extern VTBL_ENTRY _ZTV6G23111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G23111[];
+static VTBL_ENTRY alt_thunk_names136[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F113fooEv,_ZThn8_N3F113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G231113fooEv,_ZTv0_n12_N6G231113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G231113fooEv,_ZThn32_N6G231113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E233barEv,_ZTv0_n12_N3E233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E233barEv,_ZThn8_N3E233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E233barEv,_ZThn8_N3E233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G231113fooEv,_ZTv0_n16_N6G231113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G231113fooEv,_ZThn24_N6G231113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G231113fooEv,_ZThn8_N6G231113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G23111 = { "G23111", // class name
+ bases_G23111, 4,
+ &(vtc_G23111[0]), // expected_vtbl_contents
+ &(vtt_G23111[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G23111),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G23111),27, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G23111),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names136,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G23113 : virtual E23 , virtual F11 {
+ int pg;
+ virtual void foo(); // _ZN6G231133fooEv
+ virtual void bar(); // _ZN6G231133barEv
+ ~G23113(); // tgen
+ G23113(); // tgen
+};
+//SIG(1 G23113) C1{ VBC2{ VBC3{ v2 Fi} v1 v2 Fi} VBC4{ VBC5{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void G23113 ::foo(){vfunc_called(this, "_ZN6G231133fooEv");}
+void G23113 ::bar(){vfunc_called(this, "_ZN6G231133barEv");}
+G23113 ::~G23113(){ note_dtor("G23113", this);} // tgen
+G23113 ::G23113(){ note_ctor("G23113", this);} // tgen
+
+static void Test_G23113()
+{
+ extern Class_Descriptor cd_G23113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G23113, buf);
+ G23113 *dp, &lv = *(dp=new (buf) G23113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G23113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G23113)");
+ check_base_class_offset(lv, (AA2*)(E23*), ABISELECT(32,16), "G23113");
+ check_base_class_offset(lv, (E23*), ABISELECT(16,8), "G23113");
+ check_base_class_offset(lv, (AA1*)(F11*), ABISELECT(64,32), "G23113");
+ check_base_class_offset(lv, (F11*), ABISELECT(48,24), "G23113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G23113.pg");
+ test_class_info(&lv, &cd_G23113);
+ dp->~G23113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG23113(Test_G23113, "G23113", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G23113C1Ev();
+extern void _ZN6G23113D1Ev();
+Name_Map name_map_G23113[] = {
+ NSPAIR(_ZN6G23113C1Ev),
+ NSPAIR(_ZN6G23113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_E23;
+extern VTBL_ENTRY _ZTI3E23[];
+extern VTBL_ENTRY _ZTV3E23[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E23[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_F11;
+extern VTBL_ENTRY _ZTI3F11[];
+extern VTBL_ENTRY _ZTV3F11[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F11[];
+static Base_Class bases_G23113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E23, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F11, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G23113[];
+extern void _ZN6G231133fooEv();
+extern void _ZN6G231133barEv();
+extern void ABISELECT(_ZTv0_n32_N6G231133fooEv,_ZTv0_n16_N6G231133fooEv)();
+extern void ABISELECT(_ZThn16_N6G231133fooEv,_ZThn8_N6G231133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G231133barEv,_ZTv0_n20_N6G231133barEv)();
+extern void ABISELECT(_ZThn16_N6G231133barEv,_ZThn8_N6G231133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G231133barEv,_ZTv0_n12_N6G231133barEv)();
+extern void ABISELECT(_ZThn32_N6G231133barEv,_ZThn16_N6G231133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G231133fooEv,_ZTv0_n16_N6G231133fooEv)();
+extern void ABISELECT(_ZThn48_N6G231133fooEv,_ZThn24_N6G231133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G231133fooEv,_ZTv0_n12_N6G231133fooEv)();
+extern void ABISELECT(_ZThn64_N6G231133fooEv,_ZThn32_N6G231133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G23113[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G23113[0]),
+ (VTBL_ENTRY)&_ZN6G231133fooEv,
+ (VTBL_ENTRY)&_ZN6G231133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G23113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G231133fooEv,_ZTv0_n16_N6G231133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G231133barEv,_ZTv0_n20_N6G231133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G23113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G231133barEv,_ZTv0_n12_N6G231133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G23113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G231133fooEv,_ZTv0_n16_N6G231133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G23113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G231133fooEv,_ZTv0_n12_N6G231133fooEv),
+};
+extern VTBL_ENTRY _ZTV6G23113[];
+extern void _ZN3E233fooEv();
+extern void _ZN3E233barEv();
+static VTBL_ENTRY _tg__ZTV3E23__6G23113[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E23[0]),
+ (VTBL_ENTRY)&_ZN3E233fooEv,
+ (VTBL_ENTRY)&_ZN3E233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E233barEv,_ZTv0_n12_N3E233barEv)();
+extern void ABISELECT(_ZThn16_N3E233barEv,_ZThn8_N3E233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__3E23__6G23113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E23[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E233barEv,_ZTv0_n12_N3E233barEv),
+};
+extern void _ZN3F113fooEv();
+static VTBL_ENTRY _tg__ZTV3F11__6G23113[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F11[0]),
+ (VTBL_ENTRY)&_ZN3F113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv)();
+extern void ABISELECT(_ZThn16_N3F113fooEv,_ZThn8_N3F113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__3F11__6G23113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F11[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv),
+};
+static VTT_ENTRY vtt_G23113[] = {
+ {&(_ZTV6G23113[6]), 6,28},
+ {&(_ZTV6G23113[13]), 13,28},
+ {&(_ZTV6G23113[18]), 18,28},
+ {&(_ZTV6G23113[23]), 23,28},
+ {&(_ZTV6G23113[27]), 27,28},
+ {&(_tg__ZTV3E23__6G23113[3]), 3,5},
+ {&(_tg__ZTV3AA2__3E23__6G23113[3]), 3,4},
+ {&(_tg__ZTV3F11__6G23113[3]), 3,4},
+ {&(_tg__ZTV3AA1__3F11__6G23113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G23113[];
+extern VTBL_ENTRY _ZTV6G23113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G23113[];
+static VTBL_ENTRY alt_thunk_names137[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F113fooEv,_ZThn8_N3F113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E233barEv,_ZTv0_n12_N3E233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E233barEv,_ZThn8_N3E233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G231133fooEv,_ZTv0_n12_N6G231133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G231133fooEv,_ZThn32_N6G231133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G231133barEv,_ZTv0_n12_N6G231133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G231133barEv,_ZThn16_N6G231133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6G231133barEv,_ZTv0_n20_N6G231133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G231133barEv,_ZThn8_N6G231133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G231133fooEv,_ZTv0_n16_N6G231133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G231133fooEv,_ZThn24_N6G231133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G231133fooEv,_ZThn8_N6G231133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G23113 = { "G23113", // class name
+ bases_G23113, 4,
+ &(vtc_G23113[0]), // expected_vtbl_contents
+ &(vtt_G23113[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G23113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G23113),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G23113),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names137,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G23123 : virtual E23 , virtual F12 {
+ int pg;
+ virtual void foo(); // _ZN6G231233fooEv
+ virtual void bar(); // _ZN6G231233barEv
+ ~G23123(); // tgen
+ G23123(); // tgen
+};
+//SIG(1 G23123) C1{ VBC2{ VBC3{ v2 Fi} v1 v2 Fi} VBC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void G23123 ::foo(){vfunc_called(this, "_ZN6G231233fooEv");}
+void G23123 ::bar(){vfunc_called(this, "_ZN6G231233barEv");}
+G23123 ::~G23123(){ note_dtor("G23123", this);} // tgen
+G23123 ::G23123(){ note_ctor("G23123", this);} // tgen
+
+static void Test_G23123()
+{
+ extern Class_Descriptor cd_G23123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G23123, buf);
+ G23123 *dp, &lv = *(dp=new (buf) G23123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G23123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G23123)");
+ check_base_class_offset(lv, (AA2*)(E23*), ABISELECT(32,16), "G23123");
+ check_base_class_offset(lv, (E23*), ABISELECT(16,8), "G23123");
+ check_base_class_offset(lv, (AA1*)(F12*), ABISELECT(64,32), "G23123");
+ check_base_class_offset(lv, (F12*), ABISELECT(48,24), "G23123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G23123.pg");
+ test_class_info(&lv, &cd_G23123);
+ dp->~G23123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG23123(Test_G23123, "G23123", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G23123C1Ev();
+extern void _ZN6G23123D1Ev();
+Name_Map name_map_G23123[] = {
+ NSPAIR(_ZN6G23123C1Ev),
+ NSPAIR(_ZN6G23123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_E23;
+extern VTBL_ENTRY _ZTI3E23[];
+extern VTBL_ENTRY _ZTV3E23[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E23[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_F12;
+extern VTBL_ENTRY _ZTI3F12[];
+extern VTBL_ENTRY _ZTV3F12[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F12[];
+static Base_Class bases_G23123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E23, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F12, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G23123[];
+extern void _ZN6G231233fooEv();
+extern void _ZN6G231233barEv();
+extern void ABISELECT(_ZTv0_n32_N6G231233fooEv,_ZTv0_n16_N6G231233fooEv)();
+extern void ABISELECT(_ZThn16_N6G231233fooEv,_ZThn8_N6G231233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G231233barEv,_ZTv0_n20_N6G231233barEv)();
+extern void ABISELECT(_ZThn16_N6G231233barEv,_ZThn8_N6G231233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G231233barEv,_ZTv0_n12_N6G231233barEv)();
+extern void ABISELECT(_ZThn32_N6G231233barEv,_ZThn16_N6G231233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G231233barEv,_ZTv0_n16_N6G231233barEv)();
+extern void ABISELECT(_ZThn48_N6G231233barEv,_ZThn24_N6G231233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G231233fooEv,_ZTv0_n12_N6G231233fooEv)();
+extern void ABISELECT(_ZThn64_N6G231233fooEv,_ZThn32_N6G231233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G23123[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G23123[0]),
+ (VTBL_ENTRY)&_ZN6G231233fooEv,
+ (VTBL_ENTRY)&_ZN6G231233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G23123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G231233fooEv,_ZTv0_n16_N6G231233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G231233barEv,_ZTv0_n20_N6G231233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G23123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G231233barEv,_ZTv0_n12_N6G231233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G23123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G231233barEv,_ZTv0_n16_N6G231233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G23123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G231233fooEv,_ZTv0_n12_N6G231233fooEv),
+};
+extern VTBL_ENTRY _ZTV6G23123[];
+extern void _ZN3E233fooEv();
+extern void _ZN3E233barEv();
+static VTBL_ENTRY _tg__ZTV3E23__6G23123[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E23[0]),
+ (VTBL_ENTRY)&_ZN3E233fooEv,
+ (VTBL_ENTRY)&_ZN3E233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E233barEv,_ZTv0_n12_N3E233barEv)();
+extern void ABISELECT(_ZThn16_N3E233barEv,_ZThn8_N3E233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__3E23__6G23123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E23[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E233barEv,_ZTv0_n12_N3E233barEv),
+};
+extern void _ZN3F123barEv();
+static VTBL_ENTRY _tg__ZTV3F12__6G23123[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F12[0]),
+ (VTBL_ENTRY)&_ZN3F123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__3F12__6G23123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F12[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+static VTT_ENTRY vtt_G23123[] = {
+ {&(_ZTV6G23123[6]), 6,28},
+ {&(_ZTV6G23123[13]), 13,28},
+ {&(_ZTV6G23123[18]), 18,28},
+ {&(_ZTV6G23123[23]), 23,28},
+ {&(_ZTV6G23123[27]), 27,28},
+ {&(_tg__ZTV3E23__6G23123[3]), 3,5},
+ {&(_tg__ZTV3AA2__3E23__6G23123[3]), 3,4},
+ {&(_tg__ZTV3F12__6G23123[3]), 3,4},
+ {&(_tg__ZTV3AA1__3F12__6G23123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G23123[];
+extern VTBL_ENTRY _ZTV6G23123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G23123[];
+static VTBL_ENTRY alt_thunk_names138[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E233barEv,_ZTv0_n12_N3E233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E233barEv,_ZThn8_N3E233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G231233fooEv,_ZTv0_n12_N6G231233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G231233fooEv,_ZThn32_N6G231233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G231233barEv,_ZTv0_n16_N6G231233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G231233barEv,_ZThn24_N6G231233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G231233barEv,_ZTv0_n12_N6G231233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G231233barEv,_ZThn16_N6G231233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6G231233barEv,_ZTv0_n20_N6G231233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G231233barEv,_ZThn8_N6G231233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G231233fooEv,_ZTv0_n16_N6G231233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G231233fooEv,_ZThn8_N6G231233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G23123 = { "G23123", // class name
+ bases_G23123, 4,
+ &(vtc_G23123[0]), // expected_vtbl_contents
+ &(vtt_G23123[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G23123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G23123),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G23123),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names138,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G23133 : virtual E23 , virtual F13 {
+ int pg;
+ virtual void foo(); // _ZN6G231333fooEv
+ virtual void bar(); // _ZN6G231333barEv
+ ~G23133(); // tgen
+ G23133(); // tgen
+};
+//SIG(1 G23133) C1{ VBC2{ VBC3{ v2 Fi} v1 v2 Fi} VBC4{ VBC5{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void G23133 ::foo(){vfunc_called(this, "_ZN6G231333fooEv");}
+void G23133 ::bar(){vfunc_called(this, "_ZN6G231333barEv");}
+G23133 ::~G23133(){ note_dtor("G23133", this);} // tgen
+G23133 ::G23133(){ note_ctor("G23133", this);} // tgen
+
+static void Test_G23133()
+{
+ extern Class_Descriptor cd_G23133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G23133, buf);
+ G23133 *dp, &lv = *(dp=new (buf) G23133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G23133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G23133)");
+ check_base_class_offset(lv, (AA2*)(E23*), ABISELECT(32,16), "G23133");
+ check_base_class_offset(lv, (E23*), ABISELECT(16,8), "G23133");
+ check_base_class_offset(lv, (AA1*)(F13*), ABISELECT(64,32), "G23133");
+ check_base_class_offset(lv, (F13*), ABISELECT(48,24), "G23133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G23133.pg");
+ test_class_info(&lv, &cd_G23133);
+ dp->~G23133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG23133(Test_G23133, "G23133", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G23133C1Ev();
+extern void _ZN6G23133D1Ev();
+Name_Map name_map_G23133[] = {
+ NSPAIR(_ZN6G23133C1Ev),
+ NSPAIR(_ZN6G23133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_E23;
+extern VTBL_ENTRY _ZTI3E23[];
+extern VTBL_ENTRY _ZTV3E23[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E23[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_F13;
+extern VTBL_ENTRY _ZTI3F13[];
+extern VTBL_ENTRY _ZTV3F13[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F13[];
+static Base_Class bases_G23133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E23, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F13, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G23133[];
+extern void _ZN6G231333fooEv();
+extern void _ZN6G231333barEv();
+extern void ABISELECT(_ZTv0_n32_N6G231333fooEv,_ZTv0_n16_N6G231333fooEv)();
+extern void ABISELECT(_ZThn16_N6G231333fooEv,_ZThn8_N6G231333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G231333barEv,_ZTv0_n20_N6G231333barEv)();
+extern void ABISELECT(_ZThn16_N6G231333barEv,_ZThn8_N6G231333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G231333barEv,_ZTv0_n12_N6G231333barEv)();
+extern void ABISELECT(_ZThn32_N6G231333barEv,_ZThn16_N6G231333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G231333fooEv,_ZTv0_n16_N6G231333fooEv)();
+extern void ABISELECT(_ZThn48_N6G231333fooEv,_ZThn24_N6G231333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G231333barEv,_ZTv0_n20_N6G231333barEv)();
+extern void ABISELECT(_ZThn48_N6G231333barEv,_ZThn24_N6G231333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G231333fooEv,_ZTv0_n12_N6G231333fooEv)();
+extern void ABISELECT(_ZThn64_N6G231333fooEv,_ZThn32_N6G231333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G23133[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G23133[0]),
+ (VTBL_ENTRY)&_ZN6G231333fooEv,
+ (VTBL_ENTRY)&_ZN6G231333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G23133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G231333fooEv,_ZTv0_n16_N6G231333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G231333barEv,_ZTv0_n20_N6G231333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G23133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G231333barEv,_ZTv0_n12_N6G231333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G23133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G231333fooEv,_ZTv0_n16_N6G231333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G231333barEv,_ZTv0_n20_N6G231333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G23133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G231333fooEv,_ZTv0_n12_N6G231333fooEv),
+};
+extern VTBL_ENTRY _ZTV6G23133[];
+extern void _ZN3E233fooEv();
+extern void _ZN3E233barEv();
+static VTBL_ENTRY _tg__ZTV3E23__6G23133[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E23[0]),
+ (VTBL_ENTRY)&_ZN3E233fooEv,
+ (VTBL_ENTRY)&_ZN3E233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E233barEv,_ZTv0_n12_N3E233barEv)();
+extern void ABISELECT(_ZThn16_N3E233barEv,_ZThn8_N3E233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__3E23__6G23133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E23[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E233barEv,_ZTv0_n12_N3E233barEv),
+};
+extern void _ZN3F133fooEv();
+extern void _ZN3F133barEv();
+static VTBL_ENTRY _tg__ZTV3F13__6G23133[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F13[0]),
+ (VTBL_ENTRY)&_ZN3F133fooEv,
+ (VTBL_ENTRY)&_ZN3F133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F133fooEv,_ZTv0_n12_N3F133fooEv)();
+extern void ABISELECT(_ZThn16_N3F133fooEv,_ZThn8_N3F133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__3F13__6G23133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F13[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F133fooEv,_ZTv0_n12_N3F133fooEv),
+};
+static VTT_ENTRY vtt_G23133[] = {
+ {&(_ZTV6G23133[6]), 6,30},
+ {&(_ZTV6G23133[13]), 13,30},
+ {&(_ZTV6G23133[18]), 18,30},
+ {&(_ZTV6G23133[24]), 24,30},
+ {&(_ZTV6G23133[29]), 29,30},
+ {&(_tg__ZTV3E23__6G23133[3]), 3,5},
+ {&(_tg__ZTV3AA2__3E23__6G23133[3]), 3,4},
+ {&(_tg__ZTV3F13__6G23133[3]), 3,5},
+ {&(_tg__ZTV3AA1__3F13__6G23133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G23133[];
+extern VTBL_ENTRY _ZTV6G23133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G23133[];
+static VTBL_ENTRY alt_thunk_names139[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F133fooEv,_ZTv0_n12_N3F133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F133fooEv,_ZThn8_N3F133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E233barEv,_ZTv0_n12_N3E233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E233barEv,_ZThn8_N3E233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G231333fooEv,_ZTv0_n12_N6G231333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G231333fooEv,_ZThn32_N6G231333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G231333barEv,_ZTv0_n12_N6G231333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G231333barEv,_ZThn16_N6G231333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6G231333barEv,_ZTv0_n20_N6G231333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G231333barEv,_ZThn24_N6G231333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G231333barEv,_ZThn8_N6G231333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G231333fooEv,_ZTv0_n16_N6G231333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G231333fooEv,_ZThn24_N6G231333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G231333fooEv,_ZThn8_N6G231333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G23133 = { "G23133", // class name
+ bases_G23133, 4,
+ &(vtc_G23133[0]), // expected_vtbl_contents
+ &(vtt_G23133[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G23133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G23133),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G23133),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names139,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G23213 : virtual E23 , virtual F21 {
+ int pg;
+ virtual void foo(); // _ZN6G232133fooEv
+ virtual void bar(); // _ZN6G232133barEv
+ ~G23213(); // tgen
+ G23213(); // tgen
+};
+//SIG(1 G23213) C1{ VBC2{ VBC3{ v2 Fi} v1 v2 Fi} VBC4{ VBC3 v1 Fi} v1 v2 Fi}
+
+
+void G23213 ::foo(){vfunc_called(this, "_ZN6G232133fooEv");}
+void G23213 ::bar(){vfunc_called(this, "_ZN6G232133barEv");}
+G23213 ::~G23213(){ note_dtor("G23213", this);} // tgen
+G23213 ::G23213(){ note_ctor("G23213", this);} // tgen
+
+static void Test_G23213()
+{
+ extern Class_Descriptor cd_G23213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_G23213, buf);
+ G23213 *dp, &lv = *(dp=new (buf) G23213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(G23213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G23213)");
+ check_base_class_offset(lv, (AA2*)(E23*), ABISELECT(32,16), "G23213");
+ check_base_class_offset(lv, (AA2*)(F21*), ABISELECT(32,16), "G23213");
+ check_base_class_offset(lv, (E23*), ABISELECT(16,8), "G23213");
+ check_base_class_offset(lv, (F21*), ABISELECT(48,24), "G23213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G23213.pg");
+ test_class_info(&lv, &cd_G23213);
+ dp->~G23213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG23213(Test_G23213, "G23213", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6G23213C1Ev();
+extern void _ZN6G23213D1Ev();
+Name_Map name_map_G23213[] = {
+ NSPAIR(_ZN6G23213C1Ev),
+ NSPAIR(_ZN6G23213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_E23;
+extern VTBL_ENTRY _ZTI3E23[];
+extern VTBL_ENTRY _ZTV3E23[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E23[];
+extern Class_Descriptor cd_F21;
+extern VTBL_ENTRY _ZTI3F21[];
+extern VTBL_ENTRY _ZTV3F21[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F21[];
+static Base_Class bases_G23213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E23, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_F21, 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
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G23213[];
+extern void _ZN6G232133fooEv();
+extern void _ZN6G232133barEv();
+extern void ABISELECT(_ZTv0_n32_N6G232133fooEv,_ZTv0_n16_N6G232133fooEv)();
+extern void ABISELECT(_ZThn16_N6G232133fooEv,_ZThn8_N6G232133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G232133barEv,_ZTv0_n20_N6G232133barEv)();
+extern void ABISELECT(_ZThn16_N6G232133barEv,_ZThn8_N6G232133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G232133barEv,_ZTv0_n12_N6G232133barEv)();
+extern void ABISELECT(_ZThn32_N6G232133barEv,_ZThn16_N6G232133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G232133fooEv,_ZTv0_n16_N6G232133fooEv)();
+extern void ABISELECT(_ZThn48_N6G232133fooEv,_ZThn24_N6G232133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G23213[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G23213[0]),
+ (VTBL_ENTRY)&_ZN6G232133fooEv,
+ (VTBL_ENTRY)&_ZN6G232133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G23213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G232133fooEv,_ZTv0_n16_N6G232133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G232133barEv,_ZTv0_n20_N6G232133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G23213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G232133barEv,_ZTv0_n12_N6G232133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G23213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G232133fooEv,_ZTv0_n16_N6G232133fooEv),
+};
+extern VTBL_ENTRY _ZTV6G23213[];
+extern void _ZN3E233fooEv();
+extern void _ZN3E233barEv();
+static VTBL_ENTRY _tg__ZTV3E23__6G23213[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E23[0]),
+ (VTBL_ENTRY)&_ZN3E233fooEv,
+ (VTBL_ENTRY)&_ZN3E233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E233barEv,_ZTv0_n12_N3E233barEv)();
+extern void ABISELECT(_ZThn16_N3E233barEv,_ZThn8_N3E233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__3E23__6G23213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E23[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E233barEv,_ZTv0_n12_N3E233barEv),
+};
+extern void _ZN3F213fooEv();
+static VTBL_ENTRY _tg__ZTV3F21__6G23213[] = {
+ ABISELECT(-16,-8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F21[0]),
+ (VTBL_ENTRY)&_ZN3F213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__3F21__6G23213[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI3F21[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+static VTT_ENTRY vtt_G23213[] = {
+ {&(_ZTV6G23213[5]), 5,23},
+ {&(_ZTV6G23213[12]), 12,23},
+ {&(_ZTV6G23213[17]), 17,23},
+ {&(_ZTV6G23213[22]), 22,23},
+ {&(_tg__ZTV3E23__6G23213[3]), 3,5},
+ {&(_tg__ZTV3AA2__3E23__6G23213[3]), 3,4},
+ {&(_tg__ZTV3F21__6G23213[3]), 3,4},
+ {&(_tg__ZTV3AA2__3F21__6G23213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G23213[];
+extern VTBL_ENTRY _ZTV6G23213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G23213[];
+static VTBL_ENTRY alt_thunk_names140[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E233barEv,_ZTv0_n12_N3E233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E233barEv,_ZThn8_N3E233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G232133barEv,_ZTv0_n12_N6G232133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G232133barEv,_ZThn16_N6G232133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6G232133barEv,_ZTv0_n20_N6G232133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G232133barEv,_ZThn8_N6G232133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G232133fooEv,_ZTv0_n16_N6G232133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G232133fooEv,_ZThn24_N6G232133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G232133fooEv,_ZThn8_N6G232133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G23213 = { "G23213", // class name
+ bases_G23213, 3,
+ &(vtc_G23213[0]), // expected_vtbl_contents
+ &(vtt_G23213[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6G23213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G23213),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G23213),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names140,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G23222 : virtual E23 , virtual F22 {
+ int pg;
+ virtual void bar(); // _ZN6G232223barEv
+ ~G23222(); // tgen
+ G23222(); // tgen
+};
+//SIG(1 G23222) C1{ VBC2{ VBC3{ v1 Fi} v2 v1 Fi} VBC4{ VBC3 v1 Fi} v1 Fi}
+
+
+void G23222 ::bar(){vfunc_called(this, "_ZN6G232223barEv");}
+G23222 ::~G23222(){ note_dtor("G23222", this);} // tgen
+G23222 ::G23222(){ note_ctor("G23222", this);} // tgen
+
+static void Test_G23222()
+{
+ extern Class_Descriptor cd_G23222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_G23222, buf);
+ G23222 *dp, &lv = *(dp=new (buf) G23222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(G23222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G23222)");
+ check_base_class_offset(lv, (AA2*)(E23*), ABISELECT(32,16), "G23222");
+ check_base_class_offset(lv, (AA2*)(F22*), ABISELECT(32,16), "G23222");
+ check_base_class_offset(lv, (E23*), ABISELECT(16,8), "G23222");
+ check_base_class_offset(lv, (F22*), ABISELECT(48,24), "G23222");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G23222.pg");
+ test_class_info(&lv, &cd_G23222);
+ dp->~G23222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG23222(Test_G23222, "G23222", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6G23222C1Ev();
+extern void _ZN6G23222D1Ev();
+Name_Map name_map_G23222[] = {
+ NSPAIR(_ZN6G23222C1Ev),
+ NSPAIR(_ZN6G23222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_E23;
+extern VTBL_ENTRY _ZTI3E23[];
+extern VTBL_ENTRY _ZTV3E23[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E23[];
+extern Class_Descriptor cd_F22;
+extern VTBL_ENTRY _ZTI3F22[];
+extern VTBL_ENTRY _ZTV3F22[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F22[];
+static Base_Class bases_G23222[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E23, ABISELECT(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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_F22, 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
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G23222[];
+extern void _ZN6G232223barEv();
+extern void _ZN3E233fooEv();
+extern void ABISELECT(_ZTv0_n40_N6G232223barEv,_ZTv0_n20_N6G232223barEv)();
+extern void ABISELECT(_ZThn16_N6G232223barEv,_ZThn8_N6G232223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G232223barEv,_ZTv0_n12_N6G232223barEv)();
+extern void ABISELECT(_ZThn32_N6G232223barEv,_ZThn16_N6G232223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G232223barEv,_ZTv0_n16_N6G232223barEv)();
+extern void ABISELECT(_ZThn48_N6G232223barEv,_ZThn24_N6G232223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G23222[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G23222[0]),
+ (VTBL_ENTRY)&_ZN6G232223barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G23222[0]),
+ (VTBL_ENTRY)&_ZN3E233fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G232223barEv,_ZTv0_n20_N6G232223barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G23222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G232223barEv,_ZTv0_n12_N6G232223barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G23222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G232223barEv,_ZTv0_n16_N6G232223barEv),
+};
+extern VTBL_ENTRY _ZTV6G23222[];
+extern void _ZN3E233fooEv();
+extern void _ZN3E233barEv();
+static VTBL_ENTRY _tg__ZTV3E23__6G23222[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E23[0]),
+ (VTBL_ENTRY)&_ZN3E233fooEv,
+ (VTBL_ENTRY)&_ZN3E233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E233barEv,_ZTv0_n12_N3E233barEv)();
+extern void ABISELECT(_ZThn16_N3E233barEv,_ZThn8_N3E233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__3E23__6G23222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E23[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E233barEv,_ZTv0_n12_N3E233barEv),
+};
+extern void _ZN3F223barEv();
+static VTBL_ENTRY _tg__ZTV3F22__6G23222[] = {
+ ABISELECT(-16,-8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F22[0]),
+ (VTBL_ENTRY)&_ZN3F223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__3F22__6G23222[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI3F22[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv),
+};
+static VTT_ENTRY vtt_G23222[] = {
+ {&(_ZTV6G23222[5]), 5,22},
+ {&(_ZTV6G23222[11]), 11,22},
+ {&(_ZTV6G23222[16]), 16,22},
+ {&(_ZTV6G23222[21]), 21,22},
+ {&(_tg__ZTV3E23__6G23222[3]), 3,5},
+ {&(_tg__ZTV3AA2__3E23__6G23222[3]), 3,4},
+ {&(_tg__ZTV3F22__6G23222[3]), 3,4},
+ {&(_tg__ZTV3AA2__3F22__6G23222[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G23222[];
+extern VTBL_ENTRY _ZTV6G23222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G23222[];
+static VTBL_ENTRY alt_thunk_names141[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E233barEv,_ZTv0_n12_N3E233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E233barEv,_ZThn8_N3E233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G232223barEv,_ZTv0_n16_N6G232223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G232223barEv,_ZThn24_N6G232223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G232223barEv,_ZTv0_n12_N6G232223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G232223barEv,_ZThn16_N6G232223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6G232223barEv,_ZTv0_n20_N6G232223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G232223barEv,_ZThn8_N6G232223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G23222 = { "G23222", // class name
+ bases_G23222, 3,
+ &(vtc_G23222[0]), // expected_vtbl_contents
+ &(vtt_G23222[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6G23222),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G23222),22, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G23222),8, //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 G23223 : virtual E23 , virtual F22 {
+ int pg;
+ virtual void foo(); // _ZN6G232233fooEv
+ virtual void bar(); // _ZN6G232233barEv
+ ~G23223(); // tgen
+ G23223(); // tgen
+};
+//SIG(1 G23223) C1{ VBC2{ VBC3{ v2 Fi} v1 v2 Fi} VBC4{ VBC3 v2 Fi} v1 v2 Fi}
+
+
+void G23223 ::foo(){vfunc_called(this, "_ZN6G232233fooEv");}
+void G23223 ::bar(){vfunc_called(this, "_ZN6G232233barEv");}
+G23223 ::~G23223(){ note_dtor("G23223", this);} // tgen
+G23223 ::G23223(){ note_ctor("G23223", this);} // tgen
+
+static void Test_G23223()
+{
+ extern Class_Descriptor cd_G23223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_G23223, buf);
+ G23223 *dp, &lv = *(dp=new (buf) G23223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(G23223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G23223)");
+ check_base_class_offset(lv, (AA2*)(E23*), ABISELECT(32,16), "G23223");
+ check_base_class_offset(lv, (AA2*)(F22*), ABISELECT(32,16), "G23223");
+ check_base_class_offset(lv, (E23*), ABISELECT(16,8), "G23223");
+ check_base_class_offset(lv, (F22*), ABISELECT(48,24), "G23223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G23223.pg");
+ test_class_info(&lv, &cd_G23223);
+ dp->~G23223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG23223(Test_G23223, "G23223", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6G23223C1Ev();
+extern void _ZN6G23223D1Ev();
+Name_Map name_map_G23223[] = {
+ NSPAIR(_ZN6G23223C1Ev),
+ NSPAIR(_ZN6G23223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_E23;
+extern VTBL_ENTRY _ZTI3E23[];
+extern VTBL_ENTRY _ZTV3E23[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E23[];
+extern Class_Descriptor cd_F22;
+extern VTBL_ENTRY _ZTI3F22[];
+extern VTBL_ENTRY _ZTV3F22[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F22[];
+static Base_Class bases_G23223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E23, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_F22, 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
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G23223[];
+extern void _ZN6G232233fooEv();
+extern void _ZN6G232233barEv();
+extern void ABISELECT(_ZTv0_n32_N6G232233fooEv,_ZTv0_n16_N6G232233fooEv)();
+extern void ABISELECT(_ZThn16_N6G232233fooEv,_ZThn8_N6G232233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G232233barEv,_ZTv0_n20_N6G232233barEv)();
+extern void ABISELECT(_ZThn16_N6G232233barEv,_ZThn8_N6G232233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G232233barEv,_ZTv0_n12_N6G232233barEv)();
+extern void ABISELECT(_ZThn32_N6G232233barEv,_ZThn16_N6G232233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G232233barEv,_ZTv0_n16_N6G232233barEv)();
+extern void ABISELECT(_ZThn48_N6G232233barEv,_ZThn24_N6G232233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G23223[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G23223[0]),
+ (VTBL_ENTRY)&_ZN6G232233fooEv,
+ (VTBL_ENTRY)&_ZN6G232233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G23223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G232233fooEv,_ZTv0_n16_N6G232233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G232233barEv,_ZTv0_n20_N6G232233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G23223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G232233barEv,_ZTv0_n12_N6G232233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G23223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G232233barEv,_ZTv0_n16_N6G232233barEv),
+};
+extern VTBL_ENTRY _ZTV6G23223[];
+extern void _ZN3E233fooEv();
+extern void _ZN3E233barEv();
+static VTBL_ENTRY _tg__ZTV3E23__6G23223[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E23[0]),
+ (VTBL_ENTRY)&_ZN3E233fooEv,
+ (VTBL_ENTRY)&_ZN3E233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E233barEv,_ZTv0_n12_N3E233barEv)();
+extern void ABISELECT(_ZThn16_N3E233barEv,_ZThn8_N3E233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__3E23__6G23223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E23[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E233barEv,_ZTv0_n12_N3E233barEv),
+};
+extern void _ZN3F223barEv();
+static VTBL_ENTRY _tg__ZTV3F22__6G23223[] = {
+ ABISELECT(-16,-8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F22[0]),
+ (VTBL_ENTRY)&_ZN3F223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__3F22__6G23223[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI3F22[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv),
+};
+static VTT_ENTRY vtt_G23223[] = {
+ {&(_ZTV6G23223[5]), 5,23},
+ {&(_ZTV6G23223[12]), 12,23},
+ {&(_ZTV6G23223[17]), 17,23},
+ {&(_ZTV6G23223[22]), 22,23},
+ {&(_tg__ZTV3E23__6G23223[3]), 3,5},
+ {&(_tg__ZTV3AA2__3E23__6G23223[3]), 3,4},
+ {&(_tg__ZTV3F22__6G23223[3]), 3,4},
+ {&(_tg__ZTV3AA2__3F22__6G23223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G23223[];
+extern VTBL_ENTRY _ZTV6G23223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G23223[];
+static VTBL_ENTRY alt_thunk_names142[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E233barEv,_ZTv0_n12_N3E233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E233barEv,_ZThn8_N3E233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G232233barEv,_ZTv0_n16_N6G232233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G232233barEv,_ZThn24_N6G232233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G232233barEv,_ZTv0_n12_N6G232233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G232233barEv,_ZThn16_N6G232233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6G232233barEv,_ZTv0_n20_N6G232233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G232233barEv,_ZThn8_N6G232233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G232233fooEv,_ZTv0_n16_N6G232233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G232233fooEv,_ZThn8_N6G232233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G23223 = { "G23223", // class name
+ bases_G23223, 3,
+ &(vtc_G23223[0]), // expected_vtbl_contents
+ &(vtt_G23223[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6G23223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G23223),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G23223),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names142,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G23233 : virtual E23 , virtual F23 {
+ int pg;
+ virtual void foo(); // _ZN6G232333fooEv
+ virtual void bar(); // _ZN6G232333barEv
+ ~G23233(); // tgen
+ G23233(); // tgen
+};
+//SIG(1 G23233) C1{ VBC2{ VBC3{ v2 Fi} v1 v2 Fi} VBC4{ VBC3 v1 v2 Fi} v1 v2 Fi}
+
+
+void G23233 ::foo(){vfunc_called(this, "_ZN6G232333fooEv");}
+void G23233 ::bar(){vfunc_called(this, "_ZN6G232333barEv");}
+G23233 ::~G23233(){ note_dtor("G23233", this);} // tgen
+G23233 ::G23233(){ note_ctor("G23233", this);} // tgen
+
+static void Test_G23233()
+{
+ extern Class_Descriptor cd_G23233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_G23233, buf);
+ G23233 *dp, &lv = *(dp=new (buf) G23233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(G23233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G23233)");
+ check_base_class_offset(lv, (AA2*)(E23*), ABISELECT(32,16), "G23233");
+ check_base_class_offset(lv, (AA2*)(F23*), ABISELECT(32,16), "G23233");
+ check_base_class_offset(lv, (E23*), ABISELECT(16,8), "G23233");
+ check_base_class_offset(lv, (F23*), ABISELECT(48,24), "G23233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G23233.pg");
+ test_class_info(&lv, &cd_G23233);
+ dp->~G23233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG23233(Test_G23233, "G23233", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6G23233C1Ev();
+extern void _ZN6G23233D1Ev();
+Name_Map name_map_G23233[] = {
+ NSPAIR(_ZN6G23233C1Ev),
+ NSPAIR(_ZN6G23233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_E23;
+extern VTBL_ENTRY _ZTI3E23[];
+extern VTBL_ENTRY _ZTV3E23[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E23[];
+extern Class_Descriptor cd_F23;
+extern VTBL_ENTRY _ZTI3F23[];
+extern VTBL_ENTRY _ZTV3F23[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F23[];
+static Base_Class bases_G23233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E23, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_F23, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G23233[];
+extern void _ZN6G232333fooEv();
+extern void _ZN6G232333barEv();
+extern void ABISELECT(_ZTv0_n32_N6G232333fooEv,_ZTv0_n16_N6G232333fooEv)();
+extern void ABISELECT(_ZThn16_N6G232333fooEv,_ZThn8_N6G232333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G232333barEv,_ZTv0_n20_N6G232333barEv)();
+extern void ABISELECT(_ZThn16_N6G232333barEv,_ZThn8_N6G232333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G232333barEv,_ZTv0_n12_N6G232333barEv)();
+extern void ABISELECT(_ZThn32_N6G232333barEv,_ZThn16_N6G232333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G232333fooEv,_ZTv0_n16_N6G232333fooEv)();
+extern void ABISELECT(_ZThn48_N6G232333fooEv,_ZThn24_N6G232333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G232333barEv,_ZTv0_n20_N6G232333barEv)();
+extern void ABISELECT(_ZThn48_N6G232333barEv,_ZThn24_N6G232333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G23233[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G23233[0]),
+ (VTBL_ENTRY)&_ZN6G232333fooEv,
+ (VTBL_ENTRY)&_ZN6G232333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G23233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G232333fooEv,_ZTv0_n16_N6G232333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G232333barEv,_ZTv0_n20_N6G232333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G23233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G232333barEv,_ZTv0_n12_N6G232333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G23233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G232333fooEv,_ZTv0_n16_N6G232333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G232333barEv,_ZTv0_n20_N6G232333barEv),
+};
+extern VTBL_ENTRY _ZTV6G23233[];
+extern void _ZN3E233fooEv();
+extern void _ZN3E233barEv();
+static VTBL_ENTRY _tg__ZTV3E23__6G23233[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E23[0]),
+ (VTBL_ENTRY)&_ZN3E233fooEv,
+ (VTBL_ENTRY)&_ZN3E233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E233barEv,_ZTv0_n12_N3E233barEv)();
+extern void ABISELECT(_ZThn16_N3E233barEv,_ZThn8_N3E233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__3E23__6G23233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E23[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E233barEv,_ZTv0_n12_N3E233barEv),
+};
+extern void _ZN3F233fooEv();
+extern void _ZN3F233barEv();
+static VTBL_ENTRY _tg__ZTV3F23__6G23233[] = {
+ ABISELECT(-16,-8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F23[0]),
+ (VTBL_ENTRY)&_ZN3F233fooEv,
+ (VTBL_ENTRY)&_ZN3F233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F233barEv,_ZTv0_n12_N3F233barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__3F23__6G23233[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI3F23[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F233barEv,_ZTv0_n12_N3F233barEv),
+};
+static VTT_ENTRY vtt_G23233[] = {
+ {&(_ZTV6G23233[5]), 5,25},
+ {&(_ZTV6G23233[12]), 12,25},
+ {&(_ZTV6G23233[17]), 17,25},
+ {&(_ZTV6G23233[23]), 23,25},
+ {&(_tg__ZTV3E23__6G23233[3]), 3,5},
+ {&(_tg__ZTV3AA2__3E23__6G23233[3]), 3,4},
+ {&(_tg__ZTV3F23__6G23233[3]), 3,5},
+ {&(_tg__ZTV3AA2__3F23__6G23233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G23233[];
+extern VTBL_ENTRY _ZTV6G23233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G23233[];
+static VTBL_ENTRY alt_thunk_names143[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E233barEv,_ZTv0_n12_N3E233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E233barEv,_ZThn8_N3E233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G232333barEv,_ZTv0_n12_N6G232333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G232333barEv,_ZThn16_N6G232333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6G232333barEv,_ZTv0_n20_N6G232333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G232333barEv,_ZThn24_N6G232333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G232333barEv,_ZThn8_N6G232333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G232333fooEv,_ZTv0_n16_N6G232333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G232333fooEv,_ZThn24_N6G232333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G232333fooEv,_ZThn8_N6G232333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G23233 = { "G23233", // class name
+ bases_G23233, 3,
+ &(vtc_G23233[0]), // expected_vtbl_contents
+ &(vtt_G23233[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6G23233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G23233),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G23233),8, //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 G23313 : virtual E23 , virtual F31 {
+ int pg;
+ virtual void foo(); // _ZN6G233133fooEv
+ virtual void bar(); // _ZN6G233133barEv
+ ~G23313(); // tgen
+ G23313(); // tgen
+};
+//SIG(1 G23313) C1{ VBC2{ VBC3{ v2 Fi} v1 v2 Fi} VBC4{ VBC5{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void G23313 ::foo(){vfunc_called(this, "_ZN6G233133fooEv");}
+void G23313 ::bar(){vfunc_called(this, "_ZN6G233133barEv");}
+G23313 ::~G23313(){ note_dtor("G23313", this);} // tgen
+G23313 ::G23313(){ note_ctor("G23313", this);} // tgen
+
+static void Test_G23313()
+{
+ extern Class_Descriptor cd_G23313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G23313, buf);
+ G23313 *dp, &lv = *(dp=new (buf) G23313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G23313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G23313)");
+ check_base_class_offset(lv, (AA2*)(E23*), ABISELECT(32,16), "G23313");
+ check_base_class_offset(lv, (E23*), ABISELECT(16,8), "G23313");
+ check_base_class_offset(lv, (AA3*)(F31*), ABISELECT(64,32), "G23313");
+ check_base_class_offset(lv, (F31*), ABISELECT(48,24), "G23313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G23313.pg");
+ test_class_info(&lv, &cd_G23313);
+ dp->~G23313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG23313(Test_G23313, "G23313", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G23313C1Ev();
+extern void _ZN6G23313D1Ev();
+Name_Map name_map_G23313[] = {
+ NSPAIR(_ZN6G23313C1Ev),
+ NSPAIR(_ZN6G23313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_E23;
+extern VTBL_ENTRY _ZTI3E23[];
+extern VTBL_ENTRY _ZTV3E23[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E23[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_F31;
+extern VTBL_ENTRY _ZTI3F31[];
+extern VTBL_ENTRY _ZTV3F31[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F31[];
+static Base_Class bases_G23313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E23, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F31, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G23313[];
+extern void _ZN6G233133fooEv();
+extern void _ZN6G233133barEv();
+extern void ABISELECT(_ZTv0_n32_N6G233133fooEv,_ZTv0_n16_N6G233133fooEv)();
+extern void ABISELECT(_ZThn16_N6G233133fooEv,_ZThn8_N6G233133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G233133barEv,_ZTv0_n20_N6G233133barEv)();
+extern void ABISELECT(_ZThn16_N6G233133barEv,_ZThn8_N6G233133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G233133barEv,_ZTv0_n12_N6G233133barEv)();
+extern void ABISELECT(_ZThn32_N6G233133barEv,_ZThn16_N6G233133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G233133fooEv,_ZTv0_n16_N6G233133fooEv)();
+extern void ABISELECT(_ZThn48_N6G233133fooEv,_ZThn24_N6G233133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G233133fooEv,_ZTv0_n12_N6G233133fooEv)();
+extern void ABISELECT(_ZThn64_N6G233133fooEv,_ZThn32_N6G233133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G233133barEv,_ZTv0_n16_N6G233133barEv)();
+extern void ABISELECT(_ZThn64_N6G233133barEv,_ZThn32_N6G233133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G23313[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G23313[0]),
+ (VTBL_ENTRY)&_ZN6G233133fooEv,
+ (VTBL_ENTRY)&_ZN6G233133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G23313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G233133fooEv,_ZTv0_n16_N6G233133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G233133barEv,_ZTv0_n20_N6G233133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G23313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G233133barEv,_ZTv0_n12_N6G233133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G23313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G233133fooEv,_ZTv0_n16_N6G233133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G23313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G233133fooEv,_ZTv0_n12_N6G233133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G233133barEv,_ZTv0_n16_N6G233133barEv),
+};
+extern VTBL_ENTRY _ZTV6G23313[];
+extern void _ZN3E233fooEv();
+extern void _ZN3E233barEv();
+static VTBL_ENTRY _tg__ZTV3E23__6G23313[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E23[0]),
+ (VTBL_ENTRY)&_ZN3E233fooEv,
+ (VTBL_ENTRY)&_ZN3E233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E233barEv,_ZTv0_n12_N3E233barEv)();
+extern void ABISELECT(_ZThn16_N3E233barEv,_ZThn8_N3E233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__3E23__6G23313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E23[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E233barEv,_ZTv0_n12_N3E233barEv),
+};
+extern void _ZN3F313fooEv();
+static VTBL_ENTRY _tg__ZTV3F31__6G23313[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F31[0]),
+ (VTBL_ENTRY)&_ZN3F313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F313fooEv,_ZTv0_n12_N3F313fooEv)();
+extern void ABISELECT(_ZThn16_N3F313fooEv,_ZThn8_N3F313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__3F31__6G23313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F31[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F313fooEv,_ZTv0_n12_N3F313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+static VTT_ENTRY vtt_G23313[] = {
+ {&(_ZTV6G23313[6]), 6,30},
+ {&(_ZTV6G23313[13]), 13,30},
+ {&(_ZTV6G23313[18]), 18,30},
+ {&(_ZTV6G23313[23]), 23,30},
+ {&(_ZTV6G23313[28]), 28,30},
+ {&(_tg__ZTV3E23__6G23313[3]), 3,5},
+ {&(_tg__ZTV3AA2__3E23__6G23313[3]), 3,4},
+ {&(_tg__ZTV3F31__6G23313[3]), 3,4},
+ {&(_tg__ZTV3AA3__3F31__6G23313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6G23313[];
+extern VTBL_ENTRY _ZTV6G23313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G23313[];
+static VTBL_ENTRY alt_thunk_names144[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F313fooEv,_ZTv0_n12_N3F313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F313fooEv,_ZThn8_N3F313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E233barEv,_ZTv0_n12_N3E233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E233barEv,_ZThn8_N3E233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G233133barEv,_ZTv0_n16_N6G233133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G233133barEv,_ZThn32_N6G233133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G233133fooEv,_ZTv0_n12_N6G233133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G233133fooEv,_ZThn32_N6G233133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G233133barEv,_ZTv0_n12_N6G233133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G233133barEv,_ZThn16_N6G233133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6G233133barEv,_ZTv0_n20_N6G233133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G233133barEv,_ZThn8_N6G233133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G233133fooEv,_ZTv0_n16_N6G233133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G233133fooEv,_ZThn24_N6G233133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G233133fooEv,_ZThn8_N6G233133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G23313 = { "G23313", // class name
+ bases_G23313, 4,
+ &(vtc_G23313[0]), // expected_vtbl_contents
+ &(vtt_G23313[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G23313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G23313),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G23313),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names144,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G23323 : virtual E23 , virtual F32 {
+ int pg;
+ virtual void foo(); // _ZN6G233233fooEv
+ virtual void bar(); // _ZN6G233233barEv
+ ~G23323(); // tgen
+ G23323(); // tgen
+};
+//SIG(1 G23323) C1{ VBC2{ VBC3{ v2 Fi} v1 v2 Fi} VBC4{ VBC5{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void G23323 ::foo(){vfunc_called(this, "_ZN6G233233fooEv");}
+void G23323 ::bar(){vfunc_called(this, "_ZN6G233233barEv");}
+G23323 ::~G23323(){ note_dtor("G23323", this);} // tgen
+G23323 ::G23323(){ note_ctor("G23323", this);} // tgen
+
+static void Test_G23323()
+{
+ extern Class_Descriptor cd_G23323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G23323, buf);
+ G23323 *dp, &lv = *(dp=new (buf) G23323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G23323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G23323)");
+ check_base_class_offset(lv, (AA2*)(E23*), ABISELECT(32,16), "G23323");
+ check_base_class_offset(lv, (E23*), ABISELECT(16,8), "G23323");
+ check_base_class_offset(lv, (AA3*)(F32*), ABISELECT(64,32), "G23323");
+ check_base_class_offset(lv, (F32*), ABISELECT(48,24), "G23323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G23323.pg");
+ test_class_info(&lv, &cd_G23323);
+ dp->~G23323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG23323(Test_G23323, "G23323", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G23323C1Ev();
+extern void _ZN6G23323D1Ev();
+Name_Map name_map_G23323[] = {
+ NSPAIR(_ZN6G23323C1Ev),
+ NSPAIR(_ZN6G23323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_E23;
+extern VTBL_ENTRY _ZTI3E23[];
+extern VTBL_ENTRY _ZTV3E23[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E23[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_F32;
+extern VTBL_ENTRY _ZTI3F32[];
+extern VTBL_ENTRY _ZTV3F32[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F32[];
+static Base_Class bases_G23323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E23, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F32, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G23323[];
+extern void _ZN6G233233fooEv();
+extern void _ZN6G233233barEv();
+extern void ABISELECT(_ZTv0_n32_N6G233233fooEv,_ZTv0_n16_N6G233233fooEv)();
+extern void ABISELECT(_ZThn16_N6G233233fooEv,_ZThn8_N6G233233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G233233barEv,_ZTv0_n20_N6G233233barEv)();
+extern void ABISELECT(_ZThn16_N6G233233barEv,_ZThn8_N6G233233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G233233barEv,_ZTv0_n12_N6G233233barEv)();
+extern void ABISELECT(_ZThn32_N6G233233barEv,_ZThn16_N6G233233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G233233barEv,_ZTv0_n16_N6G233233barEv)();
+extern void ABISELECT(_ZThn48_N6G233233barEv,_ZThn24_N6G233233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G233233fooEv,_ZTv0_n12_N6G233233fooEv)();
+extern void ABISELECT(_ZThn64_N6G233233fooEv,_ZThn32_N6G233233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G233233barEv,_ZTv0_n16_N6G233233barEv)();
+extern void ABISELECT(_ZThn64_N6G233233barEv,_ZThn32_N6G233233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G23323[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G23323[0]),
+ (VTBL_ENTRY)&_ZN6G233233fooEv,
+ (VTBL_ENTRY)&_ZN6G233233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G23323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G233233fooEv,_ZTv0_n16_N6G233233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G233233barEv,_ZTv0_n20_N6G233233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G23323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G233233barEv,_ZTv0_n12_N6G233233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G23323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G233233barEv,_ZTv0_n16_N6G233233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G23323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G233233fooEv,_ZTv0_n12_N6G233233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G233233barEv,_ZTv0_n16_N6G233233barEv),
+};
+extern VTBL_ENTRY _ZTV6G23323[];
+extern void _ZN3E233fooEv();
+extern void _ZN3E233barEv();
+static VTBL_ENTRY _tg__ZTV3E23__6G23323[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E23[0]),
+ (VTBL_ENTRY)&_ZN3E233fooEv,
+ (VTBL_ENTRY)&_ZN3E233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E233barEv,_ZTv0_n12_N3E233barEv)();
+extern void ABISELECT(_ZThn16_N3E233barEv,_ZThn8_N3E233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__3E23__6G23323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E23[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E233barEv,_ZTv0_n12_N3E233barEv),
+};
+extern void _ZN3F323barEv();
+static VTBL_ENTRY _tg__ZTV3F32__6G23323[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F32[0]),
+ (VTBL_ENTRY)&_ZN3F323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N3F323barEv,_ZTv0_n16_N3F323barEv)();
+extern void ABISELECT(_ZThn16_N3F323barEv,_ZThn8_N3F323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__3F32__6G23323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F32[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3F323barEv,_ZTv0_n16_N3F323barEv),
+};
+static VTT_ENTRY vtt_G23323[] = {
+ {&(_ZTV6G23323[6]), 6,30},
+ {&(_ZTV6G23323[13]), 13,30},
+ {&(_ZTV6G23323[18]), 18,30},
+ {&(_ZTV6G23323[23]), 23,30},
+ {&(_ZTV6G23323[28]), 28,30},
+ {&(_tg__ZTV3E23__6G23323[3]), 3,5},
+ {&(_tg__ZTV3AA2__3E23__6G23323[3]), 3,4},
+ {&(_tg__ZTV3F32__6G23323[3]), 3,4},
+ {&(_tg__ZTV3AA3__3F32__6G23323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6G23323[];
+extern VTBL_ENTRY _ZTV6G23323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G23323[];
+static VTBL_ENTRY alt_thunk_names145[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3F323barEv,_ZTv0_n16_N3F323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F323barEv,_ZThn8_N3F323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E233barEv,_ZTv0_n12_N3E233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E233barEv,_ZThn8_N3E233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G233233fooEv,_ZTv0_n12_N6G233233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G233233fooEv,_ZThn32_N6G233233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G233233barEv,_ZTv0_n16_N6G233233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G233233barEv,_ZThn32_N6G233233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G233233barEv,_ZThn24_N6G233233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G233233barEv,_ZTv0_n12_N6G233233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G233233barEv,_ZThn16_N6G233233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6G233233barEv,_ZTv0_n20_N6G233233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G233233barEv,_ZThn8_N6G233233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G233233fooEv,_ZTv0_n16_N6G233233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G233233fooEv,_ZThn8_N6G233233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G23323 = { "G23323", // class name
+ bases_G23323, 4,
+ &(vtc_G23323[0]), // expected_vtbl_contents
+ &(vtt_G23323[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G23323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G23323),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G23323),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names145,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G23333 : virtual E23 , virtual F33 {
+ int pg;
+ virtual void foo(); // _ZN6G233333fooEv
+ virtual void bar(); // _ZN6G233333barEv
+ ~G23333(); // tgen
+ G23333(); // tgen
+};
+//SIG(1 G23333) C1{ VBC2{ VBC3{ v2 Fi} v1 v2 Fi} VBC4{ VBC5{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void G23333 ::foo(){vfunc_called(this, "_ZN6G233333fooEv");}
+void G23333 ::bar(){vfunc_called(this, "_ZN6G233333barEv");}
+G23333 ::~G23333(){ note_dtor("G23333", this);} // tgen
+G23333 ::G23333(){ note_ctor("G23333", this);} // tgen
+
+static void Test_G23333()
+{
+ extern Class_Descriptor cd_G23333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G23333, buf);
+ G23333 *dp, &lv = *(dp=new (buf) G23333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G23333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G23333)");
+ check_base_class_offset(lv, (AA2*)(E23*), ABISELECT(32,16), "G23333");
+ check_base_class_offset(lv, (E23*), ABISELECT(16,8), "G23333");
+ check_base_class_offset(lv, (AA3*)(F33*), ABISELECT(64,32), "G23333");
+ check_base_class_offset(lv, (F33*), ABISELECT(48,24), "G23333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G23333.pg");
+ test_class_info(&lv, &cd_G23333);
+ dp->~G23333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG23333(Test_G23333, "G23333", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G23333C1Ev();
+extern void _ZN6G23333D1Ev();
+Name_Map name_map_G23333[] = {
+ NSPAIR(_ZN6G23333C1Ev),
+ NSPAIR(_ZN6G23333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_E23;
+extern VTBL_ENTRY _ZTI3E23[];
+extern VTBL_ENTRY _ZTV3E23[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E23[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_F33;
+extern VTBL_ENTRY _ZTI3F33[];
+extern VTBL_ENTRY _ZTV3F33[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F33[];
+static Base_Class bases_G23333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E23, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F33, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G23333[];
+extern void _ZN6G233333fooEv();
+extern void _ZN6G233333barEv();
+extern void ABISELECT(_ZTv0_n32_N6G233333fooEv,_ZTv0_n16_N6G233333fooEv)();
+extern void ABISELECT(_ZThn16_N6G233333fooEv,_ZThn8_N6G233333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G233333barEv,_ZTv0_n20_N6G233333barEv)();
+extern void ABISELECT(_ZThn16_N6G233333barEv,_ZThn8_N6G233333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G233333barEv,_ZTv0_n12_N6G233333barEv)();
+extern void ABISELECT(_ZThn32_N6G233333barEv,_ZThn16_N6G233333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G233333fooEv,_ZTv0_n16_N6G233333fooEv)();
+extern void ABISELECT(_ZThn48_N6G233333fooEv,_ZThn24_N6G233333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G233333barEv,_ZTv0_n20_N6G233333barEv)();
+extern void ABISELECT(_ZThn48_N6G233333barEv,_ZThn24_N6G233333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G233333fooEv,_ZTv0_n12_N6G233333fooEv)();
+extern void ABISELECT(_ZThn64_N6G233333fooEv,_ZThn32_N6G233333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G233333barEv,_ZTv0_n16_N6G233333barEv)();
+extern void ABISELECT(_ZThn64_N6G233333barEv,_ZThn32_N6G233333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G23333[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G23333[0]),
+ (VTBL_ENTRY)&_ZN6G233333fooEv,
+ (VTBL_ENTRY)&_ZN6G233333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G23333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G233333fooEv,_ZTv0_n16_N6G233333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G233333barEv,_ZTv0_n20_N6G233333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G23333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G233333barEv,_ZTv0_n12_N6G233333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G23333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G233333fooEv,_ZTv0_n16_N6G233333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G233333barEv,_ZTv0_n20_N6G233333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G23333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G233333fooEv,_ZTv0_n12_N6G233333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G233333barEv,_ZTv0_n16_N6G233333barEv),
+};
+extern VTBL_ENTRY _ZTV6G23333[];
+extern void _ZN3E233fooEv();
+extern void _ZN3E233barEv();
+static VTBL_ENTRY _tg__ZTV3E23__6G23333[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E23[0]),
+ (VTBL_ENTRY)&_ZN3E233fooEv,
+ (VTBL_ENTRY)&_ZN3E233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E233barEv,_ZTv0_n12_N3E233barEv)();
+extern void ABISELECT(_ZThn16_N3E233barEv,_ZThn8_N3E233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__3E23__6G23333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E23[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E233barEv,_ZTv0_n12_N3E233barEv),
+};
+extern void _ZN3F333fooEv();
+extern void _ZN3F333barEv();
+static VTBL_ENTRY _tg__ZTV3F33__6G23333[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F33[0]),
+ (VTBL_ENTRY)&_ZN3F333fooEv,
+ (VTBL_ENTRY)&_ZN3F333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F333fooEv,_ZTv0_n12_N3F333fooEv)();
+extern void ABISELECT(_ZThn16_N3F333fooEv,_ZThn8_N3F333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N3F333barEv,_ZTv0_n16_N3F333barEv)();
+extern void ABISELECT(_ZThn16_N3F333barEv,_ZThn8_N3F333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__3F33__6G23333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F33[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F333fooEv,_ZTv0_n12_N3F333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3F333barEv,_ZTv0_n16_N3F333barEv),
+};
+static VTT_ENTRY vtt_G23333[] = {
+ {&(_ZTV6G23333[6]), 6,32},
+ {&(_ZTV6G23333[13]), 13,32},
+ {&(_ZTV6G23333[18]), 18,32},
+ {&(_ZTV6G23333[24]), 24,32},
+ {&(_ZTV6G23333[30]), 30,32},
+ {&(_tg__ZTV3E23__6G23333[3]), 3,5},
+ {&(_tg__ZTV3AA2__3E23__6G23333[3]), 3,4},
+ {&(_tg__ZTV3F33__6G23333[3]), 3,5},
+ {&(_tg__ZTV3AA3__3F33__6G23333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6G23333[];
+extern VTBL_ENTRY _ZTV6G23333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G23333[];
+static VTBL_ENTRY alt_thunk_names146[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3F333barEv,_ZTv0_n16_N3F333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F333barEv,_ZThn8_N3F333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F333fooEv,_ZTv0_n12_N3F333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F333fooEv,_ZThn8_N3F333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E233barEv,_ZTv0_n12_N3E233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E233barEv,_ZThn8_N3E233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G233333barEv,_ZTv0_n16_N6G233333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G233333barEv,_ZThn32_N6G233333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G233333fooEv,_ZTv0_n12_N6G233333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G233333fooEv,_ZThn32_N6G233333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G233333barEv,_ZTv0_n12_N6G233333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G233333barEv,_ZThn16_N6G233333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6G233333barEv,_ZTv0_n20_N6G233333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G233333barEv,_ZThn24_N6G233333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G233333barEv,_ZThn8_N6G233333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G233333fooEv,_ZTv0_n16_N6G233333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G233333fooEv,_ZThn24_N6G233333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G233333fooEv,_ZThn8_N6G233333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G23333 = { "G23333", // class name
+ bases_G23333, 4,
+ &(vtc_G23333[0]), // expected_vtbl_contents
+ &(vtt_G23333[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G23333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G23333),32, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G23333),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names146,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G31111 : virtual E31 , virtual F11 {
+ int pg;
+ virtual void foo(); // _ZN6G311113fooEv
+ ~G31111(); // tgen
+ G31111(); // tgen
+};
+//SIG(1 G31111) C1{ VBC2{ VBC3{ v1 v2 Fi} v1 Fi} VBC4{ VBC5{ v1 Fi} v1 Fi} v1 Fi}
+
+
+void G31111 ::foo(){vfunc_called(this, "_ZN6G311113fooEv");}
+G31111 ::~G31111(){ note_dtor("G31111", this);} // tgen
+G31111 ::G31111(){ note_ctor("G31111", this);} // tgen
+
+static void Test_G31111()
+{
+ extern Class_Descriptor cd_G31111;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G31111, buf);
+ G31111 *dp, &lv = *(dp=new (buf) G31111());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G31111)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G31111)");
+ check_base_class_offset(lv, (AA3*)(E31*), ABISELECT(32,16), "G31111");
+ check_base_class_offset(lv, (E31*), ABISELECT(16,8), "G31111");
+ check_base_class_offset(lv, (AA1*)(F11*), ABISELECT(64,32), "G31111");
+ check_base_class_offset(lv, (F11*), ABISELECT(48,24), "G31111");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G31111.pg");
+ test_class_info(&lv, &cd_G31111);
+ dp->~G31111();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG31111(Test_G31111, "G31111", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G31111C1Ev();
+extern void _ZN6G31111D1Ev();
+Name_Map name_map_G31111[] = {
+ NSPAIR(_ZN6G31111C1Ev),
+ NSPAIR(_ZN6G31111D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_E31;
+extern VTBL_ENTRY _ZTI3E31[];
+extern VTBL_ENTRY _ZTV3E31[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E31[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_F11;
+extern VTBL_ENTRY _ZTI3F11[];
+extern VTBL_ENTRY _ZTV3F11[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F11[];
+static Base_Class bases_G31111[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E31, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F11, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G31111[];
+extern void _ZN6G311113fooEv();
+extern void ABISELECT(_ZTv0_n32_N6G311113fooEv,_ZTv0_n16_N6G311113fooEv)();
+extern void ABISELECT(_ZThn16_N6G311113fooEv,_ZThn8_N6G311113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G311113fooEv,_ZTv0_n12_N6G311113fooEv)();
+extern void ABISELECT(_ZThn32_N6G311113fooEv,_ZThn16_N6G311113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+extern void ABISELECT(_ZTv0_n32_N6G311113fooEv,_ZTv0_n16_N6G311113fooEv)();
+extern void ABISELECT(_ZThn48_N6G311113fooEv,_ZThn24_N6G311113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G311113fooEv,_ZTv0_n12_N6G311113fooEv)();
+extern void ABISELECT(_ZThn64_N6G311113fooEv,_ZThn32_N6G311113fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G31111[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G31111[0]),
+ (VTBL_ENTRY)&_ZN6G311113fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G31111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G311113fooEv,_ZTv0_n16_N6G311113fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G31111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G311113fooEv,_ZTv0_n12_N6G311113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G31111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G311113fooEv,_ZTv0_n16_N6G311113fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G31111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G311113fooEv,_ZTv0_n12_N6G311113fooEv),
+};
+extern VTBL_ENTRY _ZTV6G31111[];
+extern void _ZN3E313fooEv();
+static VTBL_ENTRY _tg__ZTV3E31__6G31111[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E31[0]),
+ (VTBL_ENTRY)&_ZN3E313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E313fooEv,_ZTv0_n12_N3E313fooEv)();
+extern void ABISELECT(_ZThn16_N3E313fooEv,_ZThn8_N3E313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__3E31__6G31111[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E31[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E313fooEv,_ZTv0_n12_N3E313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3F113fooEv();
+static VTBL_ENTRY _tg__ZTV3F11__6G31111[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F11[0]),
+ (VTBL_ENTRY)&_ZN3F113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv)();
+extern void ABISELECT(_ZThn16_N3F113fooEv,_ZThn8_N3F113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__3F11__6G31111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F11[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv),
+};
+static VTT_ENTRY vtt_G31111[] = {
+ {&(_ZTV6G31111[6]), 6,27},
+ {&(_ZTV6G31111[11]), 11,27},
+ {&(_ZTV6G31111[16]), 16,27},
+ {&(_ZTV6G31111[22]), 22,27},
+ {&(_ZTV6G31111[26]), 26,27},
+ {&(_tg__ZTV3E31__6G31111[3]), 3,4},
+ {&(_tg__ZTV3AA3__3E31__6G31111[4]), 4,6},
+ {&(_tg__ZTV3F11__6G31111[3]), 3,4},
+ {&(_tg__ZTV3AA1__3F11__6G31111[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G31111[];
+extern VTBL_ENTRY _ZTV6G31111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G31111[];
+static VTBL_ENTRY alt_thunk_names147[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F113fooEv,_ZThn8_N3F113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E313fooEv,_ZTv0_n12_N3E313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E313fooEv,_ZThn8_N3E313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G311113fooEv,_ZTv0_n12_N6G311113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G311113fooEv,_ZThn32_N6G311113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G311113fooEv,_ZThn16_N6G311113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G311113fooEv,_ZTv0_n16_N6G311113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G311113fooEv,_ZThn24_N6G311113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G311113fooEv,_ZThn8_N6G311113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G31111 = { "G31111", // class name
+ bases_G31111, 4,
+ &(vtc_G31111[0]), // expected_vtbl_contents
+ &(vtt_G31111[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G31111),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G31111),27, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G31111),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names147,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G31113 : virtual E31 , virtual F11 {
+ int pg;
+ virtual void foo(); // _ZN6G311133fooEv
+ virtual void bar(); // _ZN6G311133barEv
+ ~G31113(); // tgen
+ G31113(); // tgen
+};
+//SIG(1 G31113) C1{ VBC2{ VBC3{ v1 v2 Fi} v1 Fi} VBC4{ VBC5{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void G31113 ::foo(){vfunc_called(this, "_ZN6G311133fooEv");}
+void G31113 ::bar(){vfunc_called(this, "_ZN6G311133barEv");}
+G31113 ::~G31113(){ note_dtor("G31113", this);} // tgen
+G31113 ::G31113(){ note_ctor("G31113", this);} // tgen
+
+static void Test_G31113()
+{
+ extern Class_Descriptor cd_G31113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G31113, buf);
+ G31113 *dp, &lv = *(dp=new (buf) G31113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G31113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G31113)");
+ check_base_class_offset(lv, (AA3*)(E31*), ABISELECT(32,16), "G31113");
+ check_base_class_offset(lv, (E31*), ABISELECT(16,8), "G31113");
+ check_base_class_offset(lv, (AA1*)(F11*), ABISELECT(64,32), "G31113");
+ check_base_class_offset(lv, (F11*), ABISELECT(48,24), "G31113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G31113.pg");
+ test_class_info(&lv, &cd_G31113);
+ dp->~G31113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG31113(Test_G31113, "G31113", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G31113C1Ev();
+extern void _ZN6G31113D1Ev();
+Name_Map name_map_G31113[] = {
+ NSPAIR(_ZN6G31113C1Ev),
+ NSPAIR(_ZN6G31113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_E31;
+extern VTBL_ENTRY _ZTI3E31[];
+extern VTBL_ENTRY _ZTV3E31[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E31[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_F11;
+extern VTBL_ENTRY _ZTI3F11[];
+extern VTBL_ENTRY _ZTV3F11[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F11[];
+static Base_Class bases_G31113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E31, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F11, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G31113[];
+extern void _ZN6G311133fooEv();
+extern void _ZN6G311133barEv();
+extern void ABISELECT(_ZTv0_n32_N6G311133fooEv,_ZTv0_n16_N6G311133fooEv)();
+extern void ABISELECT(_ZThn16_N6G311133fooEv,_ZThn8_N6G311133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G311133fooEv,_ZTv0_n12_N6G311133fooEv)();
+extern void ABISELECT(_ZThn32_N6G311133fooEv,_ZThn16_N6G311133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G311133barEv,_ZTv0_n16_N6G311133barEv)();
+extern void ABISELECT(_ZThn32_N6G311133barEv,_ZThn16_N6G311133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G311133fooEv,_ZTv0_n16_N6G311133fooEv)();
+extern void ABISELECT(_ZThn48_N6G311133fooEv,_ZThn24_N6G311133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G311133fooEv,_ZTv0_n12_N6G311133fooEv)();
+extern void ABISELECT(_ZThn64_N6G311133fooEv,_ZThn32_N6G311133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G31113[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G31113[0]),
+ (VTBL_ENTRY)&_ZN6G311133fooEv,
+ (VTBL_ENTRY)&_ZN6G311133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G31113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G311133fooEv,_ZTv0_n16_N6G311133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G31113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G311133fooEv,_ZTv0_n12_N6G311133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G311133barEv,_ZTv0_n16_N6G311133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G31113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G311133fooEv,_ZTv0_n16_N6G311133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G31113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G311133fooEv,_ZTv0_n12_N6G311133fooEv),
+};
+extern VTBL_ENTRY _ZTV6G31113[];
+extern void _ZN3E313fooEv();
+static VTBL_ENTRY _tg__ZTV3E31__6G31113[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E31[0]),
+ (VTBL_ENTRY)&_ZN3E313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E313fooEv,_ZTv0_n12_N3E313fooEv)();
+extern void ABISELECT(_ZThn16_N3E313fooEv,_ZThn8_N3E313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__3E31__6G31113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E31[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E313fooEv,_ZTv0_n12_N3E313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3F113fooEv();
+static VTBL_ENTRY _tg__ZTV3F11__6G31113[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F11[0]),
+ (VTBL_ENTRY)&_ZN3F113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv)();
+extern void ABISELECT(_ZThn16_N3F113fooEv,_ZThn8_N3F113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__3F11__6G31113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F11[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv),
+};
+static VTT_ENTRY vtt_G31113[] = {
+ {&(_ZTV6G31113[6]), 6,28},
+ {&(_ZTV6G31113[12]), 12,28},
+ {&(_ZTV6G31113[17]), 17,28},
+ {&(_ZTV6G31113[23]), 23,28},
+ {&(_ZTV6G31113[27]), 27,28},
+ {&(_tg__ZTV3E31__6G31113[3]), 3,4},
+ {&(_tg__ZTV3AA3__3E31__6G31113[4]), 4,6},
+ {&(_tg__ZTV3F11__6G31113[3]), 3,4},
+ {&(_tg__ZTV3AA1__3F11__6G31113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G31113[];
+extern VTBL_ENTRY _ZTV6G31113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G31113[];
+static VTBL_ENTRY alt_thunk_names148[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F113fooEv,_ZThn8_N3F113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E313fooEv,_ZTv0_n12_N3E313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E313fooEv,_ZThn8_N3E313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G311133barEv,_ZTv0_n16_N6G311133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G311133barEv,_ZThn16_N6G311133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G311133fooEv,_ZTv0_n12_N6G311133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G311133fooEv,_ZThn32_N6G311133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G311133fooEv,_ZThn16_N6G311133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G311133fooEv,_ZTv0_n16_N6G311133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G311133fooEv,_ZThn24_N6G311133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G311133fooEv,_ZThn8_N6G311133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G31113 = { "G31113", // class name
+ bases_G31113, 4,
+ &(vtc_G31113[0]), // expected_vtbl_contents
+ &(vtt_G31113[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G31113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G31113),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G31113),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names148,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G31123 : virtual E31 , virtual F12 {
+ int pg;
+ virtual void foo(); // _ZN6G311233fooEv
+ virtual void bar(); // _ZN6G311233barEv
+ ~G31123(); // tgen
+ G31123(); // tgen
+};
+//SIG(1 G31123) C1{ VBC2{ VBC3{ v1 v2 Fi} v1 Fi} VBC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void G31123 ::foo(){vfunc_called(this, "_ZN6G311233fooEv");}
+void G31123 ::bar(){vfunc_called(this, "_ZN6G311233barEv");}
+G31123 ::~G31123(){ note_dtor("G31123", this);} // tgen
+G31123 ::G31123(){ note_ctor("G31123", this);} // tgen
+
+static void Test_G31123()
+{
+ extern Class_Descriptor cd_G31123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G31123, buf);
+ G31123 *dp, &lv = *(dp=new (buf) G31123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G31123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G31123)");
+ check_base_class_offset(lv, (AA3*)(E31*), ABISELECT(32,16), "G31123");
+ check_base_class_offset(lv, (E31*), ABISELECT(16,8), "G31123");
+ check_base_class_offset(lv, (AA1*)(F12*), ABISELECT(64,32), "G31123");
+ check_base_class_offset(lv, (F12*), ABISELECT(48,24), "G31123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G31123.pg");
+ test_class_info(&lv, &cd_G31123);
+ dp->~G31123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG31123(Test_G31123, "G31123", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G31123C1Ev();
+extern void _ZN6G31123D1Ev();
+Name_Map name_map_G31123[] = {
+ NSPAIR(_ZN6G31123C1Ev),
+ NSPAIR(_ZN6G31123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_E31;
+extern VTBL_ENTRY _ZTI3E31[];
+extern VTBL_ENTRY _ZTV3E31[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E31[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_F12;
+extern VTBL_ENTRY _ZTI3F12[];
+extern VTBL_ENTRY _ZTV3F12[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F12[];
+static Base_Class bases_G31123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E31, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F12, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G31123[];
+extern void _ZN6G311233fooEv();
+extern void _ZN6G311233barEv();
+extern void ABISELECT(_ZTv0_n32_N6G311233fooEv,_ZTv0_n16_N6G311233fooEv)();
+extern void ABISELECT(_ZThn16_N6G311233fooEv,_ZThn8_N6G311233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G311233fooEv,_ZTv0_n12_N6G311233fooEv)();
+extern void ABISELECT(_ZThn32_N6G311233fooEv,_ZThn16_N6G311233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G311233barEv,_ZTv0_n16_N6G311233barEv)();
+extern void ABISELECT(_ZThn32_N6G311233barEv,_ZThn16_N6G311233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G311233barEv,_ZTv0_n16_N6G311233barEv)();
+extern void ABISELECT(_ZThn48_N6G311233barEv,_ZThn24_N6G311233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G311233fooEv,_ZTv0_n12_N6G311233fooEv)();
+extern void ABISELECT(_ZThn64_N6G311233fooEv,_ZThn32_N6G311233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G31123[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G31123[0]),
+ (VTBL_ENTRY)&_ZN6G311233fooEv,
+ (VTBL_ENTRY)&_ZN6G311233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G31123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G311233fooEv,_ZTv0_n16_N6G311233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G31123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G311233fooEv,_ZTv0_n12_N6G311233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G311233barEv,_ZTv0_n16_N6G311233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G31123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G311233barEv,_ZTv0_n16_N6G311233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G31123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G311233fooEv,_ZTv0_n12_N6G311233fooEv),
+};
+extern VTBL_ENTRY _ZTV6G31123[];
+extern void _ZN3E313fooEv();
+static VTBL_ENTRY _tg__ZTV3E31__6G31123[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E31[0]),
+ (VTBL_ENTRY)&_ZN3E313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E313fooEv,_ZTv0_n12_N3E313fooEv)();
+extern void ABISELECT(_ZThn16_N3E313fooEv,_ZThn8_N3E313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__3E31__6G31123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E31[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E313fooEv,_ZTv0_n12_N3E313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3F123barEv();
+static VTBL_ENTRY _tg__ZTV3F12__6G31123[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F12[0]),
+ (VTBL_ENTRY)&_ZN3F123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__3F12__6G31123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F12[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+static VTT_ENTRY vtt_G31123[] = {
+ {&(_ZTV6G31123[6]), 6,28},
+ {&(_ZTV6G31123[12]), 12,28},
+ {&(_ZTV6G31123[17]), 17,28},
+ {&(_ZTV6G31123[23]), 23,28},
+ {&(_ZTV6G31123[27]), 27,28},
+ {&(_tg__ZTV3E31__6G31123[3]), 3,4},
+ {&(_tg__ZTV3AA3__3E31__6G31123[4]), 4,6},
+ {&(_tg__ZTV3F12__6G31123[3]), 3,4},
+ {&(_tg__ZTV3AA1__3F12__6G31123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G31123[];
+extern VTBL_ENTRY _ZTV6G31123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G31123[];
+static VTBL_ENTRY alt_thunk_names149[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E313fooEv,_ZTv0_n12_N3E313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E313fooEv,_ZThn8_N3E313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G311233barEv,_ZTv0_n16_N6G311233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G311233barEv,_ZThn24_N6G311233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G311233barEv,_ZThn16_N6G311233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G311233fooEv,_ZTv0_n12_N6G311233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G311233fooEv,_ZThn32_N6G311233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G311233fooEv,_ZThn16_N6G311233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G311233fooEv,_ZTv0_n16_N6G311233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G311233fooEv,_ZThn8_N6G311233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G31123 = { "G31123", // class name
+ bases_G31123, 4,
+ &(vtc_G31123[0]), // expected_vtbl_contents
+ &(vtt_G31123[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G31123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G31123),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G31123),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names149,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G31133 : virtual E31 , virtual F13 {
+ int pg;
+ virtual void foo(); // _ZN6G311333fooEv
+ virtual void bar(); // _ZN6G311333barEv
+ ~G31133(); // tgen
+ G31133(); // tgen
+};
+//SIG(1 G31133) C1{ VBC2{ VBC3{ v1 v2 Fi} v1 Fi} VBC4{ VBC5{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void G31133 ::foo(){vfunc_called(this, "_ZN6G311333fooEv");}
+void G31133 ::bar(){vfunc_called(this, "_ZN6G311333barEv");}
+G31133 ::~G31133(){ note_dtor("G31133", this);} // tgen
+G31133 ::G31133(){ note_ctor("G31133", this);} // tgen
+
+static void Test_G31133()
+{
+ extern Class_Descriptor cd_G31133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G31133, buf);
+ G31133 *dp, &lv = *(dp=new (buf) G31133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G31133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G31133)");
+ check_base_class_offset(lv, (AA3*)(E31*), ABISELECT(32,16), "G31133");
+ check_base_class_offset(lv, (E31*), ABISELECT(16,8), "G31133");
+ check_base_class_offset(lv, (AA1*)(F13*), ABISELECT(64,32), "G31133");
+ check_base_class_offset(lv, (F13*), ABISELECT(48,24), "G31133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G31133.pg");
+ test_class_info(&lv, &cd_G31133);
+ dp->~G31133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG31133(Test_G31133, "G31133", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G31133C1Ev();
+extern void _ZN6G31133D1Ev();
+Name_Map name_map_G31133[] = {
+ NSPAIR(_ZN6G31133C1Ev),
+ NSPAIR(_ZN6G31133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_E31;
+extern VTBL_ENTRY _ZTI3E31[];
+extern VTBL_ENTRY _ZTV3E31[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E31[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_F13;
+extern VTBL_ENTRY _ZTI3F13[];
+extern VTBL_ENTRY _ZTV3F13[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F13[];
+static Base_Class bases_G31133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E31, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F13, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G31133[];
+extern void _ZN6G311333fooEv();
+extern void _ZN6G311333barEv();
+extern void ABISELECT(_ZTv0_n32_N6G311333fooEv,_ZTv0_n16_N6G311333fooEv)();
+extern void ABISELECT(_ZThn16_N6G311333fooEv,_ZThn8_N6G311333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G311333fooEv,_ZTv0_n12_N6G311333fooEv)();
+extern void ABISELECT(_ZThn32_N6G311333fooEv,_ZThn16_N6G311333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G311333barEv,_ZTv0_n16_N6G311333barEv)();
+extern void ABISELECT(_ZThn32_N6G311333barEv,_ZThn16_N6G311333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G311333fooEv,_ZTv0_n16_N6G311333fooEv)();
+extern void ABISELECT(_ZThn48_N6G311333fooEv,_ZThn24_N6G311333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G311333barEv,_ZTv0_n20_N6G311333barEv)();
+extern void ABISELECT(_ZThn48_N6G311333barEv,_ZThn24_N6G311333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G311333fooEv,_ZTv0_n12_N6G311333fooEv)();
+extern void ABISELECT(_ZThn64_N6G311333fooEv,_ZThn32_N6G311333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G31133[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G31133[0]),
+ (VTBL_ENTRY)&_ZN6G311333fooEv,
+ (VTBL_ENTRY)&_ZN6G311333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G31133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G311333fooEv,_ZTv0_n16_N6G311333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G31133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G311333fooEv,_ZTv0_n12_N6G311333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G311333barEv,_ZTv0_n16_N6G311333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G31133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G311333fooEv,_ZTv0_n16_N6G311333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G311333barEv,_ZTv0_n20_N6G311333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G31133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G311333fooEv,_ZTv0_n12_N6G311333fooEv),
+};
+extern VTBL_ENTRY _ZTV6G31133[];
+extern void _ZN3E313fooEv();
+static VTBL_ENTRY _tg__ZTV3E31__6G31133[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E31[0]),
+ (VTBL_ENTRY)&_ZN3E313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E313fooEv,_ZTv0_n12_N3E313fooEv)();
+extern void ABISELECT(_ZThn16_N3E313fooEv,_ZThn8_N3E313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__3E31__6G31133[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E31[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E313fooEv,_ZTv0_n12_N3E313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3F133fooEv();
+extern void _ZN3F133barEv();
+static VTBL_ENTRY _tg__ZTV3F13__6G31133[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F13[0]),
+ (VTBL_ENTRY)&_ZN3F133fooEv,
+ (VTBL_ENTRY)&_ZN3F133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F133fooEv,_ZTv0_n12_N3F133fooEv)();
+extern void ABISELECT(_ZThn16_N3F133fooEv,_ZThn8_N3F133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__3F13__6G31133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F13[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F133fooEv,_ZTv0_n12_N3F133fooEv),
+};
+static VTT_ENTRY vtt_G31133[] = {
+ {&(_ZTV6G31133[6]), 6,30},
+ {&(_ZTV6G31133[12]), 12,30},
+ {&(_ZTV6G31133[17]), 17,30},
+ {&(_ZTV6G31133[24]), 24,30},
+ {&(_ZTV6G31133[29]), 29,30},
+ {&(_tg__ZTV3E31__6G31133[3]), 3,4},
+ {&(_tg__ZTV3AA3__3E31__6G31133[4]), 4,6},
+ {&(_tg__ZTV3F13__6G31133[3]), 3,5},
+ {&(_tg__ZTV3AA1__3F13__6G31133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G31133[];
+extern VTBL_ENTRY _ZTV6G31133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G31133[];
+static VTBL_ENTRY alt_thunk_names150[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F133fooEv,_ZTv0_n12_N3F133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F133fooEv,_ZThn8_N3F133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E313fooEv,_ZTv0_n12_N3E313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E313fooEv,_ZThn8_N3E313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6G311333barEv,_ZTv0_n20_N6G311333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G311333barEv,_ZThn24_N6G311333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G311333barEv,_ZTv0_n16_N6G311333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G311333barEv,_ZThn16_N6G311333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G311333fooEv,_ZTv0_n12_N6G311333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G311333fooEv,_ZThn32_N6G311333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G311333fooEv,_ZThn16_N6G311333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G311333fooEv,_ZTv0_n16_N6G311333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G311333fooEv,_ZThn24_N6G311333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G311333fooEv,_ZThn8_N6G311333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G31133 = { "G31133", // class name
+ bases_G31133, 4,
+ &(vtc_G31133[0]), // expected_vtbl_contents
+ &(vtt_G31133[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G31133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G31133),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G31133),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names150,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G31213 : virtual E31 , virtual F21 {
+ int pg;
+ virtual void foo(); // _ZN6G312133fooEv
+ virtual void bar(); // _ZN6G312133barEv
+ ~G31213(); // tgen
+ G31213(); // tgen
+};
+//SIG(1 G31213) C1{ VBC2{ VBC3{ v1 v2 Fi} v1 Fi} VBC4{ VBC5{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void G31213 ::foo(){vfunc_called(this, "_ZN6G312133fooEv");}
+void G31213 ::bar(){vfunc_called(this, "_ZN6G312133barEv");}
+G31213 ::~G31213(){ note_dtor("G31213", this);} // tgen
+G31213 ::G31213(){ note_ctor("G31213", this);} // tgen
+
+static void Test_G31213()
+{
+ extern Class_Descriptor cd_G31213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G31213, buf);
+ G31213 *dp, &lv = *(dp=new (buf) G31213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G31213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G31213)");
+ check_base_class_offset(lv, (AA3*)(E31*), ABISELECT(32,16), "G31213");
+ check_base_class_offset(lv, (E31*), ABISELECT(16,8), "G31213");
+ check_base_class_offset(lv, (AA2*)(F21*), ABISELECT(64,32), "G31213");
+ check_base_class_offset(lv, (F21*), ABISELECT(48,24), "G31213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G31213.pg");
+ test_class_info(&lv, &cd_G31213);
+ dp->~G31213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG31213(Test_G31213, "G31213", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G31213C1Ev();
+extern void _ZN6G31213D1Ev();
+Name_Map name_map_G31213[] = {
+ NSPAIR(_ZN6G31213C1Ev),
+ NSPAIR(_ZN6G31213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_E31;
+extern VTBL_ENTRY _ZTI3E31[];
+extern VTBL_ENTRY _ZTV3E31[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E31[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_F21;
+extern VTBL_ENTRY _ZTI3F21[];
+extern VTBL_ENTRY _ZTV3F21[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F21[];
+static Base_Class bases_G31213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E31, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F21, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G31213[];
+extern void _ZN6G312133fooEv();
+extern void _ZN6G312133barEv();
+extern void ABISELECT(_ZTv0_n32_N6G312133fooEv,_ZTv0_n16_N6G312133fooEv)();
+extern void ABISELECT(_ZThn16_N6G312133fooEv,_ZThn8_N6G312133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G312133fooEv,_ZTv0_n12_N6G312133fooEv)();
+extern void ABISELECT(_ZThn32_N6G312133fooEv,_ZThn16_N6G312133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G312133barEv,_ZTv0_n16_N6G312133barEv)();
+extern void ABISELECT(_ZThn32_N6G312133barEv,_ZThn16_N6G312133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G312133fooEv,_ZTv0_n16_N6G312133fooEv)();
+extern void ABISELECT(_ZThn48_N6G312133fooEv,_ZThn24_N6G312133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G312133barEv,_ZTv0_n12_N6G312133barEv)();
+extern void ABISELECT(_ZThn64_N6G312133barEv,_ZThn32_N6G312133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G31213[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G31213[0]),
+ (VTBL_ENTRY)&_ZN6G312133fooEv,
+ (VTBL_ENTRY)&_ZN6G312133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G31213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G312133fooEv,_ZTv0_n16_N6G312133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G31213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G312133fooEv,_ZTv0_n12_N6G312133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G312133barEv,_ZTv0_n16_N6G312133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G31213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G312133fooEv,_ZTv0_n16_N6G312133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G31213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G312133barEv,_ZTv0_n12_N6G312133barEv),
+};
+extern VTBL_ENTRY _ZTV6G31213[];
+extern void _ZN3E313fooEv();
+static VTBL_ENTRY _tg__ZTV3E31__6G31213[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E31[0]),
+ (VTBL_ENTRY)&_ZN3E313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E313fooEv,_ZTv0_n12_N3E313fooEv)();
+extern void ABISELECT(_ZThn16_N3E313fooEv,_ZThn8_N3E313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__3E31__6G31213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E31[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E313fooEv,_ZTv0_n12_N3E313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3F213fooEv();
+static VTBL_ENTRY _tg__ZTV3F21__6G31213[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F21[0]),
+ (VTBL_ENTRY)&_ZN3F213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__3F21__6G31213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F21[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+static VTT_ENTRY vtt_G31213[] = {
+ {&(_ZTV6G31213[6]), 6,28},
+ {&(_ZTV6G31213[12]), 12,28},
+ {&(_ZTV6G31213[17]), 17,28},
+ {&(_ZTV6G31213[23]), 23,28},
+ {&(_ZTV6G31213[27]), 27,28},
+ {&(_tg__ZTV3E31__6G31213[3]), 3,4},
+ {&(_tg__ZTV3AA3__3E31__6G31213[4]), 4,6},
+ {&(_tg__ZTV3F21__6G31213[3]), 3,4},
+ {&(_tg__ZTV3AA2__3F21__6G31213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G31213[];
+extern VTBL_ENTRY _ZTV6G31213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G31213[];
+static VTBL_ENTRY alt_thunk_names151[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E313fooEv,_ZTv0_n12_N3E313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E313fooEv,_ZThn8_N3E313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G312133barEv,_ZTv0_n12_N6G312133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G312133barEv,_ZThn32_N6G312133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G312133barEv,_ZTv0_n16_N6G312133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G312133barEv,_ZThn16_N6G312133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G312133fooEv,_ZTv0_n12_N6G312133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G312133fooEv,_ZThn16_N6G312133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G312133fooEv,_ZTv0_n16_N6G312133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G312133fooEv,_ZThn24_N6G312133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G312133fooEv,_ZThn8_N6G312133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G31213 = { "G31213", // class name
+ bases_G31213, 4,
+ &(vtc_G31213[0]), // expected_vtbl_contents
+ &(vtt_G31213[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G31213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G31213),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G31213),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names151,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G31222 : virtual E31 , virtual F22 {
+ int pg;
+ virtual void bar(); // _ZN6G312223barEv
+ ~G31222(); // tgen
+ G31222(); // tgen
+};
+//SIG(1 G31222) C1{ VBC2{ VBC3{ v2 v1 Fi} v2 Fi} VBC4{ VBC5{ v1 Fi} v1 Fi} v1 Fi}
+
+
+void G31222 ::bar(){vfunc_called(this, "_ZN6G312223barEv");}
+G31222 ::~G31222(){ note_dtor("G31222", this);} // tgen
+G31222 ::G31222(){ note_ctor("G31222", this);} // tgen
+
+static void Test_G31222()
+{
+ extern Class_Descriptor cd_G31222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G31222, buf);
+ G31222 *dp, &lv = *(dp=new (buf) G31222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G31222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G31222)");
+ check_base_class_offset(lv, (AA3*)(E31*), ABISELECT(32,16), "G31222");
+ check_base_class_offset(lv, (E31*), ABISELECT(16,8), "G31222");
+ check_base_class_offset(lv, (AA2*)(F22*), ABISELECT(64,32), "G31222");
+ check_base_class_offset(lv, (F22*), ABISELECT(48,24), "G31222");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G31222.pg");
+ test_class_info(&lv, &cd_G31222);
+ dp->~G31222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG31222(Test_G31222, "G31222", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G31222C1Ev();
+extern void _ZN6G31222D1Ev();
+Name_Map name_map_G31222[] = {
+ NSPAIR(_ZN6G31222C1Ev),
+ NSPAIR(_ZN6G31222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_E31;
+extern VTBL_ENTRY _ZTI3E31[];
+extern VTBL_ENTRY _ZTV3E31[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E31[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_F22;
+extern VTBL_ENTRY _ZTI3F22[];
+extern VTBL_ENTRY _ZTV3F22[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F22[];
+static Base_Class bases_G31222[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E31, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F22, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G31222[];
+extern void _ZN6G312223barEv();
+extern void _ZN3E313fooEv();
+extern void ABISELECT(_ZTv0_n24_N3E313fooEv,_ZTv0_n12_N3E313fooEv)();
+extern void ABISELECT(_ZThn16_N3E313fooEv,_ZThn8_N3E313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G312223barEv,_ZTv0_n16_N6G312223barEv)();
+extern void ABISELECT(_ZThn32_N6G312223barEv,_ZThn16_N6G312223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G312223barEv,_ZTv0_n16_N6G312223barEv)();
+extern void ABISELECT(_ZThn48_N6G312223barEv,_ZThn24_N6G312223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G312223barEv,_ZTv0_n12_N6G312223barEv)();
+extern void ABISELECT(_ZThn64_N6G312223barEv,_ZThn32_N6G312223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G31222[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G31222[0]),
+ (VTBL_ENTRY)&_ZN6G312223barEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G31222[0]),
+ (VTBL_ENTRY)&_ZN3E313fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G31222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E313fooEv,_ZTv0_n12_N3E313fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G312223barEv,_ZTv0_n16_N6G312223barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G31222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G312223barEv,_ZTv0_n16_N6G312223barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G31222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G312223barEv,_ZTv0_n12_N6G312223barEv),
+};
+extern VTBL_ENTRY _ZTV6G31222[];
+extern void _ZN3E313fooEv();
+static VTBL_ENTRY _tg__ZTV3E31__6G31222[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E31[0]),
+ (VTBL_ENTRY)&_ZN3E313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E313fooEv,_ZTv0_n12_N3E313fooEv)();
+extern void ABISELECT(_ZThn16_N3E313fooEv,_ZThn8_N3E313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__3E31__6G31222[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E31[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E313fooEv,_ZTv0_n12_N3E313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3F223barEv();
+static VTBL_ENTRY _tg__ZTV3F22__6G31222[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F22[0]),
+ (VTBL_ENTRY)&_ZN3F223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv)();
+extern void ABISELECT(_ZThn16_N3F223barEv,_ZThn8_N3F223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__3F22__6G31222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F22[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv),
+};
+static VTT_ENTRY vtt_G31222[] = {
+ {&(_ZTV6G31222[6]), 6,27},
+ {&(_ZTV6G31222[11]), 11,27},
+ {&(_ZTV6G31222[16]), 16,27},
+ {&(_ZTV6G31222[22]), 22,27},
+ {&(_ZTV6G31222[26]), 26,27},
+ {&(_tg__ZTV3E31__6G31222[3]), 3,4},
+ {&(_tg__ZTV3AA3__3E31__6G31222[4]), 4,6},
+ {&(_tg__ZTV3F22__6G31222[3]), 3,4},
+ {&(_tg__ZTV3AA2__3F22__6G31222[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G31222[];
+extern VTBL_ENTRY _ZTV6G31222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G31222[];
+static VTBL_ENTRY alt_thunk_names152[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F223barEv,_ZThn8_N3F223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G312223barEv,_ZTv0_n12_N6G312223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G312223barEv,_ZThn32_N6G312223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G312223barEv,_ZTv0_n16_N6G312223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G312223barEv,_ZThn24_N6G312223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G312223barEv,_ZThn16_N6G312223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E313fooEv,_ZTv0_n12_N3E313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E313fooEv,_ZThn8_N3E313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E313fooEv,_ZThn8_N3E313fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G31222 = { "G31222", // class name
+ bases_G31222, 4,
+ &(vtc_G31222[0]), // expected_vtbl_contents
+ &(vtt_G31222[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G31222),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G31222),27, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G31222),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names152,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G31223 : virtual E31 , virtual F22 {
+ int pg;
+ virtual void foo(); // _ZN6G312233fooEv
+ virtual void bar(); // _ZN6G312233barEv
+ ~G31223(); // tgen
+ G31223(); // tgen
+};
+//SIG(1 G31223) C1{ VBC2{ VBC3{ v1 v2 Fi} v1 Fi} VBC4{ VBC5{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void G31223 ::foo(){vfunc_called(this, "_ZN6G312233fooEv");}
+void G31223 ::bar(){vfunc_called(this, "_ZN6G312233barEv");}
+G31223 ::~G31223(){ note_dtor("G31223", this);} // tgen
+G31223 ::G31223(){ note_ctor("G31223", this);} // tgen
+
+static void Test_G31223()
+{
+ extern Class_Descriptor cd_G31223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G31223, buf);
+ G31223 *dp, &lv = *(dp=new (buf) G31223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G31223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G31223)");
+ check_base_class_offset(lv, (AA3*)(E31*), ABISELECT(32,16), "G31223");
+ check_base_class_offset(lv, (E31*), ABISELECT(16,8), "G31223");
+ check_base_class_offset(lv, (AA2*)(F22*), ABISELECT(64,32), "G31223");
+ check_base_class_offset(lv, (F22*), ABISELECT(48,24), "G31223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G31223.pg");
+ test_class_info(&lv, &cd_G31223);
+ dp->~G31223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG31223(Test_G31223, "G31223", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G31223C1Ev();
+extern void _ZN6G31223D1Ev();
+Name_Map name_map_G31223[] = {
+ NSPAIR(_ZN6G31223C1Ev),
+ NSPAIR(_ZN6G31223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_E31;
+extern VTBL_ENTRY _ZTI3E31[];
+extern VTBL_ENTRY _ZTV3E31[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E31[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_F22;
+extern VTBL_ENTRY _ZTI3F22[];
+extern VTBL_ENTRY _ZTV3F22[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F22[];
+static Base_Class bases_G31223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E31, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F22, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G31223[];
+extern void _ZN6G312233fooEv();
+extern void _ZN6G312233barEv();
+extern void ABISELECT(_ZTv0_n32_N6G312233fooEv,_ZTv0_n16_N6G312233fooEv)();
+extern void ABISELECT(_ZThn16_N6G312233fooEv,_ZThn8_N6G312233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G312233fooEv,_ZTv0_n12_N6G312233fooEv)();
+extern void ABISELECT(_ZThn32_N6G312233fooEv,_ZThn16_N6G312233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G312233barEv,_ZTv0_n16_N6G312233barEv)();
+extern void ABISELECT(_ZThn32_N6G312233barEv,_ZThn16_N6G312233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G312233barEv,_ZTv0_n16_N6G312233barEv)();
+extern void ABISELECT(_ZThn48_N6G312233barEv,_ZThn24_N6G312233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G312233barEv,_ZTv0_n12_N6G312233barEv)();
+extern void ABISELECT(_ZThn64_N6G312233barEv,_ZThn32_N6G312233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G31223[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G31223[0]),
+ (VTBL_ENTRY)&_ZN6G312233fooEv,
+ (VTBL_ENTRY)&_ZN6G312233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G31223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G312233fooEv,_ZTv0_n16_N6G312233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G31223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G312233fooEv,_ZTv0_n12_N6G312233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G312233barEv,_ZTv0_n16_N6G312233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G31223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G312233barEv,_ZTv0_n16_N6G312233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G31223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G312233barEv,_ZTv0_n12_N6G312233barEv),
+};
+extern VTBL_ENTRY _ZTV6G31223[];
+extern void _ZN3E313fooEv();
+static VTBL_ENTRY _tg__ZTV3E31__6G31223[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E31[0]),
+ (VTBL_ENTRY)&_ZN3E313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E313fooEv,_ZTv0_n12_N3E313fooEv)();
+extern void ABISELECT(_ZThn16_N3E313fooEv,_ZThn8_N3E313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__3E31__6G31223[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E31[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E313fooEv,_ZTv0_n12_N3E313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3F223barEv();
+static VTBL_ENTRY _tg__ZTV3F22__6G31223[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F22[0]),
+ (VTBL_ENTRY)&_ZN3F223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv)();
+extern void ABISELECT(_ZThn16_N3F223barEv,_ZThn8_N3F223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__3F22__6G31223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F22[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv),
+};
+static VTT_ENTRY vtt_G31223[] = {
+ {&(_ZTV6G31223[6]), 6,28},
+ {&(_ZTV6G31223[12]), 12,28},
+ {&(_ZTV6G31223[17]), 17,28},
+ {&(_ZTV6G31223[23]), 23,28},
+ {&(_ZTV6G31223[27]), 27,28},
+ {&(_tg__ZTV3E31__6G31223[3]), 3,4},
+ {&(_tg__ZTV3AA3__3E31__6G31223[4]), 4,6},
+ {&(_tg__ZTV3F22__6G31223[3]), 3,4},
+ {&(_tg__ZTV3AA2__3F22__6G31223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G31223[];
+extern VTBL_ENTRY _ZTV6G31223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G31223[];
+static VTBL_ENTRY alt_thunk_names153[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F223barEv,_ZThn8_N3F223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E313fooEv,_ZTv0_n12_N3E313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E313fooEv,_ZThn8_N3E313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G312233barEv,_ZTv0_n12_N6G312233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G312233barEv,_ZThn32_N6G312233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G312233barEv,_ZTv0_n16_N6G312233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G312233barEv,_ZThn24_N6G312233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G312233barEv,_ZThn16_N6G312233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G312233fooEv,_ZTv0_n12_N6G312233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G312233fooEv,_ZThn16_N6G312233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G312233fooEv,_ZTv0_n16_N6G312233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G312233fooEv,_ZThn8_N6G312233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G31223 = { "G31223", // class name
+ bases_G31223, 4,
+ &(vtc_G31223[0]), // expected_vtbl_contents
+ &(vtt_G31223[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G31223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G31223),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G31223),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names153,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G31233 : virtual E31 , virtual F23 {
+ int pg;
+ virtual void foo(); // _ZN6G312333fooEv
+ virtual void bar(); // _ZN6G312333barEv
+ ~G31233(); // tgen
+ G31233(); // tgen
+};
+//SIG(1 G31233) C1{ VBC2{ VBC3{ v1 v2 Fi} v1 Fi} VBC4{ VBC5{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void G31233 ::foo(){vfunc_called(this, "_ZN6G312333fooEv");}
+void G31233 ::bar(){vfunc_called(this, "_ZN6G312333barEv");}
+G31233 ::~G31233(){ note_dtor("G31233", this);} // tgen
+G31233 ::G31233(){ note_ctor("G31233", this);} // tgen
+
+static void Test_G31233()
+{
+ extern Class_Descriptor cd_G31233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G31233, buf);
+ G31233 *dp, &lv = *(dp=new (buf) G31233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G31233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G31233)");
+ check_base_class_offset(lv, (AA3*)(E31*), ABISELECT(32,16), "G31233");
+ check_base_class_offset(lv, (E31*), ABISELECT(16,8), "G31233");
+ check_base_class_offset(lv, (AA2*)(F23*), ABISELECT(64,32), "G31233");
+ check_base_class_offset(lv, (F23*), ABISELECT(48,24), "G31233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G31233.pg");
+ test_class_info(&lv, &cd_G31233);
+ dp->~G31233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG31233(Test_G31233, "G31233", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G31233C1Ev();
+extern void _ZN6G31233D1Ev();
+Name_Map name_map_G31233[] = {
+ NSPAIR(_ZN6G31233C1Ev),
+ NSPAIR(_ZN6G31233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_E31;
+extern VTBL_ENTRY _ZTI3E31[];
+extern VTBL_ENTRY _ZTV3E31[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E31[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_F23;
+extern VTBL_ENTRY _ZTI3F23[];
+extern VTBL_ENTRY _ZTV3F23[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F23[];
+static Base_Class bases_G31233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E31, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F23, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G31233[];
+extern void _ZN6G312333fooEv();
+extern void _ZN6G312333barEv();
+extern void ABISELECT(_ZTv0_n32_N6G312333fooEv,_ZTv0_n16_N6G312333fooEv)();
+extern void ABISELECT(_ZThn16_N6G312333fooEv,_ZThn8_N6G312333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G312333fooEv,_ZTv0_n12_N6G312333fooEv)();
+extern void ABISELECT(_ZThn32_N6G312333fooEv,_ZThn16_N6G312333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G312333barEv,_ZTv0_n16_N6G312333barEv)();
+extern void ABISELECT(_ZThn32_N6G312333barEv,_ZThn16_N6G312333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G312333fooEv,_ZTv0_n16_N6G312333fooEv)();
+extern void ABISELECT(_ZThn48_N6G312333fooEv,_ZThn24_N6G312333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G312333barEv,_ZTv0_n20_N6G312333barEv)();
+extern void ABISELECT(_ZThn48_N6G312333barEv,_ZThn24_N6G312333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G312333barEv,_ZTv0_n12_N6G312333barEv)();
+extern void ABISELECT(_ZThn64_N6G312333barEv,_ZThn32_N6G312333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G31233[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G31233[0]),
+ (VTBL_ENTRY)&_ZN6G312333fooEv,
+ (VTBL_ENTRY)&_ZN6G312333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G31233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G312333fooEv,_ZTv0_n16_N6G312333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G31233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G312333fooEv,_ZTv0_n12_N6G312333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G312333barEv,_ZTv0_n16_N6G312333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G31233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G312333fooEv,_ZTv0_n16_N6G312333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G312333barEv,_ZTv0_n20_N6G312333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G31233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G312333barEv,_ZTv0_n12_N6G312333barEv),
+};
+extern VTBL_ENTRY _ZTV6G31233[];
+extern void _ZN3E313fooEv();
+static VTBL_ENTRY _tg__ZTV3E31__6G31233[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E31[0]),
+ (VTBL_ENTRY)&_ZN3E313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E313fooEv,_ZTv0_n12_N3E313fooEv)();
+extern void ABISELECT(_ZThn16_N3E313fooEv,_ZThn8_N3E313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__3E31__6G31233[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E31[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E313fooEv,_ZTv0_n12_N3E313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3F233fooEv();
+extern void _ZN3F233barEv();
+static VTBL_ENTRY _tg__ZTV3F23__6G31233[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F23[0]),
+ (VTBL_ENTRY)&_ZN3F233fooEv,
+ (VTBL_ENTRY)&_ZN3F233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F233barEv,_ZTv0_n12_N3F233barEv)();
+extern void ABISELECT(_ZThn16_N3F233barEv,_ZThn8_N3F233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__3F23__6G31233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F23[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F233barEv,_ZTv0_n12_N3F233barEv),
+};
+static VTT_ENTRY vtt_G31233[] = {
+ {&(_ZTV6G31233[6]), 6,30},
+ {&(_ZTV6G31233[12]), 12,30},
+ {&(_ZTV6G31233[17]), 17,30},
+ {&(_ZTV6G31233[24]), 24,30},
+ {&(_ZTV6G31233[29]), 29,30},
+ {&(_tg__ZTV3E31__6G31233[3]), 3,4},
+ {&(_tg__ZTV3AA3__3E31__6G31233[4]), 4,6},
+ {&(_tg__ZTV3F23__6G31233[3]), 3,5},
+ {&(_tg__ZTV3AA2__3F23__6G31233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G31233[];
+extern VTBL_ENTRY _ZTV6G31233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G31233[];
+static VTBL_ENTRY alt_thunk_names154[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F233barEv,_ZTv0_n12_N3F233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F233barEv,_ZThn8_N3F233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E313fooEv,_ZTv0_n12_N3E313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E313fooEv,_ZThn8_N3E313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G312333barEv,_ZTv0_n12_N6G312333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G312333barEv,_ZThn32_N6G312333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6G312333barEv,_ZTv0_n20_N6G312333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G312333barEv,_ZThn24_N6G312333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G312333barEv,_ZTv0_n16_N6G312333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G312333barEv,_ZThn16_N6G312333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G312333fooEv,_ZTv0_n12_N6G312333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G312333fooEv,_ZThn16_N6G312333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G312333fooEv,_ZTv0_n16_N6G312333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G312333fooEv,_ZThn24_N6G312333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G312333fooEv,_ZThn8_N6G312333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G31233 = { "G31233", // class name
+ bases_G31233, 4,
+ &(vtc_G31233[0]), // expected_vtbl_contents
+ &(vtt_G31233[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G31233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G31233),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G31233),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names154,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G31313 : virtual E31 , virtual F31 {
+ int pg;
+ virtual void foo(); // _ZN6G313133fooEv
+ virtual void bar(); // _ZN6G313133barEv
+ ~G31313(); // tgen
+ G31313(); // tgen
+};
+//SIG(1 G31313) C1{ VBC2{ VBC3{ v1 v2 Fi} v1 Fi} VBC4{ VBC3 v1 Fi} v1 v2 Fi}
+
+
+void G31313 ::foo(){vfunc_called(this, "_ZN6G313133fooEv");}
+void G31313 ::bar(){vfunc_called(this, "_ZN6G313133barEv");}
+G31313 ::~G31313(){ note_dtor("G31313", this);} // tgen
+G31313 ::G31313(){ note_ctor("G31313", this);} // tgen
+
+static void Test_G31313()
+{
+ extern Class_Descriptor cd_G31313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_G31313, buf);
+ G31313 *dp, &lv = *(dp=new (buf) G31313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(G31313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G31313)");
+ check_base_class_offset(lv, (AA3*)(E31*), ABISELECT(32,16), "G31313");
+ check_base_class_offset(lv, (AA3*)(F31*), ABISELECT(32,16), "G31313");
+ check_base_class_offset(lv, (E31*), ABISELECT(16,8), "G31313");
+ check_base_class_offset(lv, (F31*), ABISELECT(48,24), "G31313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G31313.pg");
+ test_class_info(&lv, &cd_G31313);
+ dp->~G31313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG31313(Test_G31313, "G31313", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6G31313C1Ev();
+extern void _ZN6G31313D1Ev();
+Name_Map name_map_G31313[] = {
+ NSPAIR(_ZN6G31313C1Ev),
+ NSPAIR(_ZN6G31313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_E31;
+extern VTBL_ENTRY _ZTI3E31[];
+extern VTBL_ENTRY _ZTV3E31[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E31[];
+extern Class_Descriptor cd_F31;
+extern VTBL_ENTRY _ZTI3F31[];
+extern VTBL_ENTRY _ZTV3F31[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F31[];
+static Base_Class bases_G31313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E31, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_F31, 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
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G31313[];
+extern void _ZN6G313133fooEv();
+extern void _ZN6G313133barEv();
+extern void ABISELECT(_ZTv0_n32_N6G313133fooEv,_ZTv0_n16_N6G313133fooEv)();
+extern void ABISELECT(_ZThn16_N6G313133fooEv,_ZThn8_N6G313133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G313133fooEv,_ZTv0_n12_N6G313133fooEv)();
+extern void ABISELECT(_ZThn32_N6G313133fooEv,_ZThn16_N6G313133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G313133barEv,_ZTv0_n16_N6G313133barEv)();
+extern void ABISELECT(_ZThn32_N6G313133barEv,_ZThn16_N6G313133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G313133fooEv,_ZTv0_n16_N6G313133fooEv)();
+extern void ABISELECT(_ZThn48_N6G313133fooEv,_ZThn24_N6G313133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G31313[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G31313[0]),
+ (VTBL_ENTRY)&_ZN6G313133fooEv,
+ (VTBL_ENTRY)&_ZN6G313133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G31313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G313133fooEv,_ZTv0_n16_N6G313133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G31313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G313133fooEv,_ZTv0_n12_N6G313133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G313133barEv,_ZTv0_n16_N6G313133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G31313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G313133fooEv,_ZTv0_n16_N6G313133fooEv),
+};
+extern VTBL_ENTRY _ZTV6G31313[];
+extern void _ZN3E313fooEv();
+static VTBL_ENTRY _tg__ZTV3E31__6G31313[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E31[0]),
+ (VTBL_ENTRY)&_ZN3E313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E313fooEv,_ZTv0_n12_N3E313fooEv)();
+extern void ABISELECT(_ZThn16_N3E313fooEv,_ZThn8_N3E313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__3E31__6G31313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E31[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E313fooEv,_ZTv0_n12_N3E313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3F313fooEv();
+static VTBL_ENTRY _tg__ZTV3F31__6G31313[] = {
+ ABISELECT(-16,-8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F31[0]),
+ (VTBL_ENTRY)&_ZN3F313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F313fooEv,_ZTv0_n12_N3F313fooEv)();
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__3F31__6G31313[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI3F31[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F313fooEv,_ZTv0_n12_N3F313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+static VTT_ENTRY vtt_G31313[] = {
+ {&(_ZTV6G31313[5]), 5,23},
+ {&(_ZTV6G31313[11]), 11,23},
+ {&(_ZTV6G31313[16]), 16,23},
+ {&(_ZTV6G31313[22]), 22,23},
+ {&(_tg__ZTV3E31__6G31313[3]), 3,4},
+ {&(_tg__ZTV3AA3__3E31__6G31313[4]), 4,6},
+ {&(_tg__ZTV3F31__6G31313[3]), 3,4},
+ {&(_tg__ZTV3AA3__3F31__6G31313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6G31313[];
+extern VTBL_ENTRY _ZTV6G31313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G31313[];
+static VTBL_ENTRY alt_thunk_names155[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E313fooEv,_ZTv0_n12_N3E313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E313fooEv,_ZThn8_N3E313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G313133barEv,_ZTv0_n16_N6G313133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G313133barEv,_ZThn16_N6G313133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G313133fooEv,_ZTv0_n12_N6G313133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G313133fooEv,_ZThn16_N6G313133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G313133fooEv,_ZTv0_n16_N6G313133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G313133fooEv,_ZThn24_N6G313133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G313133fooEv,_ZThn8_N6G313133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G31313 = { "G31313", // class name
+ bases_G31313, 3,
+ &(vtc_G31313[0]), // expected_vtbl_contents
+ &(vtt_G31313[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6G31313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G31313),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G31313),8, //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 G31323 : virtual E31 , virtual F32 {
+ int pg;
+ virtual void foo(); // _ZN6G313233fooEv
+ virtual void bar(); // _ZN6G313233barEv
+ ~G31323(); // tgen
+ G31323(); // tgen
+};
+//SIG(1 G31323) C1{ VBC2{ VBC3{ v1 v2 Fi} v1 Fi} VBC4{ VBC3 v2 Fi} v1 v2 Fi}
+
+
+void G31323 ::foo(){vfunc_called(this, "_ZN6G313233fooEv");}
+void G31323 ::bar(){vfunc_called(this, "_ZN6G313233barEv");}
+G31323 ::~G31323(){ note_dtor("G31323", this);} // tgen
+G31323 ::G31323(){ note_ctor("G31323", this);} // tgen
+
+static void Test_G31323()
+{
+ extern Class_Descriptor cd_G31323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_G31323, buf);
+ G31323 *dp, &lv = *(dp=new (buf) G31323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(G31323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G31323)");
+ check_base_class_offset(lv, (AA3*)(E31*), ABISELECT(32,16), "G31323");
+ check_base_class_offset(lv, (AA3*)(F32*), ABISELECT(32,16), "G31323");
+ check_base_class_offset(lv, (E31*), ABISELECT(16,8), "G31323");
+ check_base_class_offset(lv, (F32*), ABISELECT(48,24), "G31323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G31323.pg");
+ test_class_info(&lv, &cd_G31323);
+ dp->~G31323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG31323(Test_G31323, "G31323", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6G31323C1Ev();
+extern void _ZN6G31323D1Ev();
+Name_Map name_map_G31323[] = {
+ NSPAIR(_ZN6G31323C1Ev),
+ NSPAIR(_ZN6G31323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_E31;
+extern VTBL_ENTRY _ZTI3E31[];
+extern VTBL_ENTRY _ZTV3E31[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E31[];
+extern Class_Descriptor cd_F32;
+extern VTBL_ENTRY _ZTI3F32[];
+extern VTBL_ENTRY _ZTV3F32[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F32[];
+static Base_Class bases_G31323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E31, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_F32, 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
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G31323[];
+extern void _ZN6G313233fooEv();
+extern void _ZN6G313233barEv();
+extern void ABISELECT(_ZTv0_n32_N6G313233fooEv,_ZTv0_n16_N6G313233fooEv)();
+extern void ABISELECT(_ZThn16_N6G313233fooEv,_ZThn8_N6G313233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G313233fooEv,_ZTv0_n12_N6G313233fooEv)();
+extern void ABISELECT(_ZThn32_N6G313233fooEv,_ZThn16_N6G313233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G313233barEv,_ZTv0_n16_N6G313233barEv)();
+extern void ABISELECT(_ZThn32_N6G313233barEv,_ZThn16_N6G313233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G313233barEv,_ZTv0_n16_N6G313233barEv)();
+extern void ABISELECT(_ZThn48_N6G313233barEv,_ZThn24_N6G313233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G31323[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G31323[0]),
+ (VTBL_ENTRY)&_ZN6G313233fooEv,
+ (VTBL_ENTRY)&_ZN6G313233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G31323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G313233fooEv,_ZTv0_n16_N6G313233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G31323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G313233fooEv,_ZTv0_n12_N6G313233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G313233barEv,_ZTv0_n16_N6G313233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G31323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G313233barEv,_ZTv0_n16_N6G313233barEv),
+};
+extern VTBL_ENTRY _ZTV6G31323[];
+extern void _ZN3E313fooEv();
+static VTBL_ENTRY _tg__ZTV3E31__6G31323[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E31[0]),
+ (VTBL_ENTRY)&_ZN3E313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E313fooEv,_ZTv0_n12_N3E313fooEv)();
+extern void ABISELECT(_ZThn16_N3E313fooEv,_ZThn8_N3E313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__3E31__6G31323[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E31[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E313fooEv,_ZTv0_n12_N3E313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3F323barEv();
+static VTBL_ENTRY _tg__ZTV3F32__6G31323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F32[0]),
+ (VTBL_ENTRY)&_ZN3F323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N3F323barEv,_ZTv0_n16_N3F323barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__3F32__6G31323[] = {
+ ABISELECT(16,8),
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI3F32[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3F323barEv,_ZTv0_n16_N3F323barEv),
+};
+static VTT_ENTRY vtt_G31323[] = {
+ {&(_ZTV6G31323[5]), 5,23},
+ {&(_ZTV6G31323[11]), 11,23},
+ {&(_ZTV6G31323[16]), 16,23},
+ {&(_ZTV6G31323[22]), 22,23},
+ {&(_tg__ZTV3E31__6G31323[3]), 3,4},
+ {&(_tg__ZTV3AA3__3E31__6G31323[4]), 4,6},
+ {&(_tg__ZTV3F32__6G31323[3]), 3,4},
+ {&(_tg__ZTV3AA3__3F32__6G31323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6G31323[];
+extern VTBL_ENTRY _ZTV6G31323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G31323[];
+static VTBL_ENTRY alt_thunk_names156[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E313fooEv,_ZTv0_n12_N3E313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E313fooEv,_ZThn8_N3E313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G313233barEv,_ZTv0_n16_N6G313233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G313233barEv,_ZThn24_N6G313233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G313233barEv,_ZThn16_N6G313233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G313233fooEv,_ZTv0_n12_N6G313233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G313233fooEv,_ZThn16_N6G313233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G313233fooEv,_ZTv0_n16_N6G313233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G313233fooEv,_ZThn8_N6G313233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G31323 = { "G31323", // class name
+ bases_G31323, 3,
+ &(vtc_G31323[0]), // expected_vtbl_contents
+ &(vtt_G31323[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6G31323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G31323),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G31323),8, //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 G31333 : virtual E31 , virtual F33 {
+ int pg;
+ virtual void foo(); // _ZN6G313333fooEv
+ virtual void bar(); // _ZN6G313333barEv
+ ~G31333(); // tgen
+ G31333(); // tgen
+};
+//SIG(1 G31333) C1{ VBC2{ VBC3{ v1 v2 Fi} v1 Fi} VBC4{ VBC3 v1 v2 Fi} v1 v2 Fi}
+
+
+void G31333 ::foo(){vfunc_called(this, "_ZN6G313333fooEv");}
+void G31333 ::bar(){vfunc_called(this, "_ZN6G313333barEv");}
+G31333 ::~G31333(){ note_dtor("G31333", this);} // tgen
+G31333 ::G31333(){ note_ctor("G31333", this);} // tgen
+
+static void Test_G31333()
+{
+ extern Class_Descriptor cd_G31333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_G31333, buf);
+ G31333 *dp, &lv = *(dp=new (buf) G31333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(G31333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G31333)");
+ check_base_class_offset(lv, (AA3*)(E31*), ABISELECT(32,16), "G31333");
+ check_base_class_offset(lv, (AA3*)(F33*), ABISELECT(32,16), "G31333");
+ check_base_class_offset(lv, (E31*), ABISELECT(16,8), "G31333");
+ check_base_class_offset(lv, (F33*), ABISELECT(48,24), "G31333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G31333.pg");
+ test_class_info(&lv, &cd_G31333);
+ dp->~G31333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG31333(Test_G31333, "G31333", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6G31333C1Ev();
+extern void _ZN6G31333D1Ev();
+Name_Map name_map_G31333[] = {
+ NSPAIR(_ZN6G31333C1Ev),
+ NSPAIR(_ZN6G31333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_E31;
+extern VTBL_ENTRY _ZTI3E31[];
+extern VTBL_ENTRY _ZTV3E31[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E31[];
+extern Class_Descriptor cd_F33;
+extern VTBL_ENTRY _ZTI3F33[];
+extern VTBL_ENTRY _ZTV3F33[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F33[];
+static Base_Class bases_G31333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E31, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_F33, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G31333[];
+extern void _ZN6G313333fooEv();
+extern void _ZN6G313333barEv();
+extern void ABISELECT(_ZTv0_n32_N6G313333fooEv,_ZTv0_n16_N6G313333fooEv)();
+extern void ABISELECT(_ZThn16_N6G313333fooEv,_ZThn8_N6G313333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G313333fooEv,_ZTv0_n12_N6G313333fooEv)();
+extern void ABISELECT(_ZThn32_N6G313333fooEv,_ZThn16_N6G313333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G313333barEv,_ZTv0_n16_N6G313333barEv)();
+extern void ABISELECT(_ZThn32_N6G313333barEv,_ZThn16_N6G313333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G313333fooEv,_ZTv0_n16_N6G313333fooEv)();
+extern void ABISELECT(_ZThn48_N6G313333fooEv,_ZThn24_N6G313333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G313333barEv,_ZTv0_n20_N6G313333barEv)();
+extern void ABISELECT(_ZThn48_N6G313333barEv,_ZThn24_N6G313333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G31333[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G31333[0]),
+ (VTBL_ENTRY)&_ZN6G313333fooEv,
+ (VTBL_ENTRY)&_ZN6G313333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G31333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G313333fooEv,_ZTv0_n16_N6G313333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G31333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G313333fooEv,_ZTv0_n12_N6G313333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G313333barEv,_ZTv0_n16_N6G313333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G31333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G313333fooEv,_ZTv0_n16_N6G313333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G313333barEv,_ZTv0_n20_N6G313333barEv),
+};
+extern VTBL_ENTRY _ZTV6G31333[];
+extern void _ZN3E313fooEv();
+static VTBL_ENTRY _tg__ZTV3E31__6G31333[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E31[0]),
+ (VTBL_ENTRY)&_ZN3E313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E313fooEv,_ZTv0_n12_N3E313fooEv)();
+extern void ABISELECT(_ZThn16_N3E313fooEv,_ZThn8_N3E313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__3E31__6G31333[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E31[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E313fooEv,_ZTv0_n12_N3E313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3F333fooEv();
+extern void _ZN3F333barEv();
+static VTBL_ENTRY _tg__ZTV3F33__6G31333[] = {
+ ABISELECT(-16,-8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F33[0]),
+ (VTBL_ENTRY)&_ZN3F333fooEv,
+ (VTBL_ENTRY)&_ZN3F333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F333fooEv,_ZTv0_n12_N3F333fooEv)();
+extern void ABISELECT(_ZTv0_n32_N3F333barEv,_ZTv0_n16_N3F333barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__3F33__6G31333[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI3F33[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F333fooEv,_ZTv0_n12_N3F333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3F333barEv,_ZTv0_n16_N3F333barEv),
+};
+static VTT_ENTRY vtt_G31333[] = {
+ {&(_ZTV6G31333[5]), 5,25},
+ {&(_ZTV6G31333[11]), 11,25},
+ {&(_ZTV6G31333[16]), 16,25},
+ {&(_ZTV6G31333[23]), 23,25},
+ {&(_tg__ZTV3E31__6G31333[3]), 3,4},
+ {&(_tg__ZTV3AA3__3E31__6G31333[4]), 4,6},
+ {&(_tg__ZTV3F33__6G31333[3]), 3,5},
+ {&(_tg__ZTV3AA3__3F33__6G31333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6G31333[];
+extern VTBL_ENTRY _ZTV6G31333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G31333[];
+static VTBL_ENTRY alt_thunk_names157[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E313fooEv,_ZTv0_n12_N3E313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E313fooEv,_ZThn8_N3E313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6G313333barEv,_ZTv0_n20_N6G313333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G313333barEv,_ZThn24_N6G313333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G313333barEv,_ZTv0_n16_N6G313333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G313333barEv,_ZThn16_N6G313333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G313333fooEv,_ZTv0_n12_N6G313333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G313333fooEv,_ZThn16_N6G313333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G313333fooEv,_ZTv0_n16_N6G313333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G313333fooEv,_ZThn24_N6G313333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G313333fooEv,_ZThn8_N6G313333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G31333 = { "G31333", // class name
+ bases_G31333, 3,
+ &(vtc_G31333[0]), // expected_vtbl_contents
+ &(vtt_G31333[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6G31333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G31333),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G31333),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names157,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G32111 : virtual E32 , virtual F11 {
+ int pg;
+ virtual void foo(); // _ZN6G321113fooEv
+ ~G32111(); // tgen
+ G32111(); // tgen
+};
+//SIG(1 G32111) C1{ VBC2{ VBC3{ v1 v2 Fi} v2 Fi} VBC4{ VBC5{ v1 Fi} v1 Fi} v1 Fi}
+
+
+void G32111 ::foo(){vfunc_called(this, "_ZN6G321113fooEv");}
+G32111 ::~G32111(){ note_dtor("G32111", this);} // tgen
+G32111 ::G32111(){ note_ctor("G32111", this);} // tgen
+
+static void Test_G32111()
+{
+ extern Class_Descriptor cd_G32111;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G32111, buf);
+ G32111 *dp, &lv = *(dp=new (buf) G32111());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G32111)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G32111)");
+ check_base_class_offset(lv, (AA3*)(E32*), ABISELECT(32,16), "G32111");
+ check_base_class_offset(lv, (E32*), ABISELECT(16,8), "G32111");
+ check_base_class_offset(lv, (AA1*)(F11*), ABISELECT(64,32), "G32111");
+ check_base_class_offset(lv, (F11*), ABISELECT(48,24), "G32111");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G32111.pg");
+ test_class_info(&lv, &cd_G32111);
+ dp->~G32111();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG32111(Test_G32111, "G32111", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G32111C1Ev();
+extern void _ZN6G32111D1Ev();
+Name_Map name_map_G32111[] = {
+ NSPAIR(_ZN6G32111C1Ev),
+ NSPAIR(_ZN6G32111D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_E32;
+extern VTBL_ENTRY _ZTI3E32[];
+extern VTBL_ENTRY _ZTV3E32[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E32[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_F11;
+extern VTBL_ENTRY _ZTI3F11[];
+extern VTBL_ENTRY _ZTV3F11[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F11[];
+static Base_Class bases_G32111[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E32, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F11, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G32111[];
+extern void _ZN6G321113fooEv();
+extern void _ZN3E323barEv();
+extern void ABISELECT(_ZTv0_n24_N6G321113fooEv,_ZTv0_n12_N6G321113fooEv)();
+extern void ABISELECT(_ZThn32_N6G321113fooEv,_ZThn16_N6G321113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N3E323barEv,_ZTv0_n16_N3E323barEv)();
+extern void ABISELECT(_ZThn16_N3E323barEv,_ZThn8_N3E323barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G321113fooEv,_ZTv0_n16_N6G321113fooEv)();
+extern void ABISELECT(_ZThn48_N6G321113fooEv,_ZThn24_N6G321113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G321113fooEv,_ZTv0_n12_N6G321113fooEv)();
+extern void ABISELECT(_ZThn64_N6G321113fooEv,_ZThn32_N6G321113fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G32111[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G32111[0]),
+ (VTBL_ENTRY)&_ZN6G321113fooEv,
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G32111[0]),
+ (VTBL_ENTRY)&_ZN3E323barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G32111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G321113fooEv,_ZTv0_n12_N6G321113fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3E323barEv,_ZTv0_n16_N3E323barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G32111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G321113fooEv,_ZTv0_n16_N6G321113fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G32111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G321113fooEv,_ZTv0_n12_N6G321113fooEv),
+};
+extern VTBL_ENTRY _ZTV6G32111[];
+extern void _ZN3E323barEv();
+static VTBL_ENTRY _tg__ZTV3E32__6G32111[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E32[0]),
+ (VTBL_ENTRY)&_ZN3E323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N3E323barEv,_ZTv0_n16_N3E323barEv)();
+extern void ABISELECT(_ZThn16_N3E323barEv,_ZThn8_N3E323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__3E32__6G32111[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E32[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3E323barEv,_ZTv0_n16_N3E323barEv),
+};
+extern void _ZN3F113fooEv();
+static VTBL_ENTRY _tg__ZTV3F11__6G32111[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F11[0]),
+ (VTBL_ENTRY)&_ZN3F113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv)();
+extern void ABISELECT(_ZThn16_N3F113fooEv,_ZThn8_N3F113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__3F11__6G32111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F11[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv),
+};
+static VTT_ENTRY vtt_G32111[] = {
+ {&(_ZTV6G32111[6]), 6,27},
+ {&(_ZTV6G32111[11]), 11,27},
+ {&(_ZTV6G32111[16]), 16,27},
+ {&(_ZTV6G32111[22]), 22,27},
+ {&(_ZTV6G32111[26]), 26,27},
+ {&(_tg__ZTV3E32__6G32111[3]), 3,4},
+ {&(_tg__ZTV3AA3__3E32__6G32111[4]), 4,6},
+ {&(_tg__ZTV3F11__6G32111[3]), 3,4},
+ {&(_tg__ZTV3AA1__3F11__6G32111[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G32111[];
+extern VTBL_ENTRY _ZTV6G32111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G32111[];
+static VTBL_ENTRY alt_thunk_names158[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F113fooEv,_ZThn8_N3F113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G321113fooEv,_ZTv0_n16_N6G321113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G321113fooEv,_ZThn24_N6G321113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3E323barEv,_ZTv0_n16_N3E323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E323barEv,_ZThn8_N3E323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E323barEv,_ZThn8_N3E323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G321113fooEv,_ZTv0_n12_N6G321113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G321113fooEv,_ZThn32_N6G321113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G321113fooEv,_ZThn16_N6G321113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G32111 = { "G32111", // class name
+ bases_G32111, 4,
+ &(vtc_G32111[0]), // expected_vtbl_contents
+ &(vtt_G32111[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G32111),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G32111),27, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G32111),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names158,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G32113 : virtual E32 , virtual F11 {
+ int pg;
+ virtual void foo(); // _ZN6G321133fooEv
+ virtual void bar(); // _ZN6G321133barEv
+ ~G32113(); // tgen
+ G32113(); // tgen
+};
+//SIG(1 G32113) C1{ VBC2{ VBC3{ v1 v2 Fi} v2 Fi} VBC4{ VBC5{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void G32113 ::foo(){vfunc_called(this, "_ZN6G321133fooEv");}
+void G32113 ::bar(){vfunc_called(this, "_ZN6G321133barEv");}
+G32113 ::~G32113(){ note_dtor("G32113", this);} // tgen
+G32113 ::G32113(){ note_ctor("G32113", this);} // tgen
+
+static void Test_G32113()
+{
+ extern Class_Descriptor cd_G32113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G32113, buf);
+ G32113 *dp, &lv = *(dp=new (buf) G32113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G32113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G32113)");
+ check_base_class_offset(lv, (AA3*)(E32*), ABISELECT(32,16), "G32113");
+ check_base_class_offset(lv, (E32*), ABISELECT(16,8), "G32113");
+ check_base_class_offset(lv, (AA1*)(F11*), ABISELECT(64,32), "G32113");
+ check_base_class_offset(lv, (F11*), ABISELECT(48,24), "G32113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G32113.pg");
+ test_class_info(&lv, &cd_G32113);
+ dp->~G32113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG32113(Test_G32113, "G32113", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G32113C1Ev();
+extern void _ZN6G32113D1Ev();
+Name_Map name_map_G32113[] = {
+ NSPAIR(_ZN6G32113C1Ev),
+ NSPAIR(_ZN6G32113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_E32;
+extern VTBL_ENTRY _ZTI3E32[];
+extern VTBL_ENTRY _ZTV3E32[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E32[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_F11;
+extern VTBL_ENTRY _ZTI3F11[];
+extern VTBL_ENTRY _ZTV3F11[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F11[];
+static Base_Class bases_G32113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E32, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F11, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G32113[];
+extern void _ZN6G321133fooEv();
+extern void _ZN6G321133barEv();
+extern void ABISELECT(_ZTv0_n32_N6G321133barEv,_ZTv0_n16_N6G321133barEv)();
+extern void ABISELECT(_ZThn16_N6G321133barEv,_ZThn8_N6G321133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G321133fooEv,_ZTv0_n12_N6G321133fooEv)();
+extern void ABISELECT(_ZThn32_N6G321133fooEv,_ZThn16_N6G321133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G321133barEv,_ZTv0_n16_N6G321133barEv)();
+extern void ABISELECT(_ZThn32_N6G321133barEv,_ZThn16_N6G321133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G321133fooEv,_ZTv0_n16_N6G321133fooEv)();
+extern void ABISELECT(_ZThn48_N6G321133fooEv,_ZThn24_N6G321133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G321133fooEv,_ZTv0_n12_N6G321133fooEv)();
+extern void ABISELECT(_ZThn64_N6G321133fooEv,_ZThn32_N6G321133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G32113[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G32113[0]),
+ (VTBL_ENTRY)&_ZN6G321133fooEv,
+ (VTBL_ENTRY)&_ZN6G321133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G32113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G321133barEv,_ZTv0_n16_N6G321133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G32113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G321133fooEv,_ZTv0_n12_N6G321133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G321133barEv,_ZTv0_n16_N6G321133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G32113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G321133fooEv,_ZTv0_n16_N6G321133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G32113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G321133fooEv,_ZTv0_n12_N6G321133fooEv),
+};
+extern VTBL_ENTRY _ZTV6G32113[];
+extern void _ZN3E323barEv();
+static VTBL_ENTRY _tg__ZTV3E32__6G32113[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E32[0]),
+ (VTBL_ENTRY)&_ZN3E323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N3E323barEv,_ZTv0_n16_N3E323barEv)();
+extern void ABISELECT(_ZThn16_N3E323barEv,_ZThn8_N3E323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__3E32__6G32113[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E32[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3E323barEv,_ZTv0_n16_N3E323barEv),
+};
+extern void _ZN3F113fooEv();
+static VTBL_ENTRY _tg__ZTV3F11__6G32113[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F11[0]),
+ (VTBL_ENTRY)&_ZN3F113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv)();
+extern void ABISELECT(_ZThn16_N3F113fooEv,_ZThn8_N3F113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__3F11__6G32113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F11[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv),
+};
+static VTT_ENTRY vtt_G32113[] = {
+ {&(_ZTV6G32113[6]), 6,28},
+ {&(_ZTV6G32113[12]), 12,28},
+ {&(_ZTV6G32113[17]), 17,28},
+ {&(_ZTV6G32113[23]), 23,28},
+ {&(_ZTV6G32113[27]), 27,28},
+ {&(_tg__ZTV3E32__6G32113[3]), 3,4},
+ {&(_tg__ZTV3AA3__3E32__6G32113[4]), 4,6},
+ {&(_tg__ZTV3F11__6G32113[3]), 3,4},
+ {&(_tg__ZTV3AA1__3F11__6G32113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G32113[];
+extern VTBL_ENTRY _ZTV6G32113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G32113[];
+static VTBL_ENTRY alt_thunk_names159[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F113fooEv,_ZThn8_N3F113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3E323barEv,_ZTv0_n16_N3E323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E323barEv,_ZThn8_N3E323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G321133fooEv,_ZTv0_n16_N6G321133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G321133fooEv,_ZThn24_N6G321133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G321133fooEv,_ZTv0_n12_N6G321133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G321133fooEv,_ZThn32_N6G321133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G321133fooEv,_ZThn16_N6G321133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G321133barEv,_ZTv0_n16_N6G321133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G321133barEv,_ZThn16_N6G321133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G321133barEv,_ZThn8_N6G321133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G32113 = { "G32113", // class name
+ bases_G32113, 4,
+ &(vtc_G32113[0]), // expected_vtbl_contents
+ &(vtt_G32113[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G32113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G32113),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G32113),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names159,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G32123 : virtual E32 , virtual F12 {
+ int pg;
+ virtual void foo(); // _ZN6G321233fooEv
+ virtual void bar(); // _ZN6G321233barEv
+ ~G32123(); // tgen
+ G32123(); // tgen
+};
+//SIG(1 G32123) C1{ VBC2{ VBC3{ v1 v2 Fi} v2 Fi} VBC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void G32123 ::foo(){vfunc_called(this, "_ZN6G321233fooEv");}
+void G32123 ::bar(){vfunc_called(this, "_ZN6G321233barEv");}
+G32123 ::~G32123(){ note_dtor("G32123", this);} // tgen
+G32123 ::G32123(){ note_ctor("G32123", this);} // tgen
+
+static void Test_G32123()
+{
+ extern Class_Descriptor cd_G32123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G32123, buf);
+ G32123 *dp, &lv = *(dp=new (buf) G32123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G32123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G32123)");
+ check_base_class_offset(lv, (AA3*)(E32*), ABISELECT(32,16), "G32123");
+ check_base_class_offset(lv, (E32*), ABISELECT(16,8), "G32123");
+ check_base_class_offset(lv, (AA1*)(F12*), ABISELECT(64,32), "G32123");
+ check_base_class_offset(lv, (F12*), ABISELECT(48,24), "G32123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G32123.pg");
+ test_class_info(&lv, &cd_G32123);
+ dp->~G32123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG32123(Test_G32123, "G32123", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G32123C1Ev();
+extern void _ZN6G32123D1Ev();
+Name_Map name_map_G32123[] = {
+ NSPAIR(_ZN6G32123C1Ev),
+ NSPAIR(_ZN6G32123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_E32;
+extern VTBL_ENTRY _ZTI3E32[];
+extern VTBL_ENTRY _ZTV3E32[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E32[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_F12;
+extern VTBL_ENTRY _ZTI3F12[];
+extern VTBL_ENTRY _ZTV3F12[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F12[];
+static Base_Class bases_G32123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E32, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F12, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G32123[];
+extern void _ZN6G321233fooEv();
+extern void _ZN6G321233barEv();
+extern void ABISELECT(_ZTv0_n32_N6G321233barEv,_ZTv0_n16_N6G321233barEv)();
+extern void ABISELECT(_ZThn16_N6G321233barEv,_ZThn8_N6G321233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G321233fooEv,_ZTv0_n12_N6G321233fooEv)();
+extern void ABISELECT(_ZThn32_N6G321233fooEv,_ZThn16_N6G321233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G321233barEv,_ZTv0_n16_N6G321233barEv)();
+extern void ABISELECT(_ZThn32_N6G321233barEv,_ZThn16_N6G321233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G321233barEv,_ZTv0_n16_N6G321233barEv)();
+extern void ABISELECT(_ZThn48_N6G321233barEv,_ZThn24_N6G321233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G321233fooEv,_ZTv0_n12_N6G321233fooEv)();
+extern void ABISELECT(_ZThn64_N6G321233fooEv,_ZThn32_N6G321233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G32123[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G32123[0]),
+ (VTBL_ENTRY)&_ZN6G321233fooEv,
+ (VTBL_ENTRY)&_ZN6G321233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G32123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G321233barEv,_ZTv0_n16_N6G321233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G32123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G321233fooEv,_ZTv0_n12_N6G321233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G321233barEv,_ZTv0_n16_N6G321233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G32123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G321233barEv,_ZTv0_n16_N6G321233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G32123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G321233fooEv,_ZTv0_n12_N6G321233fooEv),
+};
+extern VTBL_ENTRY _ZTV6G32123[];
+extern void _ZN3E323barEv();
+static VTBL_ENTRY _tg__ZTV3E32__6G32123[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E32[0]),
+ (VTBL_ENTRY)&_ZN3E323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N3E323barEv,_ZTv0_n16_N3E323barEv)();
+extern void ABISELECT(_ZThn16_N3E323barEv,_ZThn8_N3E323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__3E32__6G32123[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E32[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3E323barEv,_ZTv0_n16_N3E323barEv),
+};
+extern void _ZN3F123barEv();
+static VTBL_ENTRY _tg__ZTV3F12__6G32123[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F12[0]),
+ (VTBL_ENTRY)&_ZN3F123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__3F12__6G32123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F12[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+static VTT_ENTRY vtt_G32123[] = {
+ {&(_ZTV6G32123[6]), 6,28},
+ {&(_ZTV6G32123[12]), 12,28},
+ {&(_ZTV6G32123[17]), 17,28},
+ {&(_ZTV6G32123[23]), 23,28},
+ {&(_ZTV6G32123[27]), 27,28},
+ {&(_tg__ZTV3E32__6G32123[3]), 3,4},
+ {&(_tg__ZTV3AA3__3E32__6G32123[4]), 4,6},
+ {&(_tg__ZTV3F12__6G32123[3]), 3,4},
+ {&(_tg__ZTV3AA1__3F12__6G32123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G32123[];
+extern VTBL_ENTRY _ZTV6G32123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G32123[];
+static VTBL_ENTRY alt_thunk_names160[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3E323barEv,_ZTv0_n16_N3E323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E323barEv,_ZThn8_N3E323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G321233fooEv,_ZTv0_n12_N6G321233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G321233fooEv,_ZThn32_N6G321233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G321233fooEv,_ZThn16_N6G321233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G321233barEv,_ZTv0_n16_N6G321233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G321233barEv,_ZThn24_N6G321233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G321233barEv,_ZThn16_N6G321233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G321233barEv,_ZThn8_N6G321233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G32123 = { "G32123", // class name
+ bases_G32123, 4,
+ &(vtc_G32123[0]), // expected_vtbl_contents
+ &(vtt_G32123[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G32123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G32123),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G32123),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names160,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G32133 : virtual E32 , virtual F13 {
+ int pg;
+ virtual void foo(); // _ZN6G321333fooEv
+ virtual void bar(); // _ZN6G321333barEv
+ ~G32133(); // tgen
+ G32133(); // tgen
+};
+//SIG(1 G32133) C1{ VBC2{ VBC3{ v1 v2 Fi} v2 Fi} VBC4{ VBC5{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void G32133 ::foo(){vfunc_called(this, "_ZN6G321333fooEv");}
+void G32133 ::bar(){vfunc_called(this, "_ZN6G321333barEv");}
+G32133 ::~G32133(){ note_dtor("G32133", this);} // tgen
+G32133 ::G32133(){ note_ctor("G32133", this);} // tgen
+
+static void Test_G32133()
+{
+ extern Class_Descriptor cd_G32133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G32133, buf);
+ G32133 *dp, &lv = *(dp=new (buf) G32133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G32133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G32133)");
+ check_base_class_offset(lv, (AA3*)(E32*), ABISELECT(32,16), "G32133");
+ check_base_class_offset(lv, (E32*), ABISELECT(16,8), "G32133");
+ check_base_class_offset(lv, (AA1*)(F13*), ABISELECT(64,32), "G32133");
+ check_base_class_offset(lv, (F13*), ABISELECT(48,24), "G32133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G32133.pg");
+ test_class_info(&lv, &cd_G32133);
+ dp->~G32133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG32133(Test_G32133, "G32133", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G32133C1Ev();
+extern void _ZN6G32133D1Ev();
+Name_Map name_map_G32133[] = {
+ NSPAIR(_ZN6G32133C1Ev),
+ NSPAIR(_ZN6G32133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_E32;
+extern VTBL_ENTRY _ZTI3E32[];
+extern VTBL_ENTRY _ZTV3E32[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E32[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_F13;
+extern VTBL_ENTRY _ZTI3F13[];
+extern VTBL_ENTRY _ZTV3F13[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F13[];
+static Base_Class bases_G32133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E32, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F13, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G32133[];
+extern void _ZN6G321333fooEv();
+extern void _ZN6G321333barEv();
+extern void ABISELECT(_ZTv0_n32_N6G321333barEv,_ZTv0_n16_N6G321333barEv)();
+extern void ABISELECT(_ZThn16_N6G321333barEv,_ZThn8_N6G321333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G321333fooEv,_ZTv0_n12_N6G321333fooEv)();
+extern void ABISELECT(_ZThn32_N6G321333fooEv,_ZThn16_N6G321333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G321333barEv,_ZTv0_n16_N6G321333barEv)();
+extern void ABISELECT(_ZThn32_N6G321333barEv,_ZThn16_N6G321333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G321333fooEv,_ZTv0_n16_N6G321333fooEv)();
+extern void ABISELECT(_ZThn48_N6G321333fooEv,_ZThn24_N6G321333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G321333barEv,_ZTv0_n20_N6G321333barEv)();
+extern void ABISELECT(_ZThn48_N6G321333barEv,_ZThn24_N6G321333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G321333fooEv,_ZTv0_n12_N6G321333fooEv)();
+extern void ABISELECT(_ZThn64_N6G321333fooEv,_ZThn32_N6G321333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G32133[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G32133[0]),
+ (VTBL_ENTRY)&_ZN6G321333fooEv,
+ (VTBL_ENTRY)&_ZN6G321333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G32133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G321333barEv,_ZTv0_n16_N6G321333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G32133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G321333fooEv,_ZTv0_n12_N6G321333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G321333barEv,_ZTv0_n16_N6G321333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G32133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G321333fooEv,_ZTv0_n16_N6G321333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G321333barEv,_ZTv0_n20_N6G321333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G32133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G321333fooEv,_ZTv0_n12_N6G321333fooEv),
+};
+extern VTBL_ENTRY _ZTV6G32133[];
+extern void _ZN3E323barEv();
+static VTBL_ENTRY _tg__ZTV3E32__6G32133[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E32[0]),
+ (VTBL_ENTRY)&_ZN3E323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N3E323barEv,_ZTv0_n16_N3E323barEv)();
+extern void ABISELECT(_ZThn16_N3E323barEv,_ZThn8_N3E323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__3E32__6G32133[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E32[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3E323barEv,_ZTv0_n16_N3E323barEv),
+};
+extern void _ZN3F133fooEv();
+extern void _ZN3F133barEv();
+static VTBL_ENTRY _tg__ZTV3F13__6G32133[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F13[0]),
+ (VTBL_ENTRY)&_ZN3F133fooEv,
+ (VTBL_ENTRY)&_ZN3F133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F133fooEv,_ZTv0_n12_N3F133fooEv)();
+extern void ABISELECT(_ZThn16_N3F133fooEv,_ZThn8_N3F133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__3F13__6G32133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F13[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F133fooEv,_ZTv0_n12_N3F133fooEv),
+};
+static VTT_ENTRY vtt_G32133[] = {
+ {&(_ZTV6G32133[6]), 6,30},
+ {&(_ZTV6G32133[12]), 12,30},
+ {&(_ZTV6G32133[17]), 17,30},
+ {&(_ZTV6G32133[24]), 24,30},
+ {&(_ZTV6G32133[29]), 29,30},
+ {&(_tg__ZTV3E32__6G32133[3]), 3,4},
+ {&(_tg__ZTV3AA3__3E32__6G32133[4]), 4,6},
+ {&(_tg__ZTV3F13__6G32133[3]), 3,5},
+ {&(_tg__ZTV3AA1__3F13__6G32133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G32133[];
+extern VTBL_ENTRY _ZTV6G32133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G32133[];
+static VTBL_ENTRY alt_thunk_names161[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F133fooEv,_ZTv0_n12_N3F133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F133fooEv,_ZThn8_N3F133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3E323barEv,_ZTv0_n16_N3E323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E323barEv,_ZThn8_N3E323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6G321333barEv,_ZTv0_n20_N6G321333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G321333barEv,_ZThn24_N6G321333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G321333fooEv,_ZTv0_n16_N6G321333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G321333fooEv,_ZThn24_N6G321333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G321333fooEv,_ZTv0_n12_N6G321333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G321333fooEv,_ZThn32_N6G321333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G321333fooEv,_ZThn16_N6G321333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G321333barEv,_ZTv0_n16_N6G321333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G321333barEv,_ZThn16_N6G321333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G321333barEv,_ZThn8_N6G321333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G32133 = { "G32133", // class name
+ bases_G32133, 4,
+ &(vtc_G32133[0]), // expected_vtbl_contents
+ &(vtt_G32133[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G32133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G32133),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G32133),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names161,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G32213 : virtual E32 , virtual F21 {
+ int pg;
+ virtual void foo(); // _ZN6G322133fooEv
+ virtual void bar(); // _ZN6G322133barEv
+ ~G32213(); // tgen
+ G32213(); // tgen
+};
+//SIG(1 G32213) C1{ VBC2{ VBC3{ v1 v2 Fi} v2 Fi} VBC4{ VBC5{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void G32213 ::foo(){vfunc_called(this, "_ZN6G322133fooEv");}
+void G32213 ::bar(){vfunc_called(this, "_ZN6G322133barEv");}
+G32213 ::~G32213(){ note_dtor("G32213", this);} // tgen
+G32213 ::G32213(){ note_ctor("G32213", this);} // tgen
+
+static void Test_G32213()
+{
+ extern Class_Descriptor cd_G32213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G32213, buf);
+ G32213 *dp, &lv = *(dp=new (buf) G32213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G32213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G32213)");
+ check_base_class_offset(lv, (AA3*)(E32*), ABISELECT(32,16), "G32213");
+ check_base_class_offset(lv, (E32*), ABISELECT(16,8), "G32213");
+ check_base_class_offset(lv, (AA2*)(F21*), ABISELECT(64,32), "G32213");
+ check_base_class_offset(lv, (F21*), ABISELECT(48,24), "G32213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G32213.pg");
+ test_class_info(&lv, &cd_G32213);
+ dp->~G32213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG32213(Test_G32213, "G32213", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G32213C1Ev();
+extern void _ZN6G32213D1Ev();
+Name_Map name_map_G32213[] = {
+ NSPAIR(_ZN6G32213C1Ev),
+ NSPAIR(_ZN6G32213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_E32;
+extern VTBL_ENTRY _ZTI3E32[];
+extern VTBL_ENTRY _ZTV3E32[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E32[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_F21;
+extern VTBL_ENTRY _ZTI3F21[];
+extern VTBL_ENTRY _ZTV3F21[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F21[];
+static Base_Class bases_G32213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E32, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F21, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G32213[];
+extern void _ZN6G322133fooEv();
+extern void _ZN6G322133barEv();
+extern void ABISELECT(_ZTv0_n32_N6G322133barEv,_ZTv0_n16_N6G322133barEv)();
+extern void ABISELECT(_ZThn16_N6G322133barEv,_ZThn8_N6G322133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G322133fooEv,_ZTv0_n12_N6G322133fooEv)();
+extern void ABISELECT(_ZThn32_N6G322133fooEv,_ZThn16_N6G322133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G322133barEv,_ZTv0_n16_N6G322133barEv)();
+extern void ABISELECT(_ZThn32_N6G322133barEv,_ZThn16_N6G322133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G322133fooEv,_ZTv0_n16_N6G322133fooEv)();
+extern void ABISELECT(_ZThn48_N6G322133fooEv,_ZThn24_N6G322133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G322133barEv,_ZTv0_n12_N6G322133barEv)();
+extern void ABISELECT(_ZThn64_N6G322133barEv,_ZThn32_N6G322133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G32213[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G32213[0]),
+ (VTBL_ENTRY)&_ZN6G322133fooEv,
+ (VTBL_ENTRY)&_ZN6G322133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G32213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G322133barEv,_ZTv0_n16_N6G322133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G32213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G322133fooEv,_ZTv0_n12_N6G322133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G322133barEv,_ZTv0_n16_N6G322133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G32213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G322133fooEv,_ZTv0_n16_N6G322133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G32213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G322133barEv,_ZTv0_n12_N6G322133barEv),
+};
+extern VTBL_ENTRY _ZTV6G32213[];
+extern void _ZN3E323barEv();
+static VTBL_ENTRY _tg__ZTV3E32__6G32213[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E32[0]),
+ (VTBL_ENTRY)&_ZN3E323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N3E323barEv,_ZTv0_n16_N3E323barEv)();
+extern void ABISELECT(_ZThn16_N3E323barEv,_ZThn8_N3E323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__3E32__6G32213[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E32[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3E323barEv,_ZTv0_n16_N3E323barEv),
+};
+extern void _ZN3F213fooEv();
+static VTBL_ENTRY _tg__ZTV3F21__6G32213[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F21[0]),
+ (VTBL_ENTRY)&_ZN3F213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__3F21__6G32213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F21[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+static VTT_ENTRY vtt_G32213[] = {
+ {&(_ZTV6G32213[6]), 6,28},
+ {&(_ZTV6G32213[12]), 12,28},
+ {&(_ZTV6G32213[17]), 17,28},
+ {&(_ZTV6G32213[23]), 23,28},
+ {&(_ZTV6G32213[27]), 27,28},
+ {&(_tg__ZTV3E32__6G32213[3]), 3,4},
+ {&(_tg__ZTV3AA3__3E32__6G32213[4]), 4,6},
+ {&(_tg__ZTV3F21__6G32213[3]), 3,4},
+ {&(_tg__ZTV3AA2__3F21__6G32213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G32213[];
+extern VTBL_ENTRY _ZTV6G32213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G32213[];
+static VTBL_ENTRY alt_thunk_names162[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3E323barEv,_ZTv0_n16_N3E323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E323barEv,_ZThn8_N3E323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G322133barEv,_ZTv0_n12_N6G322133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G322133barEv,_ZThn32_N6G322133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G322133fooEv,_ZTv0_n16_N6G322133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G322133fooEv,_ZThn24_N6G322133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G322133fooEv,_ZTv0_n12_N6G322133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G322133fooEv,_ZThn16_N6G322133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G322133barEv,_ZTv0_n16_N6G322133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G322133barEv,_ZThn16_N6G322133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G322133barEv,_ZThn8_N6G322133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G32213 = { "G32213", // class name
+ bases_G32213, 4,
+ &(vtc_G32213[0]), // expected_vtbl_contents
+ &(vtt_G32213[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G32213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G32213),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G32213),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names162,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G32222 : virtual E32 , virtual F22 {
+ int pg;
+ virtual void bar(); // _ZN6G322223barEv
+ ~G32222(); // tgen
+ G32222(); // tgen
+};
+//SIG(1 G32222) C1{ VBC2{ VBC3{ v2 v1 Fi} v1 Fi} VBC4{ VBC5{ v1 Fi} v1 Fi} v1 Fi}
+
+
+void G32222 ::bar(){vfunc_called(this, "_ZN6G322223barEv");}
+G32222 ::~G32222(){ note_dtor("G32222", this);} // tgen
+G32222 ::G32222(){ note_ctor("G32222", this);} // tgen
+
+static void Test_G32222()
+{
+ extern Class_Descriptor cd_G32222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G32222, buf);
+ G32222 *dp, &lv = *(dp=new (buf) G32222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G32222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G32222)");
+ check_base_class_offset(lv, (AA3*)(E32*), ABISELECT(32,16), "G32222");
+ check_base_class_offset(lv, (E32*), ABISELECT(16,8), "G32222");
+ check_base_class_offset(lv, (AA2*)(F22*), ABISELECT(64,32), "G32222");
+ check_base_class_offset(lv, (F22*), ABISELECT(48,24), "G32222");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G32222.pg");
+ test_class_info(&lv, &cd_G32222);
+ dp->~G32222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG32222(Test_G32222, "G32222", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G32222C1Ev();
+extern void _ZN6G32222D1Ev();
+Name_Map name_map_G32222[] = {
+ NSPAIR(_ZN6G32222C1Ev),
+ NSPAIR(_ZN6G32222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_E32;
+extern VTBL_ENTRY _ZTI3E32[];
+extern VTBL_ENTRY _ZTV3E32[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E32[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_F22;
+extern VTBL_ENTRY _ZTI3F22[];
+extern VTBL_ENTRY _ZTV3F22[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F22[];
+static Base_Class bases_G32222[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E32, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F22, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G32222[];
+extern void _ZN6G322223barEv();
+extern void ABISELECT(_ZTv0_n32_N6G322223barEv,_ZTv0_n16_N6G322223barEv)();
+extern void ABISELECT(_ZThn16_N6G322223barEv,_ZThn8_N6G322223barEv)() __attribute__((weak));
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N6G322223barEv,_ZTv0_n16_N6G322223barEv)();
+extern void ABISELECT(_ZThn32_N6G322223barEv,_ZThn16_N6G322223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G322223barEv,_ZTv0_n16_N6G322223barEv)();
+extern void ABISELECT(_ZThn48_N6G322223barEv,_ZThn24_N6G322223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G322223barEv,_ZTv0_n12_N6G322223barEv)();
+extern void ABISELECT(_ZThn64_N6G322223barEv,_ZThn32_N6G322223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G32222[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G32222[0]),
+ (VTBL_ENTRY)&_ZN6G322223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G32222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G322223barEv,_ZTv0_n16_N6G322223barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G32222[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G322223barEv,_ZTv0_n16_N6G322223barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G32222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G322223barEv,_ZTv0_n16_N6G322223barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G32222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G322223barEv,_ZTv0_n12_N6G322223barEv),
+};
+extern VTBL_ENTRY _ZTV6G32222[];
+extern void _ZN3E323barEv();
+static VTBL_ENTRY _tg__ZTV3E32__6G32222[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E32[0]),
+ (VTBL_ENTRY)&_ZN3E323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N3E323barEv,_ZTv0_n16_N3E323barEv)();
+extern void ABISELECT(_ZThn16_N3E323barEv,_ZThn8_N3E323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__3E32__6G32222[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E32[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3E323barEv,_ZTv0_n16_N3E323barEv),
+};
+extern void _ZN3F223barEv();
+static VTBL_ENTRY _tg__ZTV3F22__6G32222[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F22[0]),
+ (VTBL_ENTRY)&_ZN3F223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv)();
+extern void ABISELECT(_ZThn16_N3F223barEv,_ZThn8_N3F223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__3F22__6G32222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F22[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv),
+};
+static VTT_ENTRY vtt_G32222[] = {
+ {&(_ZTV6G32222[6]), 6,27},
+ {&(_ZTV6G32222[11]), 11,27},
+ {&(_ZTV6G32222[16]), 16,27},
+ {&(_ZTV6G32222[22]), 22,27},
+ {&(_ZTV6G32222[26]), 26,27},
+ {&(_tg__ZTV3E32__6G32222[3]), 3,4},
+ {&(_tg__ZTV3AA3__3E32__6G32222[4]), 4,6},
+ {&(_tg__ZTV3F22__6G32222[3]), 3,4},
+ {&(_tg__ZTV3AA2__3F22__6G32222[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G32222[];
+extern VTBL_ENTRY _ZTV6G32222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G32222[];
+static VTBL_ENTRY alt_thunk_names163[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F223barEv,_ZThn8_N3F223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3E323barEv,_ZTv0_n16_N3E323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E323barEv,_ZThn8_N3E323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G322223barEv,_ZTv0_n12_N6G322223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G322223barEv,_ZThn32_N6G322223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G322223barEv,_ZTv0_n16_N6G322223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G322223barEv,_ZThn24_N6G322223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G322223barEv,_ZThn16_N6G322223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G322223barEv,_ZThn8_N6G322223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G32222 = { "G32222", // class name
+ bases_G32222, 4,
+ &(vtc_G32222[0]), // expected_vtbl_contents
+ &(vtt_G32222[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G32222),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G32222),27, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G32222),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names163,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G32223 : virtual E32 , virtual F22 {
+ int pg;
+ virtual void foo(); // _ZN6G322233fooEv
+ virtual void bar(); // _ZN6G322233barEv
+ ~G32223(); // tgen
+ G32223(); // tgen
+};
+//SIG(1 G32223) C1{ VBC2{ VBC3{ v1 v2 Fi} v2 Fi} VBC4{ VBC5{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void G32223 ::foo(){vfunc_called(this, "_ZN6G322233fooEv");}
+void G32223 ::bar(){vfunc_called(this, "_ZN6G322233barEv");}
+G32223 ::~G32223(){ note_dtor("G32223", this);} // tgen
+G32223 ::G32223(){ note_ctor("G32223", this);} // tgen
+
+static void Test_G32223()
+{
+ extern Class_Descriptor cd_G32223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G32223, buf);
+ G32223 *dp, &lv = *(dp=new (buf) G32223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G32223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G32223)");
+ check_base_class_offset(lv, (AA3*)(E32*), ABISELECT(32,16), "G32223");
+ check_base_class_offset(lv, (E32*), ABISELECT(16,8), "G32223");
+ check_base_class_offset(lv, (AA2*)(F22*), ABISELECT(64,32), "G32223");
+ check_base_class_offset(lv, (F22*), ABISELECT(48,24), "G32223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G32223.pg");
+ test_class_info(&lv, &cd_G32223);
+ dp->~G32223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG32223(Test_G32223, "G32223", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G32223C1Ev();
+extern void _ZN6G32223D1Ev();
+Name_Map name_map_G32223[] = {
+ NSPAIR(_ZN6G32223C1Ev),
+ NSPAIR(_ZN6G32223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_E32;
+extern VTBL_ENTRY _ZTI3E32[];
+extern VTBL_ENTRY _ZTV3E32[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E32[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_F22;
+extern VTBL_ENTRY _ZTI3F22[];
+extern VTBL_ENTRY _ZTV3F22[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F22[];
+static Base_Class bases_G32223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E32, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F22, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G32223[];
+extern void _ZN6G322233fooEv();
+extern void _ZN6G322233barEv();
+extern void ABISELECT(_ZTv0_n32_N6G322233barEv,_ZTv0_n16_N6G322233barEv)();
+extern void ABISELECT(_ZThn16_N6G322233barEv,_ZThn8_N6G322233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G322233fooEv,_ZTv0_n12_N6G322233fooEv)();
+extern void ABISELECT(_ZThn32_N6G322233fooEv,_ZThn16_N6G322233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G322233barEv,_ZTv0_n16_N6G322233barEv)();
+extern void ABISELECT(_ZThn32_N6G322233barEv,_ZThn16_N6G322233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G322233barEv,_ZTv0_n16_N6G322233barEv)();
+extern void ABISELECT(_ZThn48_N6G322233barEv,_ZThn24_N6G322233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G322233barEv,_ZTv0_n12_N6G322233barEv)();
+extern void ABISELECT(_ZThn64_N6G322233barEv,_ZThn32_N6G322233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G32223[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G32223[0]),
+ (VTBL_ENTRY)&_ZN6G322233fooEv,
+ (VTBL_ENTRY)&_ZN6G322233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G32223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G322233barEv,_ZTv0_n16_N6G322233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G32223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G322233fooEv,_ZTv0_n12_N6G322233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G322233barEv,_ZTv0_n16_N6G322233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G32223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G322233barEv,_ZTv0_n16_N6G322233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G32223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G322233barEv,_ZTv0_n12_N6G322233barEv),
+};
+extern VTBL_ENTRY _ZTV6G32223[];
+extern void _ZN3E323barEv();
+static VTBL_ENTRY _tg__ZTV3E32__6G32223[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E32[0]),
+ (VTBL_ENTRY)&_ZN3E323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N3E323barEv,_ZTv0_n16_N3E323barEv)();
+extern void ABISELECT(_ZThn16_N3E323barEv,_ZThn8_N3E323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__3E32__6G32223[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E32[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3E323barEv,_ZTv0_n16_N3E323barEv),
+};
+extern void _ZN3F223barEv();
+static VTBL_ENTRY _tg__ZTV3F22__6G32223[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F22[0]),
+ (VTBL_ENTRY)&_ZN3F223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv)();
+extern void ABISELECT(_ZThn16_N3F223barEv,_ZThn8_N3F223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__3F22__6G32223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F22[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv),
+};
+static VTT_ENTRY vtt_G32223[] = {
+ {&(_ZTV6G32223[6]), 6,28},
+ {&(_ZTV6G32223[12]), 12,28},
+ {&(_ZTV6G32223[17]), 17,28},
+ {&(_ZTV6G32223[23]), 23,28},
+ {&(_ZTV6G32223[27]), 27,28},
+ {&(_tg__ZTV3E32__6G32223[3]), 3,4},
+ {&(_tg__ZTV3AA3__3E32__6G32223[4]), 4,6},
+ {&(_tg__ZTV3F22__6G32223[3]), 3,4},
+ {&(_tg__ZTV3AA2__3F22__6G32223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G32223[];
+extern VTBL_ENTRY _ZTV6G32223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G32223[];
+static VTBL_ENTRY alt_thunk_names164[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F223barEv,_ZThn8_N3F223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3E323barEv,_ZTv0_n16_N3E323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E323barEv,_ZThn8_N3E323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G322233barEv,_ZTv0_n12_N6G322233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G322233barEv,_ZThn32_N6G322233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G322233fooEv,_ZTv0_n12_N6G322233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G322233fooEv,_ZThn16_N6G322233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G322233barEv,_ZTv0_n16_N6G322233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G322233barEv,_ZThn24_N6G322233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G322233barEv,_ZThn16_N6G322233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G322233barEv,_ZThn8_N6G322233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G32223 = { "G32223", // class name
+ bases_G32223, 4,
+ &(vtc_G32223[0]), // expected_vtbl_contents
+ &(vtt_G32223[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G32223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G32223),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G32223),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names164,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G32233 : virtual E32 , virtual F23 {
+ int pg;
+ virtual void foo(); // _ZN6G322333fooEv
+ virtual void bar(); // _ZN6G322333barEv
+ ~G32233(); // tgen
+ G32233(); // tgen
+};
+//SIG(1 G32233) C1{ VBC2{ VBC3{ v1 v2 Fi} v2 Fi} VBC4{ VBC5{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void G32233 ::foo(){vfunc_called(this, "_ZN6G322333fooEv");}
+void G32233 ::bar(){vfunc_called(this, "_ZN6G322333barEv");}
+G32233 ::~G32233(){ note_dtor("G32233", this);} // tgen
+G32233 ::G32233(){ note_ctor("G32233", this);} // tgen
+
+static void Test_G32233()
+{
+ extern Class_Descriptor cd_G32233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G32233, buf);
+ G32233 *dp, &lv = *(dp=new (buf) G32233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G32233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G32233)");
+ check_base_class_offset(lv, (AA3*)(E32*), ABISELECT(32,16), "G32233");
+ check_base_class_offset(lv, (E32*), ABISELECT(16,8), "G32233");
+ check_base_class_offset(lv, (AA2*)(F23*), ABISELECT(64,32), "G32233");
+ check_base_class_offset(lv, (F23*), ABISELECT(48,24), "G32233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G32233.pg");
+ test_class_info(&lv, &cd_G32233);
+ dp->~G32233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG32233(Test_G32233, "G32233", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G32233C1Ev();
+extern void _ZN6G32233D1Ev();
+Name_Map name_map_G32233[] = {
+ NSPAIR(_ZN6G32233C1Ev),
+ NSPAIR(_ZN6G32233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_E32;
+extern VTBL_ENTRY _ZTI3E32[];
+extern VTBL_ENTRY _ZTV3E32[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E32[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_F23;
+extern VTBL_ENTRY _ZTI3F23[];
+extern VTBL_ENTRY _ZTV3F23[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F23[];
+static Base_Class bases_G32233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E32, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F23, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G32233[];
+extern void _ZN6G322333fooEv();
+extern void _ZN6G322333barEv();
+extern void ABISELECT(_ZTv0_n32_N6G322333barEv,_ZTv0_n16_N6G322333barEv)();
+extern void ABISELECT(_ZThn16_N6G322333barEv,_ZThn8_N6G322333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G322333fooEv,_ZTv0_n12_N6G322333fooEv)();
+extern void ABISELECT(_ZThn32_N6G322333fooEv,_ZThn16_N6G322333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G322333barEv,_ZTv0_n16_N6G322333barEv)();
+extern void ABISELECT(_ZThn32_N6G322333barEv,_ZThn16_N6G322333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G322333fooEv,_ZTv0_n16_N6G322333fooEv)();
+extern void ABISELECT(_ZThn48_N6G322333fooEv,_ZThn24_N6G322333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G322333barEv,_ZTv0_n20_N6G322333barEv)();
+extern void ABISELECT(_ZThn48_N6G322333barEv,_ZThn24_N6G322333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G322333barEv,_ZTv0_n12_N6G322333barEv)();
+extern void ABISELECT(_ZThn64_N6G322333barEv,_ZThn32_N6G322333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G32233[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G32233[0]),
+ (VTBL_ENTRY)&_ZN6G322333fooEv,
+ (VTBL_ENTRY)&_ZN6G322333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G32233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G322333barEv,_ZTv0_n16_N6G322333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G32233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G322333fooEv,_ZTv0_n12_N6G322333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G322333barEv,_ZTv0_n16_N6G322333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G32233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G322333fooEv,_ZTv0_n16_N6G322333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G322333barEv,_ZTv0_n20_N6G322333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G32233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G322333barEv,_ZTv0_n12_N6G322333barEv),
+};
+extern VTBL_ENTRY _ZTV6G32233[];
+extern void _ZN3E323barEv();
+static VTBL_ENTRY _tg__ZTV3E32__6G32233[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E32[0]),
+ (VTBL_ENTRY)&_ZN3E323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N3E323barEv,_ZTv0_n16_N3E323barEv)();
+extern void ABISELECT(_ZThn16_N3E323barEv,_ZThn8_N3E323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__3E32__6G32233[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E32[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3E323barEv,_ZTv0_n16_N3E323barEv),
+};
+extern void _ZN3F233fooEv();
+extern void _ZN3F233barEv();
+static VTBL_ENTRY _tg__ZTV3F23__6G32233[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F23[0]),
+ (VTBL_ENTRY)&_ZN3F233fooEv,
+ (VTBL_ENTRY)&_ZN3F233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F233barEv,_ZTv0_n12_N3F233barEv)();
+extern void ABISELECT(_ZThn16_N3F233barEv,_ZThn8_N3F233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__3F23__6G32233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F23[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F233barEv,_ZTv0_n12_N3F233barEv),
+};
+static VTT_ENTRY vtt_G32233[] = {
+ {&(_ZTV6G32233[6]), 6,30},
+ {&(_ZTV6G32233[12]), 12,30},
+ {&(_ZTV6G32233[17]), 17,30},
+ {&(_ZTV6G32233[24]), 24,30},
+ {&(_ZTV6G32233[29]), 29,30},
+ {&(_tg__ZTV3E32__6G32233[3]), 3,4},
+ {&(_tg__ZTV3AA3__3E32__6G32233[4]), 4,6},
+ {&(_tg__ZTV3F23__6G32233[3]), 3,5},
+ {&(_tg__ZTV3AA2__3F23__6G32233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G32233[];
+extern VTBL_ENTRY _ZTV6G32233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G32233[];
+static VTBL_ENTRY alt_thunk_names165[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F233barEv,_ZTv0_n12_N3F233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F233barEv,_ZThn8_N3F233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3E323barEv,_ZTv0_n16_N3E323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E323barEv,_ZThn8_N3E323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G322333barEv,_ZTv0_n12_N6G322333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G322333barEv,_ZThn32_N6G322333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6G322333barEv,_ZTv0_n20_N6G322333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G322333barEv,_ZThn24_N6G322333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G322333fooEv,_ZTv0_n16_N6G322333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G322333fooEv,_ZThn24_N6G322333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G322333fooEv,_ZTv0_n12_N6G322333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G322333fooEv,_ZThn16_N6G322333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G322333barEv,_ZTv0_n16_N6G322333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G322333barEv,_ZThn16_N6G322333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G322333barEv,_ZThn8_N6G322333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G32233 = { "G32233", // class name
+ bases_G32233, 4,
+ &(vtc_G32233[0]), // expected_vtbl_contents
+ &(vtt_G32233[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G32233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G32233),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G32233),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names165,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G32313 : virtual E32 , virtual F31 {
+ int pg;
+ virtual void foo(); // _ZN6G323133fooEv
+ virtual void bar(); // _ZN6G323133barEv
+ ~G32313(); // tgen
+ G32313(); // tgen
+};
+//SIG(1 G32313) C1{ VBC2{ VBC3{ v1 v2 Fi} v2 Fi} VBC4{ VBC3 v1 Fi} v1 v2 Fi}
+
+
+void G32313 ::foo(){vfunc_called(this, "_ZN6G323133fooEv");}
+void G32313 ::bar(){vfunc_called(this, "_ZN6G323133barEv");}
+G32313 ::~G32313(){ note_dtor("G32313", this);} // tgen
+G32313 ::G32313(){ note_ctor("G32313", this);} // tgen
+
+static void Test_G32313()
+{
+ extern Class_Descriptor cd_G32313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_G32313, buf);
+ G32313 *dp, &lv = *(dp=new (buf) G32313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(G32313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G32313)");
+ check_base_class_offset(lv, (AA3*)(E32*), ABISELECT(32,16), "G32313");
+ check_base_class_offset(lv, (AA3*)(F31*), ABISELECT(32,16), "G32313");
+ check_base_class_offset(lv, (E32*), ABISELECT(16,8), "G32313");
+ check_base_class_offset(lv, (F31*), ABISELECT(48,24), "G32313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G32313.pg");
+ test_class_info(&lv, &cd_G32313);
+ dp->~G32313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG32313(Test_G32313, "G32313", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6G32313C1Ev();
+extern void _ZN6G32313D1Ev();
+Name_Map name_map_G32313[] = {
+ NSPAIR(_ZN6G32313C1Ev),
+ NSPAIR(_ZN6G32313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_E32;
+extern VTBL_ENTRY _ZTI3E32[];
+extern VTBL_ENTRY _ZTV3E32[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E32[];
+extern Class_Descriptor cd_F31;
+extern VTBL_ENTRY _ZTI3F31[];
+extern VTBL_ENTRY _ZTV3F31[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F31[];
+static Base_Class bases_G32313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E32, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_F31, 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
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G32313[];
+extern void _ZN6G323133fooEv();
+extern void _ZN6G323133barEv();
+extern void ABISELECT(_ZTv0_n32_N6G323133barEv,_ZTv0_n16_N6G323133barEv)();
+extern void ABISELECT(_ZThn16_N6G323133barEv,_ZThn8_N6G323133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G323133fooEv,_ZTv0_n12_N6G323133fooEv)();
+extern void ABISELECT(_ZThn32_N6G323133fooEv,_ZThn16_N6G323133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G323133barEv,_ZTv0_n16_N6G323133barEv)();
+extern void ABISELECT(_ZThn32_N6G323133barEv,_ZThn16_N6G323133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G323133fooEv,_ZTv0_n16_N6G323133fooEv)();
+extern void ABISELECT(_ZThn48_N6G323133fooEv,_ZThn24_N6G323133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G32313[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G32313[0]),
+ (VTBL_ENTRY)&_ZN6G323133fooEv,
+ (VTBL_ENTRY)&_ZN6G323133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G32313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G323133barEv,_ZTv0_n16_N6G323133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G32313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G323133fooEv,_ZTv0_n12_N6G323133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G323133barEv,_ZTv0_n16_N6G323133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G32313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G323133fooEv,_ZTv0_n16_N6G323133fooEv),
+};
+extern VTBL_ENTRY _ZTV6G32313[];
+extern void _ZN3E323barEv();
+static VTBL_ENTRY _tg__ZTV3E32__6G32313[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E32[0]),
+ (VTBL_ENTRY)&_ZN3E323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N3E323barEv,_ZTv0_n16_N3E323barEv)();
+extern void ABISELECT(_ZThn16_N3E323barEv,_ZThn8_N3E323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__3E32__6G32313[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E32[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3E323barEv,_ZTv0_n16_N3E323barEv),
+};
+extern void _ZN3F313fooEv();
+static VTBL_ENTRY _tg__ZTV3F31__6G32313[] = {
+ ABISELECT(-16,-8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F31[0]),
+ (VTBL_ENTRY)&_ZN3F313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F313fooEv,_ZTv0_n12_N3F313fooEv)();
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__3F31__6G32313[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI3F31[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F313fooEv,_ZTv0_n12_N3F313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+static VTT_ENTRY vtt_G32313[] = {
+ {&(_ZTV6G32313[5]), 5,23},
+ {&(_ZTV6G32313[11]), 11,23},
+ {&(_ZTV6G32313[16]), 16,23},
+ {&(_ZTV6G32313[22]), 22,23},
+ {&(_tg__ZTV3E32__6G32313[3]), 3,4},
+ {&(_tg__ZTV3AA3__3E32__6G32313[4]), 4,6},
+ {&(_tg__ZTV3F31__6G32313[3]), 3,4},
+ {&(_tg__ZTV3AA3__3F31__6G32313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6G32313[];
+extern VTBL_ENTRY _ZTV6G32313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G32313[];
+static VTBL_ENTRY alt_thunk_names166[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3E323barEv,_ZTv0_n16_N3E323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E323barEv,_ZThn8_N3E323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G323133fooEv,_ZTv0_n16_N6G323133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G323133fooEv,_ZThn24_N6G323133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G323133fooEv,_ZTv0_n12_N6G323133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G323133fooEv,_ZThn16_N6G323133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G323133barEv,_ZTv0_n16_N6G323133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G323133barEv,_ZThn16_N6G323133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G323133barEv,_ZThn8_N6G323133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G32313 = { "G32313", // class name
+ bases_G32313, 3,
+ &(vtc_G32313[0]), // expected_vtbl_contents
+ &(vtt_G32313[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6G32313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G32313),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G32313),8, //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 G32323 : virtual E32 , virtual F32 {
+ int pg;
+ virtual void foo(); // _ZN6G323233fooEv
+ virtual void bar(); // _ZN6G323233barEv
+ ~G32323(); // tgen
+ G32323(); // tgen
+};
+//SIG(1 G32323) C1{ VBC2{ VBC3{ v1 v2 Fi} v2 Fi} VBC4{ VBC3 v2 Fi} v1 v2 Fi}
+
+
+void G32323 ::foo(){vfunc_called(this, "_ZN6G323233fooEv");}
+void G32323 ::bar(){vfunc_called(this, "_ZN6G323233barEv");}
+G32323 ::~G32323(){ note_dtor("G32323", this);} // tgen
+G32323 ::G32323(){ note_ctor("G32323", this);} // tgen
+
+static void Test_G32323()
+{
+ extern Class_Descriptor cd_G32323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_G32323, buf);
+ G32323 *dp, &lv = *(dp=new (buf) G32323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(G32323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G32323)");
+ check_base_class_offset(lv, (AA3*)(E32*), ABISELECT(32,16), "G32323");
+ check_base_class_offset(lv, (AA3*)(F32*), ABISELECT(32,16), "G32323");
+ check_base_class_offset(lv, (E32*), ABISELECT(16,8), "G32323");
+ check_base_class_offset(lv, (F32*), ABISELECT(48,24), "G32323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G32323.pg");
+ test_class_info(&lv, &cd_G32323);
+ dp->~G32323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG32323(Test_G32323, "G32323", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6G32323C1Ev();
+extern void _ZN6G32323D1Ev();
+Name_Map name_map_G32323[] = {
+ NSPAIR(_ZN6G32323C1Ev),
+ NSPAIR(_ZN6G32323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_E32;
+extern VTBL_ENTRY _ZTI3E32[];
+extern VTBL_ENTRY _ZTV3E32[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E32[];
+extern Class_Descriptor cd_F32;
+extern VTBL_ENTRY _ZTI3F32[];
+extern VTBL_ENTRY _ZTV3F32[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F32[];
+static Base_Class bases_G32323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E32, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_F32, 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
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G32323[];
+extern void _ZN6G323233fooEv();
+extern void _ZN6G323233barEv();
+extern void ABISELECT(_ZTv0_n32_N6G323233barEv,_ZTv0_n16_N6G323233barEv)();
+extern void ABISELECT(_ZThn16_N6G323233barEv,_ZThn8_N6G323233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G323233fooEv,_ZTv0_n12_N6G323233fooEv)();
+extern void ABISELECT(_ZThn32_N6G323233fooEv,_ZThn16_N6G323233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G323233barEv,_ZTv0_n16_N6G323233barEv)();
+extern void ABISELECT(_ZThn32_N6G323233barEv,_ZThn16_N6G323233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G323233barEv,_ZTv0_n16_N6G323233barEv)();
+extern void ABISELECT(_ZThn48_N6G323233barEv,_ZThn24_N6G323233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G32323[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G32323[0]),
+ (VTBL_ENTRY)&_ZN6G323233fooEv,
+ (VTBL_ENTRY)&_ZN6G323233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G32323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G323233barEv,_ZTv0_n16_N6G323233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G32323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G323233fooEv,_ZTv0_n12_N6G323233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G323233barEv,_ZTv0_n16_N6G323233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G32323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G323233barEv,_ZTv0_n16_N6G323233barEv),
+};
+extern VTBL_ENTRY _ZTV6G32323[];
+extern void _ZN3E323barEv();
+static VTBL_ENTRY _tg__ZTV3E32__6G32323[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E32[0]),
+ (VTBL_ENTRY)&_ZN3E323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N3E323barEv,_ZTv0_n16_N3E323barEv)();
+extern void ABISELECT(_ZThn16_N3E323barEv,_ZThn8_N3E323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__3E32__6G32323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E32[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3E323barEv,_ZTv0_n16_N3E323barEv),
+};
+extern void _ZN3F323barEv();
+static VTBL_ENTRY _tg__ZTV3F32__6G32323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F32[0]),
+ (VTBL_ENTRY)&_ZN3F323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N3F323barEv,_ZTv0_n16_N3F323barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__3F32__6G32323[] = {
+ ABISELECT(16,8),
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI3F32[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3F323barEv,_ZTv0_n16_N3F323barEv),
+};
+static VTT_ENTRY vtt_G32323[] = {
+ {&(_ZTV6G32323[5]), 5,23},
+ {&(_ZTV6G32323[11]), 11,23},
+ {&(_ZTV6G32323[16]), 16,23},
+ {&(_ZTV6G32323[22]), 22,23},
+ {&(_tg__ZTV3E32__6G32323[3]), 3,4},
+ {&(_tg__ZTV3AA3__3E32__6G32323[4]), 4,6},
+ {&(_tg__ZTV3F32__6G32323[3]), 3,4},
+ {&(_tg__ZTV3AA3__3F32__6G32323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6G32323[];
+extern VTBL_ENTRY _ZTV6G32323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G32323[];
+static VTBL_ENTRY alt_thunk_names167[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3E323barEv,_ZTv0_n16_N3E323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E323barEv,_ZThn8_N3E323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G323233fooEv,_ZTv0_n12_N6G323233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G323233fooEv,_ZThn16_N6G323233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G323233barEv,_ZTv0_n16_N6G323233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G323233barEv,_ZThn24_N6G323233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G323233barEv,_ZThn16_N6G323233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G323233barEv,_ZThn8_N6G323233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G32323 = { "G32323", // class name
+ bases_G32323, 3,
+ &(vtc_G32323[0]), // expected_vtbl_contents
+ &(vtt_G32323[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6G32323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G32323),23, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G32323),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names167,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G32333 : virtual E32 , virtual F33 {
+ int pg;
+ virtual void foo(); // _ZN6G323333fooEv
+ virtual void bar(); // _ZN6G323333barEv
+ ~G32333(); // tgen
+ G32333(); // tgen
+};
+//SIG(1 G32333) C1{ VBC2{ VBC3{ v1 v2 Fi} v2 Fi} VBC4{ VBC3 v1 v2 Fi} v1 v2 Fi}
+
+
+void G32333 ::foo(){vfunc_called(this, "_ZN6G323333fooEv");}
+void G32333 ::bar(){vfunc_called(this, "_ZN6G323333barEv");}
+G32333 ::~G32333(){ note_dtor("G32333", this);} // tgen
+G32333 ::G32333(){ note_ctor("G32333", this);} // tgen
+
+static void Test_G32333()
+{
+ extern Class_Descriptor cd_G32333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_G32333, buf);
+ G32333 *dp, &lv = *(dp=new (buf) G32333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(G32333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G32333)");
+ check_base_class_offset(lv, (AA3*)(E32*), ABISELECT(32,16), "G32333");
+ check_base_class_offset(lv, (AA3*)(F33*), ABISELECT(32,16), "G32333");
+ check_base_class_offset(lv, (E32*), ABISELECT(16,8), "G32333");
+ check_base_class_offset(lv, (F33*), ABISELECT(48,24), "G32333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G32333.pg");
+ test_class_info(&lv, &cd_G32333);
+ dp->~G32333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG32333(Test_G32333, "G32333", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6G32333C1Ev();
+extern void _ZN6G32333D1Ev();
+Name_Map name_map_G32333[] = {
+ NSPAIR(_ZN6G32333C1Ev),
+ NSPAIR(_ZN6G32333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_E32;
+extern VTBL_ENTRY _ZTI3E32[];
+extern VTBL_ENTRY _ZTV3E32[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E32[];
+extern Class_Descriptor cd_F33;
+extern VTBL_ENTRY _ZTI3F33[];
+extern VTBL_ENTRY _ZTV3F33[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F33[];
+static Base_Class bases_G32333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E32, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_F33, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G32333[];
+extern void _ZN6G323333fooEv();
+extern void _ZN6G323333barEv();
+extern void ABISELECT(_ZTv0_n32_N6G323333barEv,_ZTv0_n16_N6G323333barEv)();
+extern void ABISELECT(_ZThn16_N6G323333barEv,_ZThn8_N6G323333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G323333fooEv,_ZTv0_n12_N6G323333fooEv)();
+extern void ABISELECT(_ZThn32_N6G323333fooEv,_ZThn16_N6G323333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G323333barEv,_ZTv0_n16_N6G323333barEv)();
+extern void ABISELECT(_ZThn32_N6G323333barEv,_ZThn16_N6G323333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G323333fooEv,_ZTv0_n16_N6G323333fooEv)();
+extern void ABISELECT(_ZThn48_N6G323333fooEv,_ZThn24_N6G323333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G323333barEv,_ZTv0_n20_N6G323333barEv)();
+extern void ABISELECT(_ZThn48_N6G323333barEv,_ZThn24_N6G323333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G32333[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G32333[0]),
+ (VTBL_ENTRY)&_ZN6G323333fooEv,
+ (VTBL_ENTRY)&_ZN6G323333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G32333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G323333barEv,_ZTv0_n16_N6G323333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G32333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G323333fooEv,_ZTv0_n12_N6G323333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G323333barEv,_ZTv0_n16_N6G323333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G32333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G323333fooEv,_ZTv0_n16_N6G323333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G323333barEv,_ZTv0_n20_N6G323333barEv),
+};
+extern VTBL_ENTRY _ZTV6G32333[];
+extern void _ZN3E323barEv();
+static VTBL_ENTRY _tg__ZTV3E32__6G32333[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E32[0]),
+ (VTBL_ENTRY)&_ZN3E323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N3E323barEv,_ZTv0_n16_N3E323barEv)();
+extern void ABISELECT(_ZThn16_N3E323barEv,_ZThn8_N3E323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__3E32__6G32333[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E32[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3E323barEv,_ZTv0_n16_N3E323barEv),
+};
+extern void _ZN3F333fooEv();
+extern void _ZN3F333barEv();
+static VTBL_ENTRY _tg__ZTV3F33__6G32333[] = {
+ ABISELECT(-16,-8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F33[0]),
+ (VTBL_ENTRY)&_ZN3F333fooEv,
+ (VTBL_ENTRY)&_ZN3F333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F333fooEv,_ZTv0_n12_N3F333fooEv)();
+extern void ABISELECT(_ZTv0_n32_N3F333barEv,_ZTv0_n16_N3F333barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__3F33__6G32333[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI3F33[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F333fooEv,_ZTv0_n12_N3F333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3F333barEv,_ZTv0_n16_N3F333barEv),
+};
+static VTT_ENTRY vtt_G32333[] = {
+ {&(_ZTV6G32333[5]), 5,25},
+ {&(_ZTV6G32333[11]), 11,25},
+ {&(_ZTV6G32333[16]), 16,25},
+ {&(_ZTV6G32333[23]), 23,25},
+ {&(_tg__ZTV3E32__6G32333[3]), 3,4},
+ {&(_tg__ZTV3AA3__3E32__6G32333[4]), 4,6},
+ {&(_tg__ZTV3F33__6G32333[3]), 3,5},
+ {&(_tg__ZTV3AA3__3F33__6G32333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6G32333[];
+extern VTBL_ENTRY _ZTV6G32333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G32333[];
+static VTBL_ENTRY alt_thunk_names168[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3E323barEv,_ZTv0_n16_N3E323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E323barEv,_ZThn8_N3E323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6G323333barEv,_ZTv0_n20_N6G323333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G323333barEv,_ZThn24_N6G323333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G323333fooEv,_ZTv0_n16_N6G323333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G323333fooEv,_ZThn24_N6G323333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G323333fooEv,_ZTv0_n12_N6G323333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G323333fooEv,_ZThn16_N6G323333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G323333barEv,_ZTv0_n16_N6G323333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G323333barEv,_ZThn16_N6G323333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G323333barEv,_ZThn8_N6G323333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G32333 = { "G32333", // class name
+ bases_G32333, 3,
+ &(vtc_G32333[0]), // expected_vtbl_contents
+ &(vtt_G32333[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6G32333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G32333),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G32333),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 G33111 : virtual E33 , virtual F11 {
+ int pg;
+ virtual void foo(); // _ZN6G331113fooEv
+ ~G33111(); // tgen
+ G33111(); // tgen
+};
+//SIG(1 G33111) C1{ VBC2{ VBC3{ v1 v2 Fi} v1 v2 Fi} VBC4{ VBC5{ v1 Fi} v1 Fi} v1 Fi}
+
+
+void G33111 ::foo(){vfunc_called(this, "_ZN6G331113fooEv");}
+G33111 ::~G33111(){ note_dtor("G33111", this);} // tgen
+G33111 ::G33111(){ note_ctor("G33111", this);} // tgen
+
+static void Test_G33111()
+{
+ extern Class_Descriptor cd_G33111;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G33111, buf);
+ G33111 *dp, &lv = *(dp=new (buf) G33111());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G33111)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G33111)");
+ check_base_class_offset(lv, (AA3*)(E33*), ABISELECT(32,16), "G33111");
+ check_base_class_offset(lv, (E33*), ABISELECT(16,8), "G33111");
+ check_base_class_offset(lv, (AA1*)(F11*), ABISELECT(64,32), "G33111");
+ check_base_class_offset(lv, (F11*), ABISELECT(48,24), "G33111");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G33111.pg");
+ test_class_info(&lv, &cd_G33111);
+ dp->~G33111();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG33111(Test_G33111, "G33111", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G33111C1Ev();
+extern void _ZN6G33111D1Ev();
+Name_Map name_map_G33111[] = {
+ NSPAIR(_ZN6G33111C1Ev),
+ NSPAIR(_ZN6G33111D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_E33;
+extern VTBL_ENTRY _ZTI3E33[];
+extern VTBL_ENTRY _ZTV3E33[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E33[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_F11;
+extern VTBL_ENTRY _ZTI3F11[];
+extern VTBL_ENTRY _ZTV3F11[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F11[];
+static Base_Class bases_G33111[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E33, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F11, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G33111[];
+extern void _ZN6G331113fooEv();
+extern void ABISELECT(_ZTv0_n32_N6G331113fooEv,_ZTv0_n16_N6G331113fooEv)();
+extern void ABISELECT(_ZThn16_N6G331113fooEv,_ZThn8_N6G331113fooEv)() __attribute__((weak));
+extern void _ZN3E333barEv();
+extern void ABISELECT(_ZTv0_n24_N6G331113fooEv,_ZTv0_n12_N6G331113fooEv)();
+extern void ABISELECT(_ZThn32_N6G331113fooEv,_ZThn16_N6G331113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N3E333barEv,_ZTv0_n16_N3E333barEv)();
+extern void ABISELECT(_ZThn16_N3E333barEv,_ZThn8_N3E333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G331113fooEv,_ZTv0_n16_N6G331113fooEv)();
+extern void ABISELECT(_ZThn48_N6G331113fooEv,_ZThn24_N6G331113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G331113fooEv,_ZTv0_n12_N6G331113fooEv)();
+extern void ABISELECT(_ZThn64_N6G331113fooEv,_ZThn32_N6G331113fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G33111[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G33111[0]),
+ (VTBL_ENTRY)&_ZN6G331113fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G33111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G331113fooEv,_ZTv0_n16_N6G331113fooEv),
+ (VTBL_ENTRY)&_ZN3E333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G33111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G331113fooEv,_ZTv0_n12_N6G331113fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3E333barEv,_ZTv0_n16_N3E333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G33111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G331113fooEv,_ZTv0_n16_N6G331113fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G33111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G331113fooEv,_ZTv0_n12_N6G331113fooEv),
+};
+extern VTBL_ENTRY _ZTV6G33111[];
+extern void _ZN3E333fooEv();
+extern void _ZN3E333barEv();
+static VTBL_ENTRY _tg__ZTV3E33__6G33111[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E33[0]),
+ (VTBL_ENTRY)&_ZN3E333fooEv,
+ (VTBL_ENTRY)&_ZN3E333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E333fooEv,_ZTv0_n12_N3E333fooEv)();
+extern void ABISELECT(_ZThn16_N3E333fooEv,_ZThn8_N3E333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N3E333barEv,_ZTv0_n16_N3E333barEv)();
+extern void ABISELECT(_ZThn16_N3E333barEv,_ZThn8_N3E333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__3E33__6G33111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E33[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E333fooEv,_ZTv0_n12_N3E333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3E333barEv,_ZTv0_n16_N3E333barEv),
+};
+extern void _ZN3F113fooEv();
+static VTBL_ENTRY _tg__ZTV3F11__6G33111[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F11[0]),
+ (VTBL_ENTRY)&_ZN3F113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv)();
+extern void ABISELECT(_ZThn16_N3F113fooEv,_ZThn8_N3F113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__3F11__6G33111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F11[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv),
+};
+static VTT_ENTRY vtt_G33111[] = {
+ {&(_ZTV6G33111[6]), 6,29},
+ {&(_ZTV6G33111[12]), 12,29},
+ {&(_ZTV6G33111[18]), 18,29},
+ {&(_ZTV6G33111[24]), 24,29},
+ {&(_ZTV6G33111[28]), 28,29},
+ {&(_tg__ZTV3E33__6G33111[3]), 3,5},
+ {&(_tg__ZTV3AA3__3E33__6G33111[4]), 4,6},
+ {&(_tg__ZTV3F11__6G33111[3]), 3,4},
+ {&(_tg__ZTV3AA1__3F11__6G33111[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G33111[];
+extern VTBL_ENTRY _ZTV6G33111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G33111[];
+static VTBL_ENTRY alt_thunk_names169[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F113fooEv,_ZThn8_N3F113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E333fooEv,_ZTv0_n12_N3E333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E333fooEv,_ZThn8_N3E333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3E333barEv,_ZTv0_n16_N3E333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E333barEv,_ZThn8_N3E333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E333barEv,_ZThn8_N3E333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G331113fooEv,_ZTv0_n12_N6G331113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G331113fooEv,_ZThn32_N6G331113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G331113fooEv,_ZThn16_N6G331113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G331113fooEv,_ZTv0_n16_N6G331113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G331113fooEv,_ZThn24_N6G331113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G331113fooEv,_ZThn8_N6G331113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G33111 = { "G33111", // class name
+ bases_G33111, 4,
+ &(vtc_G33111[0]), // expected_vtbl_contents
+ &(vtt_G33111[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G33111),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G33111),29, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G33111),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names169,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G33113 : virtual E33 , virtual F11 {
+ int pg;
+ virtual void foo(); // _ZN6G331133fooEv
+ virtual void bar(); // _ZN6G331133barEv
+ ~G33113(); // tgen
+ G33113(); // tgen
+};
+//SIG(1 G33113) C1{ VBC2{ VBC3{ v1 v2 Fi} v1 v2 Fi} VBC4{ VBC5{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void G33113 ::foo(){vfunc_called(this, "_ZN6G331133fooEv");}
+void G33113 ::bar(){vfunc_called(this, "_ZN6G331133barEv");}
+G33113 ::~G33113(){ note_dtor("G33113", this);} // tgen
+G33113 ::G33113(){ note_ctor("G33113", this);} // tgen
+
+static void Test_G33113()
+{
+ extern Class_Descriptor cd_G33113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G33113, buf);
+ G33113 *dp, &lv = *(dp=new (buf) G33113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G33113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G33113)");
+ check_base_class_offset(lv, (AA3*)(E33*), ABISELECT(32,16), "G33113");
+ check_base_class_offset(lv, (E33*), ABISELECT(16,8), "G33113");
+ check_base_class_offset(lv, (AA1*)(F11*), ABISELECT(64,32), "G33113");
+ check_base_class_offset(lv, (F11*), ABISELECT(48,24), "G33113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G33113.pg");
+ test_class_info(&lv, &cd_G33113);
+ dp->~G33113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG33113(Test_G33113, "G33113", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G33113C1Ev();
+extern void _ZN6G33113D1Ev();
+Name_Map name_map_G33113[] = {
+ NSPAIR(_ZN6G33113C1Ev),
+ NSPAIR(_ZN6G33113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_E33;
+extern VTBL_ENTRY _ZTI3E33[];
+extern VTBL_ENTRY _ZTV3E33[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E33[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_F11;
+extern VTBL_ENTRY _ZTI3F11[];
+extern VTBL_ENTRY _ZTV3F11[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F11[];
+static Base_Class bases_G33113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E33, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F11, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G33113[];
+extern void _ZN6G331133fooEv();
+extern void _ZN6G331133barEv();
+extern void ABISELECT(_ZTv0_n32_N6G331133fooEv,_ZTv0_n16_N6G331133fooEv)();
+extern void ABISELECT(_ZThn16_N6G331133fooEv,_ZThn8_N6G331133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G331133barEv,_ZTv0_n20_N6G331133barEv)();
+extern void ABISELECT(_ZThn16_N6G331133barEv,_ZThn8_N6G331133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G331133fooEv,_ZTv0_n12_N6G331133fooEv)();
+extern void ABISELECT(_ZThn32_N6G331133fooEv,_ZThn16_N6G331133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G331133barEv,_ZTv0_n16_N6G331133barEv)();
+extern void ABISELECT(_ZThn32_N6G331133barEv,_ZThn16_N6G331133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G331133fooEv,_ZTv0_n16_N6G331133fooEv)();
+extern void ABISELECT(_ZThn48_N6G331133fooEv,_ZThn24_N6G331133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G331133fooEv,_ZTv0_n12_N6G331133fooEv)();
+extern void ABISELECT(_ZThn64_N6G331133fooEv,_ZThn32_N6G331133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G33113[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G33113[0]),
+ (VTBL_ENTRY)&_ZN6G331133fooEv,
+ (VTBL_ENTRY)&_ZN6G331133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G33113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G331133fooEv,_ZTv0_n16_N6G331133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G331133barEv,_ZTv0_n20_N6G331133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G33113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G331133fooEv,_ZTv0_n12_N6G331133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G331133barEv,_ZTv0_n16_N6G331133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G33113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G331133fooEv,_ZTv0_n16_N6G331133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G33113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G331133fooEv,_ZTv0_n12_N6G331133fooEv),
+};
+extern VTBL_ENTRY _ZTV6G33113[];
+extern void _ZN3E333fooEv();
+extern void _ZN3E333barEv();
+static VTBL_ENTRY _tg__ZTV3E33__6G33113[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E33[0]),
+ (VTBL_ENTRY)&_ZN3E333fooEv,
+ (VTBL_ENTRY)&_ZN3E333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E333fooEv,_ZTv0_n12_N3E333fooEv)();
+extern void ABISELECT(_ZThn16_N3E333fooEv,_ZThn8_N3E333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N3E333barEv,_ZTv0_n16_N3E333barEv)();
+extern void ABISELECT(_ZThn16_N3E333barEv,_ZThn8_N3E333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__3E33__6G33113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E33[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E333fooEv,_ZTv0_n12_N3E333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3E333barEv,_ZTv0_n16_N3E333barEv),
+};
+extern void _ZN3F113fooEv();
+static VTBL_ENTRY _tg__ZTV3F11__6G33113[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F11[0]),
+ (VTBL_ENTRY)&_ZN3F113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv)();
+extern void ABISELECT(_ZThn16_N3F113fooEv,_ZThn8_N3F113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__3F11__6G33113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F11[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv),
+};
+static VTT_ENTRY vtt_G33113[] = {
+ {&(_ZTV6G33113[6]), 6,30},
+ {&(_ZTV6G33113[13]), 13,30},
+ {&(_ZTV6G33113[19]), 19,30},
+ {&(_ZTV6G33113[25]), 25,30},
+ {&(_ZTV6G33113[29]), 29,30},
+ {&(_tg__ZTV3E33__6G33113[3]), 3,5},
+ {&(_tg__ZTV3AA3__3E33__6G33113[4]), 4,6},
+ {&(_tg__ZTV3F11__6G33113[3]), 3,4},
+ {&(_tg__ZTV3AA1__3F11__6G33113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G33113[];
+extern VTBL_ENTRY _ZTV6G33113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G33113[];
+static VTBL_ENTRY alt_thunk_names170[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F113fooEv,_ZTv0_n12_N3F113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F113fooEv,_ZThn8_N3F113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3E333barEv,_ZTv0_n16_N3E333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E333barEv,_ZThn8_N3E333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E333fooEv,_ZTv0_n12_N3E333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E333fooEv,_ZThn8_N3E333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G331133barEv,_ZTv0_n16_N6G331133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G331133barEv,_ZThn16_N6G331133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G331133fooEv,_ZTv0_n12_N6G331133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G331133fooEv,_ZThn32_N6G331133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G331133fooEv,_ZThn16_N6G331133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6G331133barEv,_ZTv0_n20_N6G331133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G331133barEv,_ZThn8_N6G331133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G331133fooEv,_ZTv0_n16_N6G331133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G331133fooEv,_ZThn24_N6G331133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G331133fooEv,_ZThn8_N6G331133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G33113 = { "G33113", // class name
+ bases_G33113, 4,
+ &(vtc_G33113[0]), // expected_vtbl_contents
+ &(vtt_G33113[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G33113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G33113),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G33113),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names170,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G33123 : virtual E33 , virtual F12 {
+ int pg;
+ virtual void foo(); // _ZN6G331233fooEv
+ virtual void bar(); // _ZN6G331233barEv
+ ~G33123(); // tgen
+ G33123(); // tgen
+};
+//SIG(1 G33123) C1{ VBC2{ VBC3{ v1 v2 Fi} v1 v2 Fi} VBC4{ VBC5{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void G33123 ::foo(){vfunc_called(this, "_ZN6G331233fooEv");}
+void G33123 ::bar(){vfunc_called(this, "_ZN6G331233barEv");}
+G33123 ::~G33123(){ note_dtor("G33123", this);} // tgen
+G33123 ::G33123(){ note_ctor("G33123", this);} // tgen
+
+static void Test_G33123()
+{
+ extern Class_Descriptor cd_G33123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G33123, buf);
+ G33123 *dp, &lv = *(dp=new (buf) G33123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G33123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G33123)");
+ check_base_class_offset(lv, (AA3*)(E33*), ABISELECT(32,16), "G33123");
+ check_base_class_offset(lv, (E33*), ABISELECT(16,8), "G33123");
+ check_base_class_offset(lv, (AA1*)(F12*), ABISELECT(64,32), "G33123");
+ check_base_class_offset(lv, (F12*), ABISELECT(48,24), "G33123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G33123.pg");
+ test_class_info(&lv, &cd_G33123);
+ dp->~G33123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG33123(Test_G33123, "G33123", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G33123C1Ev();
+extern void _ZN6G33123D1Ev();
+Name_Map name_map_G33123[] = {
+ NSPAIR(_ZN6G33123C1Ev),
+ NSPAIR(_ZN6G33123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_E33;
+extern VTBL_ENTRY _ZTI3E33[];
+extern VTBL_ENTRY _ZTV3E33[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E33[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_F12;
+extern VTBL_ENTRY _ZTI3F12[];
+extern VTBL_ENTRY _ZTV3F12[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F12[];
+static Base_Class bases_G33123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E33, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F12, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G33123[];
+extern void _ZN6G331233fooEv();
+extern void _ZN6G331233barEv();
+extern void ABISELECT(_ZTv0_n32_N6G331233fooEv,_ZTv0_n16_N6G331233fooEv)();
+extern void ABISELECT(_ZThn16_N6G331233fooEv,_ZThn8_N6G331233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G331233barEv,_ZTv0_n20_N6G331233barEv)();
+extern void ABISELECT(_ZThn16_N6G331233barEv,_ZThn8_N6G331233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G331233fooEv,_ZTv0_n12_N6G331233fooEv)();
+extern void ABISELECT(_ZThn32_N6G331233fooEv,_ZThn16_N6G331233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G331233barEv,_ZTv0_n16_N6G331233barEv)();
+extern void ABISELECT(_ZThn32_N6G331233barEv,_ZThn16_N6G331233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G331233barEv,_ZTv0_n16_N6G331233barEv)();
+extern void ABISELECT(_ZThn48_N6G331233barEv,_ZThn24_N6G331233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G331233fooEv,_ZTv0_n12_N6G331233fooEv)();
+extern void ABISELECT(_ZThn64_N6G331233fooEv,_ZThn32_N6G331233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G33123[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G33123[0]),
+ (VTBL_ENTRY)&_ZN6G331233fooEv,
+ (VTBL_ENTRY)&_ZN6G331233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G33123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G331233fooEv,_ZTv0_n16_N6G331233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G331233barEv,_ZTv0_n20_N6G331233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G33123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G331233fooEv,_ZTv0_n12_N6G331233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G331233barEv,_ZTv0_n16_N6G331233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G33123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G331233barEv,_ZTv0_n16_N6G331233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G33123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G331233fooEv,_ZTv0_n12_N6G331233fooEv),
+};
+extern VTBL_ENTRY _ZTV6G33123[];
+extern void _ZN3E333fooEv();
+extern void _ZN3E333barEv();
+static VTBL_ENTRY _tg__ZTV3E33__6G33123[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E33[0]),
+ (VTBL_ENTRY)&_ZN3E333fooEv,
+ (VTBL_ENTRY)&_ZN3E333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E333fooEv,_ZTv0_n12_N3E333fooEv)();
+extern void ABISELECT(_ZThn16_N3E333fooEv,_ZThn8_N3E333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N3E333barEv,_ZTv0_n16_N3E333barEv)();
+extern void ABISELECT(_ZThn16_N3E333barEv,_ZThn8_N3E333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__3E33__6G33123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E33[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E333fooEv,_ZTv0_n12_N3E333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3E333barEv,_ZTv0_n16_N3E333barEv),
+};
+extern void _ZN3F123barEv();
+static VTBL_ENTRY _tg__ZTV3F12__6G33123[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F12[0]),
+ (VTBL_ENTRY)&_ZN3F123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__3F12__6G33123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F12[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+static VTT_ENTRY vtt_G33123[] = {
+ {&(_ZTV6G33123[6]), 6,30},
+ {&(_ZTV6G33123[13]), 13,30},
+ {&(_ZTV6G33123[19]), 19,30},
+ {&(_ZTV6G33123[25]), 25,30},
+ {&(_ZTV6G33123[29]), 29,30},
+ {&(_tg__ZTV3E33__6G33123[3]), 3,5},
+ {&(_tg__ZTV3AA3__3E33__6G33123[4]), 4,6},
+ {&(_tg__ZTV3F12__6G33123[3]), 3,4},
+ {&(_tg__ZTV3AA1__3F12__6G33123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G33123[];
+extern VTBL_ENTRY _ZTV6G33123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G33123[];
+static VTBL_ENTRY alt_thunk_names171[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3E333barEv,_ZTv0_n16_N3E333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E333barEv,_ZThn8_N3E333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E333fooEv,_ZTv0_n12_N3E333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E333fooEv,_ZThn8_N3E333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G331233barEv,_ZTv0_n16_N6G331233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G331233barEv,_ZThn24_N6G331233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G331233barEv,_ZThn16_N6G331233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G331233fooEv,_ZTv0_n12_N6G331233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G331233fooEv,_ZThn32_N6G331233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G331233fooEv,_ZThn16_N6G331233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6G331233barEv,_ZTv0_n20_N6G331233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G331233barEv,_ZThn8_N6G331233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G331233fooEv,_ZTv0_n16_N6G331233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G331233fooEv,_ZThn8_N6G331233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G33123 = { "G33123", // class name
+ bases_G33123, 4,
+ &(vtc_G33123[0]), // expected_vtbl_contents
+ &(vtt_G33123[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G33123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G33123),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G33123),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names171,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G33133 : virtual E33 , virtual F13 {
+ int pg;
+ virtual void foo(); // _ZN6G331333fooEv
+ virtual void bar(); // _ZN6G331333barEv
+ ~G33133(); // tgen
+ G33133(); // tgen
+};
+//SIG(1 G33133) C1{ VBC2{ VBC3{ v1 v2 Fi} v1 v2 Fi} VBC4{ VBC5{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void G33133 ::foo(){vfunc_called(this, "_ZN6G331333fooEv");}
+void G33133 ::bar(){vfunc_called(this, "_ZN6G331333barEv");}
+G33133 ::~G33133(){ note_dtor("G33133", this);} // tgen
+G33133 ::G33133(){ note_ctor("G33133", this);} // tgen
+
+static void Test_G33133()
+{
+ extern Class_Descriptor cd_G33133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G33133, buf);
+ G33133 *dp, &lv = *(dp=new (buf) G33133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G33133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G33133)");
+ check_base_class_offset(lv, (AA3*)(E33*), ABISELECT(32,16), "G33133");
+ check_base_class_offset(lv, (E33*), ABISELECT(16,8), "G33133");
+ check_base_class_offset(lv, (AA1*)(F13*), ABISELECT(64,32), "G33133");
+ check_base_class_offset(lv, (F13*), ABISELECT(48,24), "G33133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G33133.pg");
+ test_class_info(&lv, &cd_G33133);
+ dp->~G33133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG33133(Test_G33133, "G33133", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G33133C1Ev();
+extern void _ZN6G33133D1Ev();
+Name_Map name_map_G33133[] = {
+ NSPAIR(_ZN6G33133C1Ev),
+ NSPAIR(_ZN6G33133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_E33;
+extern VTBL_ENTRY _ZTI3E33[];
+extern VTBL_ENTRY _ZTV3E33[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E33[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_F13;
+extern VTBL_ENTRY _ZTI3F13[];
+extern VTBL_ENTRY _ZTV3F13[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F13[];
+static Base_Class bases_G33133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E33, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F13, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G33133[];
+extern void _ZN6G331333fooEv();
+extern void _ZN6G331333barEv();
+extern void ABISELECT(_ZTv0_n32_N6G331333fooEv,_ZTv0_n16_N6G331333fooEv)();
+extern void ABISELECT(_ZThn16_N6G331333fooEv,_ZThn8_N6G331333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G331333barEv,_ZTv0_n20_N6G331333barEv)();
+extern void ABISELECT(_ZThn16_N6G331333barEv,_ZThn8_N6G331333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G331333fooEv,_ZTv0_n12_N6G331333fooEv)();
+extern void ABISELECT(_ZThn32_N6G331333fooEv,_ZThn16_N6G331333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G331333barEv,_ZTv0_n16_N6G331333barEv)();
+extern void ABISELECT(_ZThn32_N6G331333barEv,_ZThn16_N6G331333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G331333fooEv,_ZTv0_n16_N6G331333fooEv)();
+extern void ABISELECT(_ZThn48_N6G331333fooEv,_ZThn24_N6G331333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G331333barEv,_ZTv0_n20_N6G331333barEv)();
+extern void ABISELECT(_ZThn48_N6G331333barEv,_ZThn24_N6G331333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G331333fooEv,_ZTv0_n12_N6G331333fooEv)();
+extern void ABISELECT(_ZThn64_N6G331333fooEv,_ZThn32_N6G331333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G33133[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G33133[0]),
+ (VTBL_ENTRY)&_ZN6G331333fooEv,
+ (VTBL_ENTRY)&_ZN6G331333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G33133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G331333fooEv,_ZTv0_n16_N6G331333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G331333barEv,_ZTv0_n20_N6G331333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G33133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G331333fooEv,_ZTv0_n12_N6G331333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G331333barEv,_ZTv0_n16_N6G331333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G33133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G331333fooEv,_ZTv0_n16_N6G331333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G331333barEv,_ZTv0_n20_N6G331333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G33133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G331333fooEv,_ZTv0_n12_N6G331333fooEv),
+};
+extern VTBL_ENTRY _ZTV6G33133[];
+extern void _ZN3E333fooEv();
+extern void _ZN3E333barEv();
+static VTBL_ENTRY _tg__ZTV3E33__6G33133[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E33[0]),
+ (VTBL_ENTRY)&_ZN3E333fooEv,
+ (VTBL_ENTRY)&_ZN3E333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E333fooEv,_ZTv0_n12_N3E333fooEv)();
+extern void ABISELECT(_ZThn16_N3E333fooEv,_ZThn8_N3E333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N3E333barEv,_ZTv0_n16_N3E333barEv)();
+extern void ABISELECT(_ZThn16_N3E333barEv,_ZThn8_N3E333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__3E33__6G33133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E33[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E333fooEv,_ZTv0_n12_N3E333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3E333barEv,_ZTv0_n16_N3E333barEv),
+};
+extern void _ZN3F133fooEv();
+extern void _ZN3F133barEv();
+static VTBL_ENTRY _tg__ZTV3F13__6G33133[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F13[0]),
+ (VTBL_ENTRY)&_ZN3F133fooEv,
+ (VTBL_ENTRY)&_ZN3F133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F133fooEv,_ZTv0_n12_N3F133fooEv)();
+extern void ABISELECT(_ZThn16_N3F133fooEv,_ZThn8_N3F133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__3F13__6G33133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F13[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F133fooEv,_ZTv0_n12_N3F133fooEv),
+};
+static VTT_ENTRY vtt_G33133[] = {
+ {&(_ZTV6G33133[6]), 6,32},
+ {&(_ZTV6G33133[13]), 13,32},
+ {&(_ZTV6G33133[19]), 19,32},
+ {&(_ZTV6G33133[26]), 26,32},
+ {&(_ZTV6G33133[31]), 31,32},
+ {&(_tg__ZTV3E33__6G33133[3]), 3,5},
+ {&(_tg__ZTV3AA3__3E33__6G33133[4]), 4,6},
+ {&(_tg__ZTV3F13__6G33133[3]), 3,5},
+ {&(_tg__ZTV3AA1__3F13__6G33133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G33133[];
+extern VTBL_ENTRY _ZTV6G33133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G33133[];
+static VTBL_ENTRY alt_thunk_names172[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F133fooEv,_ZTv0_n12_N3F133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F133fooEv,_ZThn8_N3F133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3E333barEv,_ZTv0_n16_N3E333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E333barEv,_ZThn8_N3E333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E333fooEv,_ZTv0_n12_N3E333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E333fooEv,_ZThn8_N3E333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G331333barEv,_ZTv0_n16_N6G331333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G331333barEv,_ZThn16_N6G331333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G331333fooEv,_ZTv0_n12_N6G331333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G331333fooEv,_ZThn32_N6G331333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G331333fooEv,_ZThn16_N6G331333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6G331333barEv,_ZTv0_n20_N6G331333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G331333barEv,_ZThn24_N6G331333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G331333barEv,_ZThn8_N6G331333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G331333fooEv,_ZTv0_n16_N6G331333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G331333fooEv,_ZThn24_N6G331333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G331333fooEv,_ZThn8_N6G331333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G33133 = { "G33133", // class name
+ bases_G33133, 4,
+ &(vtc_G33133[0]), // expected_vtbl_contents
+ &(vtt_G33133[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G33133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G33133),32, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G33133),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names172,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G33213 : virtual E33 , virtual F21 {
+ int pg;
+ virtual void foo(); // _ZN6G332133fooEv
+ virtual void bar(); // _ZN6G332133barEv
+ ~G33213(); // tgen
+ G33213(); // tgen
+};
+//SIG(1 G33213) C1{ VBC2{ VBC3{ v1 v2 Fi} v1 v2 Fi} VBC4{ VBC5{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void G33213 ::foo(){vfunc_called(this, "_ZN6G332133fooEv");}
+void G33213 ::bar(){vfunc_called(this, "_ZN6G332133barEv");}
+G33213 ::~G33213(){ note_dtor("G33213", this);} // tgen
+G33213 ::G33213(){ note_ctor("G33213", this);} // tgen
+
+static void Test_G33213()
+{
+ extern Class_Descriptor cd_G33213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G33213, buf);
+ G33213 *dp, &lv = *(dp=new (buf) G33213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G33213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G33213)");
+ check_base_class_offset(lv, (AA3*)(E33*), ABISELECT(32,16), "G33213");
+ check_base_class_offset(lv, (E33*), ABISELECT(16,8), "G33213");
+ check_base_class_offset(lv, (AA2*)(F21*), ABISELECT(64,32), "G33213");
+ check_base_class_offset(lv, (F21*), ABISELECT(48,24), "G33213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G33213.pg");
+ test_class_info(&lv, &cd_G33213);
+ dp->~G33213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG33213(Test_G33213, "G33213", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G33213C1Ev();
+extern void _ZN6G33213D1Ev();
+Name_Map name_map_G33213[] = {
+ NSPAIR(_ZN6G33213C1Ev),
+ NSPAIR(_ZN6G33213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_E33;
+extern VTBL_ENTRY _ZTI3E33[];
+extern VTBL_ENTRY _ZTV3E33[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E33[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_F21;
+extern VTBL_ENTRY _ZTI3F21[];
+extern VTBL_ENTRY _ZTV3F21[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F21[];
+static Base_Class bases_G33213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E33, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F21, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G33213[];
+extern void _ZN6G332133fooEv();
+extern void _ZN6G332133barEv();
+extern void ABISELECT(_ZTv0_n32_N6G332133fooEv,_ZTv0_n16_N6G332133fooEv)();
+extern void ABISELECT(_ZThn16_N6G332133fooEv,_ZThn8_N6G332133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G332133barEv,_ZTv0_n20_N6G332133barEv)();
+extern void ABISELECT(_ZThn16_N6G332133barEv,_ZThn8_N6G332133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G332133fooEv,_ZTv0_n12_N6G332133fooEv)();
+extern void ABISELECT(_ZThn32_N6G332133fooEv,_ZThn16_N6G332133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G332133barEv,_ZTv0_n16_N6G332133barEv)();
+extern void ABISELECT(_ZThn32_N6G332133barEv,_ZThn16_N6G332133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G332133fooEv,_ZTv0_n16_N6G332133fooEv)();
+extern void ABISELECT(_ZThn48_N6G332133fooEv,_ZThn24_N6G332133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G332133barEv,_ZTv0_n12_N6G332133barEv)();
+extern void ABISELECT(_ZThn64_N6G332133barEv,_ZThn32_N6G332133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G33213[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G33213[0]),
+ (VTBL_ENTRY)&_ZN6G332133fooEv,
+ (VTBL_ENTRY)&_ZN6G332133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G33213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G332133fooEv,_ZTv0_n16_N6G332133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G332133barEv,_ZTv0_n20_N6G332133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G33213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G332133fooEv,_ZTv0_n12_N6G332133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G332133barEv,_ZTv0_n16_N6G332133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G33213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G332133fooEv,_ZTv0_n16_N6G332133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G33213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G332133barEv,_ZTv0_n12_N6G332133barEv),
+};
+extern VTBL_ENTRY _ZTV6G33213[];
+extern void _ZN3E333fooEv();
+extern void _ZN3E333barEv();
+static VTBL_ENTRY _tg__ZTV3E33__6G33213[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E33[0]),
+ (VTBL_ENTRY)&_ZN3E333fooEv,
+ (VTBL_ENTRY)&_ZN3E333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E333fooEv,_ZTv0_n12_N3E333fooEv)();
+extern void ABISELECT(_ZThn16_N3E333fooEv,_ZThn8_N3E333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N3E333barEv,_ZTv0_n16_N3E333barEv)();
+extern void ABISELECT(_ZThn16_N3E333barEv,_ZThn8_N3E333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__3E33__6G33213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E33[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E333fooEv,_ZTv0_n12_N3E333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3E333barEv,_ZTv0_n16_N3E333barEv),
+};
+extern void _ZN3F213fooEv();
+static VTBL_ENTRY _tg__ZTV3F21__6G33213[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F21[0]),
+ (VTBL_ENTRY)&_ZN3F213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__3F21__6G33213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F21[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+static VTT_ENTRY vtt_G33213[] = {
+ {&(_ZTV6G33213[6]), 6,30},
+ {&(_ZTV6G33213[13]), 13,30},
+ {&(_ZTV6G33213[19]), 19,30},
+ {&(_ZTV6G33213[25]), 25,30},
+ {&(_ZTV6G33213[29]), 29,30},
+ {&(_tg__ZTV3E33__6G33213[3]), 3,5},
+ {&(_tg__ZTV3AA3__3E33__6G33213[4]), 4,6},
+ {&(_tg__ZTV3F21__6G33213[3]), 3,4},
+ {&(_tg__ZTV3AA2__3F21__6G33213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G33213[];
+extern VTBL_ENTRY _ZTV6G33213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G33213[];
+static VTBL_ENTRY alt_thunk_names173[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3E333barEv,_ZTv0_n16_N3E333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E333barEv,_ZThn8_N3E333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E333fooEv,_ZTv0_n12_N3E333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E333fooEv,_ZThn8_N3E333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G332133barEv,_ZTv0_n12_N6G332133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G332133barEv,_ZThn32_N6G332133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G332133barEv,_ZTv0_n16_N6G332133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G332133barEv,_ZThn16_N6G332133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G332133fooEv,_ZTv0_n12_N6G332133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G332133fooEv,_ZThn16_N6G332133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6G332133barEv,_ZTv0_n20_N6G332133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G332133barEv,_ZThn8_N6G332133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G332133fooEv,_ZTv0_n16_N6G332133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G332133fooEv,_ZThn24_N6G332133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G332133fooEv,_ZThn8_N6G332133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G33213 = { "G33213", // class name
+ bases_G33213, 4,
+ &(vtc_G33213[0]), // expected_vtbl_contents
+ &(vtt_G33213[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G33213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G33213),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G33213),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names173,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G33222 : virtual E33 , virtual F22 {
+ int pg;
+ virtual void bar(); // _ZN6G332223barEv
+ ~G33222(); // tgen
+ G33222(); // tgen
+};
+//SIG(1 G33222) C1{ VBC2{ VBC3{ v2 v1 Fi} v2 v1 Fi} VBC4{ VBC5{ v1 Fi} v1 Fi} v1 Fi}
+
+
+void G33222 ::bar(){vfunc_called(this, "_ZN6G332223barEv");}
+G33222 ::~G33222(){ note_dtor("G33222", this);} // tgen
+G33222 ::G33222(){ note_ctor("G33222", this);} // tgen
+
+static void Test_G33222()
+{
+ extern Class_Descriptor cd_G33222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G33222, buf);
+ G33222 *dp, &lv = *(dp=new (buf) G33222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G33222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G33222)");
+ check_base_class_offset(lv, (AA3*)(E33*), ABISELECT(32,16), "G33222");
+ check_base_class_offset(lv, (E33*), ABISELECT(16,8), "G33222");
+ check_base_class_offset(lv, (AA2*)(F22*), ABISELECT(64,32), "G33222");
+ check_base_class_offset(lv, (F22*), ABISELECT(48,24), "G33222");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G33222.pg");
+ test_class_info(&lv, &cd_G33222);
+ dp->~G33222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG33222(Test_G33222, "G33222", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G33222C1Ev();
+extern void _ZN6G33222D1Ev();
+Name_Map name_map_G33222[] = {
+ NSPAIR(_ZN6G33222C1Ev),
+ NSPAIR(_ZN6G33222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_E33;
+extern VTBL_ENTRY _ZTI3E33[];
+extern VTBL_ENTRY _ZTV3E33[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E33[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_F22;
+extern VTBL_ENTRY _ZTI3F22[];
+extern VTBL_ENTRY _ZTV3F22[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F22[];
+static Base_Class bases_G33222[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E33, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F22, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G33222[];
+extern void _ZN6G332223barEv();
+extern void _ZN3E333fooEv();
+extern void ABISELECT(_ZTv0_n40_N6G332223barEv,_ZTv0_n20_N6G332223barEv)();
+extern void ABISELECT(_ZThn16_N6G332223barEv,_ZThn8_N6G332223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N3E333fooEv,_ZTv0_n12_N3E333fooEv)();
+extern void ABISELECT(_ZThn16_N3E333fooEv,_ZThn8_N3E333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G332223barEv,_ZTv0_n16_N6G332223barEv)();
+extern void ABISELECT(_ZThn32_N6G332223barEv,_ZThn16_N6G332223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G332223barEv,_ZTv0_n16_N6G332223barEv)();
+extern void ABISELECT(_ZThn48_N6G332223barEv,_ZThn24_N6G332223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G332223barEv,_ZTv0_n12_N6G332223barEv)();
+extern void ABISELECT(_ZThn64_N6G332223barEv,_ZThn32_N6G332223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G33222[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G33222[0]),
+ (VTBL_ENTRY)&_ZN6G332223barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G33222[0]),
+ (VTBL_ENTRY)&_ZN3E333fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G332223barEv,_ZTv0_n20_N6G332223barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G33222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E333fooEv,_ZTv0_n12_N3E333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G332223barEv,_ZTv0_n16_N6G332223barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G33222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G332223barEv,_ZTv0_n16_N6G332223barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G33222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G332223barEv,_ZTv0_n12_N6G332223barEv),
+};
+extern VTBL_ENTRY _ZTV6G33222[];
+extern void _ZN3E333fooEv();
+extern void _ZN3E333barEv();
+static VTBL_ENTRY _tg__ZTV3E33__6G33222[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E33[0]),
+ (VTBL_ENTRY)&_ZN3E333fooEv,
+ (VTBL_ENTRY)&_ZN3E333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E333fooEv,_ZTv0_n12_N3E333fooEv)();
+extern void ABISELECT(_ZThn16_N3E333fooEv,_ZThn8_N3E333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N3E333barEv,_ZTv0_n16_N3E333barEv)();
+extern void ABISELECT(_ZThn16_N3E333barEv,_ZThn8_N3E333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__3E33__6G33222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E33[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E333fooEv,_ZTv0_n12_N3E333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3E333barEv,_ZTv0_n16_N3E333barEv),
+};
+extern void _ZN3F223barEv();
+static VTBL_ENTRY _tg__ZTV3F22__6G33222[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F22[0]),
+ (VTBL_ENTRY)&_ZN3F223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv)();
+extern void ABISELECT(_ZThn16_N3F223barEv,_ZThn8_N3F223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__3F22__6G33222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F22[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv),
+};
+static VTT_ENTRY vtt_G33222[] = {
+ {&(_ZTV6G33222[6]), 6,29},
+ {&(_ZTV6G33222[12]), 12,29},
+ {&(_ZTV6G33222[18]), 18,29},
+ {&(_ZTV6G33222[24]), 24,29},
+ {&(_ZTV6G33222[28]), 28,29},
+ {&(_tg__ZTV3E33__6G33222[3]), 3,5},
+ {&(_tg__ZTV3AA3__3E33__6G33222[4]), 4,6},
+ {&(_tg__ZTV3F22__6G33222[3]), 3,4},
+ {&(_tg__ZTV3AA2__3F22__6G33222[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G33222[];
+extern VTBL_ENTRY _ZTV6G33222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G33222[];
+static VTBL_ENTRY alt_thunk_names174[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F223barEv,_ZThn8_N3F223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3E333barEv,_ZTv0_n16_N3E333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E333barEv,_ZThn8_N3E333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G332223barEv,_ZTv0_n12_N6G332223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G332223barEv,_ZThn32_N6G332223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G332223barEv,_ZTv0_n16_N6G332223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G332223barEv,_ZThn24_N6G332223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G332223barEv,_ZThn16_N6G332223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E333fooEv,_ZTv0_n12_N3E333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E333fooEv,_ZThn8_N3E333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E333fooEv,_ZThn8_N3E333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6G332223barEv,_ZTv0_n20_N6G332223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G332223barEv,_ZThn8_N6G332223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G33222 = { "G33222", // class name
+ bases_G33222, 4,
+ &(vtc_G33222[0]), // expected_vtbl_contents
+ &(vtt_G33222[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G33222),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G33222),29, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G33222),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names174,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G33223 : virtual E33 , virtual F22 {
+ int pg;
+ virtual void foo(); // _ZN6G332233fooEv
+ virtual void bar(); // _ZN6G332233barEv
+ ~G33223(); // tgen
+ G33223(); // tgen
+};
+//SIG(1 G33223) C1{ VBC2{ VBC3{ v1 v2 Fi} v1 v2 Fi} VBC4{ VBC5{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void G33223 ::foo(){vfunc_called(this, "_ZN6G332233fooEv");}
+void G33223 ::bar(){vfunc_called(this, "_ZN6G332233barEv");}
+G33223 ::~G33223(){ note_dtor("G33223", this);} // tgen
+G33223 ::G33223(){ note_ctor("G33223", this);} // tgen
+
+static void Test_G33223()
+{
+ extern Class_Descriptor cd_G33223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G33223, buf);
+ G33223 *dp, &lv = *(dp=new (buf) G33223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G33223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G33223)");
+ check_base_class_offset(lv, (AA3*)(E33*), ABISELECT(32,16), "G33223");
+ check_base_class_offset(lv, (E33*), ABISELECT(16,8), "G33223");
+ check_base_class_offset(lv, (AA2*)(F22*), ABISELECT(64,32), "G33223");
+ check_base_class_offset(lv, (F22*), ABISELECT(48,24), "G33223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G33223.pg");
+ test_class_info(&lv, &cd_G33223);
+ dp->~G33223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG33223(Test_G33223, "G33223", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G33223C1Ev();
+extern void _ZN6G33223D1Ev();
+Name_Map name_map_G33223[] = {
+ NSPAIR(_ZN6G33223C1Ev),
+ NSPAIR(_ZN6G33223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_E33;
+extern VTBL_ENTRY _ZTI3E33[];
+extern VTBL_ENTRY _ZTV3E33[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E33[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_F22;
+extern VTBL_ENTRY _ZTI3F22[];
+extern VTBL_ENTRY _ZTV3F22[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F22[];
+static Base_Class bases_G33223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E33, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F22, 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
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G33223[];
+extern void _ZN6G332233fooEv();
+extern void _ZN6G332233barEv();
+extern void ABISELECT(_ZTv0_n32_N6G332233fooEv,_ZTv0_n16_N6G332233fooEv)();
+extern void ABISELECT(_ZThn16_N6G332233fooEv,_ZThn8_N6G332233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G332233barEv,_ZTv0_n20_N6G332233barEv)();
+extern void ABISELECT(_ZThn16_N6G332233barEv,_ZThn8_N6G332233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G332233fooEv,_ZTv0_n12_N6G332233fooEv)();
+extern void ABISELECT(_ZThn32_N6G332233fooEv,_ZThn16_N6G332233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G332233barEv,_ZTv0_n16_N6G332233barEv)();
+extern void ABISELECT(_ZThn32_N6G332233barEv,_ZThn16_N6G332233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G332233barEv,_ZTv0_n16_N6G332233barEv)();
+extern void ABISELECT(_ZThn48_N6G332233barEv,_ZThn24_N6G332233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G332233barEv,_ZTv0_n12_N6G332233barEv)();
+extern void ABISELECT(_ZThn64_N6G332233barEv,_ZThn32_N6G332233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G33223[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G33223[0]),
+ (VTBL_ENTRY)&_ZN6G332233fooEv,
+ (VTBL_ENTRY)&_ZN6G332233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G33223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G332233fooEv,_ZTv0_n16_N6G332233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G332233barEv,_ZTv0_n20_N6G332233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G33223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G332233fooEv,_ZTv0_n12_N6G332233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G332233barEv,_ZTv0_n16_N6G332233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G33223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G332233barEv,_ZTv0_n16_N6G332233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G33223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G332233barEv,_ZTv0_n12_N6G332233barEv),
+};
+extern VTBL_ENTRY _ZTV6G33223[];
+extern void _ZN3E333fooEv();
+extern void _ZN3E333barEv();
+static VTBL_ENTRY _tg__ZTV3E33__6G33223[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E33[0]),
+ (VTBL_ENTRY)&_ZN3E333fooEv,
+ (VTBL_ENTRY)&_ZN3E333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E333fooEv,_ZTv0_n12_N3E333fooEv)();
+extern void ABISELECT(_ZThn16_N3E333fooEv,_ZThn8_N3E333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N3E333barEv,_ZTv0_n16_N3E333barEv)();
+extern void ABISELECT(_ZThn16_N3E333barEv,_ZThn8_N3E333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__3E33__6G33223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E33[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E333fooEv,_ZTv0_n12_N3E333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3E333barEv,_ZTv0_n16_N3E333barEv),
+};
+extern void _ZN3F223barEv();
+static VTBL_ENTRY _tg__ZTV3F22__6G33223[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F22[0]),
+ (VTBL_ENTRY)&_ZN3F223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv)();
+extern void ABISELECT(_ZThn16_N3F223barEv,_ZThn8_N3F223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__3F22__6G33223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F22[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv),
+};
+static VTT_ENTRY vtt_G33223[] = {
+ {&(_ZTV6G33223[6]), 6,30},
+ {&(_ZTV6G33223[13]), 13,30},
+ {&(_ZTV6G33223[19]), 19,30},
+ {&(_ZTV6G33223[25]), 25,30},
+ {&(_ZTV6G33223[29]), 29,30},
+ {&(_tg__ZTV3E33__6G33223[3]), 3,5},
+ {&(_tg__ZTV3AA3__3E33__6G33223[4]), 4,6},
+ {&(_tg__ZTV3F22__6G33223[3]), 3,4},
+ {&(_tg__ZTV3AA2__3F22__6G33223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G33223[];
+extern VTBL_ENTRY _ZTV6G33223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G33223[];
+static VTBL_ENTRY alt_thunk_names175[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F223barEv,_ZTv0_n12_N3F223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F223barEv,_ZThn8_N3F223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3E333barEv,_ZTv0_n16_N3E333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E333barEv,_ZThn8_N3E333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E333fooEv,_ZTv0_n12_N3E333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E333fooEv,_ZThn8_N3E333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G332233barEv,_ZTv0_n12_N6G332233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G332233barEv,_ZThn32_N6G332233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G332233barEv,_ZTv0_n16_N6G332233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G332233barEv,_ZThn24_N6G332233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G332233barEv,_ZThn16_N6G332233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G332233fooEv,_ZTv0_n12_N6G332233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G332233fooEv,_ZThn16_N6G332233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6G332233barEv,_ZTv0_n20_N6G332233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G332233barEv,_ZThn8_N6G332233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G332233fooEv,_ZTv0_n16_N6G332233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G332233fooEv,_ZThn8_N6G332233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G33223 = { "G33223", // class name
+ bases_G33223, 4,
+ &(vtc_G33223[0]), // expected_vtbl_contents
+ &(vtt_G33223[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G33223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G33223),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G33223),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names175,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G33233 : virtual E33 , virtual F23 {
+ int pg;
+ virtual void foo(); // _ZN6G332333fooEv
+ virtual void bar(); // _ZN6G332333barEv
+ ~G33233(); // tgen
+ G33233(); // tgen
+};
+//SIG(1 G33233) C1{ VBC2{ VBC3{ v1 v2 Fi} v1 v2 Fi} VBC4{ VBC5{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void G33233 ::foo(){vfunc_called(this, "_ZN6G332333fooEv");}
+void G33233 ::bar(){vfunc_called(this, "_ZN6G332333barEv");}
+G33233 ::~G33233(){ note_dtor("G33233", this);} // tgen
+G33233 ::G33233(){ note_ctor("G33233", this);} // tgen
+
+static void Test_G33233()
+{
+ extern Class_Descriptor cd_G33233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_G33233, buf);
+ G33233 *dp, &lv = *(dp=new (buf) G33233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(G33233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G33233)");
+ check_base_class_offset(lv, (AA3*)(E33*), ABISELECT(32,16), "G33233");
+ check_base_class_offset(lv, (E33*), ABISELECT(16,8), "G33233");
+ check_base_class_offset(lv, (AA2*)(F23*), ABISELECT(64,32), "G33233");
+ check_base_class_offset(lv, (F23*), ABISELECT(48,24), "G33233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G33233.pg");
+ test_class_info(&lv, &cd_G33233);
+ dp->~G33233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG33233(Test_G33233, "G33233", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN6G33233C1Ev();
+extern void _ZN6G33233D1Ev();
+Name_Map name_map_G33233[] = {
+ NSPAIR(_ZN6G33233C1Ev),
+ NSPAIR(_ZN6G33233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_E33;
+extern VTBL_ENTRY _ZTI3E33[];
+extern VTBL_ENTRY _ZTV3E33[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E33[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_F23;
+extern VTBL_ENTRY _ZTI3F23[];
+extern VTBL_ENTRY _ZTV3F23[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F23[];
+static Base_Class bases_G33233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E33, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ 3, //immediately_derived
+ 0, 1},
+ {&cd_F23, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G33233[];
+extern void _ZN6G332333fooEv();
+extern void _ZN6G332333barEv();
+extern void ABISELECT(_ZTv0_n32_N6G332333fooEv,_ZTv0_n16_N6G332333fooEv)();
+extern void ABISELECT(_ZThn16_N6G332333fooEv,_ZThn8_N6G332333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G332333barEv,_ZTv0_n20_N6G332333barEv)();
+extern void ABISELECT(_ZThn16_N6G332333barEv,_ZThn8_N6G332333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G332333fooEv,_ZTv0_n12_N6G332333fooEv)();
+extern void ABISELECT(_ZThn32_N6G332333fooEv,_ZThn16_N6G332333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G332333barEv,_ZTv0_n16_N6G332333barEv)();
+extern void ABISELECT(_ZThn32_N6G332333barEv,_ZThn16_N6G332333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G332333fooEv,_ZTv0_n16_N6G332333fooEv)();
+extern void ABISELECT(_ZThn48_N6G332333fooEv,_ZThn24_N6G332333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G332333barEv,_ZTv0_n20_N6G332333barEv)();
+extern void ABISELECT(_ZThn48_N6G332333barEv,_ZThn24_N6G332333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G332333barEv,_ZTv0_n12_N6G332333barEv)();
+extern void ABISELECT(_ZThn64_N6G332333barEv,_ZThn32_N6G332333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G33233[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G33233[0]),
+ (VTBL_ENTRY)&_ZN6G332333fooEv,
+ (VTBL_ENTRY)&_ZN6G332333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G33233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G332333fooEv,_ZTv0_n16_N6G332333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G332333barEv,_ZTv0_n20_N6G332333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G33233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G332333fooEv,_ZTv0_n12_N6G332333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G332333barEv,_ZTv0_n16_N6G332333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(16,8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G33233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G332333fooEv,_ZTv0_n16_N6G332333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G332333barEv,_ZTv0_n20_N6G332333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI6G33233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G332333barEv,_ZTv0_n12_N6G332333barEv),
+};
+extern VTBL_ENTRY _ZTV6G33233[];
+extern void _ZN3E333fooEv();
+extern void _ZN3E333barEv();
+static VTBL_ENTRY _tg__ZTV3E33__6G33233[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E33[0]),
+ (VTBL_ENTRY)&_ZN3E333fooEv,
+ (VTBL_ENTRY)&_ZN3E333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E333fooEv,_ZTv0_n12_N3E333fooEv)();
+extern void ABISELECT(_ZThn16_N3E333fooEv,_ZThn8_N3E333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N3E333barEv,_ZTv0_n16_N3E333barEv)();
+extern void ABISELECT(_ZThn16_N3E333barEv,_ZThn8_N3E333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__3E33__6G33233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E33[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E333fooEv,_ZTv0_n12_N3E333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3E333barEv,_ZTv0_n16_N3E333barEv),
+};
+extern void _ZN3F233fooEv();
+extern void _ZN3F233barEv();
+static VTBL_ENTRY _tg__ZTV3F23__6G33233[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F23[0]),
+ (VTBL_ENTRY)&_ZN3F233fooEv,
+ (VTBL_ENTRY)&_ZN3F233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F233barEv,_ZTv0_n12_N3F233barEv)();
+extern void ABISELECT(_ZThn16_N3F233barEv,_ZThn8_N3F233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__3F23__6G33233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3F23[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F233barEv,_ZTv0_n12_N3F233barEv),
+};
+static VTT_ENTRY vtt_G33233[] = {
+ {&(_ZTV6G33233[6]), 6,32},
+ {&(_ZTV6G33233[13]), 13,32},
+ {&(_ZTV6G33233[19]), 19,32},
+ {&(_ZTV6G33233[26]), 26,32},
+ {&(_ZTV6G33233[31]), 31,32},
+ {&(_tg__ZTV3E33__6G33233[3]), 3,5},
+ {&(_tg__ZTV3AA3__3E33__6G33233[4]), 4,6},
+ {&(_tg__ZTV3F23__6G33233[3]), 3,5},
+ {&(_tg__ZTV3AA2__3F23__6G33233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI6G33233[];
+extern VTBL_ENTRY _ZTV6G33233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G33233[];
+static VTBL_ENTRY alt_thunk_names176[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3F233barEv,_ZTv0_n12_N3F233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3F233barEv,_ZThn8_N3F233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3E333barEv,_ZTv0_n16_N3E333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E333barEv,_ZThn8_N3E333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E333fooEv,_ZTv0_n12_N3E333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E333fooEv,_ZThn8_N3E333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G332333barEv,_ZTv0_n12_N6G332333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N6G332333barEv,_ZThn32_N6G332333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G332333barEv,_ZTv0_n16_N6G332333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G332333barEv,_ZThn16_N6G332333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G332333fooEv,_ZTv0_n12_N6G332333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G332333fooEv,_ZThn16_N6G332333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6G332333barEv,_ZTv0_n20_N6G332333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G332333barEv,_ZThn24_N6G332333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G332333barEv,_ZThn8_N6G332333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G332333fooEv,_ZTv0_n16_N6G332333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G332333fooEv,_ZThn24_N6G332333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G332333fooEv,_ZThn8_N6G332333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G33233 = { "G33233", // class name
+ bases_G33233, 4,
+ &(vtc_G33233[0]), // expected_vtbl_contents
+ &(vtt_G33233[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI6G33233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G33233),32, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G33233),9, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names176,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G33313 : virtual E33 , virtual F31 {
+ int pg;
+ virtual void foo(); // _ZN6G333133fooEv
+ virtual void bar(); // _ZN6G333133barEv
+ ~G33313(); // tgen
+ G33313(); // tgen
+};
+//SIG(1 G33313) C1{ VBC2{ VBC3{ v1 v2 Fi} v1 v2 Fi} VBC4{ VBC3 v1 Fi} v1 v2 Fi}
+
+
+void G33313 ::foo(){vfunc_called(this, "_ZN6G333133fooEv");}
+void G33313 ::bar(){vfunc_called(this, "_ZN6G333133barEv");}
+G33313 ::~G33313(){ note_dtor("G33313", this);} // tgen
+G33313 ::G33313(){ note_ctor("G33313", this);} // tgen
+
+static void Test_G33313()
+{
+ extern Class_Descriptor cd_G33313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_G33313, buf);
+ G33313 *dp, &lv = *(dp=new (buf) G33313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(G33313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G33313)");
+ check_base_class_offset(lv, (AA3*)(E33*), ABISELECT(32,16), "G33313");
+ check_base_class_offset(lv, (AA3*)(F31*), ABISELECT(32,16), "G33313");
+ check_base_class_offset(lv, (E33*), ABISELECT(16,8), "G33313");
+ check_base_class_offset(lv, (F31*), ABISELECT(48,24), "G33313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G33313.pg");
+ test_class_info(&lv, &cd_G33313);
+ dp->~G33313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG33313(Test_G33313, "G33313", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6G33313C1Ev();
+extern void _ZN6G33313D1Ev();
+Name_Map name_map_G33313[] = {
+ NSPAIR(_ZN6G33313C1Ev),
+ NSPAIR(_ZN6G33313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_E33;
+extern VTBL_ENTRY _ZTI3E33[];
+extern VTBL_ENTRY _ZTV3E33[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E33[];
+extern Class_Descriptor cd_F31;
+extern VTBL_ENTRY _ZTI3F31[];
+extern VTBL_ENTRY _ZTV3F31[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F31[];
+static Base_Class bases_G33313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E33, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_F31, 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
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G33313[];
+extern void _ZN6G333133fooEv();
+extern void _ZN6G333133barEv();
+extern void ABISELECT(_ZTv0_n32_N6G333133fooEv,_ZTv0_n16_N6G333133fooEv)();
+extern void ABISELECT(_ZThn16_N6G333133fooEv,_ZThn8_N6G333133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G333133barEv,_ZTv0_n20_N6G333133barEv)();
+extern void ABISELECT(_ZThn16_N6G333133barEv,_ZThn8_N6G333133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G333133fooEv,_ZTv0_n12_N6G333133fooEv)();
+extern void ABISELECT(_ZThn32_N6G333133fooEv,_ZThn16_N6G333133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G333133barEv,_ZTv0_n16_N6G333133barEv)();
+extern void ABISELECT(_ZThn32_N6G333133barEv,_ZThn16_N6G333133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G333133fooEv,_ZTv0_n16_N6G333133fooEv)();
+extern void ABISELECT(_ZThn48_N6G333133fooEv,_ZThn24_N6G333133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G33313[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G33313[0]),
+ (VTBL_ENTRY)&_ZN6G333133fooEv,
+ (VTBL_ENTRY)&_ZN6G333133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G33313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G333133fooEv,_ZTv0_n16_N6G333133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G333133barEv,_ZTv0_n20_N6G333133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G33313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G333133fooEv,_ZTv0_n12_N6G333133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G333133barEv,_ZTv0_n16_N6G333133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G33313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G333133fooEv,_ZTv0_n16_N6G333133fooEv),
+};
+extern VTBL_ENTRY _ZTV6G33313[];
+extern void _ZN3E333fooEv();
+extern void _ZN3E333barEv();
+static VTBL_ENTRY _tg__ZTV3E33__6G33313[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E33[0]),
+ (VTBL_ENTRY)&_ZN3E333fooEv,
+ (VTBL_ENTRY)&_ZN3E333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E333fooEv,_ZTv0_n12_N3E333fooEv)();
+extern void ABISELECT(_ZThn16_N3E333fooEv,_ZThn8_N3E333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N3E333barEv,_ZTv0_n16_N3E333barEv)();
+extern void ABISELECT(_ZThn16_N3E333barEv,_ZThn8_N3E333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__3E33__6G33313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E33[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E333fooEv,_ZTv0_n12_N3E333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3E333barEv,_ZTv0_n16_N3E333barEv),
+};
+extern void _ZN3F313fooEv();
+static VTBL_ENTRY _tg__ZTV3F31__6G33313[] = {
+ ABISELECT(-16,-8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F31[0]),
+ (VTBL_ENTRY)&_ZN3F313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F313fooEv,_ZTv0_n12_N3F313fooEv)();
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__3F31__6G33313[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI3F31[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F313fooEv,_ZTv0_n12_N3F313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+static VTT_ENTRY vtt_G33313[] = {
+ {&(_ZTV6G33313[5]), 5,25},
+ {&(_ZTV6G33313[12]), 12,25},
+ {&(_ZTV6G33313[18]), 18,25},
+ {&(_ZTV6G33313[24]), 24,25},
+ {&(_tg__ZTV3E33__6G33313[3]), 3,5},
+ {&(_tg__ZTV3AA3__3E33__6G33313[4]), 4,6},
+ {&(_tg__ZTV3F31__6G33313[3]), 3,4},
+ {&(_tg__ZTV3AA3__3F31__6G33313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6G33313[];
+extern VTBL_ENTRY _ZTV6G33313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G33313[];
+static VTBL_ENTRY alt_thunk_names177[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3E333barEv,_ZTv0_n16_N3E333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E333barEv,_ZThn8_N3E333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E333fooEv,_ZTv0_n12_N3E333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E333fooEv,_ZThn8_N3E333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G333133barEv,_ZTv0_n16_N6G333133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G333133barEv,_ZThn16_N6G333133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G333133fooEv,_ZTv0_n12_N6G333133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G333133fooEv,_ZThn16_N6G333133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6G333133barEv,_ZTv0_n20_N6G333133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G333133barEv,_ZThn8_N6G333133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G333133fooEv,_ZTv0_n16_N6G333133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G333133fooEv,_ZThn24_N6G333133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G333133fooEv,_ZThn8_N6G333133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G33313 = { "G33313", // class name
+ bases_G33313, 3,
+ &(vtc_G33313[0]), // expected_vtbl_contents
+ &(vtt_G33313[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6G33313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G33313),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G33313),8, //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 G33323 : virtual E33 , virtual F32 {
+ int pg;
+ virtual void foo(); // _ZN6G333233fooEv
+ virtual void bar(); // _ZN6G333233barEv
+ ~G33323(); // tgen
+ G33323(); // tgen
+};
+//SIG(1 G33323) C1{ VBC2{ VBC3{ v1 v2 Fi} v1 v2 Fi} VBC4{ VBC3 v2 Fi} v1 v2 Fi}
+
+
+void G33323 ::foo(){vfunc_called(this, "_ZN6G333233fooEv");}
+void G33323 ::bar(){vfunc_called(this, "_ZN6G333233barEv");}
+G33323 ::~G33323(){ note_dtor("G33323", this);} // tgen
+G33323 ::G33323(){ note_ctor("G33323", this);} // tgen
+
+static void Test_G33323()
+{
+ extern Class_Descriptor cd_G33323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_G33323, buf);
+ G33323 *dp, &lv = *(dp=new (buf) G33323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(G33323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G33323)");
+ check_base_class_offset(lv, (AA3*)(E33*), ABISELECT(32,16), "G33323");
+ check_base_class_offset(lv, (AA3*)(F32*), ABISELECT(32,16), "G33323");
+ check_base_class_offset(lv, (E33*), ABISELECT(16,8), "G33323");
+ check_base_class_offset(lv, (F32*), ABISELECT(48,24), "G33323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G33323.pg");
+ test_class_info(&lv, &cd_G33323);
+ dp->~G33323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG33323(Test_G33323, "G33323", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6G33323C1Ev();
+extern void _ZN6G33323D1Ev();
+Name_Map name_map_G33323[] = {
+ NSPAIR(_ZN6G33323C1Ev),
+ NSPAIR(_ZN6G33323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_E33;
+extern VTBL_ENTRY _ZTI3E33[];
+extern VTBL_ENTRY _ZTV3E33[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E33[];
+extern Class_Descriptor cd_F32;
+extern VTBL_ENTRY _ZTI3F32[];
+extern VTBL_ENTRY _ZTV3F32[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F32[];
+static Base_Class bases_G33323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E33, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_F32, 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
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G33323[];
+extern void _ZN6G333233fooEv();
+extern void _ZN6G333233barEv();
+extern void ABISELECT(_ZTv0_n32_N6G333233fooEv,_ZTv0_n16_N6G333233fooEv)();
+extern void ABISELECT(_ZThn16_N6G333233fooEv,_ZThn8_N6G333233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G333233barEv,_ZTv0_n20_N6G333233barEv)();
+extern void ABISELECT(_ZThn16_N6G333233barEv,_ZThn8_N6G333233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G333233fooEv,_ZTv0_n12_N6G333233fooEv)();
+extern void ABISELECT(_ZThn32_N6G333233fooEv,_ZThn16_N6G333233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G333233barEv,_ZTv0_n16_N6G333233barEv)();
+extern void ABISELECT(_ZThn32_N6G333233barEv,_ZThn16_N6G333233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G333233barEv,_ZTv0_n16_N6G333233barEv)();
+extern void ABISELECT(_ZThn48_N6G333233barEv,_ZThn24_N6G333233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G33323[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G33323[0]),
+ (VTBL_ENTRY)&_ZN6G333233fooEv,
+ (VTBL_ENTRY)&_ZN6G333233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G33323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G333233fooEv,_ZTv0_n16_N6G333233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G333233barEv,_ZTv0_n20_N6G333233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G33323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G333233fooEv,_ZTv0_n12_N6G333233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G333233barEv,_ZTv0_n16_N6G333233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G33323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G333233barEv,_ZTv0_n16_N6G333233barEv),
+};
+extern VTBL_ENTRY _ZTV6G33323[];
+extern void _ZN3E333fooEv();
+extern void _ZN3E333barEv();
+static VTBL_ENTRY _tg__ZTV3E33__6G33323[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E33[0]),
+ (VTBL_ENTRY)&_ZN3E333fooEv,
+ (VTBL_ENTRY)&_ZN3E333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E333fooEv,_ZTv0_n12_N3E333fooEv)();
+extern void ABISELECT(_ZThn16_N3E333fooEv,_ZThn8_N3E333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N3E333barEv,_ZTv0_n16_N3E333barEv)();
+extern void ABISELECT(_ZThn16_N3E333barEv,_ZThn8_N3E333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__3E33__6G33323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E33[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E333fooEv,_ZTv0_n12_N3E333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3E333barEv,_ZTv0_n16_N3E333barEv),
+};
+extern void _ZN3F323barEv();
+static VTBL_ENTRY _tg__ZTV3F32__6G33323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F32[0]),
+ (VTBL_ENTRY)&_ZN3F323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N3F323barEv,_ZTv0_n16_N3F323barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__3F32__6G33323[] = {
+ ABISELECT(16,8),
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI3F32[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3F323barEv,_ZTv0_n16_N3F323barEv),
+};
+static VTT_ENTRY vtt_G33323[] = {
+ {&(_ZTV6G33323[5]), 5,25},
+ {&(_ZTV6G33323[12]), 12,25},
+ {&(_ZTV6G33323[18]), 18,25},
+ {&(_ZTV6G33323[24]), 24,25},
+ {&(_tg__ZTV3E33__6G33323[3]), 3,5},
+ {&(_tg__ZTV3AA3__3E33__6G33323[4]), 4,6},
+ {&(_tg__ZTV3F32__6G33323[3]), 3,4},
+ {&(_tg__ZTV3AA3__3F32__6G33323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6G33323[];
+extern VTBL_ENTRY _ZTV6G33323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G33323[];
+static VTBL_ENTRY alt_thunk_names178[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3E333barEv,_ZTv0_n16_N3E333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E333barEv,_ZThn8_N3E333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E333fooEv,_ZTv0_n12_N3E333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E333fooEv,_ZThn8_N3E333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G333233barEv,_ZTv0_n16_N6G333233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G333233barEv,_ZThn24_N6G333233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G333233barEv,_ZThn16_N6G333233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G333233fooEv,_ZTv0_n12_N6G333233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G333233fooEv,_ZThn16_N6G333233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6G333233barEv,_ZTv0_n20_N6G333233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G333233barEv,_ZThn8_N6G333233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G333233fooEv,_ZTv0_n16_N6G333233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G333233fooEv,_ZThn8_N6G333233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G33323 = { "G33323", // class name
+ bases_G33323, 3,
+ &(vtc_G33323[0]), // expected_vtbl_contents
+ &(vtt_G33323[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6G33323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G33323),25, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G33323),8, //virtual table table var
+ 3, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names178,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct G33333 : virtual E33 , virtual F33 {
+ int pg;
+ virtual void foo(); // _ZN6G333333fooEv
+ virtual void bar(); // _ZN6G333333barEv
+ ~G33333(); // tgen
+ G33333(); // tgen
+};
+//SIG(1 G33333) C1{ VBC2{ VBC3{ v1 v2 Fi} v1 v2 Fi} VBC4{ VBC3 v1 v2 Fi} v1 v2 Fi}
+
+
+void G33333 ::foo(){vfunc_called(this, "_ZN6G333333fooEv");}
+void G33333 ::bar(){vfunc_called(this, "_ZN6G333333barEv");}
+G33333 ::~G33333(){ note_dtor("G33333", this);} // tgen
+G33333 ::G33333(){ note_ctor("G33333", this);} // tgen
+
+static void Test_G33333()
+{
+ extern Class_Descriptor cd_G33333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[9];
+ init_test(&cd_G33333, buf);
+ G33333 *dp, &lv = *(dp=new (buf) G33333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(64,32), "sizeof(G33333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(G33333)");
+ check_base_class_offset(lv, (AA3*)(E33*), ABISELECT(32,16), "G33333");
+ check_base_class_offset(lv, (AA3*)(F33*), ABISELECT(32,16), "G33333");
+ check_base_class_offset(lv, (E33*), ABISELECT(16,8), "G33333");
+ check_base_class_offset(lv, (F33*), ABISELECT(48,24), "G33333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "G33333.pg");
+ test_class_info(&lv, &cd_G33333);
+ dp->~G33333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vG33333(Test_G33333, "G33333", ABISELECT(64,32));
+
+#else // __cplusplus
+
+extern void _ZN6G33333C1Ev();
+extern void _ZN6G33333D1Ev();
+Name_Map name_map_G33333[] = {
+ NSPAIR(_ZN6G33333C1Ev),
+ NSPAIR(_ZN6G33333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_E33;
+extern VTBL_ENTRY _ZTI3E33[];
+extern VTBL_ENTRY _ZTV3E33[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3E33[];
+extern Class_Descriptor cd_F33;
+extern VTBL_ENTRY _ZTI3F33[];
+extern VTBL_ENTRY _ZTV3F33[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT3F33[];
+static Base_Class bases_G33333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 1, //immediately_derived
+ 0, 1},
+ {&cd_E33, 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
+ 2, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_F33, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI6G33333[];
+extern void _ZN6G333333fooEv();
+extern void _ZN6G333333barEv();
+extern void ABISELECT(_ZTv0_n32_N6G333333fooEv,_ZTv0_n16_N6G333333fooEv)();
+extern void ABISELECT(_ZThn16_N6G333333fooEv,_ZThn8_N6G333333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G333333barEv,_ZTv0_n20_N6G333333barEv)();
+extern void ABISELECT(_ZThn16_N6G333333barEv,_ZThn8_N6G333333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N6G333333fooEv,_ZTv0_n12_N6G333333fooEv)();
+extern void ABISELECT(_ZThn32_N6G333333fooEv,_ZThn16_N6G333333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G333333barEv,_ZTv0_n16_N6G333333barEv)();
+extern void ABISELECT(_ZThn32_N6G333333barEv,_ZThn16_N6G333333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N6G333333fooEv,_ZTv0_n16_N6G333333fooEv)();
+extern void ABISELECT(_ZThn48_N6G333333fooEv,_ZThn24_N6G333333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N6G333333barEv,_ZTv0_n20_N6G333333barEv)();
+extern void ABISELECT(_ZThn48_N6G333333barEv,_ZThn24_N6G333333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_G33333[] = {
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI6G33333[0]),
+ (VTBL_ENTRY)&_ZN6G333333fooEv,
+ (VTBL_ENTRY)&_ZN6G333333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI6G33333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G333333fooEv,_ZTv0_n16_N6G333333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G333333barEv,_ZTv0_n20_N6G333333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI6G33333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N6G333333fooEv,_ZTv0_n12_N6G333333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G333333barEv,_ZTv0_n16_N6G333333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-16,-8),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI6G33333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N6G333333fooEv,_ZTv0_n16_N6G333333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N6G333333barEv,_ZTv0_n20_N6G333333barEv),
+};
+extern VTBL_ENTRY _ZTV6G33333[];
+extern void _ZN3E333fooEv();
+extern void _ZN3E333barEv();
+static VTBL_ENTRY _tg__ZTV3E33__6G33333[] = {
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3E33[0]),
+ (VTBL_ENTRY)&_ZN3E333fooEv,
+ (VTBL_ENTRY)&_ZN3E333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3E333fooEv,_ZTv0_n12_N3E333fooEv)();
+extern void ABISELECT(_ZThn16_N3E333fooEv,_ZThn8_N3E333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N3E333barEv,_ZTv0_n16_N3E333barEv)();
+extern void ABISELECT(_ZThn16_N3E333barEv,_ZThn8_N3E333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__3E33__6G33333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI3E33[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3E333fooEv,_ZTv0_n12_N3E333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3E333barEv,_ZTv0_n16_N3E333barEv),
+};
+extern void _ZN3F333fooEv();
+extern void _ZN3F333barEv();
+static VTBL_ENTRY _tg__ZTV3F33__6G33333[] = {
+ ABISELECT(-16,-8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI3F33[0]),
+ (VTBL_ENTRY)&_ZN3F333fooEv,
+ (VTBL_ENTRY)&_ZN3F333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N3F333fooEv,_ZTv0_n12_N3F333fooEv)();
+extern void ABISELECT(_ZTv0_n32_N3F333barEv,_ZTv0_n16_N3F333barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__3F33__6G33333[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI3F33[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N3F333fooEv,_ZTv0_n12_N3F333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N3F333barEv,_ZTv0_n16_N3F333barEv),
+};
+static VTT_ENTRY vtt_G33333[] = {
+ {&(_ZTV6G33333[5]), 5,27},
+ {&(_ZTV6G33333[12]), 12,27},
+ {&(_ZTV6G33333[18]), 18,27},
+ {&(_ZTV6G33333[25]), 25,27},
+ {&(_tg__ZTV3E33__6G33333[3]), 3,5},
+ {&(_tg__ZTV3AA3__3E33__6G33333[4]), 4,6},
+ {&(_tg__ZTV3F33__6G33333[3]), 3,5},
+ {&(_tg__ZTV3AA3__3F33__6G33333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI6G33333[];
+extern VTBL_ENTRY _ZTV6G33333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT6G33333[];
+static VTBL_ENTRY alt_thunk_names179[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N3E333barEv,_ZTv0_n16_N3E333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E333barEv,_ZThn8_N3E333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N3E333fooEv,_ZTv0_n12_N3E333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N3E333fooEv,_ZThn8_N3E333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G333333barEv,_ZTv0_n16_N6G333333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G333333barEv,_ZThn16_N6G333333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N6G333333fooEv,_ZTv0_n12_N6G333333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N6G333333fooEv,_ZThn16_N6G333333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N6G333333barEv,_ZTv0_n20_N6G333333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G333333barEv,_ZThn24_N6G333333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G333333barEv,_ZThn8_N6G333333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N6G333333fooEv,_ZTv0_n16_N6G333333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N6G333333fooEv,_ZThn24_N6G333333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N6G333333fooEv,_ZThn8_N6G333333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_G33333 = { "G33333", // class name
+ bases_G33333, 3,
+ &(vtc_G33333[0]), // expected_vtbl_contents
+ &(vtt_G33333[0]), // expected_vtt_contents
+ ABISELECT(64,32), // object size
+ NSPAIRA(_ZTI6G33333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV6G33333),27, //virtual function table var
+ 5, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT6G33333),8, //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 GG1111111 : virtual EE111 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG11111113fooEv
+ ~GG1111111(); // tgen
+ GG1111111(); // tgen
+};
+//SIG(1 GG1111111) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC3 VBC4 v1 Fi} v1 Fi}
+
+
+void GG1111111 ::foo(){vfunc_called(this, "_ZN9GG11111113fooEv");}
+GG1111111 ::~GG1111111(){ note_dtor("GG1111111", this);} // tgen
+GG1111111 ::GG1111111(){ note_ctor("GG1111111", this);} // tgen
+
+static void Test_GG1111111()
+{
+ extern Class_Descriptor cd_GG1111111;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG1111111, buf);
+ GG1111111 *dp, &lv = *(dp=new (buf) GG1111111());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG1111111)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1111111)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1111111");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(32,16), "GG1111111");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1111111");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(48,24), "GG1111111");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1111111");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG1111111");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1111111.pg");
+ test_class_info(&lv, &cd_GG1111111);
+ dp->~GG1111111();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1111111(Test_GG1111111, "GG1111111", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG1111111C1Ev();
+extern void _ZN9GG1111111D1Ev();
+Name_Map name_map_GG1111111[] = {
+ NSPAIR(_ZN9GG1111111C1Ev),
+ NSPAIR(_ZN9GG1111111D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG1111111[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 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_BB1, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1111111[];
+extern void _ZN9GG11111113fooEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11111113fooEv,_ZTv0_n20_N9GG11111113fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11111113fooEv,_ZThn8_N9GG11111113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11111113fooEv,_ZTv0_n12_N9GG11111113fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11111113fooEv,_ZThn16_N9GG11111113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11111113fooEv,_ZTv0_n12_N9GG11111113fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11111113fooEv,_ZThn24_N9GG11111113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11111113fooEv,_ZTv0_n20_N9GG11111113fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11111113fooEv,_ZThn32_N9GG11111113fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1111111[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1111111[0]),
+ (VTBL_ENTRY)&_ZN9GG11111113fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1111111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11111113fooEv,_ZTv0_n20_N9GG11111113fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1111111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11111113fooEv,_ZTv0_n12_N9GG11111113fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1111111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11111113fooEv,_ZTv0_n12_N9GG11111113fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1111111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11111113fooEv,_ZTv0_n20_N9GG11111113fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1111111[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1111111[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1111111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1111111[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG1111111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG1111111[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG1111111[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG1111111[] = {
+ {&(_ZTV9GG1111111[6]), 6,27},
+ {&(_ZTV9GG1111111[12]), 12,27},
+ {&(_ZTV9GG1111111[16]), 16,27},
+ {&(_ZTV9GG1111111[20]), 20,27},
+ {&(_ZTV9GG1111111[26]), 26,27},
+ {&(_tg__ZTV5EE111__9GG1111111[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1111111[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1111111[3]), 3,4},
+ {&(_tg__ZTV5FF111__9GG1111111[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG1111111[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG1111111[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1111111[];
+extern VTBL_ENTRY _ZTV9GG1111111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1111111[];
+static VTBL_ENTRY alt_thunk_names180[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11111113fooEv,_ZTv0_n12_N9GG11111113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11111113fooEv,_ZThn24_N9GG11111113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11111113fooEv,_ZThn16_N9GG11111113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11111113fooEv,_ZTv0_n20_N9GG11111113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11111113fooEv,_ZThn32_N9GG11111113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11111113fooEv,_ZThn8_N9GG11111113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1111111 = { "GG1111111", // class name
+ bases_GG1111111, 4,
+ &(vtc_GG1111111[0]), // expected_vtbl_contents
+ &(vtt_GG1111111[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG1111111),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1111111),27, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1111111),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names180,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1111113 : virtual EE111 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG11111133fooEv
+ virtual void bar(); // _ZN9GG11111133barEv
+ ~GG1111113(); // tgen
+ GG1111113(); // tgen
+};
+//SIG(1 GG1111113) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC3 VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG1111113 ::foo(){vfunc_called(this, "_ZN9GG11111133fooEv");}
+void GG1111113 ::bar(){vfunc_called(this, "_ZN9GG11111133barEv");}
+GG1111113 ::~GG1111113(){ note_dtor("GG1111113", this);} // tgen
+GG1111113 ::GG1111113(){ note_ctor("GG1111113", this);} // tgen
+
+static void Test_GG1111113()
+{
+ extern Class_Descriptor cd_GG1111113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG1111113, buf);
+ GG1111113 *dp, &lv = *(dp=new (buf) GG1111113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG1111113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1111113)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1111113");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(32,16), "GG1111113");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1111113");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(48,24), "GG1111113");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1111113");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG1111113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1111113.pg");
+ test_class_info(&lv, &cd_GG1111113);
+ dp->~GG1111113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1111113(Test_GG1111113, "GG1111113", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG1111113C1Ev();
+extern void _ZN9GG1111113D1Ev();
+Name_Map name_map_GG1111113[] = {
+ NSPAIR(_ZN9GG1111113C1Ev),
+ NSPAIR(_ZN9GG1111113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG1111113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1111113[];
+extern void _ZN9GG11111133fooEv();
+extern void _ZN9GG11111133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11111133fooEv,_ZTv0_n20_N9GG11111133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11111133fooEv,_ZThn8_N9GG11111133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11111133fooEv,_ZTv0_n12_N9GG11111133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11111133fooEv,_ZThn16_N9GG11111133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11111133fooEv,_ZTv0_n12_N9GG11111133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11111133fooEv,_ZThn24_N9GG11111133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11111133fooEv,_ZTv0_n20_N9GG11111133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11111133fooEv,_ZThn32_N9GG11111133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1111113[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1111113[0]),
+ (VTBL_ENTRY)&_ZN9GG11111133fooEv,
+ (VTBL_ENTRY)&_ZN9GG11111133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1111113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11111133fooEv,_ZTv0_n20_N9GG11111133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1111113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11111133fooEv,_ZTv0_n12_N9GG11111133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1111113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11111133fooEv,_ZTv0_n12_N9GG11111133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1111113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11111133fooEv,_ZTv0_n20_N9GG11111133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1111113[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1111113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1111113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1111113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG1111113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG1111113[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG1111113[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG1111113[] = {
+ {&(_ZTV9GG1111113[6]), 6,28},
+ {&(_ZTV9GG1111113[13]), 13,28},
+ {&(_ZTV9GG1111113[17]), 17,28},
+ {&(_ZTV9GG1111113[21]), 21,28},
+ {&(_ZTV9GG1111113[27]), 27,28},
+ {&(_tg__ZTV5EE111__9GG1111113[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1111113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1111113[3]), 3,4},
+ {&(_tg__ZTV5FF111__9GG1111113[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG1111113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG1111113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1111113[];
+extern VTBL_ENTRY _ZTV9GG1111113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1111113[];
+static VTBL_ENTRY alt_thunk_names181[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11111133fooEv,_ZTv0_n12_N9GG11111133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11111133fooEv,_ZThn24_N9GG11111133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11111133fooEv,_ZThn16_N9GG11111133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11111133fooEv,_ZTv0_n20_N9GG11111133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11111133fooEv,_ZThn32_N9GG11111133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11111133fooEv,_ZThn8_N9GG11111133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1111113 = { "GG1111113", // class name
+ bases_GG1111113, 4,
+ &(vtc_GG1111113[0]), // expected_vtbl_contents
+ &(vtt_GG1111113[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG1111113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1111113),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1111113),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names181,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1111121 : virtual EE111 , virtual FF112 {
+ int pg;
+ virtual void foo(); // _ZN9GG11111213fooEv
+ ~GG1111121(); // tgen
+ GG1111121(); // tgen
+};
+//SIG(1 GG1111121) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC3 VBC4 v2 Fi} v1 Fi}
+
+
+void GG1111121 ::foo(){vfunc_called(this, "_ZN9GG11111213fooEv");}
+GG1111121 ::~GG1111121(){ note_dtor("GG1111121", this);} // tgen
+GG1111121 ::GG1111121(){ note_ctor("GG1111121", this);} // tgen
+
+static void Test_GG1111121()
+{
+ extern Class_Descriptor cd_GG1111121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG1111121, buf);
+ GG1111121 *dp, &lv = *(dp=new (buf) GG1111121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG1111121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1111121)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1111121");
+ check_base_class_offset(lv, (AA1*)(FF112*), ABISELECT(32,16), "GG1111121");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1111121");
+ check_base_class_offset(lv, (BB1*)(FF112*), ABISELECT(48,24), "GG1111121");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1111121");
+ check_base_class_offset(lv, (FF112*), ABISELECT(64,32), "GG1111121");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1111121.pg");
+ test_class_info(&lv, &cd_GG1111121);
+ dp->~GG1111121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1111121(Test_GG1111121, "GG1111121", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG1111121C1Ev();
+extern void _ZN9GG1111121D1Ev();
+Name_Map name_map_GG1111121[] = {
+ NSPAIR(_ZN9GG1111121C1Ev),
+ NSPAIR(_ZN9GG1111121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_FF112;
+extern VTBL_ENTRY _ZTI5FF112[];
+extern VTBL_ENTRY _ZTV5FF112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF112[];
+static Base_Class bases_GG1111121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 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_BB1, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF112, ABISELECT(64,32), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1111121[];
+extern void _ZN9GG11111213fooEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11111213fooEv,_ZTv0_n20_N9GG11111213fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11111213fooEv,_ZThn8_N9GG11111213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11111213fooEv,_ZTv0_n12_N9GG11111213fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11111213fooEv,_ZThn16_N9GG11111213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11111213fooEv,_ZTv0_n12_N9GG11111213fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11111213fooEv,_ZThn24_N9GG11111213fooEv)() __attribute__((weak));
+extern void _ZN5FF1123barEv();
+static VTBL_ENTRY vtc_GG1111121[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1111121[0]),
+ (VTBL_ENTRY)&_ZN9GG11111213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1111121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11111213fooEv,_ZTv0_n20_N9GG11111213fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1111121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11111213fooEv,_ZTv0_n12_N9GG11111213fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1111121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11111213fooEv,_ZTv0_n12_N9GG11111213fooEv),
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1111121[0]),
+ (VTBL_ENTRY)&_ZN5FF1123barEv,
+};
+extern VTBL_ENTRY _ZTV9GG1111121[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1111121[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1111121[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1111121[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF1123barEv();
+static VTBL_ENTRY _tg__ZTV5FF112__9GG1111121[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN5FF1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF112__9GG1111121[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF112__9GG1111121[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG1111121[] = {
+ {&(_ZTV9GG1111121[6]), 6,27},
+ {&(_ZTV9GG1111121[12]), 12,27},
+ {&(_ZTV9GG1111121[16]), 16,27},
+ {&(_ZTV9GG1111121[20]), 20,27},
+ {&(_ZTV9GG1111121[26]), 26,27},
+ {&(_tg__ZTV5EE111__9GG1111121[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1111121[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1111121[3]), 3,4},
+ {&(_tg__ZTV5FF112__9GG1111121[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF112__9GG1111121[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF112__9GG1111121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1111121[];
+extern VTBL_ENTRY _ZTV9GG1111121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1111121[];
+static VTBL_ENTRY alt_thunk_names182[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11111213fooEv,_ZTv0_n12_N9GG11111213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11111213fooEv,_ZThn24_N9GG11111213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11111213fooEv,_ZThn16_N9GG11111213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11111213fooEv,_ZTv0_n20_N9GG11111213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11111213fooEv,_ZThn8_N9GG11111213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1111121 = { "GG1111121", // class name
+ bases_GG1111121, 4,
+ &(vtc_GG1111121[0]), // expected_vtbl_contents
+ &(vtt_GG1111121[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG1111121),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1111121),27, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1111121),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names182,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1111123 : virtual EE111 , virtual FF112 {
+ int pg;
+ virtual void foo(); // _ZN9GG11111233fooEv
+ virtual void bar(); // _ZN9GG11111233barEv
+ ~GG1111123(); // tgen
+ GG1111123(); // tgen
+};
+//SIG(1 GG1111123) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC3 VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG1111123 ::foo(){vfunc_called(this, "_ZN9GG11111233fooEv");}
+void GG1111123 ::bar(){vfunc_called(this, "_ZN9GG11111233barEv");}
+GG1111123 ::~GG1111123(){ note_dtor("GG1111123", this);} // tgen
+GG1111123 ::GG1111123(){ note_ctor("GG1111123", this);} // tgen
+
+static void Test_GG1111123()
+{
+ extern Class_Descriptor cd_GG1111123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG1111123, buf);
+ GG1111123 *dp, &lv = *(dp=new (buf) GG1111123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG1111123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1111123)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1111123");
+ check_base_class_offset(lv, (AA1*)(FF112*), ABISELECT(32,16), "GG1111123");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1111123");
+ check_base_class_offset(lv, (BB1*)(FF112*), ABISELECT(48,24), "GG1111123");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1111123");
+ check_base_class_offset(lv, (FF112*), ABISELECT(64,32), "GG1111123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1111123.pg");
+ test_class_info(&lv, &cd_GG1111123);
+ dp->~GG1111123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1111123(Test_GG1111123, "GG1111123", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG1111123C1Ev();
+extern void _ZN9GG1111123D1Ev();
+Name_Map name_map_GG1111123[] = {
+ NSPAIR(_ZN9GG1111123C1Ev),
+ NSPAIR(_ZN9GG1111123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_FF112;
+extern VTBL_ENTRY _ZTI5FF112[];
+extern VTBL_ENTRY _ZTV5FF112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF112[];
+static Base_Class bases_GG1111123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF112, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1111123[];
+extern void _ZN9GG11111233fooEv();
+extern void _ZN9GG11111233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11111233fooEv,_ZTv0_n20_N9GG11111233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11111233fooEv,_ZThn8_N9GG11111233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11111233fooEv,_ZTv0_n12_N9GG11111233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11111233fooEv,_ZThn16_N9GG11111233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11111233fooEv,_ZTv0_n12_N9GG11111233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11111233fooEv,_ZThn24_N9GG11111233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11111233barEv,_ZTv0_n20_N9GG11111233barEv)();
+extern void ABISELECT(_ZThn64_N9GG11111233barEv,_ZThn32_N9GG11111233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1111123[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1111123[0]),
+ (VTBL_ENTRY)&_ZN9GG11111233fooEv,
+ (VTBL_ENTRY)&_ZN9GG11111233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1111123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11111233fooEv,_ZTv0_n20_N9GG11111233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1111123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11111233fooEv,_ZTv0_n12_N9GG11111233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1111123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11111233fooEv,_ZTv0_n12_N9GG11111233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1111123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11111233barEv,_ZTv0_n20_N9GG11111233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1111123[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1111123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1111123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1111123[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF1123barEv();
+static VTBL_ENTRY _tg__ZTV5FF112__9GG1111123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN5FF1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF112__9GG1111123[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF112__9GG1111123[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG1111123[] = {
+ {&(_ZTV9GG1111123[6]), 6,28},
+ {&(_ZTV9GG1111123[13]), 13,28},
+ {&(_ZTV9GG1111123[17]), 17,28},
+ {&(_ZTV9GG1111123[21]), 21,28},
+ {&(_ZTV9GG1111123[27]), 27,28},
+ {&(_tg__ZTV5EE111__9GG1111123[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1111123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1111123[3]), 3,4},
+ {&(_tg__ZTV5FF112__9GG1111123[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF112__9GG1111123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF112__9GG1111123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1111123[];
+extern VTBL_ENTRY _ZTV9GG1111123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1111123[];
+static VTBL_ENTRY alt_thunk_names183[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11111233barEv,_ZTv0_n20_N9GG11111233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11111233barEv,_ZThn32_N9GG11111233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11111233fooEv,_ZTv0_n12_N9GG11111233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11111233fooEv,_ZThn24_N9GG11111233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11111233fooEv,_ZThn16_N9GG11111233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11111233fooEv,_ZTv0_n20_N9GG11111233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11111233fooEv,_ZThn8_N9GG11111233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1111123 = { "GG1111123", // class name
+ bases_GG1111123, 4,
+ &(vtc_GG1111123[0]), // expected_vtbl_contents
+ &(vtt_GG1111123[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG1111123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1111123),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1111123),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names183,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1111131 : virtual EE111 , virtual FF113 {
+ int pg;
+ virtual void foo(); // _ZN9GG11111313fooEv
+ ~GG1111131(); // tgen
+ GG1111131(); // tgen
+};
+//SIG(1 GG1111131) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC3 VBC4 v1 v2 Fi} v1 Fi}
+
+
+void GG1111131 ::foo(){vfunc_called(this, "_ZN9GG11111313fooEv");}
+GG1111131 ::~GG1111131(){ note_dtor("GG1111131", this);} // tgen
+GG1111131 ::GG1111131(){ note_ctor("GG1111131", this);} // tgen
+
+static void Test_GG1111131()
+{
+ extern Class_Descriptor cd_GG1111131;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG1111131, buf);
+ GG1111131 *dp, &lv = *(dp=new (buf) GG1111131());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG1111131)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1111131)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1111131");
+ check_base_class_offset(lv, (AA1*)(FF113*), ABISELECT(32,16), "GG1111131");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1111131");
+ check_base_class_offset(lv, (BB1*)(FF113*), ABISELECT(48,24), "GG1111131");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1111131");
+ check_base_class_offset(lv, (FF113*), ABISELECT(64,32), "GG1111131");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1111131.pg");
+ test_class_info(&lv, &cd_GG1111131);
+ dp->~GG1111131();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1111131(Test_GG1111131, "GG1111131", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG1111131C1Ev();
+extern void _ZN9GG1111131D1Ev();
+Name_Map name_map_GG1111131[] = {
+ NSPAIR(_ZN9GG1111131C1Ev),
+ NSPAIR(_ZN9GG1111131D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_FF113;
+extern VTBL_ENTRY _ZTI5FF113[];
+extern VTBL_ENTRY _ZTV5FF113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF113[];
+static Base_Class bases_GG1111131[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 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_BB1, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF113, ABISELECT(64,32), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1111131[];
+extern void _ZN9GG11111313fooEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11111313fooEv,_ZTv0_n20_N9GG11111313fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11111313fooEv,_ZThn8_N9GG11111313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11111313fooEv,_ZTv0_n12_N9GG11111313fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11111313fooEv,_ZThn16_N9GG11111313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11111313fooEv,_ZTv0_n12_N9GG11111313fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11111313fooEv,_ZThn24_N9GG11111313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11111313fooEv,_ZTv0_n20_N9GG11111313fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11111313fooEv,_ZThn32_N9GG11111313fooEv)() __attribute__((weak));
+extern void _ZN5FF1133barEv();
+static VTBL_ENTRY vtc_GG1111131[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1111131[0]),
+ (VTBL_ENTRY)&_ZN9GG11111313fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1111131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11111313fooEv,_ZTv0_n20_N9GG11111313fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1111131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11111313fooEv,_ZTv0_n12_N9GG11111313fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1111131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11111313fooEv,_ZTv0_n12_N9GG11111313fooEv),
+ 0,
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1111131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11111313fooEv,_ZTv0_n20_N9GG11111313fooEv),
+ (VTBL_ENTRY)&_ZN5FF1133barEv,
+};
+extern VTBL_ENTRY _ZTV9GG1111131[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1111131[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1111131[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1111131[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF1133fooEv();
+extern void _ZN5FF1133barEv();
+static VTBL_ENTRY _tg__ZTV5FF113__9GG1111131[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&_ZN5FF1133fooEv,
+ (VTBL_ENTRY)&_ZN5FF1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF113__9GG1111131[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF113__9GG1111131[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+static VTT_ENTRY vtt_GG1111131[] = {
+ {&(_ZTV9GG1111131[6]), 6,29},
+ {&(_ZTV9GG1111131[12]), 12,29},
+ {&(_ZTV9GG1111131[16]), 16,29},
+ {&(_ZTV9GG1111131[20]), 20,29},
+ {&(_ZTV9GG1111131[27]), 27,29},
+ {&(_tg__ZTV5EE111__9GG1111131[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1111131[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1111131[3]), 3,4},
+ {&(_tg__ZTV5FF113__9GG1111131[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF113__9GG1111131[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF113__9GG1111131[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1111131[];
+extern VTBL_ENTRY _ZTV9GG1111131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1111131[];
+static VTBL_ENTRY alt_thunk_names184[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11111313fooEv,_ZTv0_n12_N9GG11111313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11111313fooEv,_ZThn24_N9GG11111313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11111313fooEv,_ZThn16_N9GG11111313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11111313fooEv,_ZTv0_n20_N9GG11111313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11111313fooEv,_ZThn32_N9GG11111313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11111313fooEv,_ZThn8_N9GG11111313fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1111131 = { "GG1111131", // class name
+ bases_GG1111131, 4,
+ &(vtc_GG1111131[0]), // expected_vtbl_contents
+ &(vtt_GG1111131[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG1111131),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1111131),29, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1111131),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names184,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1111133 : virtual EE111 , virtual FF113 {
+ int pg;
+ virtual void foo(); // _ZN9GG11111333fooEv
+ virtual void bar(); // _ZN9GG11111333barEv
+ ~GG1111133(); // tgen
+ GG1111133(); // tgen
+};
+//SIG(1 GG1111133) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC3 VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1111133 ::foo(){vfunc_called(this, "_ZN9GG11111333fooEv");}
+void GG1111133 ::bar(){vfunc_called(this, "_ZN9GG11111333barEv");}
+GG1111133 ::~GG1111133(){ note_dtor("GG1111133", this);} // tgen
+GG1111133 ::GG1111133(){ note_ctor("GG1111133", this);} // tgen
+
+static void Test_GG1111133()
+{
+ extern Class_Descriptor cd_GG1111133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG1111133, buf);
+ GG1111133 *dp, &lv = *(dp=new (buf) GG1111133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG1111133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1111133)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1111133");
+ check_base_class_offset(lv, (AA1*)(FF113*), ABISELECT(32,16), "GG1111133");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1111133");
+ check_base_class_offset(lv, (BB1*)(FF113*), ABISELECT(48,24), "GG1111133");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1111133");
+ check_base_class_offset(lv, (FF113*), ABISELECT(64,32), "GG1111133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1111133.pg");
+ test_class_info(&lv, &cd_GG1111133);
+ dp->~GG1111133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1111133(Test_GG1111133, "GG1111133", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG1111133C1Ev();
+extern void _ZN9GG1111133D1Ev();
+Name_Map name_map_GG1111133[] = {
+ NSPAIR(_ZN9GG1111133C1Ev),
+ NSPAIR(_ZN9GG1111133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_FF113;
+extern VTBL_ENTRY _ZTI5FF113[];
+extern VTBL_ENTRY _ZTV5FF113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF113[];
+static Base_Class bases_GG1111133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF113, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1111133[];
+extern void _ZN9GG11111333fooEv();
+extern void _ZN9GG11111333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11111333fooEv,_ZTv0_n20_N9GG11111333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11111333fooEv,_ZThn8_N9GG11111333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11111333fooEv,_ZTv0_n12_N9GG11111333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11111333fooEv,_ZThn16_N9GG11111333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11111333fooEv,_ZTv0_n12_N9GG11111333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11111333fooEv,_ZThn24_N9GG11111333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11111333fooEv,_ZTv0_n20_N9GG11111333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11111333fooEv,_ZThn32_N9GG11111333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11111333barEv,_ZTv0_n24_N9GG11111333barEv)();
+extern void ABISELECT(_ZThn64_N9GG11111333barEv,_ZThn32_N9GG11111333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1111133[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1111133[0]),
+ (VTBL_ENTRY)&_ZN9GG11111333fooEv,
+ (VTBL_ENTRY)&_ZN9GG11111333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1111133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11111333fooEv,_ZTv0_n20_N9GG11111333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1111133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11111333fooEv,_ZTv0_n12_N9GG11111333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1111133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11111333fooEv,_ZTv0_n12_N9GG11111333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1111133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11111333fooEv,_ZTv0_n20_N9GG11111333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11111333barEv,_ZTv0_n24_N9GG11111333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1111133[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1111133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1111133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1111133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF1133fooEv();
+extern void _ZN5FF1133barEv();
+static VTBL_ENTRY _tg__ZTV5FF113__9GG1111133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&_ZN5FF1133fooEv,
+ (VTBL_ENTRY)&_ZN5FF1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF113__9GG1111133[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF113__9GG1111133[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+static VTT_ENTRY vtt_GG1111133[] = {
+ {&(_ZTV9GG1111133[6]), 6,30},
+ {&(_ZTV9GG1111133[13]), 13,30},
+ {&(_ZTV9GG1111133[17]), 17,30},
+ {&(_ZTV9GG1111133[21]), 21,30},
+ {&(_ZTV9GG1111133[28]), 28,30},
+ {&(_tg__ZTV5EE111__9GG1111133[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1111133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1111133[3]), 3,4},
+ {&(_tg__ZTV5FF113__9GG1111133[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF113__9GG1111133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF113__9GG1111133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1111133[];
+extern VTBL_ENTRY _ZTV9GG1111133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1111133[];
+static VTBL_ENTRY alt_thunk_names185[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG11111333barEv,_ZTv0_n24_N9GG11111333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11111333barEv,_ZThn32_N9GG11111333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11111333fooEv,_ZTv0_n12_N9GG11111333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11111333fooEv,_ZThn24_N9GG11111333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11111333fooEv,_ZThn16_N9GG11111333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11111333fooEv,_ZTv0_n20_N9GG11111333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11111333fooEv,_ZThn32_N9GG11111333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11111333fooEv,_ZThn8_N9GG11111333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1111133 = { "GG1111133", // class name
+ bases_GG1111133, 4,
+ &(vtc_GG1111133[0]), // expected_vtbl_contents
+ &(vtt_GG1111133[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG1111133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1111133),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1111133),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names185,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1111211 : virtual EE111 , virtual FF121 {
+ int pg;
+ virtual void foo(); // _ZN9GG11112113fooEv
+ ~GG1111211(); // tgen
+ GG1111211(); // tgen
+};
+//SIG(1 GG1111211) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v1 Fi} v1 Fi}
+
+
+void GG1111211 ::foo(){vfunc_called(this, "_ZN9GG11112113fooEv");}
+GG1111211 ::~GG1111211(){ note_dtor("GG1111211", this);} // tgen
+GG1111211 ::GG1111211(){ note_ctor("GG1111211", this);} // tgen
+
+static void Test_GG1111211()
+{
+ extern Class_Descriptor cd_GG1111211;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1111211, buf);
+ GG1111211 *dp, &lv = *(dp=new (buf) GG1111211());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1111211)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1111211)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1111211");
+ check_base_class_offset(lv, (AA1*)(FF121*), ABISELECT(32,16), "GG1111211");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1111211");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1111211");
+ check_base_class_offset(lv, (BB2*)(FF121*), ABISELECT(80,40), "GG1111211");
+ check_base_class_offset(lv, (FF121*), ABISELECT(64,32), "GG1111211");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1111211.pg");
+ test_class_info(&lv, &cd_GG1111211);
+ dp->~GG1111211();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1111211(Test_GG1111211, "GG1111211", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1111211C1Ev();
+extern void _ZN9GG1111211D1Ev();
+Name_Map name_map_GG1111211[] = {
+ NSPAIR(_ZN9GG1111211C1Ev),
+ NSPAIR(_ZN9GG1111211D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF121;
+extern VTBL_ENTRY _ZTI5FF121[];
+extern VTBL_ENTRY _ZTV5FF121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF121[];
+static Base_Class bases_GG1111211[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF121, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1111211[];
+extern void _ZN9GG11112113fooEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11112113fooEv,_ZTv0_n20_N9GG11112113fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11112113fooEv,_ZThn8_N9GG11112113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11112113fooEv,_ZTv0_n12_N9GG11112113fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11112113fooEv,_ZThn16_N9GG11112113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11112113fooEv,_ZTv0_n12_N9GG11112113fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11112113fooEv,_ZThn24_N9GG11112113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11112113fooEv,_ZTv0_n20_N9GG11112113fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11112113fooEv,_ZThn32_N9GG11112113fooEv)() __attribute__((weak));
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY vtc_GG1111211[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1111211[0]),
+ (VTBL_ENTRY)&_ZN9GG11112113fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1111211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11112113fooEv,_ZTv0_n20_N9GG11112113fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1111211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11112113fooEv,_ZTv0_n12_N9GG11112113fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1111211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11112113fooEv,_ZTv0_n12_N9GG11112113fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1111211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11112113fooEv,_ZTv0_n20_N9GG11112113fooEv),
+ 0,
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1111211[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern VTBL_ENTRY _ZTV9GG1111211[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1111211[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1111211[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1111211[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF1213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF121__9GG1111211[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN5FF1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF121__9GG1111211[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF121__9GG1111211[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG1111211[] = {
+ {&(_ZTV9GG1111211[7]), 7,32},
+ {&(_ZTV9GG1111211[13]), 13,32},
+ {&(_ZTV9GG1111211[17]), 17,32},
+ {&(_ZTV9GG1111211[21]), 21,32},
+ {&(_ZTV9GG1111211[27]), 27,32},
+ {&(_ZTV9GG1111211[31]), 31,32},
+ {&(_tg__ZTV5EE111__9GG1111211[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1111211[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1111211[3]), 3,4},
+ {&(_tg__ZTV5FF121__9GG1111211[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF121__9GG1111211[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF121__9GG1111211[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1111211[];
+extern VTBL_ENTRY _ZTV9GG1111211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1111211[];
+static VTBL_ENTRY alt_thunk_names186[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11112113fooEv,_ZTv0_n12_N9GG11112113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11112113fooEv,_ZThn24_N9GG11112113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11112113fooEv,_ZThn16_N9GG11112113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11112113fooEv,_ZTv0_n20_N9GG11112113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11112113fooEv,_ZThn32_N9GG11112113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11112113fooEv,_ZThn8_N9GG11112113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1111211 = { "GG1111211", // class name
+ bases_GG1111211, 5,
+ &(vtc_GG1111211[0]), // expected_vtbl_contents
+ &(vtt_GG1111211[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1111211),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1111211),32, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1111211),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names186,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1111213 : virtual EE111 , virtual FF121 {
+ int pg;
+ virtual void foo(); // _ZN9GG11112133fooEv
+ virtual void bar(); // _ZN9GG11112133barEv
+ ~GG1111213(); // tgen
+ GG1111213(); // tgen
+};
+//SIG(1 GG1111213) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1111213 ::foo(){vfunc_called(this, "_ZN9GG11112133fooEv");}
+void GG1111213 ::bar(){vfunc_called(this, "_ZN9GG11112133barEv");}
+GG1111213 ::~GG1111213(){ note_dtor("GG1111213", this);} // tgen
+GG1111213 ::GG1111213(){ note_ctor("GG1111213", this);} // tgen
+
+static void Test_GG1111213()
+{
+ extern Class_Descriptor cd_GG1111213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1111213, buf);
+ GG1111213 *dp, &lv = *(dp=new (buf) GG1111213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1111213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1111213)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1111213");
+ check_base_class_offset(lv, (AA1*)(FF121*), ABISELECT(32,16), "GG1111213");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1111213");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1111213");
+ check_base_class_offset(lv, (BB2*)(FF121*), ABISELECT(80,40), "GG1111213");
+ check_base_class_offset(lv, (FF121*), ABISELECT(64,32), "GG1111213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1111213.pg");
+ test_class_info(&lv, &cd_GG1111213);
+ dp->~GG1111213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1111213(Test_GG1111213, "GG1111213", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1111213C1Ev();
+extern void _ZN9GG1111213D1Ev();
+Name_Map name_map_GG1111213[] = {
+ NSPAIR(_ZN9GG1111213C1Ev),
+ NSPAIR(_ZN9GG1111213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF121;
+extern VTBL_ENTRY _ZTI5FF121[];
+extern VTBL_ENTRY _ZTV5FF121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF121[];
+static Base_Class bases_GG1111213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF121, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1111213[];
+extern void _ZN9GG11112133fooEv();
+extern void _ZN9GG11112133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11112133fooEv,_ZTv0_n20_N9GG11112133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11112133fooEv,_ZThn8_N9GG11112133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11112133fooEv,_ZTv0_n12_N9GG11112133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11112133fooEv,_ZThn16_N9GG11112133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11112133fooEv,_ZTv0_n12_N9GG11112133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11112133fooEv,_ZThn24_N9GG11112133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11112133fooEv,_ZTv0_n20_N9GG11112133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11112133fooEv,_ZThn32_N9GG11112133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11112133barEv,_ZTv0_n12_N9GG11112133barEv)();
+extern void ABISELECT(_ZThn80_N9GG11112133barEv,_ZThn40_N9GG11112133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1111213[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1111213[0]),
+ (VTBL_ENTRY)&_ZN9GG11112133fooEv,
+ (VTBL_ENTRY)&_ZN9GG11112133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1111213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11112133fooEv,_ZTv0_n20_N9GG11112133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1111213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11112133fooEv,_ZTv0_n12_N9GG11112133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1111213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11112133fooEv,_ZTv0_n12_N9GG11112133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1111213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11112133fooEv,_ZTv0_n20_N9GG11112133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1111213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11112133barEv,_ZTv0_n12_N9GG11112133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1111213[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1111213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1111213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1111213[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF1213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF121__9GG1111213[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN5FF1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF121__9GG1111213[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF121__9GG1111213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG1111213[] = {
+ {&(_ZTV9GG1111213[7]), 7,33},
+ {&(_ZTV9GG1111213[14]), 14,33},
+ {&(_ZTV9GG1111213[18]), 18,33},
+ {&(_ZTV9GG1111213[22]), 22,33},
+ {&(_ZTV9GG1111213[28]), 28,33},
+ {&(_ZTV9GG1111213[32]), 32,33},
+ {&(_tg__ZTV5EE111__9GG1111213[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1111213[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1111213[3]), 3,4},
+ {&(_tg__ZTV5FF121__9GG1111213[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF121__9GG1111213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF121__9GG1111213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1111213[];
+extern VTBL_ENTRY _ZTV9GG1111213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1111213[];
+static VTBL_ENTRY alt_thunk_names187[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11112133barEv,_ZTv0_n12_N9GG11112133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11112133barEv,_ZThn40_N9GG11112133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11112133fooEv,_ZTv0_n12_N9GG11112133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11112133fooEv,_ZThn24_N9GG11112133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11112133fooEv,_ZThn16_N9GG11112133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11112133fooEv,_ZTv0_n20_N9GG11112133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11112133fooEv,_ZThn32_N9GG11112133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11112133fooEv,_ZThn8_N9GG11112133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1111213 = { "GG1111213", // class name
+ bases_GG1111213, 5,
+ &(vtc_GG1111213[0]), // expected_vtbl_contents
+ &(vtt_GG1111213[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1111213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1111213),33, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1111213),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names187,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1111221 : virtual EE111 , virtual FF122 {
+ int pg;
+ virtual void foo(); // _ZN9GG11112213fooEv
+ ~GG1111221(); // tgen
+ GG1111221(); // tgen
+};
+//SIG(1 GG1111221) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v2 Fi} v1 Fi}
+
+
+void GG1111221 ::foo(){vfunc_called(this, "_ZN9GG11112213fooEv");}
+GG1111221 ::~GG1111221(){ note_dtor("GG1111221", this);} // tgen
+GG1111221 ::GG1111221(){ note_ctor("GG1111221", this);} // tgen
+
+static void Test_GG1111221()
+{
+ extern Class_Descriptor cd_GG1111221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1111221, buf);
+ GG1111221 *dp, &lv = *(dp=new (buf) GG1111221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1111221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1111221)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1111221");
+ check_base_class_offset(lv, (AA1*)(FF122*), ABISELECT(32,16), "GG1111221");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1111221");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1111221");
+ check_base_class_offset(lv, (BB2*)(FF122*), ABISELECT(80,40), "GG1111221");
+ check_base_class_offset(lv, (FF122*), ABISELECT(64,32), "GG1111221");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1111221.pg");
+ test_class_info(&lv, &cd_GG1111221);
+ dp->~GG1111221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1111221(Test_GG1111221, "GG1111221", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1111221C1Ev();
+extern void _ZN9GG1111221D1Ev();
+Name_Map name_map_GG1111221[] = {
+ NSPAIR(_ZN9GG1111221C1Ev),
+ NSPAIR(_ZN9GG1111221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF122;
+extern VTBL_ENTRY _ZTI5FF122[];
+extern VTBL_ENTRY _ZTV5FF122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF122[];
+static Base_Class bases_GG1111221[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF122, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1111221[];
+extern void _ZN9GG11112213fooEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11112213fooEv,_ZTv0_n20_N9GG11112213fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11112213fooEv,_ZThn8_N9GG11112213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11112213fooEv,_ZTv0_n12_N9GG11112213fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11112213fooEv,_ZThn16_N9GG11112213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11112213fooEv,_ZTv0_n12_N9GG11112213fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11112213fooEv,_ZThn24_N9GG11112213fooEv)() __attribute__((weak));
+extern void _ZN5FF1223barEv();
+extern void ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv)();
+extern void ABISELECT(_ZThn16_N5FF1223barEv,_ZThn8_N5FF1223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1111221[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1111221[0]),
+ (VTBL_ENTRY)&_ZN9GG11112213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1111221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11112213fooEv,_ZTv0_n20_N9GG11112213fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1111221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11112213fooEv,_ZTv0_n12_N9GG11112213fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1111221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11112213fooEv,_ZTv0_n12_N9GG11112213fooEv),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1111221[0]),
+ (VTBL_ENTRY)&_ZN5FF1223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1111221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1111221[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1111221[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1111221[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1111221[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF1223barEv();
+static VTBL_ENTRY _tg__ZTV5FF122__9GG1111221[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN5FF1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF122__9GG1111221[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv)();
+extern void ABISELECT(_ZThn16_N5FF1223barEv,_ZThn8_N5FF1223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF122__9GG1111221[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv),
+};
+static VTT_ENTRY vtt_GG1111221[] = {
+ {&(_ZTV9GG1111221[7]), 7,32},
+ {&(_ZTV9GG1111221[13]), 13,32},
+ {&(_ZTV9GG1111221[17]), 17,32},
+ {&(_ZTV9GG1111221[21]), 21,32},
+ {&(_ZTV9GG1111221[27]), 27,32},
+ {&(_ZTV9GG1111221[31]), 31,32},
+ {&(_tg__ZTV5EE111__9GG1111221[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1111221[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1111221[3]), 3,4},
+ {&(_tg__ZTV5FF122__9GG1111221[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF122__9GG1111221[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF122__9GG1111221[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1111221[];
+extern VTBL_ENTRY _ZTV9GG1111221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1111221[];
+static VTBL_ENTRY alt_thunk_names188[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1223barEv,_ZThn8_N5FF1223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1223barEv,_ZThn8_N5FF1223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11112213fooEv,_ZTv0_n12_N9GG11112213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11112213fooEv,_ZThn24_N9GG11112213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11112213fooEv,_ZThn16_N9GG11112213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11112213fooEv,_ZTv0_n20_N9GG11112213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11112213fooEv,_ZThn8_N9GG11112213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1111221 = { "GG1111221", // class name
+ bases_GG1111221, 5,
+ &(vtc_GG1111221[0]), // expected_vtbl_contents
+ &(vtt_GG1111221[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1111221),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1111221),32, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1111221),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names188,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1111223 : virtual EE111 , virtual FF122 {
+ int pg;
+ virtual void foo(); // _ZN9GG11112233fooEv
+ virtual void bar(); // _ZN9GG11112233barEv
+ ~GG1111223(); // tgen
+ GG1111223(); // tgen
+};
+//SIG(1 GG1111223) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1111223 ::foo(){vfunc_called(this, "_ZN9GG11112233fooEv");}
+void GG1111223 ::bar(){vfunc_called(this, "_ZN9GG11112233barEv");}
+GG1111223 ::~GG1111223(){ note_dtor("GG1111223", this);} // tgen
+GG1111223 ::GG1111223(){ note_ctor("GG1111223", this);} // tgen
+
+static void Test_GG1111223()
+{
+ extern Class_Descriptor cd_GG1111223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1111223, buf);
+ GG1111223 *dp, &lv = *(dp=new (buf) GG1111223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1111223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1111223)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1111223");
+ check_base_class_offset(lv, (AA1*)(FF122*), ABISELECT(32,16), "GG1111223");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1111223");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1111223");
+ check_base_class_offset(lv, (BB2*)(FF122*), ABISELECT(80,40), "GG1111223");
+ check_base_class_offset(lv, (FF122*), ABISELECT(64,32), "GG1111223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1111223.pg");
+ test_class_info(&lv, &cd_GG1111223);
+ dp->~GG1111223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1111223(Test_GG1111223, "GG1111223", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1111223C1Ev();
+extern void _ZN9GG1111223D1Ev();
+Name_Map name_map_GG1111223[] = {
+ NSPAIR(_ZN9GG1111223C1Ev),
+ NSPAIR(_ZN9GG1111223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF122;
+extern VTBL_ENTRY _ZTI5FF122[];
+extern VTBL_ENTRY _ZTV5FF122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF122[];
+static Base_Class bases_GG1111223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF122, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1111223[];
+extern void _ZN9GG11112233fooEv();
+extern void _ZN9GG11112233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11112233fooEv,_ZTv0_n20_N9GG11112233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11112233fooEv,_ZThn8_N9GG11112233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11112233fooEv,_ZTv0_n12_N9GG11112233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11112233fooEv,_ZThn16_N9GG11112233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11112233fooEv,_ZTv0_n12_N9GG11112233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11112233fooEv,_ZThn24_N9GG11112233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11112233barEv,_ZTv0_n20_N9GG11112233barEv)();
+extern void ABISELECT(_ZThn64_N9GG11112233barEv,_ZThn32_N9GG11112233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11112233barEv,_ZTv0_n12_N9GG11112233barEv)();
+extern void ABISELECT(_ZThn80_N9GG11112233barEv,_ZThn40_N9GG11112233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1111223[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1111223[0]),
+ (VTBL_ENTRY)&_ZN9GG11112233fooEv,
+ (VTBL_ENTRY)&_ZN9GG11112233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1111223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11112233fooEv,_ZTv0_n20_N9GG11112233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1111223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11112233fooEv,_ZTv0_n12_N9GG11112233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1111223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11112233fooEv,_ZTv0_n12_N9GG11112233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1111223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11112233barEv,_ZTv0_n20_N9GG11112233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1111223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11112233barEv,_ZTv0_n12_N9GG11112233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1111223[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1111223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1111223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1111223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF1223barEv();
+static VTBL_ENTRY _tg__ZTV5FF122__9GG1111223[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN5FF1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF122__9GG1111223[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv)();
+extern void ABISELECT(_ZThn16_N5FF1223barEv,_ZThn8_N5FF1223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF122__9GG1111223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv),
+};
+static VTT_ENTRY vtt_GG1111223[] = {
+ {&(_ZTV9GG1111223[7]), 7,33},
+ {&(_ZTV9GG1111223[14]), 14,33},
+ {&(_ZTV9GG1111223[18]), 18,33},
+ {&(_ZTV9GG1111223[22]), 22,33},
+ {&(_ZTV9GG1111223[28]), 28,33},
+ {&(_ZTV9GG1111223[32]), 32,33},
+ {&(_tg__ZTV5EE111__9GG1111223[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1111223[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1111223[3]), 3,4},
+ {&(_tg__ZTV5FF122__9GG1111223[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF122__9GG1111223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF122__9GG1111223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1111223[];
+extern VTBL_ENTRY _ZTV9GG1111223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1111223[];
+static VTBL_ENTRY alt_thunk_names189[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1223barEv,_ZThn8_N5FF1223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11112233barEv,_ZTv0_n12_N9GG11112233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11112233barEv,_ZThn40_N9GG11112233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11112233barEv,_ZTv0_n20_N9GG11112233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11112233barEv,_ZThn32_N9GG11112233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11112233fooEv,_ZTv0_n12_N9GG11112233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11112233fooEv,_ZThn24_N9GG11112233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11112233fooEv,_ZThn16_N9GG11112233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11112233fooEv,_ZTv0_n20_N9GG11112233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11112233fooEv,_ZThn8_N9GG11112233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1111223 = { "GG1111223", // class name
+ bases_GG1111223, 5,
+ &(vtc_GG1111223[0]), // expected_vtbl_contents
+ &(vtt_GG1111223[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1111223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1111223),33, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1111223),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names189,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1111231 : virtual EE111 , virtual FF123 {
+ int pg;
+ virtual void foo(); // _ZN9GG11112313fooEv
+ ~GG1111231(); // tgen
+ GG1111231(); // tgen
+};
+//SIG(1 GG1111231) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void GG1111231 ::foo(){vfunc_called(this, "_ZN9GG11112313fooEv");}
+GG1111231 ::~GG1111231(){ note_dtor("GG1111231", this);} // tgen
+GG1111231 ::GG1111231(){ note_ctor("GG1111231", this);} // tgen
+
+static void Test_GG1111231()
+{
+ extern Class_Descriptor cd_GG1111231;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1111231, buf);
+ GG1111231 *dp, &lv = *(dp=new (buf) GG1111231());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1111231)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1111231)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1111231");
+ check_base_class_offset(lv, (AA1*)(FF123*), ABISELECT(32,16), "GG1111231");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1111231");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1111231");
+ check_base_class_offset(lv, (BB2*)(FF123*), ABISELECT(80,40), "GG1111231");
+ check_base_class_offset(lv, (FF123*), ABISELECT(64,32), "GG1111231");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1111231.pg");
+ test_class_info(&lv, &cd_GG1111231);
+ dp->~GG1111231();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1111231(Test_GG1111231, "GG1111231", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1111231C1Ev();
+extern void _ZN9GG1111231D1Ev();
+Name_Map name_map_GG1111231[] = {
+ NSPAIR(_ZN9GG1111231C1Ev),
+ NSPAIR(_ZN9GG1111231D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF123;
+extern VTBL_ENTRY _ZTI5FF123[];
+extern VTBL_ENTRY _ZTV5FF123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF123[];
+static Base_Class bases_GG1111231[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF123, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1111231[];
+extern void _ZN9GG11112313fooEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11112313fooEv,_ZTv0_n20_N9GG11112313fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11112313fooEv,_ZThn8_N9GG11112313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11112313fooEv,_ZTv0_n12_N9GG11112313fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11112313fooEv,_ZThn16_N9GG11112313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11112313fooEv,_ZTv0_n12_N9GG11112313fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11112313fooEv,_ZThn24_N9GG11112313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11112313fooEv,_ZTv0_n20_N9GG11112313fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11112313fooEv,_ZThn32_N9GG11112313fooEv)() __attribute__((weak));
+extern void _ZN5FF1233barEv();
+extern void ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv)();
+extern void ABISELECT(_ZThn16_N5FF1233barEv,_ZThn8_N5FF1233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1111231[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1111231[0]),
+ (VTBL_ENTRY)&_ZN9GG11112313fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1111231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11112313fooEv,_ZTv0_n20_N9GG11112313fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1111231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11112313fooEv,_ZTv0_n12_N9GG11112313fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1111231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11112313fooEv,_ZTv0_n12_N9GG11112313fooEv),
+ 0,
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1111231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11112313fooEv,_ZTv0_n20_N9GG11112313fooEv),
+ (VTBL_ENTRY)&_ZN5FF1233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1111231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1111231[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1111231[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1111231[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1111231[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF1233fooEv();
+extern void _ZN5FF1233barEv();
+static VTBL_ENTRY _tg__ZTV5FF123__9GG1111231[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&_ZN5FF1233fooEv,
+ (VTBL_ENTRY)&_ZN5FF1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF123__9GG1111231[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv)();
+extern void ABISELECT(_ZThn16_N5FF1233barEv,_ZThn8_N5FF1233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF123__9GG1111231[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv),
+};
+static VTT_ENTRY vtt_GG1111231[] = {
+ {&(_ZTV9GG1111231[7]), 7,34},
+ {&(_ZTV9GG1111231[13]), 13,34},
+ {&(_ZTV9GG1111231[17]), 17,34},
+ {&(_ZTV9GG1111231[21]), 21,34},
+ {&(_ZTV9GG1111231[28]), 28,34},
+ {&(_ZTV9GG1111231[33]), 33,34},
+ {&(_tg__ZTV5EE111__9GG1111231[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1111231[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1111231[3]), 3,4},
+ {&(_tg__ZTV5FF123__9GG1111231[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF123__9GG1111231[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF123__9GG1111231[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1111231[];
+extern VTBL_ENTRY _ZTV9GG1111231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1111231[];
+static VTBL_ENTRY alt_thunk_names190[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1233barEv,_ZThn8_N5FF1233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1233barEv,_ZThn8_N5FF1233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11112313fooEv,_ZTv0_n12_N9GG11112313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11112313fooEv,_ZThn24_N9GG11112313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11112313fooEv,_ZThn16_N9GG11112313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11112313fooEv,_ZTv0_n20_N9GG11112313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11112313fooEv,_ZThn32_N9GG11112313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11112313fooEv,_ZThn8_N9GG11112313fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1111231 = { "GG1111231", // class name
+ bases_GG1111231, 5,
+ &(vtc_GG1111231[0]), // expected_vtbl_contents
+ &(vtt_GG1111231[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1111231),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1111231),34, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1111231),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names190,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1111233 : virtual EE111 , virtual FF123 {
+ int pg;
+ virtual void foo(); // _ZN9GG11112333fooEv
+ virtual void bar(); // _ZN9GG11112333barEv
+ ~GG1111233(); // tgen
+ GG1111233(); // tgen
+};
+//SIG(1 GG1111233) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1111233 ::foo(){vfunc_called(this, "_ZN9GG11112333fooEv");}
+void GG1111233 ::bar(){vfunc_called(this, "_ZN9GG11112333barEv");}
+GG1111233 ::~GG1111233(){ note_dtor("GG1111233", this);} // tgen
+GG1111233 ::GG1111233(){ note_ctor("GG1111233", this);} // tgen
+
+static void Test_GG1111233()
+{
+ extern Class_Descriptor cd_GG1111233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1111233, buf);
+ GG1111233 *dp, &lv = *(dp=new (buf) GG1111233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1111233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1111233)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1111233");
+ check_base_class_offset(lv, (AA1*)(FF123*), ABISELECT(32,16), "GG1111233");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1111233");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1111233");
+ check_base_class_offset(lv, (BB2*)(FF123*), ABISELECT(80,40), "GG1111233");
+ check_base_class_offset(lv, (FF123*), ABISELECT(64,32), "GG1111233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1111233.pg");
+ test_class_info(&lv, &cd_GG1111233);
+ dp->~GG1111233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1111233(Test_GG1111233, "GG1111233", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1111233C1Ev();
+extern void _ZN9GG1111233D1Ev();
+Name_Map name_map_GG1111233[] = {
+ NSPAIR(_ZN9GG1111233C1Ev),
+ NSPAIR(_ZN9GG1111233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF123;
+extern VTBL_ENTRY _ZTI5FF123[];
+extern VTBL_ENTRY _ZTV5FF123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF123[];
+static Base_Class bases_GG1111233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF123, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1111233[];
+extern void _ZN9GG11112333fooEv();
+extern void _ZN9GG11112333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11112333fooEv,_ZTv0_n20_N9GG11112333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11112333fooEv,_ZThn8_N9GG11112333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11112333fooEv,_ZTv0_n12_N9GG11112333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11112333fooEv,_ZThn16_N9GG11112333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11112333fooEv,_ZTv0_n12_N9GG11112333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11112333fooEv,_ZThn24_N9GG11112333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11112333fooEv,_ZTv0_n20_N9GG11112333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11112333fooEv,_ZThn32_N9GG11112333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11112333barEv,_ZTv0_n24_N9GG11112333barEv)();
+extern void ABISELECT(_ZThn64_N9GG11112333barEv,_ZThn32_N9GG11112333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11112333barEv,_ZTv0_n12_N9GG11112333barEv)();
+extern void ABISELECT(_ZThn80_N9GG11112333barEv,_ZThn40_N9GG11112333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1111233[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1111233[0]),
+ (VTBL_ENTRY)&_ZN9GG11112333fooEv,
+ (VTBL_ENTRY)&_ZN9GG11112333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1111233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11112333fooEv,_ZTv0_n20_N9GG11112333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1111233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11112333fooEv,_ZTv0_n12_N9GG11112333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1111233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11112333fooEv,_ZTv0_n12_N9GG11112333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1111233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11112333fooEv,_ZTv0_n20_N9GG11112333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11112333barEv,_ZTv0_n24_N9GG11112333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1111233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11112333barEv,_ZTv0_n12_N9GG11112333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1111233[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1111233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1111233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1111233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF1233fooEv();
+extern void _ZN5FF1233barEv();
+static VTBL_ENTRY _tg__ZTV5FF123__9GG1111233[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&_ZN5FF1233fooEv,
+ (VTBL_ENTRY)&_ZN5FF1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF123__9GG1111233[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv)();
+extern void ABISELECT(_ZThn16_N5FF1233barEv,_ZThn8_N5FF1233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF123__9GG1111233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv),
+};
+static VTT_ENTRY vtt_GG1111233[] = {
+ {&(_ZTV9GG1111233[7]), 7,35},
+ {&(_ZTV9GG1111233[14]), 14,35},
+ {&(_ZTV9GG1111233[18]), 18,35},
+ {&(_ZTV9GG1111233[22]), 22,35},
+ {&(_ZTV9GG1111233[29]), 29,35},
+ {&(_ZTV9GG1111233[34]), 34,35},
+ {&(_tg__ZTV5EE111__9GG1111233[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1111233[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1111233[3]), 3,4},
+ {&(_tg__ZTV5FF123__9GG1111233[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF123__9GG1111233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF123__9GG1111233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1111233[];
+extern VTBL_ENTRY _ZTV9GG1111233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1111233[];
+static VTBL_ENTRY alt_thunk_names191[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1233barEv,_ZThn8_N5FF1233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11112333barEv,_ZTv0_n12_N9GG11112333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11112333barEv,_ZThn40_N9GG11112333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG11112333barEv,_ZTv0_n24_N9GG11112333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11112333barEv,_ZThn32_N9GG11112333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11112333fooEv,_ZTv0_n12_N9GG11112333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11112333fooEv,_ZThn24_N9GG11112333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11112333fooEv,_ZThn16_N9GG11112333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11112333fooEv,_ZTv0_n20_N9GG11112333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11112333fooEv,_ZThn32_N9GG11112333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11112333fooEv,_ZThn8_N9GG11112333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1111233 = { "GG1111233", // class name
+ bases_GG1111233, 5,
+ &(vtc_GG1111233[0]), // expected_vtbl_contents
+ &(vtt_GG1111233[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1111233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1111233),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1111233),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names191,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1111311 : virtual EE111 , virtual FF131 {
+ int pg;
+ virtual void foo(); // _ZN9GG11113113fooEv
+ ~GG1111311(); // tgen
+ GG1111311(); // tgen
+};
+//SIG(1 GG1111311) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v1 Fi} v1 Fi}
+
+
+void GG1111311 ::foo(){vfunc_called(this, "_ZN9GG11113113fooEv");}
+GG1111311 ::~GG1111311(){ note_dtor("GG1111311", this);} // tgen
+GG1111311 ::GG1111311(){ note_ctor("GG1111311", this);} // tgen
+
+static void Test_GG1111311()
+{
+ extern Class_Descriptor cd_GG1111311;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1111311, buf);
+ GG1111311 *dp, &lv = *(dp=new (buf) GG1111311());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1111311)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1111311)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1111311");
+ check_base_class_offset(lv, (AA1*)(FF131*), ABISELECT(32,16), "GG1111311");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1111311");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1111311");
+ check_base_class_offset(lv, (BB3*)(FF131*), ABISELECT(80,40), "GG1111311");
+ check_base_class_offset(lv, (FF131*), ABISELECT(64,32), "GG1111311");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1111311.pg");
+ test_class_info(&lv, &cd_GG1111311);
+ dp->~GG1111311();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1111311(Test_GG1111311, "GG1111311", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1111311C1Ev();
+extern void _ZN9GG1111311D1Ev();
+Name_Map name_map_GG1111311[] = {
+ NSPAIR(_ZN9GG1111311C1Ev),
+ NSPAIR(_ZN9GG1111311D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF131;
+extern VTBL_ENTRY _ZTI5FF131[];
+extern VTBL_ENTRY _ZTV5FF131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF131[];
+static Base_Class bases_GG1111311[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF131, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1111311[];
+extern void _ZN9GG11113113fooEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11113113fooEv,_ZTv0_n20_N9GG11113113fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11113113fooEv,_ZThn8_N9GG11113113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11113113fooEv,_ZTv0_n12_N9GG11113113fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11113113fooEv,_ZThn16_N9GG11113113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11113113fooEv,_ZTv0_n12_N9GG11113113fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11113113fooEv,_ZThn24_N9GG11113113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11113113fooEv,_ZTv0_n20_N9GG11113113fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11113113fooEv,_ZThn32_N9GG11113113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11113113fooEv,_ZTv0_n12_N9GG11113113fooEv)();
+extern void ABISELECT(_ZThn80_N9GG11113113fooEv,_ZThn40_N9GG11113113fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY vtc_GG1111311[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1111311[0]),
+ (VTBL_ENTRY)&_ZN9GG11113113fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1111311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11113113fooEv,_ZTv0_n20_N9GG11113113fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1111311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11113113fooEv,_ZTv0_n12_N9GG11113113fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1111311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11113113fooEv,_ZTv0_n12_N9GG11113113fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1111311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11113113fooEv,_ZTv0_n20_N9GG11113113fooEv),
+ 0,
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1111311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11113113fooEv,_ZTv0_n12_N9GG11113113fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern VTBL_ENTRY _ZTV9GG1111311[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1111311[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1111311[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1111311[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF1313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF131__9GG1111311[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&_ZN5FF1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF131__9GG1111311[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF131__9GG1111311[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG1111311[] = {
+ {&(_ZTV9GG1111311[7]), 7,34},
+ {&(_ZTV9GG1111311[13]), 13,34},
+ {&(_ZTV9GG1111311[17]), 17,34},
+ {&(_ZTV9GG1111311[21]), 21,34},
+ {&(_ZTV9GG1111311[27]), 27,34},
+ {&(_ZTV9GG1111311[32]), 32,34},
+ {&(_tg__ZTV5EE111__9GG1111311[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1111311[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1111311[3]), 3,4},
+ {&(_tg__ZTV5FF131__9GG1111311[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF131__9GG1111311[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF131__9GG1111311[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1111311[];
+extern VTBL_ENTRY _ZTV9GG1111311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1111311[];
+static VTBL_ENTRY alt_thunk_names192[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11113113fooEv,_ZTv0_n12_N9GG11113113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11113113fooEv,_ZThn40_N9GG11113113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11113113fooEv,_ZThn24_N9GG11113113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11113113fooEv,_ZThn16_N9GG11113113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11113113fooEv,_ZTv0_n20_N9GG11113113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11113113fooEv,_ZThn32_N9GG11113113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11113113fooEv,_ZThn8_N9GG11113113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1111311 = { "GG1111311", // class name
+ bases_GG1111311, 5,
+ &(vtc_GG1111311[0]), // expected_vtbl_contents
+ &(vtt_GG1111311[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1111311),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1111311),34, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1111311),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names192,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1111313 : virtual EE111 , virtual FF131 {
+ int pg;
+ virtual void foo(); // _ZN9GG11113133fooEv
+ virtual void bar(); // _ZN9GG11113133barEv
+ ~GG1111313(); // tgen
+ GG1111313(); // tgen
+};
+//SIG(1 GG1111313) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1111313 ::foo(){vfunc_called(this, "_ZN9GG11113133fooEv");}
+void GG1111313 ::bar(){vfunc_called(this, "_ZN9GG11113133barEv");}
+GG1111313 ::~GG1111313(){ note_dtor("GG1111313", this);} // tgen
+GG1111313 ::GG1111313(){ note_ctor("GG1111313", this);} // tgen
+
+static void Test_GG1111313()
+{
+ extern Class_Descriptor cd_GG1111313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1111313, buf);
+ GG1111313 *dp, &lv = *(dp=new (buf) GG1111313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1111313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1111313)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1111313");
+ check_base_class_offset(lv, (AA1*)(FF131*), ABISELECT(32,16), "GG1111313");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1111313");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1111313");
+ check_base_class_offset(lv, (BB3*)(FF131*), ABISELECT(80,40), "GG1111313");
+ check_base_class_offset(lv, (FF131*), ABISELECT(64,32), "GG1111313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1111313.pg");
+ test_class_info(&lv, &cd_GG1111313);
+ dp->~GG1111313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1111313(Test_GG1111313, "GG1111313", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1111313C1Ev();
+extern void _ZN9GG1111313D1Ev();
+Name_Map name_map_GG1111313[] = {
+ NSPAIR(_ZN9GG1111313C1Ev),
+ NSPAIR(_ZN9GG1111313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF131;
+extern VTBL_ENTRY _ZTI5FF131[];
+extern VTBL_ENTRY _ZTV5FF131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF131[];
+static Base_Class bases_GG1111313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF131, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1111313[];
+extern void _ZN9GG11113133fooEv();
+extern void _ZN9GG11113133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11113133fooEv,_ZTv0_n20_N9GG11113133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11113133fooEv,_ZThn8_N9GG11113133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11113133fooEv,_ZTv0_n12_N9GG11113133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11113133fooEv,_ZThn16_N9GG11113133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11113133fooEv,_ZTv0_n12_N9GG11113133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11113133fooEv,_ZThn24_N9GG11113133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11113133fooEv,_ZTv0_n20_N9GG11113133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11113133fooEv,_ZThn32_N9GG11113133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11113133fooEv,_ZTv0_n12_N9GG11113133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG11113133fooEv,_ZThn40_N9GG11113133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11113133barEv,_ZTv0_n16_N9GG11113133barEv)();
+extern void ABISELECT(_ZThn80_N9GG11113133barEv,_ZThn40_N9GG11113133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1111313[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1111313[0]),
+ (VTBL_ENTRY)&_ZN9GG11113133fooEv,
+ (VTBL_ENTRY)&_ZN9GG11113133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1111313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11113133fooEv,_ZTv0_n20_N9GG11113133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1111313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11113133fooEv,_ZTv0_n12_N9GG11113133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1111313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11113133fooEv,_ZTv0_n12_N9GG11113133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1111313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11113133fooEv,_ZTv0_n20_N9GG11113133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1111313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11113133fooEv,_ZTv0_n12_N9GG11113133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11113133barEv,_ZTv0_n16_N9GG11113133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1111313[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1111313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1111313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1111313[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF1313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF131__9GG1111313[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&_ZN5FF1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF131__9GG1111313[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF131__9GG1111313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG1111313[] = {
+ {&(_ZTV9GG1111313[7]), 7,35},
+ {&(_ZTV9GG1111313[14]), 14,35},
+ {&(_ZTV9GG1111313[18]), 18,35},
+ {&(_ZTV9GG1111313[22]), 22,35},
+ {&(_ZTV9GG1111313[28]), 28,35},
+ {&(_ZTV9GG1111313[33]), 33,35},
+ {&(_tg__ZTV5EE111__9GG1111313[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1111313[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1111313[3]), 3,4},
+ {&(_tg__ZTV5FF131__9GG1111313[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF131__9GG1111313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF131__9GG1111313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1111313[];
+extern VTBL_ENTRY _ZTV9GG1111313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1111313[];
+static VTBL_ENTRY alt_thunk_names193[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG11113133barEv,_ZTv0_n16_N9GG11113133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11113133barEv,_ZThn40_N9GG11113133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11113133fooEv,_ZTv0_n12_N9GG11113133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11113133fooEv,_ZThn40_N9GG11113133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11113133fooEv,_ZThn24_N9GG11113133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11113133fooEv,_ZThn16_N9GG11113133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11113133fooEv,_ZTv0_n20_N9GG11113133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11113133fooEv,_ZThn32_N9GG11113133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11113133fooEv,_ZThn8_N9GG11113133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1111313 = { "GG1111313", // class name
+ bases_GG1111313, 5,
+ &(vtc_GG1111313[0]), // expected_vtbl_contents
+ &(vtt_GG1111313[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1111313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1111313),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1111313),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names193,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1111321 : virtual EE111 , virtual FF132 {
+ int pg;
+ virtual void foo(); // _ZN9GG11113213fooEv
+ ~GG1111321(); // tgen
+ GG1111321(); // tgen
+};
+//SIG(1 GG1111321) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void GG1111321 ::foo(){vfunc_called(this, "_ZN9GG11113213fooEv");}
+GG1111321 ::~GG1111321(){ note_dtor("GG1111321", this);} // tgen
+GG1111321 ::GG1111321(){ note_ctor("GG1111321", this);} // tgen
+
+static void Test_GG1111321()
+{
+ extern Class_Descriptor cd_GG1111321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1111321, buf);
+ GG1111321 *dp, &lv = *(dp=new (buf) GG1111321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1111321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1111321)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1111321");
+ check_base_class_offset(lv, (AA1*)(FF132*), ABISELECT(32,16), "GG1111321");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1111321");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1111321");
+ check_base_class_offset(lv, (BB3*)(FF132*), ABISELECT(80,40), "GG1111321");
+ check_base_class_offset(lv, (FF132*), ABISELECT(64,32), "GG1111321");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1111321.pg");
+ test_class_info(&lv, &cd_GG1111321);
+ dp->~GG1111321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1111321(Test_GG1111321, "GG1111321", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1111321C1Ev();
+extern void _ZN9GG1111321D1Ev();
+Name_Map name_map_GG1111321[] = {
+ NSPAIR(_ZN9GG1111321C1Ev),
+ NSPAIR(_ZN9GG1111321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF132;
+extern VTBL_ENTRY _ZTI5FF132[];
+extern VTBL_ENTRY _ZTV5FF132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF132[];
+static Base_Class bases_GG1111321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF132, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1111321[];
+extern void _ZN9GG11113213fooEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11113213fooEv,_ZTv0_n20_N9GG11113213fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11113213fooEv,_ZThn8_N9GG11113213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11113213fooEv,_ZTv0_n12_N9GG11113213fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11113213fooEv,_ZThn16_N9GG11113213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11113213fooEv,_ZTv0_n12_N9GG11113213fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11113213fooEv,_ZThn24_N9GG11113213fooEv)() __attribute__((weak));
+extern void _ZN5FF1323barEv();
+extern void ABISELECT(_ZTv0_n24_N9GG11113213fooEv,_ZTv0_n12_N9GG11113213fooEv)();
+extern void ABISELECT(_ZThn80_N9GG11113213fooEv,_ZThn40_N9GG11113213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv)();
+extern void ABISELECT(_ZThn16_N5FF1323barEv,_ZThn8_N5FF1323barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1111321[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1111321[0]),
+ (VTBL_ENTRY)&_ZN9GG11113213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1111321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11113213fooEv,_ZTv0_n20_N9GG11113213fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1111321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11113213fooEv,_ZTv0_n12_N9GG11113213fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1111321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11113213fooEv,_ZTv0_n12_N9GG11113213fooEv),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1111321[0]),
+ (VTBL_ENTRY)&_ZN5FF1323barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1111321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11113213fooEv,_ZTv0_n12_N9GG11113213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1111321[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1111321[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1111321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1111321[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF1323barEv();
+static VTBL_ENTRY _tg__ZTV5FF132__9GG1111321[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN5FF1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF132__9GG1111321[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv)();
+extern void ABISELECT(_ZThn16_N5FF1323barEv,_ZThn8_N5FF1323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF132__9GG1111321[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv),
+};
+static VTT_ENTRY vtt_GG1111321[] = {
+ {&(_ZTV9GG1111321[7]), 7,34},
+ {&(_ZTV9GG1111321[13]), 13,34},
+ {&(_ZTV9GG1111321[17]), 17,34},
+ {&(_ZTV9GG1111321[21]), 21,34},
+ {&(_ZTV9GG1111321[27]), 27,34},
+ {&(_ZTV9GG1111321[32]), 32,34},
+ {&(_tg__ZTV5EE111__9GG1111321[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1111321[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1111321[3]), 3,4},
+ {&(_tg__ZTV5FF132__9GG1111321[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF132__9GG1111321[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF132__9GG1111321[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1111321[];
+extern VTBL_ENTRY _ZTV9GG1111321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1111321[];
+static VTBL_ENTRY alt_thunk_names194[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1323barEv,_ZThn8_N5FF1323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1323barEv,_ZThn8_N5FF1323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11113213fooEv,_ZTv0_n12_N9GG11113213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11113213fooEv,_ZThn40_N9GG11113213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11113213fooEv,_ZThn24_N9GG11113213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11113213fooEv,_ZThn16_N9GG11113213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11113213fooEv,_ZTv0_n20_N9GG11113213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11113213fooEv,_ZThn8_N9GG11113213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1111321 = { "GG1111321", // class name
+ bases_GG1111321, 5,
+ &(vtc_GG1111321[0]), // expected_vtbl_contents
+ &(vtt_GG1111321[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1111321),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1111321),34, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1111321),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names194,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1111323 : virtual EE111 , virtual FF132 {
+ int pg;
+ virtual void foo(); // _ZN9GG11113233fooEv
+ virtual void bar(); // _ZN9GG11113233barEv
+ ~GG1111323(); // tgen
+ GG1111323(); // tgen
+};
+//SIG(1 GG1111323) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1111323 ::foo(){vfunc_called(this, "_ZN9GG11113233fooEv");}
+void GG1111323 ::bar(){vfunc_called(this, "_ZN9GG11113233barEv");}
+GG1111323 ::~GG1111323(){ note_dtor("GG1111323", this);} // tgen
+GG1111323 ::GG1111323(){ note_ctor("GG1111323", this);} // tgen
+
+static void Test_GG1111323()
+{
+ extern Class_Descriptor cd_GG1111323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1111323, buf);
+ GG1111323 *dp, &lv = *(dp=new (buf) GG1111323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1111323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1111323)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1111323");
+ check_base_class_offset(lv, (AA1*)(FF132*), ABISELECT(32,16), "GG1111323");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1111323");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1111323");
+ check_base_class_offset(lv, (BB3*)(FF132*), ABISELECT(80,40), "GG1111323");
+ check_base_class_offset(lv, (FF132*), ABISELECT(64,32), "GG1111323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1111323.pg");
+ test_class_info(&lv, &cd_GG1111323);
+ dp->~GG1111323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1111323(Test_GG1111323, "GG1111323", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1111323C1Ev();
+extern void _ZN9GG1111323D1Ev();
+Name_Map name_map_GG1111323[] = {
+ NSPAIR(_ZN9GG1111323C1Ev),
+ NSPAIR(_ZN9GG1111323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF132;
+extern VTBL_ENTRY _ZTI5FF132[];
+extern VTBL_ENTRY _ZTV5FF132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF132[];
+static Base_Class bases_GG1111323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF132, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1111323[];
+extern void _ZN9GG11113233fooEv();
+extern void _ZN9GG11113233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11113233fooEv,_ZTv0_n20_N9GG11113233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11113233fooEv,_ZThn8_N9GG11113233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11113233fooEv,_ZTv0_n12_N9GG11113233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11113233fooEv,_ZThn16_N9GG11113233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11113233fooEv,_ZTv0_n12_N9GG11113233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11113233fooEv,_ZThn24_N9GG11113233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11113233barEv,_ZTv0_n20_N9GG11113233barEv)();
+extern void ABISELECT(_ZThn64_N9GG11113233barEv,_ZThn32_N9GG11113233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11113233fooEv,_ZTv0_n12_N9GG11113233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG11113233fooEv,_ZThn40_N9GG11113233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11113233barEv,_ZTv0_n16_N9GG11113233barEv)();
+extern void ABISELECT(_ZThn80_N9GG11113233barEv,_ZThn40_N9GG11113233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1111323[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1111323[0]),
+ (VTBL_ENTRY)&_ZN9GG11113233fooEv,
+ (VTBL_ENTRY)&_ZN9GG11113233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1111323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11113233fooEv,_ZTv0_n20_N9GG11113233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1111323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11113233fooEv,_ZTv0_n12_N9GG11113233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1111323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11113233fooEv,_ZTv0_n12_N9GG11113233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1111323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11113233barEv,_ZTv0_n20_N9GG11113233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1111323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11113233fooEv,_ZTv0_n12_N9GG11113233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11113233barEv,_ZTv0_n16_N9GG11113233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1111323[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1111323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1111323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1111323[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF1323barEv();
+static VTBL_ENTRY _tg__ZTV5FF132__9GG1111323[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN5FF1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF132__9GG1111323[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv)();
+extern void ABISELECT(_ZThn16_N5FF1323barEv,_ZThn8_N5FF1323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF132__9GG1111323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv),
+};
+static VTT_ENTRY vtt_GG1111323[] = {
+ {&(_ZTV9GG1111323[7]), 7,35},
+ {&(_ZTV9GG1111323[14]), 14,35},
+ {&(_ZTV9GG1111323[18]), 18,35},
+ {&(_ZTV9GG1111323[22]), 22,35},
+ {&(_ZTV9GG1111323[28]), 28,35},
+ {&(_ZTV9GG1111323[33]), 33,35},
+ {&(_tg__ZTV5EE111__9GG1111323[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1111323[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1111323[3]), 3,4},
+ {&(_tg__ZTV5FF132__9GG1111323[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF132__9GG1111323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF132__9GG1111323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1111323[];
+extern VTBL_ENTRY _ZTV9GG1111323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1111323[];
+static VTBL_ENTRY alt_thunk_names195[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1323barEv,_ZThn8_N5FF1323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG11113233barEv,_ZTv0_n16_N9GG11113233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11113233barEv,_ZThn40_N9GG11113233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11113233barEv,_ZTv0_n20_N9GG11113233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11113233barEv,_ZThn32_N9GG11113233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11113233fooEv,_ZTv0_n12_N9GG11113233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11113233fooEv,_ZThn40_N9GG11113233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11113233fooEv,_ZThn24_N9GG11113233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11113233fooEv,_ZThn16_N9GG11113233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11113233fooEv,_ZTv0_n20_N9GG11113233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11113233fooEv,_ZThn8_N9GG11113233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1111323 = { "GG1111323", // class name
+ bases_GG1111323, 5,
+ &(vtc_GG1111323[0]), // expected_vtbl_contents
+ &(vtt_GG1111323[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1111323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1111323),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1111323),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names195,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1111331 : virtual EE111 , virtual FF133 {
+ int pg;
+ virtual void foo(); // _ZN9GG11113313fooEv
+ ~GG1111331(); // tgen
+ GG1111331(); // tgen
+};
+//SIG(1 GG1111331) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void GG1111331 ::foo(){vfunc_called(this, "_ZN9GG11113313fooEv");}
+GG1111331 ::~GG1111331(){ note_dtor("GG1111331", this);} // tgen
+GG1111331 ::GG1111331(){ note_ctor("GG1111331", this);} // tgen
+
+static void Test_GG1111331()
+{
+ extern Class_Descriptor cd_GG1111331;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1111331, buf);
+ GG1111331 *dp, &lv = *(dp=new (buf) GG1111331());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1111331)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1111331)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1111331");
+ check_base_class_offset(lv, (AA1*)(FF133*), ABISELECT(32,16), "GG1111331");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1111331");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1111331");
+ check_base_class_offset(lv, (BB3*)(FF133*), ABISELECT(80,40), "GG1111331");
+ check_base_class_offset(lv, (FF133*), ABISELECT(64,32), "GG1111331");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1111331.pg");
+ test_class_info(&lv, &cd_GG1111331);
+ dp->~GG1111331();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1111331(Test_GG1111331, "GG1111331", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1111331C1Ev();
+extern void _ZN9GG1111331D1Ev();
+Name_Map name_map_GG1111331[] = {
+ NSPAIR(_ZN9GG1111331C1Ev),
+ NSPAIR(_ZN9GG1111331D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF133;
+extern VTBL_ENTRY _ZTI5FF133[];
+extern VTBL_ENTRY _ZTV5FF133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF133[];
+static Base_Class bases_GG1111331[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF133, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1111331[];
+extern void _ZN9GG11113313fooEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11113313fooEv,_ZTv0_n20_N9GG11113313fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11113313fooEv,_ZThn8_N9GG11113313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11113313fooEv,_ZTv0_n12_N9GG11113313fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11113313fooEv,_ZThn16_N9GG11113313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11113313fooEv,_ZTv0_n12_N9GG11113313fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11113313fooEv,_ZThn24_N9GG11113313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11113313fooEv,_ZTv0_n20_N9GG11113313fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11113313fooEv,_ZThn32_N9GG11113313fooEv)() __attribute__((weak));
+extern void _ZN5FF1333barEv();
+extern void ABISELECT(_ZTv0_n24_N9GG11113313fooEv,_ZTv0_n12_N9GG11113313fooEv)();
+extern void ABISELECT(_ZThn80_N9GG11113313fooEv,_ZThn40_N9GG11113313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv)();
+extern void ABISELECT(_ZThn16_N5FF1333barEv,_ZThn8_N5FF1333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1111331[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1111331[0]),
+ (VTBL_ENTRY)&_ZN9GG11113313fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1111331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11113313fooEv,_ZTv0_n20_N9GG11113313fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1111331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11113313fooEv,_ZTv0_n12_N9GG11113313fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1111331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11113313fooEv,_ZTv0_n12_N9GG11113313fooEv),
+ 0,
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1111331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11113313fooEv,_ZTv0_n20_N9GG11113313fooEv),
+ (VTBL_ENTRY)&_ZN5FF1333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1111331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11113313fooEv,_ZTv0_n12_N9GG11113313fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1111331[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1111331[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1111331[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1111331[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF1333fooEv();
+extern void _ZN5FF1333barEv();
+static VTBL_ENTRY _tg__ZTV5FF133__9GG1111331[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&_ZN5FF1333fooEv,
+ (VTBL_ENTRY)&_ZN5FF1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF133__9GG1111331[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv)();
+extern void ABISELECT(_ZThn16_N5FF1333barEv,_ZThn8_N5FF1333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF133__9GG1111331[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv),
+};
+static VTT_ENTRY vtt_GG1111331[] = {
+ {&(_ZTV9GG1111331[7]), 7,36},
+ {&(_ZTV9GG1111331[13]), 13,36},
+ {&(_ZTV9GG1111331[17]), 17,36},
+ {&(_ZTV9GG1111331[21]), 21,36},
+ {&(_ZTV9GG1111331[28]), 28,36},
+ {&(_ZTV9GG1111331[34]), 34,36},
+ {&(_tg__ZTV5EE111__9GG1111331[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1111331[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1111331[3]), 3,4},
+ {&(_tg__ZTV5FF133__9GG1111331[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF133__9GG1111331[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF133__9GG1111331[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1111331[];
+extern VTBL_ENTRY _ZTV9GG1111331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1111331[];
+static VTBL_ENTRY alt_thunk_names196[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1333barEv,_ZThn8_N5FF1333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1333barEv,_ZThn8_N5FF1333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11113313fooEv,_ZTv0_n12_N9GG11113313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11113313fooEv,_ZThn40_N9GG11113313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11113313fooEv,_ZThn24_N9GG11113313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11113313fooEv,_ZThn16_N9GG11113313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11113313fooEv,_ZTv0_n20_N9GG11113313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11113313fooEv,_ZThn32_N9GG11113313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11113313fooEv,_ZThn8_N9GG11113313fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1111331 = { "GG1111331", // class name
+ bases_GG1111331, 5,
+ &(vtc_GG1111331[0]), // expected_vtbl_contents
+ &(vtt_GG1111331[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1111331),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1111331),36, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1111331),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names196,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1111333 : virtual EE111 , virtual FF133 {
+ int pg;
+ virtual void foo(); // _ZN9GG11113333fooEv
+ virtual void bar(); // _ZN9GG11113333barEv
+ ~GG1111333(); // tgen
+ GG1111333(); // tgen
+};
+//SIG(1 GG1111333) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1111333 ::foo(){vfunc_called(this, "_ZN9GG11113333fooEv");}
+void GG1111333 ::bar(){vfunc_called(this, "_ZN9GG11113333barEv");}
+GG1111333 ::~GG1111333(){ note_dtor("GG1111333", this);} // tgen
+GG1111333 ::GG1111333(){ note_ctor("GG1111333", this);} // tgen
+
+static void Test_GG1111333()
+{
+ extern Class_Descriptor cd_GG1111333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1111333, buf);
+ GG1111333 *dp, &lv = *(dp=new (buf) GG1111333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1111333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1111333)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1111333");
+ check_base_class_offset(lv, (AA1*)(FF133*), ABISELECT(32,16), "GG1111333");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1111333");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1111333");
+ check_base_class_offset(lv, (BB3*)(FF133*), ABISELECT(80,40), "GG1111333");
+ check_base_class_offset(lv, (FF133*), ABISELECT(64,32), "GG1111333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1111333.pg");
+ test_class_info(&lv, &cd_GG1111333);
+ dp->~GG1111333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1111333(Test_GG1111333, "GG1111333", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1111333C1Ev();
+extern void _ZN9GG1111333D1Ev();
+Name_Map name_map_GG1111333[] = {
+ NSPAIR(_ZN9GG1111333C1Ev),
+ NSPAIR(_ZN9GG1111333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF133;
+extern VTBL_ENTRY _ZTI5FF133[];
+extern VTBL_ENTRY _ZTV5FF133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF133[];
+static Base_Class bases_GG1111333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF133, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1111333[];
+extern void _ZN9GG11113333fooEv();
+extern void _ZN9GG11113333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11113333fooEv,_ZTv0_n20_N9GG11113333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11113333fooEv,_ZThn8_N9GG11113333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11113333fooEv,_ZTv0_n12_N9GG11113333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11113333fooEv,_ZThn16_N9GG11113333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11113333fooEv,_ZTv0_n12_N9GG11113333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11113333fooEv,_ZThn24_N9GG11113333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11113333fooEv,_ZTv0_n20_N9GG11113333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11113333fooEv,_ZThn32_N9GG11113333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11113333barEv,_ZTv0_n24_N9GG11113333barEv)();
+extern void ABISELECT(_ZThn64_N9GG11113333barEv,_ZThn32_N9GG11113333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11113333fooEv,_ZTv0_n12_N9GG11113333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG11113333fooEv,_ZThn40_N9GG11113333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11113333barEv,_ZTv0_n16_N9GG11113333barEv)();
+extern void ABISELECT(_ZThn80_N9GG11113333barEv,_ZThn40_N9GG11113333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1111333[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1111333[0]),
+ (VTBL_ENTRY)&_ZN9GG11113333fooEv,
+ (VTBL_ENTRY)&_ZN9GG11113333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1111333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11113333fooEv,_ZTv0_n20_N9GG11113333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1111333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11113333fooEv,_ZTv0_n12_N9GG11113333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1111333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11113333fooEv,_ZTv0_n12_N9GG11113333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1111333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11113333fooEv,_ZTv0_n20_N9GG11113333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11113333barEv,_ZTv0_n24_N9GG11113333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1111333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11113333fooEv,_ZTv0_n12_N9GG11113333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11113333barEv,_ZTv0_n16_N9GG11113333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1111333[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1111333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1111333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1111333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF1333fooEv();
+extern void _ZN5FF1333barEv();
+static VTBL_ENTRY _tg__ZTV5FF133__9GG1111333[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&_ZN5FF1333fooEv,
+ (VTBL_ENTRY)&_ZN5FF1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF133__9GG1111333[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv)();
+extern void ABISELECT(_ZThn16_N5FF1333barEv,_ZThn8_N5FF1333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF133__9GG1111333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv),
+};
+static VTT_ENTRY vtt_GG1111333[] = {
+ {&(_ZTV9GG1111333[7]), 7,37},
+ {&(_ZTV9GG1111333[14]), 14,37},
+ {&(_ZTV9GG1111333[18]), 18,37},
+ {&(_ZTV9GG1111333[22]), 22,37},
+ {&(_ZTV9GG1111333[29]), 29,37},
+ {&(_ZTV9GG1111333[35]), 35,37},
+ {&(_tg__ZTV5EE111__9GG1111333[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1111333[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1111333[3]), 3,4},
+ {&(_tg__ZTV5FF133__9GG1111333[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF133__9GG1111333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF133__9GG1111333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1111333[];
+extern VTBL_ENTRY _ZTV9GG1111333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1111333[];
+static VTBL_ENTRY alt_thunk_names197[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1333barEv,_ZThn8_N5FF1333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG11113333barEv,_ZTv0_n16_N9GG11113333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11113333barEv,_ZThn40_N9GG11113333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG11113333barEv,_ZTv0_n24_N9GG11113333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11113333barEv,_ZThn32_N9GG11113333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11113333fooEv,_ZTv0_n12_N9GG11113333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11113333fooEv,_ZThn40_N9GG11113333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11113333fooEv,_ZThn24_N9GG11113333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11113333fooEv,_ZThn16_N9GG11113333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11113333fooEv,_ZTv0_n20_N9GG11113333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11113333fooEv,_ZThn32_N9GG11113333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11113333fooEv,_ZThn8_N9GG11113333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1111333 = { "GG1111333", // class name
+ bases_GG1111333, 5,
+ &(vtc_GG1111333[0]), // expected_vtbl_contents
+ &(vtt_GG1111333[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1111333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1111333),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1111333),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names197,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1112111 : virtual EE111 , virtual FF211 {
+ int pg;
+ virtual void foo(); // _ZN9GG11121113fooEv
+ ~GG1112111(); // tgen
+ GG1112111(); // tgen
+};
+//SIG(1 GG1112111) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v1 Fi} v1 Fi}
+
+
+void GG1112111 ::foo(){vfunc_called(this, "_ZN9GG11121113fooEv");}
+GG1112111 ::~GG1112111(){ note_dtor("GG1112111", this);} // tgen
+GG1112111 ::GG1112111(){ note_ctor("GG1112111", this);} // tgen
+
+static void Test_GG1112111()
+{
+ extern Class_Descriptor cd_GG1112111;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1112111, buf);
+ GG1112111 *dp, &lv = *(dp=new (buf) GG1112111());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1112111)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1112111)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1112111");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1112111");
+ check_base_class_offset(lv, (BB1*)(FF211*), ABISELECT(48,24), "GG1112111");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1112111");
+ check_base_class_offset(lv, (AA2*)(FF211*), ABISELECT(80,40), "GG1112111");
+ check_base_class_offset(lv, (FF211*), ABISELECT(64,32), "GG1112111");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1112111.pg");
+ test_class_info(&lv, &cd_GG1112111);
+ dp->~GG1112111();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1112111(Test_GG1112111, "GG1112111", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1112111C1Ev();
+extern void _ZN9GG1112111D1Ev();
+Name_Map name_map_GG1112111[] = {
+ NSPAIR(_ZN9GG1112111C1Ev),
+ NSPAIR(_ZN9GG1112111D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF211;
+extern VTBL_ENTRY _ZTI5FF211[];
+extern VTBL_ENTRY _ZTV5FF211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF211[];
+static Base_Class bases_GG1112111[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF211, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1112111[];
+extern void _ZN9GG11121113fooEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11121113fooEv,_ZTv0_n20_N9GG11121113fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11121113fooEv,_ZThn8_N9GG11121113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11121113fooEv,_ZTv0_n12_N9GG11121113fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11121113fooEv,_ZThn16_N9GG11121113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11121113fooEv,_ZTv0_n12_N9GG11121113fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11121113fooEv,_ZThn24_N9GG11121113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11121113fooEv,_ZTv0_n20_N9GG11121113fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11121113fooEv,_ZThn32_N9GG11121113fooEv)() __attribute__((weak));
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY vtc_GG1112111[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1112111[0]),
+ (VTBL_ENTRY)&_ZN9GG11121113fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1112111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11121113fooEv,_ZTv0_n20_N9GG11121113fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1112111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11121113fooEv,_ZTv0_n12_N9GG11121113fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1112111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11121113fooEv,_ZTv0_n12_N9GG11121113fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1112111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11121113fooEv,_ZTv0_n20_N9GG11121113fooEv),
+ 0,
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1112111[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern VTBL_ENTRY _ZTV9GG1112111[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1112111[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1112111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1112111[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF2113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF211__9GG1112111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN5FF2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF211__9GG1112111[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF211__9GG1112111[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv),
+};
+static VTT_ENTRY vtt_GG1112111[] = {
+ {&(_ZTV9GG1112111[7]), 7,32},
+ {&(_ZTV9GG1112111[13]), 13,32},
+ {&(_ZTV9GG1112111[17]), 17,32},
+ {&(_ZTV9GG1112111[21]), 21,32},
+ {&(_ZTV9GG1112111[27]), 27,32},
+ {&(_ZTV9GG1112111[31]), 31,32},
+ {&(_tg__ZTV5EE111__9GG1112111[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1112111[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1112111[3]), 3,4},
+ {&(_tg__ZTV5FF211__9GG1112111[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF211__9GG1112111[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF211__9GG1112111[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1112111[];
+extern VTBL_ENTRY _ZTV9GG1112111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1112111[];
+static VTBL_ENTRY alt_thunk_names198[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11121113fooEv,_ZTv0_n12_N9GG11121113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11121113fooEv,_ZThn24_N9GG11121113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11121113fooEv,_ZThn16_N9GG11121113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11121113fooEv,_ZTv0_n20_N9GG11121113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11121113fooEv,_ZThn32_N9GG11121113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11121113fooEv,_ZThn8_N9GG11121113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1112111 = { "GG1112111", // class name
+ bases_GG1112111, 5,
+ &(vtc_GG1112111[0]), // expected_vtbl_contents
+ &(vtt_GG1112111[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1112111),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1112111),32, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1112111),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names198,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1112113 : virtual EE111 , virtual FF211 {
+ int pg;
+ virtual void foo(); // _ZN9GG11121133fooEv
+ virtual void bar(); // _ZN9GG11121133barEv
+ ~GG1112113(); // tgen
+ GG1112113(); // tgen
+};
+//SIG(1 GG1112113) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG1112113 ::foo(){vfunc_called(this, "_ZN9GG11121133fooEv");}
+void GG1112113 ::bar(){vfunc_called(this, "_ZN9GG11121133barEv");}
+GG1112113 ::~GG1112113(){ note_dtor("GG1112113", this);} // tgen
+GG1112113 ::GG1112113(){ note_ctor("GG1112113", this);} // tgen
+
+static void Test_GG1112113()
+{
+ extern Class_Descriptor cd_GG1112113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1112113, buf);
+ GG1112113 *dp, &lv = *(dp=new (buf) GG1112113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1112113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1112113)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1112113");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1112113");
+ check_base_class_offset(lv, (BB1*)(FF211*), ABISELECT(48,24), "GG1112113");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1112113");
+ check_base_class_offset(lv, (AA2*)(FF211*), ABISELECT(80,40), "GG1112113");
+ check_base_class_offset(lv, (FF211*), ABISELECT(64,32), "GG1112113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1112113.pg");
+ test_class_info(&lv, &cd_GG1112113);
+ dp->~GG1112113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1112113(Test_GG1112113, "GG1112113", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1112113C1Ev();
+extern void _ZN9GG1112113D1Ev();
+Name_Map name_map_GG1112113[] = {
+ NSPAIR(_ZN9GG1112113C1Ev),
+ NSPAIR(_ZN9GG1112113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF211;
+extern VTBL_ENTRY _ZTI5FF211[];
+extern VTBL_ENTRY _ZTV5FF211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF211[];
+static Base_Class bases_GG1112113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF211, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1112113[];
+extern void _ZN9GG11121133fooEv();
+extern void _ZN9GG11121133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11121133fooEv,_ZTv0_n20_N9GG11121133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11121133fooEv,_ZThn8_N9GG11121133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11121133fooEv,_ZTv0_n12_N9GG11121133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11121133fooEv,_ZThn16_N9GG11121133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11121133fooEv,_ZTv0_n12_N9GG11121133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11121133fooEv,_ZThn24_N9GG11121133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11121133fooEv,_ZTv0_n20_N9GG11121133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11121133fooEv,_ZThn32_N9GG11121133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11121133barEv,_ZTv0_n12_N9GG11121133barEv)();
+extern void ABISELECT(_ZThn80_N9GG11121133barEv,_ZThn40_N9GG11121133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1112113[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1112113[0]),
+ (VTBL_ENTRY)&_ZN9GG11121133fooEv,
+ (VTBL_ENTRY)&_ZN9GG11121133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1112113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11121133fooEv,_ZTv0_n20_N9GG11121133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1112113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11121133fooEv,_ZTv0_n12_N9GG11121133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1112113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11121133fooEv,_ZTv0_n12_N9GG11121133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1112113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11121133fooEv,_ZTv0_n20_N9GG11121133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1112113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11121133barEv,_ZTv0_n12_N9GG11121133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1112113[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1112113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1112113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1112113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF2113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF211__9GG1112113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN5FF2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF211__9GG1112113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF211__9GG1112113[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv),
+};
+static VTT_ENTRY vtt_GG1112113[] = {
+ {&(_ZTV9GG1112113[7]), 7,33},
+ {&(_ZTV9GG1112113[14]), 14,33},
+ {&(_ZTV9GG1112113[18]), 18,33},
+ {&(_ZTV9GG1112113[22]), 22,33},
+ {&(_ZTV9GG1112113[28]), 28,33},
+ {&(_ZTV9GG1112113[32]), 32,33},
+ {&(_tg__ZTV5EE111__9GG1112113[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1112113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1112113[3]), 3,4},
+ {&(_tg__ZTV5FF211__9GG1112113[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF211__9GG1112113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF211__9GG1112113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1112113[];
+extern VTBL_ENTRY _ZTV9GG1112113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1112113[];
+static VTBL_ENTRY alt_thunk_names199[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11121133barEv,_ZTv0_n12_N9GG11121133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11121133barEv,_ZThn40_N9GG11121133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11121133fooEv,_ZTv0_n12_N9GG11121133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11121133fooEv,_ZThn24_N9GG11121133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11121133fooEv,_ZThn16_N9GG11121133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11121133fooEv,_ZTv0_n20_N9GG11121133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11121133fooEv,_ZThn32_N9GG11121133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11121133fooEv,_ZThn8_N9GG11121133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1112113 = { "GG1112113", // class name
+ bases_GG1112113, 5,
+ &(vtc_GG1112113[0]), // expected_vtbl_contents
+ &(vtt_GG1112113[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1112113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1112113),33, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1112113),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names199,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1112121 : virtual EE111 , virtual FF212 {
+ int pg;
+ virtual void foo(); // _ZN9GG11121213fooEv
+ ~GG1112121(); // tgen
+ GG1112121(); // tgen
+};
+//SIG(1 GG1112121) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v2 Fi} v1 Fi}
+
+
+void GG1112121 ::foo(){vfunc_called(this, "_ZN9GG11121213fooEv");}
+GG1112121 ::~GG1112121(){ note_dtor("GG1112121", this);} // tgen
+GG1112121 ::GG1112121(){ note_ctor("GG1112121", this);} // tgen
+
+static void Test_GG1112121()
+{
+ extern Class_Descriptor cd_GG1112121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1112121, buf);
+ GG1112121 *dp, &lv = *(dp=new (buf) GG1112121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1112121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1112121)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1112121");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1112121");
+ check_base_class_offset(lv, (BB1*)(FF212*), ABISELECT(48,24), "GG1112121");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1112121");
+ check_base_class_offset(lv, (AA2*)(FF212*), ABISELECT(80,40), "GG1112121");
+ check_base_class_offset(lv, (FF212*), ABISELECT(64,32), "GG1112121");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1112121.pg");
+ test_class_info(&lv, &cd_GG1112121);
+ dp->~GG1112121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1112121(Test_GG1112121, "GG1112121", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1112121C1Ev();
+extern void _ZN9GG1112121D1Ev();
+Name_Map name_map_GG1112121[] = {
+ NSPAIR(_ZN9GG1112121C1Ev),
+ NSPAIR(_ZN9GG1112121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF212;
+extern VTBL_ENTRY _ZTI5FF212[];
+extern VTBL_ENTRY _ZTV5FF212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF212[];
+static Base_Class bases_GG1112121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF212, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1112121[];
+extern void _ZN9GG11121213fooEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11121213fooEv,_ZTv0_n20_N9GG11121213fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11121213fooEv,_ZThn8_N9GG11121213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11121213fooEv,_ZTv0_n12_N9GG11121213fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11121213fooEv,_ZThn16_N9GG11121213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11121213fooEv,_ZTv0_n12_N9GG11121213fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11121213fooEv,_ZThn24_N9GG11121213fooEv)() __attribute__((weak));
+extern void _ZN5FF2123barEv();
+extern void ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv)();
+extern void ABISELECT(_ZThn16_N5FF2123barEv,_ZThn8_N5FF2123barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1112121[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1112121[0]),
+ (VTBL_ENTRY)&_ZN9GG11121213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1112121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11121213fooEv,_ZTv0_n20_N9GG11121213fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1112121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11121213fooEv,_ZTv0_n12_N9GG11121213fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1112121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11121213fooEv,_ZTv0_n12_N9GG11121213fooEv),
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1112121[0]),
+ (VTBL_ENTRY)&_ZN5FF2123barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1112121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1112121[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1112121[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1112121[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1112121[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF2123barEv();
+static VTBL_ENTRY _tg__ZTV5FF212__9GG1112121[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN5FF2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv)();
+extern void ABISELECT(_ZThn16_N5FF2123barEv,_ZThn8_N5FF2123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF212__9GG1112121[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF212__9GG1112121[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG1112121[] = {
+ {&(_ZTV9GG1112121[7]), 7,32},
+ {&(_ZTV9GG1112121[13]), 13,32},
+ {&(_ZTV9GG1112121[17]), 17,32},
+ {&(_ZTV9GG1112121[21]), 21,32},
+ {&(_ZTV9GG1112121[27]), 27,32},
+ {&(_ZTV9GG1112121[31]), 31,32},
+ {&(_tg__ZTV5EE111__9GG1112121[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1112121[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1112121[3]), 3,4},
+ {&(_tg__ZTV5FF212__9GG1112121[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF212__9GG1112121[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF212__9GG1112121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1112121[];
+extern VTBL_ENTRY _ZTV9GG1112121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1112121[];
+static VTBL_ENTRY alt_thunk_names200[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2123barEv,_ZThn8_N5FF2123barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2123barEv,_ZThn8_N5FF2123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11121213fooEv,_ZTv0_n12_N9GG11121213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11121213fooEv,_ZThn24_N9GG11121213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11121213fooEv,_ZThn16_N9GG11121213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11121213fooEv,_ZTv0_n20_N9GG11121213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11121213fooEv,_ZThn8_N9GG11121213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1112121 = { "GG1112121", // class name
+ bases_GG1112121, 5,
+ &(vtc_GG1112121[0]), // expected_vtbl_contents
+ &(vtt_GG1112121[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1112121),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1112121),32, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1112121),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names200,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1112123 : virtual EE111 , virtual FF212 {
+ int pg;
+ virtual void foo(); // _ZN9GG11121233fooEv
+ virtual void bar(); // _ZN9GG11121233barEv
+ ~GG1112123(); // tgen
+ GG1112123(); // tgen
+};
+//SIG(1 GG1112123) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG1112123 ::foo(){vfunc_called(this, "_ZN9GG11121233fooEv");}
+void GG1112123 ::bar(){vfunc_called(this, "_ZN9GG11121233barEv");}
+GG1112123 ::~GG1112123(){ note_dtor("GG1112123", this);} // tgen
+GG1112123 ::GG1112123(){ note_ctor("GG1112123", this);} // tgen
+
+static void Test_GG1112123()
+{
+ extern Class_Descriptor cd_GG1112123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1112123, buf);
+ GG1112123 *dp, &lv = *(dp=new (buf) GG1112123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1112123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1112123)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1112123");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1112123");
+ check_base_class_offset(lv, (BB1*)(FF212*), ABISELECT(48,24), "GG1112123");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1112123");
+ check_base_class_offset(lv, (AA2*)(FF212*), ABISELECT(80,40), "GG1112123");
+ check_base_class_offset(lv, (FF212*), ABISELECT(64,32), "GG1112123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1112123.pg");
+ test_class_info(&lv, &cd_GG1112123);
+ dp->~GG1112123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1112123(Test_GG1112123, "GG1112123", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1112123C1Ev();
+extern void _ZN9GG1112123D1Ev();
+Name_Map name_map_GG1112123[] = {
+ NSPAIR(_ZN9GG1112123C1Ev),
+ NSPAIR(_ZN9GG1112123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF212;
+extern VTBL_ENTRY _ZTI5FF212[];
+extern VTBL_ENTRY _ZTV5FF212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF212[];
+static Base_Class bases_GG1112123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF212, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1112123[];
+extern void _ZN9GG11121233fooEv();
+extern void _ZN9GG11121233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11121233fooEv,_ZTv0_n20_N9GG11121233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11121233fooEv,_ZThn8_N9GG11121233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11121233fooEv,_ZTv0_n12_N9GG11121233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11121233fooEv,_ZThn16_N9GG11121233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11121233fooEv,_ZTv0_n12_N9GG11121233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11121233fooEv,_ZThn24_N9GG11121233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11121233barEv,_ZTv0_n20_N9GG11121233barEv)();
+extern void ABISELECT(_ZThn64_N9GG11121233barEv,_ZThn32_N9GG11121233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11121233barEv,_ZTv0_n12_N9GG11121233barEv)();
+extern void ABISELECT(_ZThn80_N9GG11121233barEv,_ZThn40_N9GG11121233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1112123[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1112123[0]),
+ (VTBL_ENTRY)&_ZN9GG11121233fooEv,
+ (VTBL_ENTRY)&_ZN9GG11121233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1112123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11121233fooEv,_ZTv0_n20_N9GG11121233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1112123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11121233fooEv,_ZTv0_n12_N9GG11121233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1112123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11121233fooEv,_ZTv0_n12_N9GG11121233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1112123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11121233barEv,_ZTv0_n20_N9GG11121233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1112123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11121233barEv,_ZTv0_n12_N9GG11121233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1112123[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1112123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1112123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1112123[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF2123barEv();
+static VTBL_ENTRY _tg__ZTV5FF212__9GG1112123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN5FF2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv)();
+extern void ABISELECT(_ZThn16_N5FF2123barEv,_ZThn8_N5FF2123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF212__9GG1112123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF212__9GG1112123[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG1112123[] = {
+ {&(_ZTV9GG1112123[7]), 7,33},
+ {&(_ZTV9GG1112123[14]), 14,33},
+ {&(_ZTV9GG1112123[18]), 18,33},
+ {&(_ZTV9GG1112123[22]), 22,33},
+ {&(_ZTV9GG1112123[28]), 28,33},
+ {&(_ZTV9GG1112123[32]), 32,33},
+ {&(_tg__ZTV5EE111__9GG1112123[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1112123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1112123[3]), 3,4},
+ {&(_tg__ZTV5FF212__9GG1112123[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF212__9GG1112123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF212__9GG1112123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1112123[];
+extern VTBL_ENTRY _ZTV9GG1112123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1112123[];
+static VTBL_ENTRY alt_thunk_names201[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2123barEv,_ZThn8_N5FF2123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11121233barEv,_ZTv0_n12_N9GG11121233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11121233barEv,_ZThn40_N9GG11121233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11121233barEv,_ZTv0_n20_N9GG11121233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11121233barEv,_ZThn32_N9GG11121233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11121233fooEv,_ZTv0_n12_N9GG11121233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11121233fooEv,_ZThn24_N9GG11121233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11121233fooEv,_ZThn16_N9GG11121233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11121233fooEv,_ZTv0_n20_N9GG11121233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11121233fooEv,_ZThn8_N9GG11121233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1112123 = { "GG1112123", // class name
+ bases_GG1112123, 5,
+ &(vtc_GG1112123[0]), // expected_vtbl_contents
+ &(vtt_GG1112123[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1112123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1112123),33, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1112123),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names201,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1112131 : virtual EE111 , virtual FF213 {
+ int pg;
+ virtual void foo(); // _ZN9GG11121313fooEv
+ ~GG1112131(); // tgen
+ GG1112131(); // tgen
+};
+//SIG(1 GG1112131) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v1 v2 Fi} v1 Fi}
+
+
+void GG1112131 ::foo(){vfunc_called(this, "_ZN9GG11121313fooEv");}
+GG1112131 ::~GG1112131(){ note_dtor("GG1112131", this);} // tgen
+GG1112131 ::GG1112131(){ note_ctor("GG1112131", this);} // tgen
+
+static void Test_GG1112131()
+{
+ extern Class_Descriptor cd_GG1112131;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1112131, buf);
+ GG1112131 *dp, &lv = *(dp=new (buf) GG1112131());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1112131)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1112131)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1112131");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1112131");
+ check_base_class_offset(lv, (BB1*)(FF213*), ABISELECT(48,24), "GG1112131");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1112131");
+ check_base_class_offset(lv, (AA2*)(FF213*), ABISELECT(80,40), "GG1112131");
+ check_base_class_offset(lv, (FF213*), ABISELECT(64,32), "GG1112131");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1112131.pg");
+ test_class_info(&lv, &cd_GG1112131);
+ dp->~GG1112131();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1112131(Test_GG1112131, "GG1112131", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1112131C1Ev();
+extern void _ZN9GG1112131D1Ev();
+Name_Map name_map_GG1112131[] = {
+ NSPAIR(_ZN9GG1112131C1Ev),
+ NSPAIR(_ZN9GG1112131D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF213;
+extern VTBL_ENTRY _ZTI5FF213[];
+extern VTBL_ENTRY _ZTV5FF213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF213[];
+static Base_Class bases_GG1112131[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF213, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1112131[];
+extern void _ZN9GG11121313fooEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11121313fooEv,_ZTv0_n20_N9GG11121313fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11121313fooEv,_ZThn8_N9GG11121313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11121313fooEv,_ZTv0_n12_N9GG11121313fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11121313fooEv,_ZThn16_N9GG11121313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11121313fooEv,_ZTv0_n12_N9GG11121313fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11121313fooEv,_ZThn24_N9GG11121313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11121313fooEv,_ZTv0_n20_N9GG11121313fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11121313fooEv,_ZThn32_N9GG11121313fooEv)() __attribute__((weak));
+extern void _ZN5FF2133barEv();
+extern void ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv)();
+extern void ABISELECT(_ZThn16_N5FF2133barEv,_ZThn8_N5FF2133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1112131[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1112131[0]),
+ (VTBL_ENTRY)&_ZN9GG11121313fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1112131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11121313fooEv,_ZTv0_n20_N9GG11121313fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1112131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11121313fooEv,_ZTv0_n12_N9GG11121313fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1112131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11121313fooEv,_ZTv0_n12_N9GG11121313fooEv),
+ 0,
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1112131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11121313fooEv,_ZTv0_n20_N9GG11121313fooEv),
+ (VTBL_ENTRY)&_ZN5FF2133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1112131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1112131[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1112131[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1112131[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1112131[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF2133fooEv();
+extern void _ZN5FF2133barEv();
+static VTBL_ENTRY _tg__ZTV5FF213__9GG1112131[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&_ZN5FF2133fooEv,
+ (VTBL_ENTRY)&_ZN5FF2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv)();
+extern void ABISELECT(_ZThn16_N5FF2133barEv,_ZThn8_N5FF2133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF213__9GG1112131[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF213__9GG1112131[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv),
+};
+static VTT_ENTRY vtt_GG1112131[] = {
+ {&(_ZTV9GG1112131[7]), 7,34},
+ {&(_ZTV9GG1112131[13]), 13,34},
+ {&(_ZTV9GG1112131[17]), 17,34},
+ {&(_ZTV9GG1112131[21]), 21,34},
+ {&(_ZTV9GG1112131[28]), 28,34},
+ {&(_ZTV9GG1112131[33]), 33,34},
+ {&(_tg__ZTV5EE111__9GG1112131[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1112131[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1112131[3]), 3,4},
+ {&(_tg__ZTV5FF213__9GG1112131[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF213__9GG1112131[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF213__9GG1112131[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1112131[];
+extern VTBL_ENTRY _ZTV9GG1112131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1112131[];
+static VTBL_ENTRY alt_thunk_names202[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2133barEv,_ZThn8_N5FF2133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2133barEv,_ZThn8_N5FF2133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11121313fooEv,_ZTv0_n12_N9GG11121313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11121313fooEv,_ZThn24_N9GG11121313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11121313fooEv,_ZThn16_N9GG11121313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11121313fooEv,_ZTv0_n20_N9GG11121313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11121313fooEv,_ZThn32_N9GG11121313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11121313fooEv,_ZThn8_N9GG11121313fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1112131 = { "GG1112131", // class name
+ bases_GG1112131, 5,
+ &(vtc_GG1112131[0]), // expected_vtbl_contents
+ &(vtt_GG1112131[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1112131),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1112131),34, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1112131),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names202,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1112133 : virtual EE111 , virtual FF213 {
+ int pg;
+ virtual void foo(); // _ZN9GG11121333fooEv
+ virtual void bar(); // _ZN9GG11121333barEv
+ ~GG1112133(); // tgen
+ GG1112133(); // tgen
+};
+//SIG(1 GG1112133) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1112133 ::foo(){vfunc_called(this, "_ZN9GG11121333fooEv");}
+void GG1112133 ::bar(){vfunc_called(this, "_ZN9GG11121333barEv");}
+GG1112133 ::~GG1112133(){ note_dtor("GG1112133", this);} // tgen
+GG1112133 ::GG1112133(){ note_ctor("GG1112133", this);} // tgen
+
+static void Test_GG1112133()
+{
+ extern Class_Descriptor cd_GG1112133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1112133, buf);
+ GG1112133 *dp, &lv = *(dp=new (buf) GG1112133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1112133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1112133)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1112133");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1112133");
+ check_base_class_offset(lv, (BB1*)(FF213*), ABISELECT(48,24), "GG1112133");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1112133");
+ check_base_class_offset(lv, (AA2*)(FF213*), ABISELECT(80,40), "GG1112133");
+ check_base_class_offset(lv, (FF213*), ABISELECT(64,32), "GG1112133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1112133.pg");
+ test_class_info(&lv, &cd_GG1112133);
+ dp->~GG1112133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1112133(Test_GG1112133, "GG1112133", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1112133C1Ev();
+extern void _ZN9GG1112133D1Ev();
+Name_Map name_map_GG1112133[] = {
+ NSPAIR(_ZN9GG1112133C1Ev),
+ NSPAIR(_ZN9GG1112133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF213;
+extern VTBL_ENTRY _ZTI5FF213[];
+extern VTBL_ENTRY _ZTV5FF213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF213[];
+static Base_Class bases_GG1112133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF213, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1112133[];
+extern void _ZN9GG11121333fooEv();
+extern void _ZN9GG11121333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11121333fooEv,_ZTv0_n20_N9GG11121333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11121333fooEv,_ZThn8_N9GG11121333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11121333fooEv,_ZTv0_n12_N9GG11121333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11121333fooEv,_ZThn16_N9GG11121333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11121333fooEv,_ZTv0_n12_N9GG11121333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11121333fooEv,_ZThn24_N9GG11121333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11121333fooEv,_ZTv0_n20_N9GG11121333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11121333fooEv,_ZThn32_N9GG11121333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11121333barEv,_ZTv0_n24_N9GG11121333barEv)();
+extern void ABISELECT(_ZThn64_N9GG11121333barEv,_ZThn32_N9GG11121333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11121333barEv,_ZTv0_n12_N9GG11121333barEv)();
+extern void ABISELECT(_ZThn80_N9GG11121333barEv,_ZThn40_N9GG11121333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1112133[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1112133[0]),
+ (VTBL_ENTRY)&_ZN9GG11121333fooEv,
+ (VTBL_ENTRY)&_ZN9GG11121333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1112133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11121333fooEv,_ZTv0_n20_N9GG11121333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1112133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11121333fooEv,_ZTv0_n12_N9GG11121333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1112133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11121333fooEv,_ZTv0_n12_N9GG11121333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1112133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11121333fooEv,_ZTv0_n20_N9GG11121333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11121333barEv,_ZTv0_n24_N9GG11121333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1112133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11121333barEv,_ZTv0_n12_N9GG11121333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1112133[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1112133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1112133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1112133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF2133fooEv();
+extern void _ZN5FF2133barEv();
+static VTBL_ENTRY _tg__ZTV5FF213__9GG1112133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&_ZN5FF2133fooEv,
+ (VTBL_ENTRY)&_ZN5FF2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv)();
+extern void ABISELECT(_ZThn16_N5FF2133barEv,_ZThn8_N5FF2133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF213__9GG1112133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF213__9GG1112133[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv),
+};
+static VTT_ENTRY vtt_GG1112133[] = {
+ {&(_ZTV9GG1112133[7]), 7,35},
+ {&(_ZTV9GG1112133[14]), 14,35},
+ {&(_ZTV9GG1112133[18]), 18,35},
+ {&(_ZTV9GG1112133[22]), 22,35},
+ {&(_ZTV9GG1112133[29]), 29,35},
+ {&(_ZTV9GG1112133[34]), 34,35},
+ {&(_tg__ZTV5EE111__9GG1112133[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1112133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1112133[3]), 3,4},
+ {&(_tg__ZTV5FF213__9GG1112133[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF213__9GG1112133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF213__9GG1112133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1112133[];
+extern VTBL_ENTRY _ZTV9GG1112133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1112133[];
+static VTBL_ENTRY alt_thunk_names203[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2133barEv,_ZThn8_N5FF2133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11121333barEv,_ZTv0_n12_N9GG11121333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11121333barEv,_ZThn40_N9GG11121333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG11121333barEv,_ZTv0_n24_N9GG11121333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11121333barEv,_ZThn32_N9GG11121333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11121333fooEv,_ZTv0_n12_N9GG11121333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11121333fooEv,_ZThn24_N9GG11121333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11121333fooEv,_ZThn16_N9GG11121333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11121333fooEv,_ZTv0_n20_N9GG11121333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11121333fooEv,_ZThn32_N9GG11121333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11121333fooEv,_ZThn8_N9GG11121333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1112133 = { "GG1112133", // class name
+ bases_GG1112133, 5,
+ &(vtc_GG1112133[0]), // expected_vtbl_contents
+ &(vtt_GG1112133[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1112133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1112133),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1112133),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names203,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1112211 : virtual EE111 , virtual FF221 {
+ int pg;
+ virtual void foo(); // _ZN9GG11122113fooEv
+ ~GG1112211(); // tgen
+ GG1112211(); // tgen
+};
+//SIG(1 GG1112211) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v3 Fi} v1 Fi} v1 Fi}
+
+
+void GG1112211 ::foo(){vfunc_called(this, "_ZN9GG11122113fooEv");}
+GG1112211 ::~GG1112211(){ note_dtor("GG1112211", this);} // tgen
+GG1112211 ::GG1112211(){ note_ctor("GG1112211", this);} // tgen
+
+static void Test_GG1112211()
+{
+ extern Class_Descriptor cd_GG1112211;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1112211, buf);
+ GG1112211 *dp, &lv = *(dp=new (buf) GG1112211());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1112211)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1112211)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1112211");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1112211");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1112211");
+ check_base_class_offset(lv, (AA2*)(FF221*), ABISELECT(80,40), "GG1112211");
+ check_base_class_offset(lv, (BB2*)(FF221*), ABISELECT(96,48), "GG1112211");
+ check_base_class_offset(lv, (FF221*), ABISELECT(64,32), "GG1112211");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1112211.pg");
+ test_class_info(&lv, &cd_GG1112211);
+ dp->~GG1112211();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1112211(Test_GG1112211, "GG1112211", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1112211C1Ev();
+extern void _ZN9GG1112211D1Ev();
+Name_Map name_map_GG1112211[] = {
+ NSPAIR(_ZN9GG1112211C1Ev),
+ NSPAIR(_ZN9GG1112211D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF221;
+extern VTBL_ENTRY _ZTI5FF221[];
+extern VTBL_ENTRY _ZTV5FF221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF221[];
+static Base_Class bases_GG1112211[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF221, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1112211[];
+extern void _ZN9GG11122113fooEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11122113fooEv,_ZTv0_n20_N9GG11122113fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11122113fooEv,_ZThn8_N9GG11122113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11122113fooEv,_ZTv0_n12_N9GG11122113fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11122113fooEv,_ZThn16_N9GG11122113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11122113fooEv,_ZTv0_n12_N9GG11122113fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11122113fooEv,_ZThn24_N9GG11122113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11122113fooEv,_ZTv0_n20_N9GG11122113fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11122113fooEv,_ZThn32_N9GG11122113fooEv)() __attribute__((weak));
+extern void _ZN3AA23barEv();
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY vtc_GG1112211[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1112211[0]),
+ (VTBL_ENTRY)&_ZN9GG11122113fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1112211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11122113fooEv,_ZTv0_n20_N9GG11122113fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1112211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11122113fooEv,_ZTv0_n12_N9GG11122113fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1112211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11122113fooEv,_ZTv0_n12_N9GG11122113fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1112211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11122113fooEv,_ZTv0_n20_N9GG11122113fooEv),
+ 0,
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1112211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+ 0,
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1112211[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern VTBL_ENTRY _ZTV9GG1112211[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1112211[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1112211[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1112211[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF2213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF221__9GG1112211[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN5FF2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF221__9GG1112211[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF221__9GG1112211[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG1112211[] = {
+ {&(_ZTV9GG1112211[8]), 8,37},
+ {&(_ZTV9GG1112211[14]), 14,37},
+ {&(_ZTV9GG1112211[18]), 18,37},
+ {&(_ZTV9GG1112211[22]), 22,37},
+ {&(_ZTV9GG1112211[28]), 28,37},
+ {&(_ZTV9GG1112211[32]), 32,37},
+ {&(_ZTV9GG1112211[36]), 36,37},
+ {&(_tg__ZTV5EE111__9GG1112211[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1112211[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1112211[3]), 3,4},
+ {&(_tg__ZTV5FF221__9GG1112211[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF221__9GG1112211[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF221__9GG1112211[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1112211[];
+extern VTBL_ENTRY _ZTV9GG1112211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1112211[];
+static VTBL_ENTRY alt_thunk_names204[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11122113fooEv,_ZTv0_n12_N9GG11122113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11122113fooEv,_ZThn24_N9GG11122113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11122113fooEv,_ZThn16_N9GG11122113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11122113fooEv,_ZTv0_n20_N9GG11122113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11122113fooEv,_ZThn32_N9GG11122113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11122113fooEv,_ZThn8_N9GG11122113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1112211 = { "GG1112211", // class name
+ bases_GG1112211, 6,
+ &(vtc_GG1112211[0]), // expected_vtbl_contents
+ &(vtt_GG1112211[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1112211),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1112211),37, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1112211),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names204,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1112213 : virtual EE111 , virtual FF221 {
+ int pg;
+ virtual void foo(); // _ZN9GG11122133fooEv
+ virtual void bar(); // _ZN9GG11122133barEv
+ ~GG1112213(); // tgen
+ GG1112213(); // tgen
+};
+//SIG(1 GG1112213) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1112213 ::foo(){vfunc_called(this, "_ZN9GG11122133fooEv");}
+void GG1112213 ::bar(){vfunc_called(this, "_ZN9GG11122133barEv");}
+GG1112213 ::~GG1112213(){ note_dtor("GG1112213", this);} // tgen
+GG1112213 ::GG1112213(){ note_ctor("GG1112213", this);} // tgen
+
+static void Test_GG1112213()
+{
+ extern Class_Descriptor cd_GG1112213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1112213, buf);
+ GG1112213 *dp, &lv = *(dp=new (buf) GG1112213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1112213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1112213)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1112213");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1112213");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1112213");
+ check_base_class_offset(lv, (AA2*)(FF221*), ABISELECT(80,40), "GG1112213");
+ check_base_class_offset(lv, (BB2*)(FF221*), ABISELECT(96,48), "GG1112213");
+ check_base_class_offset(lv, (FF221*), ABISELECT(64,32), "GG1112213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1112213.pg");
+ test_class_info(&lv, &cd_GG1112213);
+ dp->~GG1112213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1112213(Test_GG1112213, "GG1112213", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1112213C1Ev();
+extern void _ZN9GG1112213D1Ev();
+Name_Map name_map_GG1112213[] = {
+ NSPAIR(_ZN9GG1112213C1Ev),
+ NSPAIR(_ZN9GG1112213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF221;
+extern VTBL_ENTRY _ZTI5FF221[];
+extern VTBL_ENTRY _ZTV5FF221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF221[];
+static Base_Class bases_GG1112213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF221, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1112213[];
+extern void _ZN9GG11122133fooEv();
+extern void _ZN9GG11122133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11122133fooEv,_ZTv0_n20_N9GG11122133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11122133fooEv,_ZThn8_N9GG11122133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11122133fooEv,_ZTv0_n12_N9GG11122133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11122133fooEv,_ZThn16_N9GG11122133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11122133fooEv,_ZTv0_n12_N9GG11122133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11122133fooEv,_ZThn24_N9GG11122133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11122133fooEv,_ZTv0_n20_N9GG11122133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11122133fooEv,_ZThn32_N9GG11122133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11122133barEv,_ZTv0_n12_N9GG11122133barEv)();
+extern void ABISELECT(_ZThn80_N9GG11122133barEv,_ZThn40_N9GG11122133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11122133barEv,_ZTv0_n12_N9GG11122133barEv)();
+extern void ABISELECT(_ZThn96_N9GG11122133barEv,_ZThn48_N9GG11122133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1112213[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1112213[0]),
+ (VTBL_ENTRY)&_ZN9GG11122133fooEv,
+ (VTBL_ENTRY)&_ZN9GG11122133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1112213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11122133fooEv,_ZTv0_n20_N9GG11122133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1112213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11122133fooEv,_ZTv0_n12_N9GG11122133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1112213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11122133fooEv,_ZTv0_n12_N9GG11122133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1112213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11122133fooEv,_ZTv0_n20_N9GG11122133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1112213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11122133barEv,_ZTv0_n12_N9GG11122133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1112213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11122133barEv,_ZTv0_n12_N9GG11122133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1112213[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1112213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1112213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1112213[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF2213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF221__9GG1112213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN5FF2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF221__9GG1112213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF221__9GG1112213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG1112213[] = {
+ {&(_ZTV9GG1112213[8]), 8,38},
+ {&(_ZTV9GG1112213[15]), 15,38},
+ {&(_ZTV9GG1112213[19]), 19,38},
+ {&(_ZTV9GG1112213[23]), 23,38},
+ {&(_ZTV9GG1112213[29]), 29,38},
+ {&(_ZTV9GG1112213[33]), 33,38},
+ {&(_ZTV9GG1112213[37]), 37,38},
+ {&(_tg__ZTV5EE111__9GG1112213[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1112213[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1112213[3]), 3,4},
+ {&(_tg__ZTV5FF221__9GG1112213[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF221__9GG1112213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF221__9GG1112213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1112213[];
+extern VTBL_ENTRY _ZTV9GG1112213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1112213[];
+static VTBL_ENTRY alt_thunk_names205[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11122133barEv,_ZTv0_n12_N9GG11122133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11122133barEv,_ZThn48_N9GG11122133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11122133barEv,_ZThn40_N9GG11122133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11122133fooEv,_ZTv0_n12_N9GG11122133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11122133fooEv,_ZThn24_N9GG11122133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11122133fooEv,_ZThn16_N9GG11122133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11122133fooEv,_ZTv0_n20_N9GG11122133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11122133fooEv,_ZThn32_N9GG11122133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11122133fooEv,_ZThn8_N9GG11122133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1112213 = { "GG1112213", // class name
+ bases_GG1112213, 6,
+ &(vtc_GG1112213[0]), // expected_vtbl_contents
+ &(vtt_GG1112213[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1112213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1112213),38, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1112213),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names205,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1112221 : virtual EE111 , virtual FF222 {
+ int pg;
+ virtual void foo(); // _ZN9GG11122213fooEv
+ ~GG1112221(); // tgen
+ GG1112221(); // tgen
+};
+//SIG(1 GG1112221) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v2 Fi} v2 Fi} v1 Fi}
+
+
+void GG1112221 ::foo(){vfunc_called(this, "_ZN9GG11122213fooEv");}
+GG1112221 ::~GG1112221(){ note_dtor("GG1112221", this);} // tgen
+GG1112221 ::GG1112221(){ note_ctor("GG1112221", this);} // tgen
+
+static void Test_GG1112221()
+{
+ extern Class_Descriptor cd_GG1112221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1112221, buf);
+ GG1112221 *dp, &lv = *(dp=new (buf) GG1112221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1112221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1112221)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1112221");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1112221");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1112221");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(80,40), "GG1112221");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(96,48), "GG1112221");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG1112221");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1112221.pg");
+ test_class_info(&lv, &cd_GG1112221);
+ dp->~GG1112221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1112221(Test_GG1112221, "GG1112221", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1112221C1Ev();
+extern void _ZN9GG1112221D1Ev();
+Name_Map name_map_GG1112221[] = {
+ NSPAIR(_ZN9GG1112221C1Ev),
+ NSPAIR(_ZN9GG1112221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG1112221[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1112221[];
+extern void _ZN9GG11122213fooEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11122213fooEv,_ZTv0_n20_N9GG11122213fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11122213fooEv,_ZThn8_N9GG11122213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11122213fooEv,_ZTv0_n12_N9GG11122213fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11122213fooEv,_ZThn16_N9GG11122213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11122213fooEv,_ZTv0_n12_N9GG11122213fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11122213fooEv,_ZThn24_N9GG11122213fooEv)() __attribute__((weak));
+extern void _ZN5FF2223barEv();
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1112221[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1112221[0]),
+ (VTBL_ENTRY)&_ZN9GG11122213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1112221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11122213fooEv,_ZTv0_n20_N9GG11122213fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1112221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11122213fooEv,_ZTv0_n12_N9GG11122213fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1112221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11122213fooEv,_ZTv0_n12_N9GG11122213fooEv),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1112221[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1112221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1112221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1112221[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1112221[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1112221[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1112221[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG1112221[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG1112221[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG1112221[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG1112221[] = {
+ {&(_ZTV9GG1112221[8]), 8,37},
+ {&(_ZTV9GG1112221[14]), 14,37},
+ {&(_ZTV9GG1112221[18]), 18,37},
+ {&(_ZTV9GG1112221[22]), 22,37},
+ {&(_ZTV9GG1112221[28]), 28,37},
+ {&(_ZTV9GG1112221[32]), 32,37},
+ {&(_ZTV9GG1112221[36]), 36,37},
+ {&(_tg__ZTV5EE111__9GG1112221[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1112221[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1112221[3]), 3,4},
+ {&(_tg__ZTV5FF222__9GG1112221[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG1112221[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG1112221[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1112221[];
+extern VTBL_ENTRY _ZTV9GG1112221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1112221[];
+static VTBL_ENTRY alt_thunk_names206[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11122213fooEv,_ZTv0_n12_N9GG11122213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11122213fooEv,_ZThn24_N9GG11122213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11122213fooEv,_ZThn16_N9GG11122213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11122213fooEv,_ZTv0_n20_N9GG11122213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11122213fooEv,_ZThn8_N9GG11122213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1112221 = { "GG1112221", // class name
+ bases_GG1112221, 6,
+ &(vtc_GG1112221[0]), // expected_vtbl_contents
+ &(vtt_GG1112221[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1112221),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1112221),37, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1112221),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names206,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1112222 : virtual EE111 , virtual FF222 {
+ int pg;
+ virtual void bar(); // _ZN9GG11122223barEv
+ ~GG1112222(); // tgen
+ GG1112222(); // tgen
+};
+//SIG(1 GG1112222) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+void GG1112222 ::bar(){vfunc_called(this, "_ZN9GG11122223barEv");}
+GG1112222 ::~GG1112222(){ note_dtor("GG1112222", this);} // tgen
+GG1112222 ::GG1112222(){ note_ctor("GG1112222", this);} // tgen
+
+static void Test_GG1112222()
+{
+ extern Class_Descriptor cd_GG1112222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1112222, buf);
+ GG1112222 *dp, &lv = *(dp=new (buf) GG1112222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1112222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1112222)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1112222");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1112222");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1112222");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(80,40), "GG1112222");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(96,48), "GG1112222");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG1112222");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1112222.pg");
+ test_class_info(&lv, &cd_GG1112222);
+ dp->~GG1112222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1112222(Test_GG1112222, "GG1112222", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1112222C1Ev();
+extern void _ZN9GG1112222D1Ev();
+Name_Map name_map_GG1112222[] = {
+ NSPAIR(_ZN9GG1112222C1Ev),
+ NSPAIR(_ZN9GG1112222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG1112222[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1112222[];
+extern void _ZN9GG11122223barEv();
+extern void _ZN5EE1113fooEv();
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11122223barEv,_ZTv0_n20_N9GG11122223barEv)();
+extern void ABISELECT(_ZThn64_N9GG11122223barEv,_ZThn32_N9GG11122223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11122223barEv,_ZTv0_n12_N9GG11122223barEv)();
+extern void ABISELECT(_ZThn80_N9GG11122223barEv,_ZThn40_N9GG11122223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11122223barEv,_ZTv0_n12_N9GG11122223barEv)();
+extern void ABISELECT(_ZThn96_N9GG11122223barEv,_ZThn48_N9GG11122223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1112222[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1112222[0]),
+ (VTBL_ENTRY)&_ZN9GG11122223barEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1112222[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1112222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1112222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1112222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11122223barEv,_ZTv0_n20_N9GG11122223barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1112222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11122223barEv,_ZTv0_n12_N9GG11122223barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1112222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11122223barEv,_ZTv0_n12_N9GG11122223barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1112222[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1112222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1112222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1112222[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG1112222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG1112222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG1112222[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG1112222[] = {
+ {&(_ZTV9GG1112222[8]), 8,37},
+ {&(_ZTV9GG1112222[14]), 14,37},
+ {&(_ZTV9GG1112222[18]), 18,37},
+ {&(_ZTV9GG1112222[22]), 22,37},
+ {&(_ZTV9GG1112222[28]), 28,37},
+ {&(_ZTV9GG1112222[32]), 32,37},
+ {&(_ZTV9GG1112222[36]), 36,37},
+ {&(_tg__ZTV5EE111__9GG1112222[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1112222[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1112222[3]), 3,4},
+ {&(_tg__ZTV5FF222__9GG1112222[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG1112222[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG1112222[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1112222[];
+extern VTBL_ENTRY _ZTV9GG1112222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1112222[];
+static VTBL_ENTRY alt_thunk_names207[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11122223barEv,_ZTv0_n12_N9GG11122223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11122223barEv,_ZThn48_N9GG11122223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11122223barEv,_ZThn40_N9GG11122223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11122223barEv,_ZTv0_n20_N9GG11122223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11122223barEv,_ZThn32_N9GG11122223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1112222 = { "GG1112222", // class name
+ bases_GG1112222, 6,
+ &(vtc_GG1112222[0]), // expected_vtbl_contents
+ &(vtt_GG1112222[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1112222),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1112222),37, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1112222),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names207,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1112223 : virtual EE111 , virtual FF222 {
+ int pg;
+ virtual void foo(); // _ZN9GG11122233fooEv
+ virtual void bar(); // _ZN9GG11122233barEv
+ ~GG1112223(); // tgen
+ GG1112223(); // tgen
+};
+//SIG(1 GG1112223) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1112223 ::foo(){vfunc_called(this, "_ZN9GG11122233fooEv");}
+void GG1112223 ::bar(){vfunc_called(this, "_ZN9GG11122233barEv");}
+GG1112223 ::~GG1112223(){ note_dtor("GG1112223", this);} // tgen
+GG1112223 ::GG1112223(){ note_ctor("GG1112223", this);} // tgen
+
+static void Test_GG1112223()
+{
+ extern Class_Descriptor cd_GG1112223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1112223, buf);
+ GG1112223 *dp, &lv = *(dp=new (buf) GG1112223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1112223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1112223)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1112223");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1112223");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1112223");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(80,40), "GG1112223");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(96,48), "GG1112223");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG1112223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1112223.pg");
+ test_class_info(&lv, &cd_GG1112223);
+ dp->~GG1112223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1112223(Test_GG1112223, "GG1112223", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1112223C1Ev();
+extern void _ZN9GG1112223D1Ev();
+Name_Map name_map_GG1112223[] = {
+ NSPAIR(_ZN9GG1112223C1Ev),
+ NSPAIR(_ZN9GG1112223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG1112223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1112223[];
+extern void _ZN9GG11122233fooEv();
+extern void _ZN9GG11122233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11122233fooEv,_ZTv0_n20_N9GG11122233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11122233fooEv,_ZThn8_N9GG11122233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11122233fooEv,_ZTv0_n12_N9GG11122233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11122233fooEv,_ZThn16_N9GG11122233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11122233fooEv,_ZTv0_n12_N9GG11122233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11122233fooEv,_ZThn24_N9GG11122233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11122233barEv,_ZTv0_n20_N9GG11122233barEv)();
+extern void ABISELECT(_ZThn64_N9GG11122233barEv,_ZThn32_N9GG11122233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11122233barEv,_ZTv0_n12_N9GG11122233barEv)();
+extern void ABISELECT(_ZThn80_N9GG11122233barEv,_ZThn40_N9GG11122233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11122233barEv,_ZTv0_n12_N9GG11122233barEv)();
+extern void ABISELECT(_ZThn96_N9GG11122233barEv,_ZThn48_N9GG11122233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1112223[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1112223[0]),
+ (VTBL_ENTRY)&_ZN9GG11122233fooEv,
+ (VTBL_ENTRY)&_ZN9GG11122233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1112223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11122233fooEv,_ZTv0_n20_N9GG11122233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1112223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11122233fooEv,_ZTv0_n12_N9GG11122233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1112223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11122233fooEv,_ZTv0_n12_N9GG11122233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1112223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11122233barEv,_ZTv0_n20_N9GG11122233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1112223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11122233barEv,_ZTv0_n12_N9GG11122233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1112223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11122233barEv,_ZTv0_n12_N9GG11122233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1112223[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1112223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1112223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1112223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG1112223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG1112223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG1112223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG1112223[] = {
+ {&(_ZTV9GG1112223[8]), 8,38},
+ {&(_ZTV9GG1112223[15]), 15,38},
+ {&(_ZTV9GG1112223[19]), 19,38},
+ {&(_ZTV9GG1112223[23]), 23,38},
+ {&(_ZTV9GG1112223[29]), 29,38},
+ {&(_ZTV9GG1112223[33]), 33,38},
+ {&(_ZTV9GG1112223[37]), 37,38},
+ {&(_tg__ZTV5EE111__9GG1112223[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1112223[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1112223[3]), 3,4},
+ {&(_tg__ZTV5FF222__9GG1112223[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG1112223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG1112223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1112223[];
+extern VTBL_ENTRY _ZTV9GG1112223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1112223[];
+static VTBL_ENTRY alt_thunk_names208[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11122233barEv,_ZTv0_n12_N9GG11122233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11122233barEv,_ZThn48_N9GG11122233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11122233barEv,_ZThn40_N9GG11122233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11122233barEv,_ZTv0_n20_N9GG11122233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11122233barEv,_ZThn32_N9GG11122233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11122233fooEv,_ZTv0_n12_N9GG11122233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11122233fooEv,_ZThn24_N9GG11122233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11122233fooEv,_ZThn16_N9GG11122233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11122233fooEv,_ZTv0_n20_N9GG11122233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11122233fooEv,_ZThn8_N9GG11122233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1112223 = { "GG1112223", // class name
+ bases_GG1112223, 6,
+ &(vtc_GG1112223[0]), // expected_vtbl_contents
+ &(vtt_GG1112223[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1112223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1112223),38, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1112223),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names208,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1112231 : virtual EE111 , virtual FF223 {
+ int pg;
+ virtual void foo(); // _ZN9GG11122313fooEv
+ ~GG1112231(); // tgen
+ GG1112231(); // tgen
+};
+//SIG(1 GG1112231) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void GG1112231 ::foo(){vfunc_called(this, "_ZN9GG11122313fooEv");}
+GG1112231 ::~GG1112231(){ note_dtor("GG1112231", this);} // tgen
+GG1112231 ::GG1112231(){ note_ctor("GG1112231", this);} // tgen
+
+static void Test_GG1112231()
+{
+ extern Class_Descriptor cd_GG1112231;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1112231, buf);
+ GG1112231 *dp, &lv = *(dp=new (buf) GG1112231());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1112231)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1112231)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1112231");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1112231");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1112231");
+ check_base_class_offset(lv, (AA2*)(FF223*), ABISELECT(80,40), "GG1112231");
+ check_base_class_offset(lv, (BB2*)(FF223*), ABISELECT(96,48), "GG1112231");
+ check_base_class_offset(lv, (FF223*), ABISELECT(64,32), "GG1112231");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1112231.pg");
+ test_class_info(&lv, &cd_GG1112231);
+ dp->~GG1112231();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1112231(Test_GG1112231, "GG1112231", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1112231C1Ev();
+extern void _ZN9GG1112231D1Ev();
+Name_Map name_map_GG1112231[] = {
+ NSPAIR(_ZN9GG1112231C1Ev),
+ NSPAIR(_ZN9GG1112231D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF223;
+extern VTBL_ENTRY _ZTI5FF223[];
+extern VTBL_ENTRY _ZTV5FF223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF223[];
+static Base_Class bases_GG1112231[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF223, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1112231[];
+extern void _ZN9GG11122313fooEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11122313fooEv,_ZTv0_n20_N9GG11122313fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11122313fooEv,_ZThn8_N9GG11122313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11122313fooEv,_ZTv0_n12_N9GG11122313fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11122313fooEv,_ZThn16_N9GG11122313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11122313fooEv,_ZTv0_n12_N9GG11122313fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11122313fooEv,_ZThn24_N9GG11122313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11122313fooEv,_ZTv0_n20_N9GG11122313fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11122313fooEv,_ZThn32_N9GG11122313fooEv)() __attribute__((weak));
+extern void _ZN5FF2233barEv();
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+extern void ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+extern void ABISELECT(_ZThn32_N5FF2233barEv,_ZThn16_N5FF2233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1112231[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1112231[0]),
+ (VTBL_ENTRY)&_ZN9GG11122313fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1112231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11122313fooEv,_ZTv0_n20_N9GG11122313fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1112231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11122313fooEv,_ZTv0_n12_N9GG11122313fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1112231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11122313fooEv,_ZTv0_n12_N9GG11122313fooEv),
+ 0,
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1112231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11122313fooEv,_ZTv0_n20_N9GG11122313fooEv),
+ (VTBL_ENTRY)&_ZN5FF2233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1112231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1112231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1112231[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1112231[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1112231[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1112231[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF2233fooEv();
+extern void _ZN5FF2233barEv();
+static VTBL_ENTRY _tg__ZTV5FF223__9GG1112231[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&_ZN5FF2233fooEv,
+ (VTBL_ENTRY)&_ZN5FF2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+extern void ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF223__9GG1112231[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+extern void ABISELECT(_ZThn32_N5FF2233barEv,_ZThn16_N5FF2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF223__9GG1112231[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+static VTT_ENTRY vtt_GG1112231[] = {
+ {&(_ZTV9GG1112231[8]), 8,39},
+ {&(_ZTV9GG1112231[14]), 14,39},
+ {&(_ZTV9GG1112231[18]), 18,39},
+ {&(_ZTV9GG1112231[22]), 22,39},
+ {&(_ZTV9GG1112231[29]), 29,39},
+ {&(_ZTV9GG1112231[34]), 34,39},
+ {&(_ZTV9GG1112231[38]), 38,39},
+ {&(_tg__ZTV5EE111__9GG1112231[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1112231[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1112231[3]), 3,4},
+ {&(_tg__ZTV5FF223__9GG1112231[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF223__9GG1112231[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF223__9GG1112231[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1112231[];
+extern VTBL_ENTRY _ZTV9GG1112231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1112231[];
+static VTBL_ENTRY alt_thunk_names209[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2233barEv,_ZThn16_N5FF2233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2233barEv,_ZThn16_N5FF2233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11122313fooEv,_ZTv0_n12_N9GG11122313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11122313fooEv,_ZThn24_N9GG11122313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11122313fooEv,_ZThn16_N9GG11122313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11122313fooEv,_ZTv0_n20_N9GG11122313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11122313fooEv,_ZThn32_N9GG11122313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11122313fooEv,_ZThn8_N9GG11122313fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1112231 = { "GG1112231", // class name
+ bases_GG1112231, 6,
+ &(vtc_GG1112231[0]), // expected_vtbl_contents
+ &(vtt_GG1112231[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1112231),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1112231),39, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1112231),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names209,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1112233 : virtual EE111 , virtual FF223 {
+ int pg;
+ virtual void foo(); // _ZN9GG11122333fooEv
+ virtual void bar(); // _ZN9GG11122333barEv
+ ~GG1112233(); // tgen
+ GG1112233(); // tgen
+};
+//SIG(1 GG1112233) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1112233 ::foo(){vfunc_called(this, "_ZN9GG11122333fooEv");}
+void GG1112233 ::bar(){vfunc_called(this, "_ZN9GG11122333barEv");}
+GG1112233 ::~GG1112233(){ note_dtor("GG1112233", this);} // tgen
+GG1112233 ::GG1112233(){ note_ctor("GG1112233", this);} // tgen
+
+static void Test_GG1112233()
+{
+ extern Class_Descriptor cd_GG1112233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1112233, buf);
+ GG1112233 *dp, &lv = *(dp=new (buf) GG1112233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1112233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1112233)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1112233");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1112233");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1112233");
+ check_base_class_offset(lv, (AA2*)(FF223*), ABISELECT(80,40), "GG1112233");
+ check_base_class_offset(lv, (BB2*)(FF223*), ABISELECT(96,48), "GG1112233");
+ check_base_class_offset(lv, (FF223*), ABISELECT(64,32), "GG1112233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1112233.pg");
+ test_class_info(&lv, &cd_GG1112233);
+ dp->~GG1112233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1112233(Test_GG1112233, "GG1112233", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1112233C1Ev();
+extern void _ZN9GG1112233D1Ev();
+Name_Map name_map_GG1112233[] = {
+ NSPAIR(_ZN9GG1112233C1Ev),
+ NSPAIR(_ZN9GG1112233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF223;
+extern VTBL_ENTRY _ZTI5FF223[];
+extern VTBL_ENTRY _ZTV5FF223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF223[];
+static Base_Class bases_GG1112233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF223, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1112233[];
+extern void _ZN9GG11122333fooEv();
+extern void _ZN9GG11122333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11122333fooEv,_ZTv0_n20_N9GG11122333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11122333fooEv,_ZThn8_N9GG11122333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11122333fooEv,_ZTv0_n12_N9GG11122333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11122333fooEv,_ZThn16_N9GG11122333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11122333fooEv,_ZTv0_n12_N9GG11122333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11122333fooEv,_ZThn24_N9GG11122333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11122333fooEv,_ZTv0_n20_N9GG11122333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11122333fooEv,_ZThn32_N9GG11122333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11122333barEv,_ZTv0_n24_N9GG11122333barEv)();
+extern void ABISELECT(_ZThn64_N9GG11122333barEv,_ZThn32_N9GG11122333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11122333barEv,_ZTv0_n12_N9GG11122333barEv)();
+extern void ABISELECT(_ZThn80_N9GG11122333barEv,_ZThn40_N9GG11122333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11122333barEv,_ZTv0_n12_N9GG11122333barEv)();
+extern void ABISELECT(_ZThn96_N9GG11122333barEv,_ZThn48_N9GG11122333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1112233[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1112233[0]),
+ (VTBL_ENTRY)&_ZN9GG11122333fooEv,
+ (VTBL_ENTRY)&_ZN9GG11122333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1112233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11122333fooEv,_ZTv0_n20_N9GG11122333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1112233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11122333fooEv,_ZTv0_n12_N9GG11122333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1112233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11122333fooEv,_ZTv0_n12_N9GG11122333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1112233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11122333fooEv,_ZTv0_n20_N9GG11122333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11122333barEv,_ZTv0_n24_N9GG11122333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1112233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11122333barEv,_ZTv0_n12_N9GG11122333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1112233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11122333barEv,_ZTv0_n12_N9GG11122333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1112233[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1112233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1112233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1112233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF2233fooEv();
+extern void _ZN5FF2233barEv();
+static VTBL_ENTRY _tg__ZTV5FF223__9GG1112233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&_ZN5FF2233fooEv,
+ (VTBL_ENTRY)&_ZN5FF2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+extern void ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF223__9GG1112233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+extern void ABISELECT(_ZThn32_N5FF2233barEv,_ZThn16_N5FF2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF223__9GG1112233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+static VTT_ENTRY vtt_GG1112233[] = {
+ {&(_ZTV9GG1112233[8]), 8,40},
+ {&(_ZTV9GG1112233[15]), 15,40},
+ {&(_ZTV9GG1112233[19]), 19,40},
+ {&(_ZTV9GG1112233[23]), 23,40},
+ {&(_ZTV9GG1112233[30]), 30,40},
+ {&(_ZTV9GG1112233[35]), 35,40},
+ {&(_ZTV9GG1112233[39]), 39,40},
+ {&(_tg__ZTV5EE111__9GG1112233[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1112233[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1112233[3]), 3,4},
+ {&(_tg__ZTV5FF223__9GG1112233[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF223__9GG1112233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF223__9GG1112233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1112233[];
+extern VTBL_ENTRY _ZTV9GG1112233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1112233[];
+static VTBL_ENTRY alt_thunk_names210[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2233barEv,_ZThn16_N5FF2233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11122333barEv,_ZTv0_n12_N9GG11122333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11122333barEv,_ZThn48_N9GG11122333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11122333barEv,_ZThn40_N9GG11122333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG11122333barEv,_ZTv0_n24_N9GG11122333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11122333barEv,_ZThn32_N9GG11122333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11122333fooEv,_ZTv0_n12_N9GG11122333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11122333fooEv,_ZThn24_N9GG11122333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11122333fooEv,_ZThn16_N9GG11122333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11122333fooEv,_ZTv0_n20_N9GG11122333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11122333fooEv,_ZThn32_N9GG11122333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11122333fooEv,_ZThn8_N9GG11122333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1112233 = { "GG1112233", // class name
+ bases_GG1112233, 6,
+ &(vtc_GG1112233[0]), // expected_vtbl_contents
+ &(vtt_GG1112233[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1112233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1112233),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1112233),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names210,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1112311 : virtual EE111 , virtual FF231 {
+ int pg;
+ virtual void foo(); // _ZN9GG11123113fooEv
+ ~GG1112311(); // tgen
+ GG1112311(); // tgen
+};
+//SIG(1 GG1112311) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 v3 Fi} v1 Fi} v1 Fi}
+
+
+void GG1112311 ::foo(){vfunc_called(this, "_ZN9GG11123113fooEv");}
+GG1112311 ::~GG1112311(){ note_dtor("GG1112311", this);} // tgen
+GG1112311 ::GG1112311(){ note_ctor("GG1112311", this);} // tgen
+
+static void Test_GG1112311()
+{
+ extern Class_Descriptor cd_GG1112311;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1112311, buf);
+ GG1112311 *dp, &lv = *(dp=new (buf) GG1112311());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1112311)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1112311)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1112311");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1112311");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1112311");
+ check_base_class_offset(lv, (AA2*)(FF231*), ABISELECT(80,40), "GG1112311");
+ check_base_class_offset(lv, (BB3*)(FF231*), ABISELECT(96,48), "GG1112311");
+ check_base_class_offset(lv, (FF231*), ABISELECT(64,32), "GG1112311");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1112311.pg");
+ test_class_info(&lv, &cd_GG1112311);
+ dp->~GG1112311();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1112311(Test_GG1112311, "GG1112311", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1112311C1Ev();
+extern void _ZN9GG1112311D1Ev();
+Name_Map name_map_GG1112311[] = {
+ NSPAIR(_ZN9GG1112311C1Ev),
+ NSPAIR(_ZN9GG1112311D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF231;
+extern VTBL_ENTRY _ZTI5FF231[];
+extern VTBL_ENTRY _ZTV5FF231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF231[];
+static Base_Class bases_GG1112311[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF231, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1112311[];
+extern void _ZN9GG11123113fooEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11123113fooEv,_ZTv0_n20_N9GG11123113fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11123113fooEv,_ZThn8_N9GG11123113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11123113fooEv,_ZTv0_n12_N9GG11123113fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11123113fooEv,_ZThn16_N9GG11123113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11123113fooEv,_ZTv0_n12_N9GG11123113fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11123113fooEv,_ZThn24_N9GG11123113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11123113fooEv,_ZTv0_n20_N9GG11123113fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11123113fooEv,_ZThn32_N9GG11123113fooEv)() __attribute__((weak));
+extern void _ZN3AA23barEv();
+extern void ABISELECT(_ZTv0_n24_N9GG11123113fooEv,_ZTv0_n12_N9GG11123113fooEv)();
+extern void ABISELECT(_ZThn96_N9GG11123113fooEv,_ZThn48_N9GG11123113fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY vtc_GG1112311[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1112311[0]),
+ (VTBL_ENTRY)&_ZN9GG11123113fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1112311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11123113fooEv,_ZTv0_n20_N9GG11123113fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1112311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11123113fooEv,_ZTv0_n12_N9GG11123113fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1112311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11123113fooEv,_ZTv0_n12_N9GG11123113fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1112311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11123113fooEv,_ZTv0_n20_N9GG11123113fooEv),
+ 0,
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1112311[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+ 0,
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1112311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11123113fooEv,_ZTv0_n12_N9GG11123113fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern VTBL_ENTRY _ZTV9GG1112311[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1112311[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1112311[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1112311[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF2313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF231__9GG1112311[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN5FF2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF231__9GG1112311[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2313fooEv,_ZThn16_N5FF2313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF231__9GG1112311[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG1112311[] = {
+ {&(_ZTV9GG1112311[8]), 8,39},
+ {&(_ZTV9GG1112311[14]), 14,39},
+ {&(_ZTV9GG1112311[18]), 18,39},
+ {&(_ZTV9GG1112311[22]), 22,39},
+ {&(_ZTV9GG1112311[28]), 28,39},
+ {&(_ZTV9GG1112311[32]), 32,39},
+ {&(_ZTV9GG1112311[37]), 37,39},
+ {&(_tg__ZTV5EE111__9GG1112311[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1112311[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1112311[3]), 3,4},
+ {&(_tg__ZTV5FF231__9GG1112311[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF231__9GG1112311[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF231__9GG1112311[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1112311[];
+extern VTBL_ENTRY _ZTV9GG1112311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1112311[];
+static VTBL_ENTRY alt_thunk_names211[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2313fooEv,_ZThn16_N5FF2313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11123113fooEv,_ZTv0_n12_N9GG11123113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11123113fooEv,_ZThn48_N9GG11123113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11123113fooEv,_ZThn24_N9GG11123113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11123113fooEv,_ZThn16_N9GG11123113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11123113fooEv,_ZTv0_n20_N9GG11123113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11123113fooEv,_ZThn32_N9GG11123113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11123113fooEv,_ZThn8_N9GG11123113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1112311 = { "GG1112311", // class name
+ bases_GG1112311, 6,
+ &(vtc_GG1112311[0]), // expected_vtbl_contents
+ &(vtt_GG1112311[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1112311),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1112311),39, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1112311),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names211,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1112313 : virtual EE111 , virtual FF231 {
+ int pg;
+ virtual void foo(); // _ZN9GG11123133fooEv
+ virtual void bar(); // _ZN9GG11123133barEv
+ ~GG1112313(); // tgen
+ GG1112313(); // tgen
+};
+//SIG(1 GG1112313) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1112313 ::foo(){vfunc_called(this, "_ZN9GG11123133fooEv");}
+void GG1112313 ::bar(){vfunc_called(this, "_ZN9GG11123133barEv");}
+GG1112313 ::~GG1112313(){ note_dtor("GG1112313", this);} // tgen
+GG1112313 ::GG1112313(){ note_ctor("GG1112313", this);} // tgen
+
+static void Test_GG1112313()
+{
+ extern Class_Descriptor cd_GG1112313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1112313, buf);
+ GG1112313 *dp, &lv = *(dp=new (buf) GG1112313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1112313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1112313)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1112313");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1112313");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1112313");
+ check_base_class_offset(lv, (AA2*)(FF231*), ABISELECT(80,40), "GG1112313");
+ check_base_class_offset(lv, (BB3*)(FF231*), ABISELECT(96,48), "GG1112313");
+ check_base_class_offset(lv, (FF231*), ABISELECT(64,32), "GG1112313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1112313.pg");
+ test_class_info(&lv, &cd_GG1112313);
+ dp->~GG1112313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1112313(Test_GG1112313, "GG1112313", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1112313C1Ev();
+extern void _ZN9GG1112313D1Ev();
+Name_Map name_map_GG1112313[] = {
+ NSPAIR(_ZN9GG1112313C1Ev),
+ NSPAIR(_ZN9GG1112313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF231;
+extern VTBL_ENTRY _ZTI5FF231[];
+extern VTBL_ENTRY _ZTV5FF231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF231[];
+static Base_Class bases_GG1112313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF231, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1112313[];
+extern void _ZN9GG11123133fooEv();
+extern void _ZN9GG11123133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11123133fooEv,_ZTv0_n20_N9GG11123133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11123133fooEv,_ZThn8_N9GG11123133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11123133fooEv,_ZTv0_n12_N9GG11123133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11123133fooEv,_ZThn16_N9GG11123133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11123133fooEv,_ZTv0_n12_N9GG11123133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11123133fooEv,_ZThn24_N9GG11123133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11123133fooEv,_ZTv0_n20_N9GG11123133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11123133fooEv,_ZThn32_N9GG11123133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11123133barEv,_ZTv0_n12_N9GG11123133barEv)();
+extern void ABISELECT(_ZThn80_N9GG11123133barEv,_ZThn40_N9GG11123133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11123133fooEv,_ZTv0_n12_N9GG11123133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG11123133fooEv,_ZThn48_N9GG11123133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11123133barEv,_ZTv0_n16_N9GG11123133barEv)();
+extern void ABISELECT(_ZThn96_N9GG11123133barEv,_ZThn48_N9GG11123133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1112313[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1112313[0]),
+ (VTBL_ENTRY)&_ZN9GG11123133fooEv,
+ (VTBL_ENTRY)&_ZN9GG11123133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1112313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11123133fooEv,_ZTv0_n20_N9GG11123133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1112313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11123133fooEv,_ZTv0_n12_N9GG11123133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1112313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11123133fooEv,_ZTv0_n12_N9GG11123133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1112313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11123133fooEv,_ZTv0_n20_N9GG11123133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1112313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11123133barEv,_ZTv0_n12_N9GG11123133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1112313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11123133fooEv,_ZTv0_n12_N9GG11123133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11123133barEv,_ZTv0_n16_N9GG11123133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1112313[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1112313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1112313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1112313[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF2313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF231__9GG1112313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN5FF2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF231__9GG1112313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2313fooEv,_ZThn16_N5FF2313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF231__9GG1112313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG1112313[] = {
+ {&(_ZTV9GG1112313[8]), 8,40},
+ {&(_ZTV9GG1112313[15]), 15,40},
+ {&(_ZTV9GG1112313[19]), 19,40},
+ {&(_ZTV9GG1112313[23]), 23,40},
+ {&(_ZTV9GG1112313[29]), 29,40},
+ {&(_ZTV9GG1112313[33]), 33,40},
+ {&(_ZTV9GG1112313[38]), 38,40},
+ {&(_tg__ZTV5EE111__9GG1112313[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1112313[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1112313[3]), 3,4},
+ {&(_tg__ZTV5FF231__9GG1112313[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF231__9GG1112313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF231__9GG1112313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1112313[];
+extern VTBL_ENTRY _ZTV9GG1112313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1112313[];
+static VTBL_ENTRY alt_thunk_names212[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2313fooEv,_ZThn16_N5FF2313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG11123133barEv,_ZTv0_n16_N9GG11123133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11123133barEv,_ZThn48_N9GG11123133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11123133barEv,_ZTv0_n12_N9GG11123133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11123133barEv,_ZThn40_N9GG11123133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11123133fooEv,_ZTv0_n12_N9GG11123133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11123133fooEv,_ZThn48_N9GG11123133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11123133fooEv,_ZThn24_N9GG11123133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11123133fooEv,_ZThn16_N9GG11123133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11123133fooEv,_ZTv0_n20_N9GG11123133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11123133fooEv,_ZThn32_N9GG11123133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11123133fooEv,_ZThn8_N9GG11123133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1112313 = { "GG1112313", // class name
+ bases_GG1112313, 6,
+ &(vtc_GG1112313[0]), // expected_vtbl_contents
+ &(vtt_GG1112313[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1112313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1112313),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1112313),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names212,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1112321 : virtual EE111 , virtual FF232 {
+ int pg;
+ virtual void foo(); // _ZN9GG11123213fooEv
+ ~GG1112321(); // tgen
+ GG1112321(); // tgen
+};
+//SIG(1 GG1112321) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void GG1112321 ::foo(){vfunc_called(this, "_ZN9GG11123213fooEv");}
+GG1112321 ::~GG1112321(){ note_dtor("GG1112321", this);} // tgen
+GG1112321 ::GG1112321(){ note_ctor("GG1112321", this);} // tgen
+
+static void Test_GG1112321()
+{
+ extern Class_Descriptor cd_GG1112321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1112321, buf);
+ GG1112321 *dp, &lv = *(dp=new (buf) GG1112321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1112321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1112321)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1112321");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1112321");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1112321");
+ check_base_class_offset(lv, (AA2*)(FF232*), ABISELECT(80,40), "GG1112321");
+ check_base_class_offset(lv, (BB3*)(FF232*), ABISELECT(96,48), "GG1112321");
+ check_base_class_offset(lv, (FF232*), ABISELECT(64,32), "GG1112321");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1112321.pg");
+ test_class_info(&lv, &cd_GG1112321);
+ dp->~GG1112321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1112321(Test_GG1112321, "GG1112321", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1112321C1Ev();
+extern void _ZN9GG1112321D1Ev();
+Name_Map name_map_GG1112321[] = {
+ NSPAIR(_ZN9GG1112321C1Ev),
+ NSPAIR(_ZN9GG1112321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF232;
+extern VTBL_ENTRY _ZTI5FF232[];
+extern VTBL_ENTRY _ZTV5FF232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF232[];
+static Base_Class bases_GG1112321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF232, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1112321[];
+extern void _ZN9GG11123213fooEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11123213fooEv,_ZTv0_n20_N9GG11123213fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11123213fooEv,_ZThn8_N9GG11123213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11123213fooEv,_ZTv0_n12_N9GG11123213fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11123213fooEv,_ZThn16_N9GG11123213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11123213fooEv,_ZTv0_n12_N9GG11123213fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11123213fooEv,_ZThn24_N9GG11123213fooEv)() __attribute__((weak));
+extern void _ZN5FF2323barEv();
+extern void ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv)();
+extern void ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11123213fooEv,_ZTv0_n12_N9GG11123213fooEv)();
+extern void ABISELECT(_ZThn96_N9GG11123213fooEv,_ZThn48_N9GG11123213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv)();
+extern void ABISELECT(_ZThn32_N5FF2323barEv,_ZThn16_N5FF2323barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1112321[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1112321[0]),
+ (VTBL_ENTRY)&_ZN9GG11123213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1112321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11123213fooEv,_ZTv0_n20_N9GG11123213fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1112321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11123213fooEv,_ZTv0_n12_N9GG11123213fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1112321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11123213fooEv,_ZTv0_n12_N9GG11123213fooEv),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1112321[0]),
+ (VTBL_ENTRY)&_ZN5FF2323barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1112321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1112321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11123213fooEv,_ZTv0_n12_N9GG11123213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1112321[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1112321[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1112321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1112321[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF2323barEv();
+static VTBL_ENTRY _tg__ZTV5FF232__9GG1112321[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN5FF2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv)();
+extern void ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF232__9GG1112321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv)();
+extern void ABISELECT(_ZThn32_N5FF2323barEv,_ZThn16_N5FF2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF232__9GG1112321[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv),
+};
+static VTT_ENTRY vtt_GG1112321[] = {
+ {&(_ZTV9GG1112321[8]), 8,39},
+ {&(_ZTV9GG1112321[14]), 14,39},
+ {&(_ZTV9GG1112321[18]), 18,39},
+ {&(_ZTV9GG1112321[22]), 22,39},
+ {&(_ZTV9GG1112321[28]), 28,39},
+ {&(_ZTV9GG1112321[32]), 32,39},
+ {&(_ZTV9GG1112321[37]), 37,39},
+ {&(_tg__ZTV5EE111__9GG1112321[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1112321[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1112321[3]), 3,4},
+ {&(_tg__ZTV5FF232__9GG1112321[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF232__9GG1112321[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF232__9GG1112321[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1112321[];
+extern VTBL_ENTRY _ZTV9GG1112321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1112321[];
+static VTBL_ENTRY alt_thunk_names213[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2323barEv,_ZThn16_N5FF2323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2323barEv,_ZThn16_N5FF2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11123213fooEv,_ZTv0_n12_N9GG11123213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11123213fooEv,_ZThn48_N9GG11123213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11123213fooEv,_ZThn24_N9GG11123213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11123213fooEv,_ZThn16_N9GG11123213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11123213fooEv,_ZTv0_n20_N9GG11123213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11123213fooEv,_ZThn8_N9GG11123213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1112321 = { "GG1112321", // class name
+ bases_GG1112321, 6,
+ &(vtc_GG1112321[0]), // expected_vtbl_contents
+ &(vtt_GG1112321[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1112321),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1112321),39, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1112321),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names213,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1112323 : virtual EE111 , virtual FF232 {
+ int pg;
+ virtual void foo(); // _ZN9GG11123233fooEv
+ virtual void bar(); // _ZN9GG11123233barEv
+ ~GG1112323(); // tgen
+ GG1112323(); // tgen
+};
+//SIG(1 GG1112323) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1112323 ::foo(){vfunc_called(this, "_ZN9GG11123233fooEv");}
+void GG1112323 ::bar(){vfunc_called(this, "_ZN9GG11123233barEv");}
+GG1112323 ::~GG1112323(){ note_dtor("GG1112323", this);} // tgen
+GG1112323 ::GG1112323(){ note_ctor("GG1112323", this);} // tgen
+
+static void Test_GG1112323()
+{
+ extern Class_Descriptor cd_GG1112323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1112323, buf);
+ GG1112323 *dp, &lv = *(dp=new (buf) GG1112323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1112323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1112323)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1112323");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1112323");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1112323");
+ check_base_class_offset(lv, (AA2*)(FF232*), ABISELECT(80,40), "GG1112323");
+ check_base_class_offset(lv, (BB3*)(FF232*), ABISELECT(96,48), "GG1112323");
+ check_base_class_offset(lv, (FF232*), ABISELECT(64,32), "GG1112323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1112323.pg");
+ test_class_info(&lv, &cd_GG1112323);
+ dp->~GG1112323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1112323(Test_GG1112323, "GG1112323", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1112323C1Ev();
+extern void _ZN9GG1112323D1Ev();
+Name_Map name_map_GG1112323[] = {
+ NSPAIR(_ZN9GG1112323C1Ev),
+ NSPAIR(_ZN9GG1112323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF232;
+extern VTBL_ENTRY _ZTI5FF232[];
+extern VTBL_ENTRY _ZTV5FF232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF232[];
+static Base_Class bases_GG1112323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF232, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1112323[];
+extern void _ZN9GG11123233fooEv();
+extern void _ZN9GG11123233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11123233fooEv,_ZTv0_n20_N9GG11123233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11123233fooEv,_ZThn8_N9GG11123233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11123233fooEv,_ZTv0_n12_N9GG11123233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11123233fooEv,_ZThn16_N9GG11123233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11123233fooEv,_ZTv0_n12_N9GG11123233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11123233fooEv,_ZThn24_N9GG11123233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11123233barEv,_ZTv0_n20_N9GG11123233barEv)();
+extern void ABISELECT(_ZThn64_N9GG11123233barEv,_ZThn32_N9GG11123233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11123233barEv,_ZTv0_n12_N9GG11123233barEv)();
+extern void ABISELECT(_ZThn80_N9GG11123233barEv,_ZThn40_N9GG11123233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11123233fooEv,_ZTv0_n12_N9GG11123233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG11123233fooEv,_ZThn48_N9GG11123233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11123233barEv,_ZTv0_n16_N9GG11123233barEv)();
+extern void ABISELECT(_ZThn96_N9GG11123233barEv,_ZThn48_N9GG11123233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1112323[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1112323[0]),
+ (VTBL_ENTRY)&_ZN9GG11123233fooEv,
+ (VTBL_ENTRY)&_ZN9GG11123233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1112323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11123233fooEv,_ZTv0_n20_N9GG11123233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1112323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11123233fooEv,_ZTv0_n12_N9GG11123233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1112323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11123233fooEv,_ZTv0_n12_N9GG11123233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1112323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11123233barEv,_ZTv0_n20_N9GG11123233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1112323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11123233barEv,_ZTv0_n12_N9GG11123233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1112323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11123233fooEv,_ZTv0_n12_N9GG11123233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11123233barEv,_ZTv0_n16_N9GG11123233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1112323[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1112323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1112323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1112323[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF2323barEv();
+static VTBL_ENTRY _tg__ZTV5FF232__9GG1112323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN5FF2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv)();
+extern void ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF232__9GG1112323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv)();
+extern void ABISELECT(_ZThn32_N5FF2323barEv,_ZThn16_N5FF2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF232__9GG1112323[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv),
+};
+static VTT_ENTRY vtt_GG1112323[] = {
+ {&(_ZTV9GG1112323[8]), 8,40},
+ {&(_ZTV9GG1112323[15]), 15,40},
+ {&(_ZTV9GG1112323[19]), 19,40},
+ {&(_ZTV9GG1112323[23]), 23,40},
+ {&(_ZTV9GG1112323[29]), 29,40},
+ {&(_ZTV9GG1112323[33]), 33,40},
+ {&(_ZTV9GG1112323[38]), 38,40},
+ {&(_tg__ZTV5EE111__9GG1112323[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1112323[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1112323[3]), 3,4},
+ {&(_tg__ZTV5FF232__9GG1112323[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF232__9GG1112323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF232__9GG1112323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1112323[];
+extern VTBL_ENTRY _ZTV9GG1112323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1112323[];
+static VTBL_ENTRY alt_thunk_names214[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2323barEv,_ZThn16_N5FF2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG11123233barEv,_ZTv0_n16_N9GG11123233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11123233barEv,_ZThn48_N9GG11123233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11123233barEv,_ZTv0_n12_N9GG11123233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11123233barEv,_ZThn40_N9GG11123233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11123233barEv,_ZTv0_n20_N9GG11123233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11123233barEv,_ZThn32_N9GG11123233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11123233fooEv,_ZTv0_n12_N9GG11123233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11123233fooEv,_ZThn48_N9GG11123233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11123233fooEv,_ZThn24_N9GG11123233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11123233fooEv,_ZThn16_N9GG11123233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11123233fooEv,_ZTv0_n20_N9GG11123233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11123233fooEv,_ZThn8_N9GG11123233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1112323 = { "GG1112323", // class name
+ bases_GG1112323, 6,
+ &(vtc_GG1112323[0]), // expected_vtbl_contents
+ &(vtt_GG1112323[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1112323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1112323),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1112323),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names214,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1112331 : virtual EE111 , virtual FF233 {
+ int pg;
+ virtual void foo(); // _ZN9GG11123313fooEv
+ ~GG1112331(); // tgen
+ GG1112331(); // tgen
+};
+//SIG(1 GG1112331) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void GG1112331 ::foo(){vfunc_called(this, "_ZN9GG11123313fooEv");}
+GG1112331 ::~GG1112331(){ note_dtor("GG1112331", this);} // tgen
+GG1112331 ::GG1112331(){ note_ctor("GG1112331", this);} // tgen
+
+static void Test_GG1112331()
+{
+ extern Class_Descriptor cd_GG1112331;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1112331, buf);
+ GG1112331 *dp, &lv = *(dp=new (buf) GG1112331());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1112331)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1112331)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1112331");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1112331");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1112331");
+ check_base_class_offset(lv, (AA2*)(FF233*), ABISELECT(80,40), "GG1112331");
+ check_base_class_offset(lv, (BB3*)(FF233*), ABISELECT(96,48), "GG1112331");
+ check_base_class_offset(lv, (FF233*), ABISELECT(64,32), "GG1112331");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1112331.pg");
+ test_class_info(&lv, &cd_GG1112331);
+ dp->~GG1112331();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1112331(Test_GG1112331, "GG1112331", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1112331C1Ev();
+extern void _ZN9GG1112331D1Ev();
+Name_Map name_map_GG1112331[] = {
+ NSPAIR(_ZN9GG1112331C1Ev),
+ NSPAIR(_ZN9GG1112331D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF233;
+extern VTBL_ENTRY _ZTI5FF233[];
+extern VTBL_ENTRY _ZTV5FF233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF233[];
+static Base_Class bases_GG1112331[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF233, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1112331[];
+extern void _ZN9GG11123313fooEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11123313fooEv,_ZTv0_n20_N9GG11123313fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11123313fooEv,_ZThn8_N9GG11123313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11123313fooEv,_ZTv0_n12_N9GG11123313fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11123313fooEv,_ZThn16_N9GG11123313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11123313fooEv,_ZTv0_n12_N9GG11123313fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11123313fooEv,_ZThn24_N9GG11123313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11123313fooEv,_ZTv0_n20_N9GG11123313fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11123313fooEv,_ZThn32_N9GG11123313fooEv)() __attribute__((weak));
+extern void _ZN5FF2333barEv();
+extern void ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv)();
+extern void ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11123313fooEv,_ZTv0_n12_N9GG11123313fooEv)();
+extern void ABISELECT(_ZThn96_N9GG11123313fooEv,_ZThn48_N9GG11123313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv)();
+extern void ABISELECT(_ZThn32_N5FF2333barEv,_ZThn16_N5FF2333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1112331[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1112331[0]),
+ (VTBL_ENTRY)&_ZN9GG11123313fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1112331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11123313fooEv,_ZTv0_n20_N9GG11123313fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1112331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11123313fooEv,_ZTv0_n12_N9GG11123313fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1112331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11123313fooEv,_ZTv0_n12_N9GG11123313fooEv),
+ 0,
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1112331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11123313fooEv,_ZTv0_n20_N9GG11123313fooEv),
+ (VTBL_ENTRY)&_ZN5FF2333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1112331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1112331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11123313fooEv,_ZTv0_n12_N9GG11123313fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1112331[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1112331[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1112331[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1112331[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF2333fooEv();
+extern void _ZN5FF2333barEv();
+static VTBL_ENTRY _tg__ZTV5FF233__9GG1112331[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&_ZN5FF2333fooEv,
+ (VTBL_ENTRY)&_ZN5FF2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv)();
+extern void ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF233__9GG1112331[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2333fooEv,_ZThn16_N5FF2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv)();
+extern void ABISELECT(_ZThn32_N5FF2333barEv,_ZThn16_N5FF2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF233__9GG1112331[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv),
+};
+static VTT_ENTRY vtt_GG1112331[] = {
+ {&(_ZTV9GG1112331[8]), 8,41},
+ {&(_ZTV9GG1112331[14]), 14,41},
+ {&(_ZTV9GG1112331[18]), 18,41},
+ {&(_ZTV9GG1112331[22]), 22,41},
+ {&(_ZTV9GG1112331[29]), 29,41},
+ {&(_ZTV9GG1112331[34]), 34,41},
+ {&(_ZTV9GG1112331[39]), 39,41},
+ {&(_tg__ZTV5EE111__9GG1112331[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1112331[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1112331[3]), 3,4},
+ {&(_tg__ZTV5FF233__9GG1112331[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF233__9GG1112331[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF233__9GG1112331[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1112331[];
+extern VTBL_ENTRY _ZTV9GG1112331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1112331[];
+static VTBL_ENTRY alt_thunk_names215[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2333fooEv,_ZThn16_N5FF2333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2333barEv,_ZThn16_N5FF2333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2333barEv,_ZThn16_N5FF2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11123313fooEv,_ZTv0_n12_N9GG11123313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11123313fooEv,_ZThn48_N9GG11123313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11123313fooEv,_ZThn24_N9GG11123313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11123313fooEv,_ZThn16_N9GG11123313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11123313fooEv,_ZTv0_n20_N9GG11123313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11123313fooEv,_ZThn32_N9GG11123313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11123313fooEv,_ZThn8_N9GG11123313fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1112331 = { "GG1112331", // class name
+ bases_GG1112331, 6,
+ &(vtc_GG1112331[0]), // expected_vtbl_contents
+ &(vtt_GG1112331[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1112331),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1112331),41, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1112331),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names215,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1112333 : virtual EE111 , virtual FF233 {
+ int pg;
+ virtual void foo(); // _ZN9GG11123333fooEv
+ virtual void bar(); // _ZN9GG11123333barEv
+ ~GG1112333(); // tgen
+ GG1112333(); // tgen
+};
+//SIG(1 GG1112333) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1112333 ::foo(){vfunc_called(this, "_ZN9GG11123333fooEv");}
+void GG1112333 ::bar(){vfunc_called(this, "_ZN9GG11123333barEv");}
+GG1112333 ::~GG1112333(){ note_dtor("GG1112333", this);} // tgen
+GG1112333 ::GG1112333(){ note_ctor("GG1112333", this);} // tgen
+
+static void Test_GG1112333()
+{
+ extern Class_Descriptor cd_GG1112333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1112333, buf);
+ GG1112333 *dp, &lv = *(dp=new (buf) GG1112333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1112333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1112333)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1112333");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1112333");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1112333");
+ check_base_class_offset(lv, (AA2*)(FF233*), ABISELECT(80,40), "GG1112333");
+ check_base_class_offset(lv, (BB3*)(FF233*), ABISELECT(96,48), "GG1112333");
+ check_base_class_offset(lv, (FF233*), ABISELECT(64,32), "GG1112333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1112333.pg");
+ test_class_info(&lv, &cd_GG1112333);
+ dp->~GG1112333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1112333(Test_GG1112333, "GG1112333", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1112333C1Ev();
+extern void _ZN9GG1112333D1Ev();
+Name_Map name_map_GG1112333[] = {
+ NSPAIR(_ZN9GG1112333C1Ev),
+ NSPAIR(_ZN9GG1112333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF233;
+extern VTBL_ENTRY _ZTI5FF233[];
+extern VTBL_ENTRY _ZTV5FF233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF233[];
+static Base_Class bases_GG1112333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF233, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1112333[];
+extern void _ZN9GG11123333fooEv();
+extern void _ZN9GG11123333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11123333fooEv,_ZTv0_n20_N9GG11123333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11123333fooEv,_ZThn8_N9GG11123333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11123333fooEv,_ZTv0_n12_N9GG11123333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11123333fooEv,_ZThn16_N9GG11123333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11123333fooEv,_ZTv0_n12_N9GG11123333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11123333fooEv,_ZThn24_N9GG11123333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11123333fooEv,_ZTv0_n20_N9GG11123333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11123333fooEv,_ZThn32_N9GG11123333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11123333barEv,_ZTv0_n24_N9GG11123333barEv)();
+extern void ABISELECT(_ZThn64_N9GG11123333barEv,_ZThn32_N9GG11123333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11123333barEv,_ZTv0_n12_N9GG11123333barEv)();
+extern void ABISELECT(_ZThn80_N9GG11123333barEv,_ZThn40_N9GG11123333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11123333fooEv,_ZTv0_n12_N9GG11123333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG11123333fooEv,_ZThn48_N9GG11123333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11123333barEv,_ZTv0_n16_N9GG11123333barEv)();
+extern void ABISELECT(_ZThn96_N9GG11123333barEv,_ZThn48_N9GG11123333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1112333[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1112333[0]),
+ (VTBL_ENTRY)&_ZN9GG11123333fooEv,
+ (VTBL_ENTRY)&_ZN9GG11123333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1112333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11123333fooEv,_ZTv0_n20_N9GG11123333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1112333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11123333fooEv,_ZTv0_n12_N9GG11123333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1112333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11123333fooEv,_ZTv0_n12_N9GG11123333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1112333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11123333fooEv,_ZTv0_n20_N9GG11123333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11123333barEv,_ZTv0_n24_N9GG11123333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1112333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11123333barEv,_ZTv0_n12_N9GG11123333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1112333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11123333fooEv,_ZTv0_n12_N9GG11123333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11123333barEv,_ZTv0_n16_N9GG11123333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1112333[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1112333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1112333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1112333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF2333fooEv();
+extern void _ZN5FF2333barEv();
+static VTBL_ENTRY _tg__ZTV5FF233__9GG1112333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&_ZN5FF2333fooEv,
+ (VTBL_ENTRY)&_ZN5FF2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv)();
+extern void ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF233__9GG1112333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2333fooEv,_ZThn16_N5FF2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv)();
+extern void ABISELECT(_ZThn32_N5FF2333barEv,_ZThn16_N5FF2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF233__9GG1112333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv),
+};
+static VTT_ENTRY vtt_GG1112333[] = {
+ {&(_ZTV9GG1112333[8]), 8,42},
+ {&(_ZTV9GG1112333[15]), 15,42},
+ {&(_ZTV9GG1112333[19]), 19,42},
+ {&(_ZTV9GG1112333[23]), 23,42},
+ {&(_ZTV9GG1112333[30]), 30,42},
+ {&(_ZTV9GG1112333[35]), 35,42},
+ {&(_ZTV9GG1112333[40]), 40,42},
+ {&(_tg__ZTV5EE111__9GG1112333[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1112333[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1112333[3]), 3,4},
+ {&(_tg__ZTV5FF233__9GG1112333[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF233__9GG1112333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF233__9GG1112333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1112333[];
+extern VTBL_ENTRY _ZTV9GG1112333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1112333[];
+static VTBL_ENTRY alt_thunk_names216[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2333barEv,_ZThn16_N5FF2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2333fooEv,_ZThn16_N5FF2333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG11123333barEv,_ZTv0_n16_N9GG11123333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11123333barEv,_ZThn48_N9GG11123333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11123333barEv,_ZTv0_n12_N9GG11123333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11123333barEv,_ZThn40_N9GG11123333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG11123333barEv,_ZTv0_n24_N9GG11123333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11123333barEv,_ZThn32_N9GG11123333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11123333fooEv,_ZTv0_n12_N9GG11123333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11123333fooEv,_ZThn48_N9GG11123333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11123333fooEv,_ZThn24_N9GG11123333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11123333fooEv,_ZThn16_N9GG11123333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11123333fooEv,_ZTv0_n20_N9GG11123333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11123333fooEv,_ZThn32_N9GG11123333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11123333fooEv,_ZThn8_N9GG11123333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1112333 = { "GG1112333", // class name
+ bases_GG1112333, 6,
+ &(vtc_GG1112333[0]), // expected_vtbl_contents
+ &(vtt_GG1112333[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1112333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1112333),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1112333),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names216,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1113111 : virtual EE111 , virtual FF311 {
+ int pg;
+ virtual void foo(); // _ZN9GG11131113fooEv
+ ~GG1113111(); // tgen
+ GG1113111(); // tgen
+};
+//SIG(1 GG1113111) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v1 Fi} v1 Fi}
+
+
+void GG1113111 ::foo(){vfunc_called(this, "_ZN9GG11131113fooEv");}
+GG1113111 ::~GG1113111(){ note_dtor("GG1113111", this);} // tgen
+GG1113111 ::GG1113111(){ note_ctor("GG1113111", this);} // tgen
+
+static void Test_GG1113111()
+{
+ extern Class_Descriptor cd_GG1113111;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1113111, buf);
+ GG1113111 *dp, &lv = *(dp=new (buf) GG1113111());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1113111)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1113111)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1113111");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1113111");
+ check_base_class_offset(lv, (BB1*)(FF311*), ABISELECT(48,24), "GG1113111");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1113111");
+ check_base_class_offset(lv, (AA3*)(FF311*), ABISELECT(80,40), "GG1113111");
+ check_base_class_offset(lv, (FF311*), ABISELECT(64,32), "GG1113111");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1113111.pg");
+ test_class_info(&lv, &cd_GG1113111);
+ dp->~GG1113111();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1113111(Test_GG1113111, "GG1113111", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1113111C1Ev();
+extern void _ZN9GG1113111D1Ev();
+Name_Map name_map_GG1113111[] = {
+ NSPAIR(_ZN9GG1113111C1Ev),
+ NSPAIR(_ZN9GG1113111D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF311;
+extern VTBL_ENTRY _ZTI5FF311[];
+extern VTBL_ENTRY _ZTV5FF311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF311[];
+static Base_Class bases_GG1113111[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF311, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1113111[];
+extern void _ZN9GG11131113fooEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11131113fooEv,_ZTv0_n20_N9GG11131113fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11131113fooEv,_ZThn8_N9GG11131113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11131113fooEv,_ZTv0_n12_N9GG11131113fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11131113fooEv,_ZThn16_N9GG11131113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11131113fooEv,_ZTv0_n12_N9GG11131113fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11131113fooEv,_ZThn24_N9GG11131113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11131113fooEv,_ZTv0_n20_N9GG11131113fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11131113fooEv,_ZThn32_N9GG11131113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11131113fooEv,_ZTv0_n12_N9GG11131113fooEv)();
+extern void ABISELECT(_ZThn80_N9GG11131113fooEv,_ZThn40_N9GG11131113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY vtc_GG1113111[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1113111[0]),
+ (VTBL_ENTRY)&_ZN9GG11131113fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1113111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11131113fooEv,_ZTv0_n20_N9GG11131113fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1113111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11131113fooEv,_ZTv0_n12_N9GG11131113fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1113111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11131113fooEv,_ZTv0_n12_N9GG11131113fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1113111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11131113fooEv,_ZTv0_n20_N9GG11131113fooEv),
+ 0,
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1113111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11131113fooEv,_ZTv0_n12_N9GG11131113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern VTBL_ENTRY _ZTV9GG1113111[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1113111[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1113111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1113111[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF3113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF311__9GG1113111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&_ZN5FF3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF311__9GG1113111[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF311__9GG1113111[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+};
+static VTT_ENTRY vtt_GG1113111[] = {
+ {&(_ZTV9GG1113111[7]), 7,34},
+ {&(_ZTV9GG1113111[13]), 13,34},
+ {&(_ZTV9GG1113111[17]), 17,34},
+ {&(_ZTV9GG1113111[21]), 21,34},
+ {&(_ZTV9GG1113111[27]), 27,34},
+ {&(_ZTV9GG1113111[32]), 32,34},
+ {&(_tg__ZTV5EE111__9GG1113111[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1113111[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1113111[3]), 3,4},
+ {&(_tg__ZTV5FF311__9GG1113111[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF311__9GG1113111[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF311__9GG1113111[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1113111[];
+extern VTBL_ENTRY _ZTV9GG1113111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1113111[];
+static VTBL_ENTRY alt_thunk_names217[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11131113fooEv,_ZTv0_n12_N9GG11131113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11131113fooEv,_ZThn40_N9GG11131113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11131113fooEv,_ZThn24_N9GG11131113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11131113fooEv,_ZThn16_N9GG11131113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11131113fooEv,_ZTv0_n20_N9GG11131113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11131113fooEv,_ZThn32_N9GG11131113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11131113fooEv,_ZThn8_N9GG11131113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1113111 = { "GG1113111", // class name
+ bases_GG1113111, 5,
+ &(vtc_GG1113111[0]), // expected_vtbl_contents
+ &(vtt_GG1113111[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1113111),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1113111),34, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1113111),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names217,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1113113 : virtual EE111 , virtual FF311 {
+ int pg;
+ virtual void foo(); // _ZN9GG11131133fooEv
+ virtual void bar(); // _ZN9GG11131133barEv
+ ~GG1113113(); // tgen
+ GG1113113(); // tgen
+};
+//SIG(1 GG1113113) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG1113113 ::foo(){vfunc_called(this, "_ZN9GG11131133fooEv");}
+void GG1113113 ::bar(){vfunc_called(this, "_ZN9GG11131133barEv");}
+GG1113113 ::~GG1113113(){ note_dtor("GG1113113", this);} // tgen
+GG1113113 ::GG1113113(){ note_ctor("GG1113113", this);} // tgen
+
+static void Test_GG1113113()
+{
+ extern Class_Descriptor cd_GG1113113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1113113, buf);
+ GG1113113 *dp, &lv = *(dp=new (buf) GG1113113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1113113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1113113)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1113113");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1113113");
+ check_base_class_offset(lv, (BB1*)(FF311*), ABISELECT(48,24), "GG1113113");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1113113");
+ check_base_class_offset(lv, (AA3*)(FF311*), ABISELECT(80,40), "GG1113113");
+ check_base_class_offset(lv, (FF311*), ABISELECT(64,32), "GG1113113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1113113.pg");
+ test_class_info(&lv, &cd_GG1113113);
+ dp->~GG1113113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1113113(Test_GG1113113, "GG1113113", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1113113C1Ev();
+extern void _ZN9GG1113113D1Ev();
+Name_Map name_map_GG1113113[] = {
+ NSPAIR(_ZN9GG1113113C1Ev),
+ NSPAIR(_ZN9GG1113113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF311;
+extern VTBL_ENTRY _ZTI5FF311[];
+extern VTBL_ENTRY _ZTV5FF311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF311[];
+static Base_Class bases_GG1113113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF311, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1113113[];
+extern void _ZN9GG11131133fooEv();
+extern void _ZN9GG11131133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11131133fooEv,_ZTv0_n20_N9GG11131133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11131133fooEv,_ZThn8_N9GG11131133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11131133fooEv,_ZTv0_n12_N9GG11131133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11131133fooEv,_ZThn16_N9GG11131133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11131133fooEv,_ZTv0_n12_N9GG11131133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11131133fooEv,_ZThn24_N9GG11131133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11131133fooEv,_ZTv0_n20_N9GG11131133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11131133fooEv,_ZThn32_N9GG11131133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11131133fooEv,_ZTv0_n12_N9GG11131133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG11131133fooEv,_ZThn40_N9GG11131133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11131133barEv,_ZTv0_n16_N9GG11131133barEv)();
+extern void ABISELECT(_ZThn80_N9GG11131133barEv,_ZThn40_N9GG11131133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1113113[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1113113[0]),
+ (VTBL_ENTRY)&_ZN9GG11131133fooEv,
+ (VTBL_ENTRY)&_ZN9GG11131133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1113113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11131133fooEv,_ZTv0_n20_N9GG11131133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1113113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11131133fooEv,_ZTv0_n12_N9GG11131133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1113113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11131133fooEv,_ZTv0_n12_N9GG11131133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1113113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11131133fooEv,_ZTv0_n20_N9GG11131133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1113113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11131133fooEv,_ZTv0_n12_N9GG11131133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11131133barEv,_ZTv0_n16_N9GG11131133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1113113[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1113113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1113113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1113113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF3113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF311__9GG1113113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&_ZN5FF3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF311__9GG1113113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF311__9GG1113113[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+};
+static VTT_ENTRY vtt_GG1113113[] = {
+ {&(_ZTV9GG1113113[7]), 7,35},
+ {&(_ZTV9GG1113113[14]), 14,35},
+ {&(_ZTV9GG1113113[18]), 18,35},
+ {&(_ZTV9GG1113113[22]), 22,35},
+ {&(_ZTV9GG1113113[28]), 28,35},
+ {&(_ZTV9GG1113113[33]), 33,35},
+ {&(_tg__ZTV5EE111__9GG1113113[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1113113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1113113[3]), 3,4},
+ {&(_tg__ZTV5FF311__9GG1113113[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF311__9GG1113113[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF311__9GG1113113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1113113[];
+extern VTBL_ENTRY _ZTV9GG1113113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1113113[];
+static VTBL_ENTRY alt_thunk_names218[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG11131133barEv,_ZTv0_n16_N9GG11131133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11131133barEv,_ZThn40_N9GG11131133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11131133fooEv,_ZTv0_n12_N9GG11131133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11131133fooEv,_ZThn40_N9GG11131133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11131133fooEv,_ZThn24_N9GG11131133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11131133fooEv,_ZThn16_N9GG11131133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11131133fooEv,_ZTv0_n20_N9GG11131133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11131133fooEv,_ZThn32_N9GG11131133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11131133fooEv,_ZThn8_N9GG11131133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1113113 = { "GG1113113", // class name
+ bases_GG1113113, 5,
+ &(vtc_GG1113113[0]), // expected_vtbl_contents
+ &(vtt_GG1113113[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1113113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1113113),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1113113),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names218,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1113121 : virtual EE111 , virtual FF312 {
+ int pg;
+ virtual void foo(); // _ZN9GG11131213fooEv
+ ~GG1113121(); // tgen
+ GG1113121(); // tgen
+};
+//SIG(1 GG1113121) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v2 Fi} v1 Fi}
+
+
+void GG1113121 ::foo(){vfunc_called(this, "_ZN9GG11131213fooEv");}
+GG1113121 ::~GG1113121(){ note_dtor("GG1113121", this);} // tgen
+GG1113121 ::GG1113121(){ note_ctor("GG1113121", this);} // tgen
+
+static void Test_GG1113121()
+{
+ extern Class_Descriptor cd_GG1113121;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1113121, buf);
+ GG1113121 *dp, &lv = *(dp=new (buf) GG1113121());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1113121)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1113121)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1113121");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1113121");
+ check_base_class_offset(lv, (BB1*)(FF312*), ABISELECT(48,24), "GG1113121");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1113121");
+ check_base_class_offset(lv, (AA3*)(FF312*), ABISELECT(80,40), "GG1113121");
+ check_base_class_offset(lv, (FF312*), ABISELECT(64,32), "GG1113121");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1113121.pg");
+ test_class_info(&lv, &cd_GG1113121);
+ dp->~GG1113121();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1113121(Test_GG1113121, "GG1113121", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1113121C1Ev();
+extern void _ZN9GG1113121D1Ev();
+Name_Map name_map_GG1113121[] = {
+ NSPAIR(_ZN9GG1113121C1Ev),
+ NSPAIR(_ZN9GG1113121D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF312;
+extern VTBL_ENTRY _ZTI5FF312[];
+extern VTBL_ENTRY _ZTV5FF312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF312[];
+static Base_Class bases_GG1113121[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF312, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1113121[];
+extern void _ZN9GG11131213fooEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11131213fooEv,_ZTv0_n20_N9GG11131213fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11131213fooEv,_ZThn8_N9GG11131213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11131213fooEv,_ZTv0_n12_N9GG11131213fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11131213fooEv,_ZThn16_N9GG11131213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11131213fooEv,_ZTv0_n12_N9GG11131213fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11131213fooEv,_ZThn24_N9GG11131213fooEv)() __attribute__((weak));
+extern void _ZN5FF3123barEv();
+extern void ABISELECT(_ZTv0_n24_N9GG11131213fooEv,_ZTv0_n12_N9GG11131213fooEv)();
+extern void ABISELECT(_ZThn80_N9GG11131213fooEv,_ZThn40_N9GG11131213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv)();
+extern void ABISELECT(_ZThn16_N5FF3123barEv,_ZThn8_N5FF3123barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1113121[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1113121[0]),
+ (VTBL_ENTRY)&_ZN9GG11131213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1113121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11131213fooEv,_ZTv0_n20_N9GG11131213fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1113121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11131213fooEv,_ZTv0_n12_N9GG11131213fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1113121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11131213fooEv,_ZTv0_n12_N9GG11131213fooEv),
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1113121[0]),
+ (VTBL_ENTRY)&_ZN5FF3123barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1113121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11131213fooEv,_ZTv0_n12_N9GG11131213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1113121[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1113121[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1113121[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1113121[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF3123barEv();
+static VTBL_ENTRY _tg__ZTV5FF312__9GG1113121[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN5FF3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv)();
+extern void ABISELECT(_ZThn16_N5FF3123barEv,_ZThn8_N5FF3123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF312__9GG1113121[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF312__9GG1113121[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG1113121[] = {
+ {&(_ZTV9GG1113121[7]), 7,34},
+ {&(_ZTV9GG1113121[13]), 13,34},
+ {&(_ZTV9GG1113121[17]), 17,34},
+ {&(_ZTV9GG1113121[21]), 21,34},
+ {&(_ZTV9GG1113121[27]), 27,34},
+ {&(_ZTV9GG1113121[32]), 32,34},
+ {&(_tg__ZTV5EE111__9GG1113121[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1113121[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1113121[3]), 3,4},
+ {&(_tg__ZTV5FF312__9GG1113121[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF312__9GG1113121[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF312__9GG1113121[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1113121[];
+extern VTBL_ENTRY _ZTV9GG1113121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1113121[];
+static VTBL_ENTRY alt_thunk_names219[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3123barEv,_ZThn8_N5FF3123barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3123barEv,_ZThn8_N5FF3123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11131213fooEv,_ZTv0_n12_N9GG11131213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11131213fooEv,_ZThn40_N9GG11131213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11131213fooEv,_ZThn24_N9GG11131213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11131213fooEv,_ZThn16_N9GG11131213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11131213fooEv,_ZTv0_n20_N9GG11131213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11131213fooEv,_ZThn8_N9GG11131213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1113121 = { "GG1113121", // class name
+ bases_GG1113121, 5,
+ &(vtc_GG1113121[0]), // expected_vtbl_contents
+ &(vtt_GG1113121[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1113121),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1113121),34, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1113121),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names219,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1113123 : virtual EE111 , virtual FF312 {
+ int pg;
+ virtual void foo(); // _ZN9GG11131233fooEv
+ virtual void bar(); // _ZN9GG11131233barEv
+ ~GG1113123(); // tgen
+ GG1113123(); // tgen
+};
+//SIG(1 GG1113123) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG1113123 ::foo(){vfunc_called(this, "_ZN9GG11131233fooEv");}
+void GG1113123 ::bar(){vfunc_called(this, "_ZN9GG11131233barEv");}
+GG1113123 ::~GG1113123(){ note_dtor("GG1113123", this);} // tgen
+GG1113123 ::GG1113123(){ note_ctor("GG1113123", this);} // tgen
+
+static void Test_GG1113123()
+{
+ extern Class_Descriptor cd_GG1113123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1113123, buf);
+ GG1113123 *dp, &lv = *(dp=new (buf) GG1113123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1113123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1113123)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1113123");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1113123");
+ check_base_class_offset(lv, (BB1*)(FF312*), ABISELECT(48,24), "GG1113123");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1113123");
+ check_base_class_offset(lv, (AA3*)(FF312*), ABISELECT(80,40), "GG1113123");
+ check_base_class_offset(lv, (FF312*), ABISELECT(64,32), "GG1113123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1113123.pg");
+ test_class_info(&lv, &cd_GG1113123);
+ dp->~GG1113123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1113123(Test_GG1113123, "GG1113123", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1113123C1Ev();
+extern void _ZN9GG1113123D1Ev();
+Name_Map name_map_GG1113123[] = {
+ NSPAIR(_ZN9GG1113123C1Ev),
+ NSPAIR(_ZN9GG1113123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF312;
+extern VTBL_ENTRY _ZTI5FF312[];
+extern VTBL_ENTRY _ZTV5FF312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF312[];
+static Base_Class bases_GG1113123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF312, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1113123[];
+extern void _ZN9GG11131233fooEv();
+extern void _ZN9GG11131233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11131233fooEv,_ZTv0_n20_N9GG11131233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11131233fooEv,_ZThn8_N9GG11131233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11131233fooEv,_ZTv0_n12_N9GG11131233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11131233fooEv,_ZThn16_N9GG11131233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11131233fooEv,_ZTv0_n12_N9GG11131233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11131233fooEv,_ZThn24_N9GG11131233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11131233barEv,_ZTv0_n20_N9GG11131233barEv)();
+extern void ABISELECT(_ZThn64_N9GG11131233barEv,_ZThn32_N9GG11131233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11131233fooEv,_ZTv0_n12_N9GG11131233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG11131233fooEv,_ZThn40_N9GG11131233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11131233barEv,_ZTv0_n16_N9GG11131233barEv)();
+extern void ABISELECT(_ZThn80_N9GG11131233barEv,_ZThn40_N9GG11131233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1113123[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1113123[0]),
+ (VTBL_ENTRY)&_ZN9GG11131233fooEv,
+ (VTBL_ENTRY)&_ZN9GG11131233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1113123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11131233fooEv,_ZTv0_n20_N9GG11131233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1113123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11131233fooEv,_ZTv0_n12_N9GG11131233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1113123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11131233fooEv,_ZTv0_n12_N9GG11131233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1113123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11131233barEv,_ZTv0_n20_N9GG11131233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1113123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11131233fooEv,_ZTv0_n12_N9GG11131233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11131233barEv,_ZTv0_n16_N9GG11131233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1113123[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1113123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1113123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1113123[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF3123barEv();
+static VTBL_ENTRY _tg__ZTV5FF312__9GG1113123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN5FF3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv)();
+extern void ABISELECT(_ZThn16_N5FF3123barEv,_ZThn8_N5FF3123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF312__9GG1113123[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF312__9GG1113123[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG1113123[] = {
+ {&(_ZTV9GG1113123[7]), 7,35},
+ {&(_ZTV9GG1113123[14]), 14,35},
+ {&(_ZTV9GG1113123[18]), 18,35},
+ {&(_ZTV9GG1113123[22]), 22,35},
+ {&(_ZTV9GG1113123[28]), 28,35},
+ {&(_ZTV9GG1113123[33]), 33,35},
+ {&(_tg__ZTV5EE111__9GG1113123[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1113123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1113123[3]), 3,4},
+ {&(_tg__ZTV5FF312__9GG1113123[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF312__9GG1113123[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF312__9GG1113123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1113123[];
+extern VTBL_ENTRY _ZTV9GG1113123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1113123[];
+static VTBL_ENTRY alt_thunk_names220[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3123barEv,_ZThn8_N5FF3123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG11131233barEv,_ZTv0_n16_N9GG11131233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11131233barEv,_ZThn40_N9GG11131233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11131233barEv,_ZTv0_n20_N9GG11131233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11131233barEv,_ZThn32_N9GG11131233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11131233fooEv,_ZTv0_n12_N9GG11131233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11131233fooEv,_ZThn40_N9GG11131233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11131233fooEv,_ZThn24_N9GG11131233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11131233fooEv,_ZThn16_N9GG11131233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11131233fooEv,_ZTv0_n20_N9GG11131233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11131233fooEv,_ZThn8_N9GG11131233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1113123 = { "GG1113123", // class name
+ bases_GG1113123, 5,
+ &(vtc_GG1113123[0]), // expected_vtbl_contents
+ &(vtt_GG1113123[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1113123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1113123),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1113123),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names220,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1113131 : virtual EE111 , virtual FF313 {
+ int pg;
+ virtual void foo(); // _ZN9GG11131313fooEv
+ ~GG1113131(); // tgen
+ GG1113131(); // tgen
+};
+//SIG(1 GG1113131) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v1 v2 Fi} v1 Fi}
+
+
+void GG1113131 ::foo(){vfunc_called(this, "_ZN9GG11131313fooEv");}
+GG1113131 ::~GG1113131(){ note_dtor("GG1113131", this);} // tgen
+GG1113131 ::GG1113131(){ note_ctor("GG1113131", this);} // tgen
+
+static void Test_GG1113131()
+{
+ extern Class_Descriptor cd_GG1113131;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1113131, buf);
+ GG1113131 *dp, &lv = *(dp=new (buf) GG1113131());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1113131)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1113131)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1113131");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1113131");
+ check_base_class_offset(lv, (BB1*)(FF313*), ABISELECT(48,24), "GG1113131");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1113131");
+ check_base_class_offset(lv, (AA3*)(FF313*), ABISELECT(80,40), "GG1113131");
+ check_base_class_offset(lv, (FF313*), ABISELECT(64,32), "GG1113131");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1113131.pg");
+ test_class_info(&lv, &cd_GG1113131);
+ dp->~GG1113131();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1113131(Test_GG1113131, "GG1113131", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1113131C1Ev();
+extern void _ZN9GG1113131D1Ev();
+Name_Map name_map_GG1113131[] = {
+ NSPAIR(_ZN9GG1113131C1Ev),
+ NSPAIR(_ZN9GG1113131D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF313;
+extern VTBL_ENTRY _ZTI5FF313[];
+extern VTBL_ENTRY _ZTV5FF313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF313[];
+static Base_Class bases_GG1113131[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF313, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1113131[];
+extern void _ZN9GG11131313fooEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11131313fooEv,_ZTv0_n20_N9GG11131313fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11131313fooEv,_ZThn8_N9GG11131313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11131313fooEv,_ZTv0_n12_N9GG11131313fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11131313fooEv,_ZThn16_N9GG11131313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11131313fooEv,_ZTv0_n12_N9GG11131313fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11131313fooEv,_ZThn24_N9GG11131313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11131313fooEv,_ZTv0_n20_N9GG11131313fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11131313fooEv,_ZThn32_N9GG11131313fooEv)() __attribute__((weak));
+extern void _ZN5FF3133barEv();
+extern void ABISELECT(_ZTv0_n24_N9GG11131313fooEv,_ZTv0_n12_N9GG11131313fooEv)();
+extern void ABISELECT(_ZThn80_N9GG11131313fooEv,_ZThn40_N9GG11131313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv)();
+extern void ABISELECT(_ZThn16_N5FF3133barEv,_ZThn8_N5FF3133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1113131[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1113131[0]),
+ (VTBL_ENTRY)&_ZN9GG11131313fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1113131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11131313fooEv,_ZTv0_n20_N9GG11131313fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1113131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11131313fooEv,_ZTv0_n12_N9GG11131313fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1113131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11131313fooEv,_ZTv0_n12_N9GG11131313fooEv),
+ 0,
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1113131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11131313fooEv,_ZTv0_n20_N9GG11131313fooEv),
+ (VTBL_ENTRY)&_ZN5FF3133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1113131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11131313fooEv,_ZTv0_n12_N9GG11131313fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1113131[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1113131[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1113131[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1113131[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF3133fooEv();
+extern void _ZN5FF3133barEv();
+static VTBL_ENTRY _tg__ZTV5FF313__9GG1113131[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&_ZN5FF3133fooEv,
+ (VTBL_ENTRY)&_ZN5FF3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv)();
+extern void ABISELECT(_ZThn16_N5FF3133barEv,_ZThn8_N5FF3133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF313__9GG1113131[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF313__9GG1113131[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+};
+static VTT_ENTRY vtt_GG1113131[] = {
+ {&(_ZTV9GG1113131[7]), 7,36},
+ {&(_ZTV9GG1113131[13]), 13,36},
+ {&(_ZTV9GG1113131[17]), 17,36},
+ {&(_ZTV9GG1113131[21]), 21,36},
+ {&(_ZTV9GG1113131[28]), 28,36},
+ {&(_ZTV9GG1113131[34]), 34,36},
+ {&(_tg__ZTV5EE111__9GG1113131[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1113131[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1113131[3]), 3,4},
+ {&(_tg__ZTV5FF313__9GG1113131[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF313__9GG1113131[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF313__9GG1113131[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1113131[];
+extern VTBL_ENTRY _ZTV9GG1113131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1113131[];
+static VTBL_ENTRY alt_thunk_names221[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3133barEv,_ZThn8_N5FF3133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3133barEv,_ZThn8_N5FF3133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11131313fooEv,_ZTv0_n12_N9GG11131313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11131313fooEv,_ZThn40_N9GG11131313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11131313fooEv,_ZThn24_N9GG11131313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11131313fooEv,_ZThn16_N9GG11131313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11131313fooEv,_ZTv0_n20_N9GG11131313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11131313fooEv,_ZThn32_N9GG11131313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11131313fooEv,_ZThn8_N9GG11131313fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1113131 = { "GG1113131", // class name
+ bases_GG1113131, 5,
+ &(vtc_GG1113131[0]), // expected_vtbl_contents
+ &(vtt_GG1113131[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1113131),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1113131),36, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1113131),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names221,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1113133 : virtual EE111 , virtual FF313 {
+ int pg;
+ virtual void foo(); // _ZN9GG11131333fooEv
+ virtual void bar(); // _ZN9GG11131333barEv
+ ~GG1113133(); // tgen
+ GG1113133(); // tgen
+};
+//SIG(1 GG1113133) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1113133 ::foo(){vfunc_called(this, "_ZN9GG11131333fooEv");}
+void GG1113133 ::bar(){vfunc_called(this, "_ZN9GG11131333barEv");}
+GG1113133 ::~GG1113133(){ note_dtor("GG1113133", this);} // tgen
+GG1113133 ::GG1113133(){ note_ctor("GG1113133", this);} // tgen
+
+static void Test_GG1113133()
+{
+ extern Class_Descriptor cd_GG1113133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1113133, buf);
+ GG1113133 *dp, &lv = *(dp=new (buf) GG1113133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1113133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1113133)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1113133");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1113133");
+ check_base_class_offset(lv, (BB1*)(FF313*), ABISELECT(48,24), "GG1113133");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1113133");
+ check_base_class_offset(lv, (AA3*)(FF313*), ABISELECT(80,40), "GG1113133");
+ check_base_class_offset(lv, (FF313*), ABISELECT(64,32), "GG1113133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1113133.pg");
+ test_class_info(&lv, &cd_GG1113133);
+ dp->~GG1113133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1113133(Test_GG1113133, "GG1113133", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1113133C1Ev();
+extern void _ZN9GG1113133D1Ev();
+Name_Map name_map_GG1113133[] = {
+ NSPAIR(_ZN9GG1113133C1Ev),
+ NSPAIR(_ZN9GG1113133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF313;
+extern VTBL_ENTRY _ZTI5FF313[];
+extern VTBL_ENTRY _ZTV5FF313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF313[];
+static Base_Class bases_GG1113133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF313, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1113133[];
+extern void _ZN9GG11131333fooEv();
+extern void _ZN9GG11131333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11131333fooEv,_ZTv0_n20_N9GG11131333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11131333fooEv,_ZThn8_N9GG11131333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11131333fooEv,_ZTv0_n12_N9GG11131333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11131333fooEv,_ZThn16_N9GG11131333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11131333fooEv,_ZTv0_n12_N9GG11131333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11131333fooEv,_ZThn24_N9GG11131333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11131333fooEv,_ZTv0_n20_N9GG11131333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11131333fooEv,_ZThn32_N9GG11131333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11131333barEv,_ZTv0_n24_N9GG11131333barEv)();
+extern void ABISELECT(_ZThn64_N9GG11131333barEv,_ZThn32_N9GG11131333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11131333fooEv,_ZTv0_n12_N9GG11131333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG11131333fooEv,_ZThn40_N9GG11131333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11131333barEv,_ZTv0_n16_N9GG11131333barEv)();
+extern void ABISELECT(_ZThn80_N9GG11131333barEv,_ZThn40_N9GG11131333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1113133[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1113133[0]),
+ (VTBL_ENTRY)&_ZN9GG11131333fooEv,
+ (VTBL_ENTRY)&_ZN9GG11131333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1113133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11131333fooEv,_ZTv0_n20_N9GG11131333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1113133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11131333fooEv,_ZTv0_n12_N9GG11131333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1113133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11131333fooEv,_ZTv0_n12_N9GG11131333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1113133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11131333fooEv,_ZTv0_n20_N9GG11131333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11131333barEv,_ZTv0_n24_N9GG11131333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1113133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11131333fooEv,_ZTv0_n12_N9GG11131333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11131333barEv,_ZTv0_n16_N9GG11131333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1113133[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1113133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1113133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1113133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF3133fooEv();
+extern void _ZN5FF3133barEv();
+static VTBL_ENTRY _tg__ZTV5FF313__9GG1113133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&_ZN5FF3133fooEv,
+ (VTBL_ENTRY)&_ZN5FF3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv)();
+extern void ABISELECT(_ZThn16_N5FF3133barEv,_ZThn8_N5FF3133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF313__9GG1113133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF313__9GG1113133[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+};
+static VTT_ENTRY vtt_GG1113133[] = {
+ {&(_ZTV9GG1113133[7]), 7,37},
+ {&(_ZTV9GG1113133[14]), 14,37},
+ {&(_ZTV9GG1113133[18]), 18,37},
+ {&(_ZTV9GG1113133[22]), 22,37},
+ {&(_ZTV9GG1113133[29]), 29,37},
+ {&(_ZTV9GG1113133[35]), 35,37},
+ {&(_tg__ZTV5EE111__9GG1113133[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1113133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1113133[3]), 3,4},
+ {&(_tg__ZTV5FF313__9GG1113133[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF313__9GG1113133[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF313__9GG1113133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1113133[];
+extern VTBL_ENTRY _ZTV9GG1113133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1113133[];
+static VTBL_ENTRY alt_thunk_names222[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3133barEv,_ZThn8_N5FF3133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG11131333barEv,_ZTv0_n16_N9GG11131333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11131333barEv,_ZThn40_N9GG11131333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG11131333barEv,_ZTv0_n24_N9GG11131333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11131333barEv,_ZThn32_N9GG11131333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11131333fooEv,_ZTv0_n12_N9GG11131333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11131333fooEv,_ZThn40_N9GG11131333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11131333fooEv,_ZThn24_N9GG11131333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11131333fooEv,_ZThn16_N9GG11131333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11131333fooEv,_ZTv0_n20_N9GG11131333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11131333fooEv,_ZThn32_N9GG11131333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11131333fooEv,_ZThn8_N9GG11131333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1113133 = { "GG1113133", // class name
+ bases_GG1113133, 5,
+ &(vtc_GG1113133[0]), // expected_vtbl_contents
+ &(vtt_GG1113133[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1113133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1113133),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1113133),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names222,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1113211 : virtual EE111 , virtual FF321 {
+ int pg;
+ virtual void foo(); // _ZN9GG11132113fooEv
+ ~GG1113211(); // tgen
+ GG1113211(); // tgen
+};
+//SIG(1 GG1113211) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v3 Fi} v1 Fi} v1 Fi}
+
+
+void GG1113211 ::foo(){vfunc_called(this, "_ZN9GG11132113fooEv");}
+GG1113211 ::~GG1113211(){ note_dtor("GG1113211", this);} // tgen
+GG1113211 ::GG1113211(){ note_ctor("GG1113211", this);} // tgen
+
+static void Test_GG1113211()
+{
+ extern Class_Descriptor cd_GG1113211;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1113211, buf);
+ GG1113211 *dp, &lv = *(dp=new (buf) GG1113211());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1113211)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1113211)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1113211");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1113211");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1113211");
+ check_base_class_offset(lv, (AA3*)(FF321*), ABISELECT(80,40), "GG1113211");
+ check_base_class_offset(lv, (BB2*)(FF321*), ABISELECT(96,48), "GG1113211");
+ check_base_class_offset(lv, (FF321*), ABISELECT(64,32), "GG1113211");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1113211.pg");
+ test_class_info(&lv, &cd_GG1113211);
+ dp->~GG1113211();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1113211(Test_GG1113211, "GG1113211", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1113211C1Ev();
+extern void _ZN9GG1113211D1Ev();
+Name_Map name_map_GG1113211[] = {
+ NSPAIR(_ZN9GG1113211C1Ev),
+ NSPAIR(_ZN9GG1113211D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF321;
+extern VTBL_ENTRY _ZTI5FF321[];
+extern VTBL_ENTRY _ZTV5FF321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF321[];
+static Base_Class bases_GG1113211[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF321, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1113211[];
+extern void _ZN9GG11132113fooEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11132113fooEv,_ZTv0_n20_N9GG11132113fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11132113fooEv,_ZThn8_N9GG11132113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11132113fooEv,_ZTv0_n12_N9GG11132113fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11132113fooEv,_ZThn16_N9GG11132113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11132113fooEv,_ZTv0_n12_N9GG11132113fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11132113fooEv,_ZThn24_N9GG11132113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11132113fooEv,_ZTv0_n20_N9GG11132113fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11132113fooEv,_ZThn32_N9GG11132113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11132113fooEv,_ZTv0_n12_N9GG11132113fooEv)();
+extern void ABISELECT(_ZThn80_N9GG11132113fooEv,_ZThn40_N9GG11132113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY vtc_GG1113211[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1113211[0]),
+ (VTBL_ENTRY)&_ZN9GG11132113fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1113211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11132113fooEv,_ZTv0_n20_N9GG11132113fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1113211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11132113fooEv,_ZTv0_n12_N9GG11132113fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1113211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11132113fooEv,_ZTv0_n12_N9GG11132113fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1113211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11132113fooEv,_ZTv0_n20_N9GG11132113fooEv),
+ 0,
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1113211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11132113fooEv,_ZTv0_n12_N9GG11132113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+ 0,
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1113211[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern VTBL_ENTRY _ZTV9GG1113211[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1113211[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1113211[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1113211[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF3213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF321__9GG1113211[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN5FF3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3213fooEv,_ZThn8_N5FF3213fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF321__9GG1113211[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF321__9GG1113211[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG1113211[] = {
+ {&(_ZTV9GG1113211[8]), 8,39},
+ {&(_ZTV9GG1113211[14]), 14,39},
+ {&(_ZTV9GG1113211[18]), 18,39},
+ {&(_ZTV9GG1113211[22]), 22,39},
+ {&(_ZTV9GG1113211[28]), 28,39},
+ {&(_ZTV9GG1113211[33]), 33,39},
+ {&(_ZTV9GG1113211[38]), 38,39},
+ {&(_tg__ZTV5EE111__9GG1113211[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1113211[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1113211[3]), 3,4},
+ {&(_tg__ZTV5FF321__9GG1113211[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF321__9GG1113211[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF321__9GG1113211[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1113211[];
+extern VTBL_ENTRY _ZTV9GG1113211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1113211[];
+static VTBL_ENTRY alt_thunk_names223[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3213fooEv,_ZThn8_N5FF3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11132113fooEv,_ZTv0_n12_N9GG11132113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11132113fooEv,_ZThn40_N9GG11132113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11132113fooEv,_ZThn24_N9GG11132113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11132113fooEv,_ZThn16_N9GG11132113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11132113fooEv,_ZTv0_n20_N9GG11132113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11132113fooEv,_ZThn32_N9GG11132113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11132113fooEv,_ZThn8_N9GG11132113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1113211 = { "GG1113211", // class name
+ bases_GG1113211, 6,
+ &(vtc_GG1113211[0]), // expected_vtbl_contents
+ &(vtt_GG1113211[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1113211),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1113211),39, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1113211),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names223,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1113213 : virtual EE111 , virtual FF321 {
+ int pg;
+ virtual void foo(); // _ZN9GG11132133fooEv
+ virtual void bar(); // _ZN9GG11132133barEv
+ ~GG1113213(); // tgen
+ GG1113213(); // tgen
+};
+//SIG(1 GG1113213) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1113213 ::foo(){vfunc_called(this, "_ZN9GG11132133fooEv");}
+void GG1113213 ::bar(){vfunc_called(this, "_ZN9GG11132133barEv");}
+GG1113213 ::~GG1113213(){ note_dtor("GG1113213", this);} // tgen
+GG1113213 ::GG1113213(){ note_ctor("GG1113213", this);} // tgen
+
+static void Test_GG1113213()
+{
+ extern Class_Descriptor cd_GG1113213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1113213, buf);
+ GG1113213 *dp, &lv = *(dp=new (buf) GG1113213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1113213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1113213)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1113213");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1113213");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1113213");
+ check_base_class_offset(lv, (AA3*)(FF321*), ABISELECT(80,40), "GG1113213");
+ check_base_class_offset(lv, (BB2*)(FF321*), ABISELECT(96,48), "GG1113213");
+ check_base_class_offset(lv, (FF321*), ABISELECT(64,32), "GG1113213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1113213.pg");
+ test_class_info(&lv, &cd_GG1113213);
+ dp->~GG1113213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1113213(Test_GG1113213, "GG1113213", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1113213C1Ev();
+extern void _ZN9GG1113213D1Ev();
+Name_Map name_map_GG1113213[] = {
+ NSPAIR(_ZN9GG1113213C1Ev),
+ NSPAIR(_ZN9GG1113213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF321;
+extern VTBL_ENTRY _ZTI5FF321[];
+extern VTBL_ENTRY _ZTV5FF321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF321[];
+static Base_Class bases_GG1113213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF321, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1113213[];
+extern void _ZN9GG11132133fooEv();
+extern void _ZN9GG11132133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11132133fooEv,_ZTv0_n20_N9GG11132133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11132133fooEv,_ZThn8_N9GG11132133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11132133fooEv,_ZTv0_n12_N9GG11132133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11132133fooEv,_ZThn16_N9GG11132133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11132133fooEv,_ZTv0_n12_N9GG11132133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11132133fooEv,_ZThn24_N9GG11132133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11132133fooEv,_ZTv0_n20_N9GG11132133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11132133fooEv,_ZThn32_N9GG11132133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11132133fooEv,_ZTv0_n12_N9GG11132133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG11132133fooEv,_ZThn40_N9GG11132133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11132133barEv,_ZTv0_n16_N9GG11132133barEv)();
+extern void ABISELECT(_ZThn80_N9GG11132133barEv,_ZThn40_N9GG11132133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11132133barEv,_ZTv0_n12_N9GG11132133barEv)();
+extern void ABISELECT(_ZThn96_N9GG11132133barEv,_ZThn48_N9GG11132133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1113213[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1113213[0]),
+ (VTBL_ENTRY)&_ZN9GG11132133fooEv,
+ (VTBL_ENTRY)&_ZN9GG11132133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1113213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11132133fooEv,_ZTv0_n20_N9GG11132133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1113213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11132133fooEv,_ZTv0_n12_N9GG11132133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1113213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11132133fooEv,_ZTv0_n12_N9GG11132133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1113213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11132133fooEv,_ZTv0_n20_N9GG11132133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1113213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11132133fooEv,_ZTv0_n12_N9GG11132133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11132133barEv,_ZTv0_n16_N9GG11132133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1113213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11132133barEv,_ZTv0_n12_N9GG11132133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1113213[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1113213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1113213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1113213[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF3213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF321__9GG1113213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN5FF3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3213fooEv,_ZThn8_N5FF3213fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF321__9GG1113213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF321__9GG1113213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG1113213[] = {
+ {&(_ZTV9GG1113213[8]), 8,40},
+ {&(_ZTV9GG1113213[15]), 15,40},
+ {&(_ZTV9GG1113213[19]), 19,40},
+ {&(_ZTV9GG1113213[23]), 23,40},
+ {&(_ZTV9GG1113213[29]), 29,40},
+ {&(_ZTV9GG1113213[34]), 34,40},
+ {&(_ZTV9GG1113213[39]), 39,40},
+ {&(_tg__ZTV5EE111__9GG1113213[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1113213[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1113213[3]), 3,4},
+ {&(_tg__ZTV5FF321__9GG1113213[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF321__9GG1113213[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF321__9GG1113213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1113213[];
+extern VTBL_ENTRY _ZTV9GG1113213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1113213[];
+static VTBL_ENTRY alt_thunk_names224[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3213fooEv,_ZThn8_N5FF3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11132133barEv,_ZTv0_n12_N9GG11132133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11132133barEv,_ZThn48_N9GG11132133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG11132133barEv,_ZTv0_n16_N9GG11132133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11132133barEv,_ZThn40_N9GG11132133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11132133fooEv,_ZTv0_n12_N9GG11132133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11132133fooEv,_ZThn40_N9GG11132133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11132133fooEv,_ZThn24_N9GG11132133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11132133fooEv,_ZThn16_N9GG11132133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11132133fooEv,_ZTv0_n20_N9GG11132133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11132133fooEv,_ZThn32_N9GG11132133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11132133fooEv,_ZThn8_N9GG11132133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1113213 = { "GG1113213", // class name
+ bases_GG1113213, 6,
+ &(vtc_GG1113213[0]), // expected_vtbl_contents
+ &(vtt_GG1113213[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1113213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1113213),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1113213),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names224,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1113221 : virtual EE111 , virtual FF322 {
+ int pg;
+ virtual void foo(); // _ZN9GG11132213fooEv
+ ~GG1113221(); // tgen
+ GG1113221(); // tgen
+};
+//SIG(1 GG1113221) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v2 Fi} v2 Fi} v1 Fi}
+
+
+void GG1113221 ::foo(){vfunc_called(this, "_ZN9GG11132213fooEv");}
+GG1113221 ::~GG1113221(){ note_dtor("GG1113221", this);} // tgen
+GG1113221 ::GG1113221(){ note_ctor("GG1113221", this);} // tgen
+
+static void Test_GG1113221()
+{
+ extern Class_Descriptor cd_GG1113221;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1113221, buf);
+ GG1113221 *dp, &lv = *(dp=new (buf) GG1113221());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1113221)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1113221)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1113221");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1113221");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1113221");
+ check_base_class_offset(lv, (AA3*)(FF322*), ABISELECT(80,40), "GG1113221");
+ check_base_class_offset(lv, (BB2*)(FF322*), ABISELECT(96,48), "GG1113221");
+ check_base_class_offset(lv, (FF322*), ABISELECT(64,32), "GG1113221");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1113221.pg");
+ test_class_info(&lv, &cd_GG1113221);
+ dp->~GG1113221();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1113221(Test_GG1113221, "GG1113221", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1113221C1Ev();
+extern void _ZN9GG1113221D1Ev();
+Name_Map name_map_GG1113221[] = {
+ NSPAIR(_ZN9GG1113221C1Ev),
+ NSPAIR(_ZN9GG1113221D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF322;
+extern VTBL_ENTRY _ZTI5FF322[];
+extern VTBL_ENTRY _ZTV5FF322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF322[];
+static Base_Class bases_GG1113221[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF322, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1113221[];
+extern void _ZN9GG11132213fooEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11132213fooEv,_ZTv0_n20_N9GG11132213fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11132213fooEv,_ZThn8_N9GG11132213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11132213fooEv,_ZTv0_n12_N9GG11132213fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11132213fooEv,_ZThn16_N9GG11132213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11132213fooEv,_ZTv0_n12_N9GG11132213fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11132213fooEv,_ZThn24_N9GG11132213fooEv)() __attribute__((weak));
+extern void _ZN5FF3223barEv();
+extern void ABISELECT(_ZTv0_n24_N9GG11132213fooEv,_ZTv0_n12_N9GG11132213fooEv)();
+extern void ABISELECT(_ZThn80_N9GG11132213fooEv,_ZThn40_N9GG11132213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv)();
+extern void ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv)();
+extern void ABISELECT(_ZThn32_N5FF3223barEv,_ZThn16_N5FF3223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1113221[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1113221[0]),
+ (VTBL_ENTRY)&_ZN9GG11132213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1113221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11132213fooEv,_ZTv0_n20_N9GG11132213fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1113221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11132213fooEv,_ZTv0_n12_N9GG11132213fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1113221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11132213fooEv,_ZTv0_n12_N9GG11132213fooEv),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1113221[0]),
+ (VTBL_ENTRY)&_ZN5FF3223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1113221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11132213fooEv,_ZTv0_n12_N9GG11132213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1113221[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1113221[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1113221[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1113221[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1113221[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF3223barEv();
+static VTBL_ENTRY _tg__ZTV5FF322__9GG1113221[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN5FF3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv)();
+extern void ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF322__9GG1113221[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv)();
+extern void ABISELECT(_ZThn32_N5FF3223barEv,_ZThn16_N5FF3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF322__9GG1113221[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv),
+};
+static VTT_ENTRY vtt_GG1113221[] = {
+ {&(_ZTV9GG1113221[8]), 8,39},
+ {&(_ZTV9GG1113221[14]), 14,39},
+ {&(_ZTV9GG1113221[18]), 18,39},
+ {&(_ZTV9GG1113221[22]), 22,39},
+ {&(_ZTV9GG1113221[28]), 28,39},
+ {&(_ZTV9GG1113221[33]), 33,39},
+ {&(_ZTV9GG1113221[38]), 38,39},
+ {&(_tg__ZTV5EE111__9GG1113221[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1113221[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1113221[3]), 3,4},
+ {&(_tg__ZTV5FF322__9GG1113221[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF322__9GG1113221[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF322__9GG1113221[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1113221[];
+extern VTBL_ENTRY _ZTV9GG1113221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1113221[];
+static VTBL_ENTRY alt_thunk_names225[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3223barEv,_ZThn16_N5FF3223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3223barEv,_ZThn16_N5FF3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11132213fooEv,_ZTv0_n12_N9GG11132213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11132213fooEv,_ZThn40_N9GG11132213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11132213fooEv,_ZThn24_N9GG11132213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11132213fooEv,_ZThn16_N9GG11132213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11132213fooEv,_ZTv0_n20_N9GG11132213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11132213fooEv,_ZThn8_N9GG11132213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1113221 = { "GG1113221", // class name
+ bases_GG1113221, 6,
+ &(vtc_GG1113221[0]), // expected_vtbl_contents
+ &(vtt_GG1113221[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1113221),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1113221),39, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1113221),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names225,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1113223 : virtual EE111 , virtual FF322 {
+ int pg;
+ virtual void foo(); // _ZN9GG11132233fooEv
+ virtual void bar(); // _ZN9GG11132233barEv
+ ~GG1113223(); // tgen
+ GG1113223(); // tgen
+};
+//SIG(1 GG1113223) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1113223 ::foo(){vfunc_called(this, "_ZN9GG11132233fooEv");}
+void GG1113223 ::bar(){vfunc_called(this, "_ZN9GG11132233barEv");}
+GG1113223 ::~GG1113223(){ note_dtor("GG1113223", this);} // tgen
+GG1113223 ::GG1113223(){ note_ctor("GG1113223", this);} // tgen
+
+static void Test_GG1113223()
+{
+ extern Class_Descriptor cd_GG1113223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1113223, buf);
+ GG1113223 *dp, &lv = *(dp=new (buf) GG1113223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1113223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1113223)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1113223");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1113223");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1113223");
+ check_base_class_offset(lv, (AA3*)(FF322*), ABISELECT(80,40), "GG1113223");
+ check_base_class_offset(lv, (BB2*)(FF322*), ABISELECT(96,48), "GG1113223");
+ check_base_class_offset(lv, (FF322*), ABISELECT(64,32), "GG1113223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1113223.pg");
+ test_class_info(&lv, &cd_GG1113223);
+ dp->~GG1113223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1113223(Test_GG1113223, "GG1113223", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1113223C1Ev();
+extern void _ZN9GG1113223D1Ev();
+Name_Map name_map_GG1113223[] = {
+ NSPAIR(_ZN9GG1113223C1Ev),
+ NSPAIR(_ZN9GG1113223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF322;
+extern VTBL_ENTRY _ZTI5FF322[];
+extern VTBL_ENTRY _ZTV5FF322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF322[];
+static Base_Class bases_GG1113223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF322, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1113223[];
+extern void _ZN9GG11132233fooEv();
+extern void _ZN9GG11132233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11132233fooEv,_ZTv0_n20_N9GG11132233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11132233fooEv,_ZThn8_N9GG11132233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11132233fooEv,_ZTv0_n12_N9GG11132233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11132233fooEv,_ZThn16_N9GG11132233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11132233fooEv,_ZTv0_n12_N9GG11132233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11132233fooEv,_ZThn24_N9GG11132233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11132233barEv,_ZTv0_n20_N9GG11132233barEv)();
+extern void ABISELECT(_ZThn64_N9GG11132233barEv,_ZThn32_N9GG11132233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11132233fooEv,_ZTv0_n12_N9GG11132233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG11132233fooEv,_ZThn40_N9GG11132233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11132233barEv,_ZTv0_n16_N9GG11132233barEv)();
+extern void ABISELECT(_ZThn80_N9GG11132233barEv,_ZThn40_N9GG11132233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11132233barEv,_ZTv0_n12_N9GG11132233barEv)();
+extern void ABISELECT(_ZThn96_N9GG11132233barEv,_ZThn48_N9GG11132233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1113223[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1113223[0]),
+ (VTBL_ENTRY)&_ZN9GG11132233fooEv,
+ (VTBL_ENTRY)&_ZN9GG11132233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1113223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11132233fooEv,_ZTv0_n20_N9GG11132233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1113223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11132233fooEv,_ZTv0_n12_N9GG11132233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1113223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11132233fooEv,_ZTv0_n12_N9GG11132233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1113223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11132233barEv,_ZTv0_n20_N9GG11132233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1113223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11132233fooEv,_ZTv0_n12_N9GG11132233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11132233barEv,_ZTv0_n16_N9GG11132233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1113223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11132233barEv,_ZTv0_n12_N9GG11132233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1113223[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1113223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1113223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1113223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF3223barEv();
+static VTBL_ENTRY _tg__ZTV5FF322__9GG1113223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN5FF3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv)();
+extern void ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF322__9GG1113223[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv)();
+extern void ABISELECT(_ZThn32_N5FF3223barEv,_ZThn16_N5FF3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF322__9GG1113223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv),
+};
+static VTT_ENTRY vtt_GG1113223[] = {
+ {&(_ZTV9GG1113223[8]), 8,40},
+ {&(_ZTV9GG1113223[15]), 15,40},
+ {&(_ZTV9GG1113223[19]), 19,40},
+ {&(_ZTV9GG1113223[23]), 23,40},
+ {&(_ZTV9GG1113223[29]), 29,40},
+ {&(_ZTV9GG1113223[34]), 34,40},
+ {&(_ZTV9GG1113223[39]), 39,40},
+ {&(_tg__ZTV5EE111__9GG1113223[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1113223[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1113223[3]), 3,4},
+ {&(_tg__ZTV5FF322__9GG1113223[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF322__9GG1113223[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF322__9GG1113223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1113223[];
+extern VTBL_ENTRY _ZTV9GG1113223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1113223[];
+static VTBL_ENTRY alt_thunk_names226[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3223barEv,_ZThn16_N5FF3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11132233barEv,_ZTv0_n12_N9GG11132233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11132233barEv,_ZThn48_N9GG11132233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG11132233barEv,_ZTv0_n16_N9GG11132233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11132233barEv,_ZThn40_N9GG11132233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11132233barEv,_ZTv0_n20_N9GG11132233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11132233barEv,_ZThn32_N9GG11132233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11132233fooEv,_ZTv0_n12_N9GG11132233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11132233fooEv,_ZThn40_N9GG11132233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11132233fooEv,_ZThn24_N9GG11132233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11132233fooEv,_ZThn16_N9GG11132233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11132233fooEv,_ZTv0_n20_N9GG11132233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11132233fooEv,_ZThn8_N9GG11132233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1113223 = { "GG1113223", // class name
+ bases_GG1113223, 6,
+ &(vtc_GG1113223[0]), // expected_vtbl_contents
+ &(vtt_GG1113223[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1113223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1113223),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1113223),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names226,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1113231 : virtual EE111 , virtual FF323 {
+ int pg;
+ virtual void foo(); // _ZN9GG11132313fooEv
+ ~GG1113231(); // tgen
+ GG1113231(); // tgen
+};
+//SIG(1 GG1113231) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void GG1113231 ::foo(){vfunc_called(this, "_ZN9GG11132313fooEv");}
+GG1113231 ::~GG1113231(){ note_dtor("GG1113231", this);} // tgen
+GG1113231 ::GG1113231(){ note_ctor("GG1113231", this);} // tgen
+
+static void Test_GG1113231()
+{
+ extern Class_Descriptor cd_GG1113231;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1113231, buf);
+ GG1113231 *dp, &lv = *(dp=new (buf) GG1113231());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1113231)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1113231)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1113231");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1113231");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1113231");
+ check_base_class_offset(lv, (AA3*)(FF323*), ABISELECT(80,40), "GG1113231");
+ check_base_class_offset(lv, (BB2*)(FF323*), ABISELECT(96,48), "GG1113231");
+ check_base_class_offset(lv, (FF323*), ABISELECT(64,32), "GG1113231");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1113231.pg");
+ test_class_info(&lv, &cd_GG1113231);
+ dp->~GG1113231();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1113231(Test_GG1113231, "GG1113231", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1113231C1Ev();
+extern void _ZN9GG1113231D1Ev();
+Name_Map name_map_GG1113231[] = {
+ NSPAIR(_ZN9GG1113231C1Ev),
+ NSPAIR(_ZN9GG1113231D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF323;
+extern VTBL_ENTRY _ZTI5FF323[];
+extern VTBL_ENTRY _ZTV5FF323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF323[];
+static Base_Class bases_GG1113231[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 37, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF323, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1113231[];
+extern void _ZN9GG11132313fooEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11132313fooEv,_ZTv0_n20_N9GG11132313fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11132313fooEv,_ZThn8_N9GG11132313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11132313fooEv,_ZTv0_n12_N9GG11132313fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11132313fooEv,_ZThn16_N9GG11132313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11132313fooEv,_ZTv0_n12_N9GG11132313fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11132313fooEv,_ZThn24_N9GG11132313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11132313fooEv,_ZTv0_n20_N9GG11132313fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11132313fooEv,_ZThn32_N9GG11132313fooEv)() __attribute__((weak));
+extern void _ZN5FF3233barEv();
+extern void ABISELECT(_ZTv0_n24_N9GG11132313fooEv,_ZTv0_n12_N9GG11132313fooEv)();
+extern void ABISELECT(_ZThn80_N9GG11132313fooEv,_ZThn40_N9GG11132313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv)();
+extern void ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv)();
+extern void ABISELECT(_ZThn32_N5FF3233barEv,_ZThn16_N5FF3233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1113231[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1113231[0]),
+ (VTBL_ENTRY)&_ZN9GG11132313fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1113231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11132313fooEv,_ZTv0_n20_N9GG11132313fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1113231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11132313fooEv,_ZTv0_n12_N9GG11132313fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1113231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11132313fooEv,_ZTv0_n12_N9GG11132313fooEv),
+ 0,
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1113231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11132313fooEv,_ZTv0_n20_N9GG11132313fooEv),
+ (VTBL_ENTRY)&_ZN5FF3233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1113231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11132313fooEv,_ZTv0_n12_N9GG11132313fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1113231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1113231[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1113231[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1113231[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1113231[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF3233fooEv();
+extern void _ZN5FF3233barEv();
+static VTBL_ENTRY _tg__ZTV5FF323__9GG1113231[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&_ZN5FF3233fooEv,
+ (VTBL_ENTRY)&_ZN5FF3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3233fooEv,_ZThn8_N5FF3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv)();
+extern void ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF323__9GG1113231[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv)();
+extern void ABISELECT(_ZThn32_N5FF3233barEv,_ZThn16_N5FF3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF323__9GG1113231[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv),
+};
+static VTT_ENTRY vtt_GG1113231[] = {
+ {&(_ZTV9GG1113231[8]), 8,41},
+ {&(_ZTV9GG1113231[14]), 14,41},
+ {&(_ZTV9GG1113231[18]), 18,41},
+ {&(_ZTV9GG1113231[22]), 22,41},
+ {&(_ZTV9GG1113231[29]), 29,41},
+ {&(_ZTV9GG1113231[35]), 35,41},
+ {&(_ZTV9GG1113231[40]), 40,41},
+ {&(_tg__ZTV5EE111__9GG1113231[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1113231[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1113231[3]), 3,4},
+ {&(_tg__ZTV5FF323__9GG1113231[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF323__9GG1113231[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF323__9GG1113231[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1113231[];
+extern VTBL_ENTRY _ZTV9GG1113231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1113231[];
+static VTBL_ENTRY alt_thunk_names227[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3233fooEv,_ZThn8_N5FF3233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3233barEv,_ZThn16_N5FF3233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3233barEv,_ZThn16_N5FF3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11132313fooEv,_ZTv0_n12_N9GG11132313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11132313fooEv,_ZThn40_N9GG11132313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11132313fooEv,_ZThn24_N9GG11132313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11132313fooEv,_ZThn16_N9GG11132313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11132313fooEv,_ZTv0_n20_N9GG11132313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11132313fooEv,_ZThn32_N9GG11132313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11132313fooEv,_ZThn8_N9GG11132313fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1113231 = { "GG1113231", // class name
+ bases_GG1113231, 6,
+ &(vtc_GG1113231[0]), // expected_vtbl_contents
+ &(vtt_GG1113231[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1113231),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1113231),41, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1113231),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names227,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1113233 : virtual EE111 , virtual FF323 {
+ int pg;
+ virtual void foo(); // _ZN9GG11132333fooEv
+ virtual void bar(); // _ZN9GG11132333barEv
+ ~GG1113233(); // tgen
+ GG1113233(); // tgen
+};
+//SIG(1 GG1113233) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1113233 ::foo(){vfunc_called(this, "_ZN9GG11132333fooEv");}
+void GG1113233 ::bar(){vfunc_called(this, "_ZN9GG11132333barEv");}
+GG1113233 ::~GG1113233(){ note_dtor("GG1113233", this);} // tgen
+GG1113233 ::GG1113233(){ note_ctor("GG1113233", this);} // tgen
+
+static void Test_GG1113233()
+{
+ extern Class_Descriptor cd_GG1113233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1113233, buf);
+ GG1113233 *dp, &lv = *(dp=new (buf) GG1113233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1113233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1113233)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1113233");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1113233");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1113233");
+ check_base_class_offset(lv, (AA3*)(FF323*), ABISELECT(80,40), "GG1113233");
+ check_base_class_offset(lv, (BB2*)(FF323*), ABISELECT(96,48), "GG1113233");
+ check_base_class_offset(lv, (FF323*), ABISELECT(64,32), "GG1113233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1113233.pg");
+ test_class_info(&lv, &cd_GG1113233);
+ dp->~GG1113233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1113233(Test_GG1113233, "GG1113233", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1113233C1Ev();
+extern void _ZN9GG1113233D1Ev();
+Name_Map name_map_GG1113233[] = {
+ NSPAIR(_ZN9GG1113233C1Ev),
+ NSPAIR(_ZN9GG1113233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF323;
+extern VTBL_ENTRY _ZTI5FF323[];
+extern VTBL_ENTRY _ZTV5FF323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF323[];
+static Base_Class bases_GG1113233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF323, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1113233[];
+extern void _ZN9GG11132333fooEv();
+extern void _ZN9GG11132333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11132333fooEv,_ZTv0_n20_N9GG11132333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11132333fooEv,_ZThn8_N9GG11132333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11132333fooEv,_ZTv0_n12_N9GG11132333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11132333fooEv,_ZThn16_N9GG11132333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11132333fooEv,_ZTv0_n12_N9GG11132333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11132333fooEv,_ZThn24_N9GG11132333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11132333fooEv,_ZTv0_n20_N9GG11132333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11132333fooEv,_ZThn32_N9GG11132333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11132333barEv,_ZTv0_n24_N9GG11132333barEv)();
+extern void ABISELECT(_ZThn64_N9GG11132333barEv,_ZThn32_N9GG11132333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11132333fooEv,_ZTv0_n12_N9GG11132333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG11132333fooEv,_ZThn40_N9GG11132333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11132333barEv,_ZTv0_n16_N9GG11132333barEv)();
+extern void ABISELECT(_ZThn80_N9GG11132333barEv,_ZThn40_N9GG11132333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11132333barEv,_ZTv0_n12_N9GG11132333barEv)();
+extern void ABISELECT(_ZThn96_N9GG11132333barEv,_ZThn48_N9GG11132333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1113233[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1113233[0]),
+ (VTBL_ENTRY)&_ZN9GG11132333fooEv,
+ (VTBL_ENTRY)&_ZN9GG11132333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1113233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11132333fooEv,_ZTv0_n20_N9GG11132333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1113233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11132333fooEv,_ZTv0_n12_N9GG11132333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1113233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11132333fooEv,_ZTv0_n12_N9GG11132333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1113233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11132333fooEv,_ZTv0_n20_N9GG11132333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11132333barEv,_ZTv0_n24_N9GG11132333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1113233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11132333fooEv,_ZTv0_n12_N9GG11132333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11132333barEv,_ZTv0_n16_N9GG11132333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1113233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11132333barEv,_ZTv0_n12_N9GG11132333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1113233[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1113233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1113233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1113233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF3233fooEv();
+extern void _ZN5FF3233barEv();
+static VTBL_ENTRY _tg__ZTV5FF323__9GG1113233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&_ZN5FF3233fooEv,
+ (VTBL_ENTRY)&_ZN5FF3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3233fooEv,_ZThn8_N5FF3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv)();
+extern void ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF323__9GG1113233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv)();
+extern void ABISELECT(_ZThn32_N5FF3233barEv,_ZThn16_N5FF3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF323__9GG1113233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv),
+};
+static VTT_ENTRY vtt_GG1113233[] = {
+ {&(_ZTV9GG1113233[8]), 8,42},
+ {&(_ZTV9GG1113233[15]), 15,42},
+ {&(_ZTV9GG1113233[19]), 19,42},
+ {&(_ZTV9GG1113233[23]), 23,42},
+ {&(_ZTV9GG1113233[30]), 30,42},
+ {&(_ZTV9GG1113233[36]), 36,42},
+ {&(_ZTV9GG1113233[41]), 41,42},
+ {&(_tg__ZTV5EE111__9GG1113233[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1113233[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1113233[3]), 3,4},
+ {&(_tg__ZTV5FF323__9GG1113233[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF323__9GG1113233[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF323__9GG1113233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1113233[];
+extern VTBL_ENTRY _ZTV9GG1113233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1113233[];
+static VTBL_ENTRY alt_thunk_names228[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3233barEv,_ZThn16_N5FF3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3233fooEv,_ZThn8_N5FF3233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11132333barEv,_ZTv0_n12_N9GG11132333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11132333barEv,_ZThn48_N9GG11132333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG11132333barEv,_ZTv0_n16_N9GG11132333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11132333barEv,_ZThn40_N9GG11132333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG11132333barEv,_ZTv0_n24_N9GG11132333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11132333barEv,_ZThn32_N9GG11132333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11132333fooEv,_ZTv0_n12_N9GG11132333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11132333fooEv,_ZThn40_N9GG11132333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11132333fooEv,_ZThn24_N9GG11132333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11132333fooEv,_ZThn16_N9GG11132333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11132333fooEv,_ZTv0_n20_N9GG11132333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11132333fooEv,_ZThn32_N9GG11132333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11132333fooEv,_ZThn8_N9GG11132333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1113233 = { "GG1113233", // class name
+ bases_GG1113233, 6,
+ &(vtc_GG1113233[0]), // expected_vtbl_contents
+ &(vtt_GG1113233[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1113233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1113233),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1113233),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names228,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1113311 : virtual EE111 , virtual FF331 {
+ int pg;
+ virtual void foo(); // _ZN9GG11133113fooEv
+ ~GG1113311(); // tgen
+ GG1113311(); // tgen
+};
+//SIG(1 GG1113311) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 v3 Fi} v1 Fi} v1 Fi}
+
+
+void GG1113311 ::foo(){vfunc_called(this, "_ZN9GG11133113fooEv");}
+GG1113311 ::~GG1113311(){ note_dtor("GG1113311", this);} // tgen
+GG1113311 ::GG1113311(){ note_ctor("GG1113311", this);} // tgen
+
+static void Test_GG1113311()
+{
+ extern Class_Descriptor cd_GG1113311;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1113311, buf);
+ GG1113311 *dp, &lv = *(dp=new (buf) GG1113311());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1113311)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1113311)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1113311");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1113311");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1113311");
+ check_base_class_offset(lv, (AA3*)(FF331*), ABISELECT(80,40), "GG1113311");
+ check_base_class_offset(lv, (BB3*)(FF331*), ABISELECT(96,48), "GG1113311");
+ check_base_class_offset(lv, (FF331*), ABISELECT(64,32), "GG1113311");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1113311.pg");
+ test_class_info(&lv, &cd_GG1113311);
+ dp->~GG1113311();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1113311(Test_GG1113311, "GG1113311", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1113311C1Ev();
+extern void _ZN9GG1113311D1Ev();
+Name_Map name_map_GG1113311[] = {
+ NSPAIR(_ZN9GG1113311C1Ev),
+ NSPAIR(_ZN9GG1113311D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF331;
+extern VTBL_ENTRY _ZTI5FF331[];
+extern VTBL_ENTRY _ZTV5FF331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF331[];
+static Base_Class bases_GG1113311[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF331, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1113311[];
+extern void _ZN9GG11133113fooEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11133113fooEv,_ZTv0_n20_N9GG11133113fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11133113fooEv,_ZThn8_N9GG11133113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11133113fooEv,_ZTv0_n12_N9GG11133113fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11133113fooEv,_ZThn16_N9GG11133113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11133113fooEv,_ZTv0_n12_N9GG11133113fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11133113fooEv,_ZThn24_N9GG11133113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11133113fooEv,_ZTv0_n20_N9GG11133113fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11133113fooEv,_ZThn32_N9GG11133113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11133113fooEv,_ZTv0_n12_N9GG11133113fooEv)();
+extern void ABISELECT(_ZThn80_N9GG11133113fooEv,_ZThn40_N9GG11133113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+extern void ABISELECT(_ZTv0_n24_N9GG11133113fooEv,_ZTv0_n12_N9GG11133113fooEv)();
+extern void ABISELECT(_ZThn96_N9GG11133113fooEv,_ZThn48_N9GG11133113fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY vtc_GG1113311[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1113311[0]),
+ (VTBL_ENTRY)&_ZN9GG11133113fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1113311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11133113fooEv,_ZTv0_n20_N9GG11133113fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1113311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11133113fooEv,_ZTv0_n12_N9GG11133113fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1113311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11133113fooEv,_ZTv0_n12_N9GG11133113fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1113311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11133113fooEv,_ZTv0_n20_N9GG11133113fooEv),
+ 0,
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1113311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11133113fooEv,_ZTv0_n12_N9GG11133113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+ 0,
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1113311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11133113fooEv,_ZTv0_n12_N9GG11133113fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern VTBL_ENTRY _ZTV9GG1113311[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1113311[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1113311[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1113311[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF3313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF331__9GG1113311[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&_ZN5FF3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF331__9GG1113311[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3313fooEv,_ZThn16_N5FF3313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF331__9GG1113311[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG1113311[] = {
+ {&(_ZTV9GG1113311[8]), 8,41},
+ {&(_ZTV9GG1113311[14]), 14,41},
+ {&(_ZTV9GG1113311[18]), 18,41},
+ {&(_ZTV9GG1113311[22]), 22,41},
+ {&(_ZTV9GG1113311[28]), 28,41},
+ {&(_ZTV9GG1113311[33]), 33,41},
+ {&(_ZTV9GG1113311[39]), 39,41},
+ {&(_tg__ZTV5EE111__9GG1113311[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1113311[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1113311[3]), 3,4},
+ {&(_tg__ZTV5FF331__9GG1113311[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF331__9GG1113311[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF331__9GG1113311[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1113311[];
+extern VTBL_ENTRY _ZTV9GG1113311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1113311[];
+static VTBL_ENTRY alt_thunk_names229[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3313fooEv,_ZThn16_N5FF3313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11133113fooEv,_ZTv0_n12_N9GG11133113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11133113fooEv,_ZThn48_N9GG11133113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11133113fooEv,_ZThn40_N9GG11133113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11133113fooEv,_ZThn24_N9GG11133113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11133113fooEv,_ZThn16_N9GG11133113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11133113fooEv,_ZTv0_n20_N9GG11133113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11133113fooEv,_ZThn32_N9GG11133113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11133113fooEv,_ZThn8_N9GG11133113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1113311 = { "GG1113311", // class name
+ bases_GG1113311, 6,
+ &(vtc_GG1113311[0]), // expected_vtbl_contents
+ &(vtt_GG1113311[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1113311),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1113311),41, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1113311),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names229,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1113313 : virtual EE111 , virtual FF331 {
+ int pg;
+ virtual void foo(); // _ZN9GG11133133fooEv
+ virtual void bar(); // _ZN9GG11133133barEv
+ ~GG1113313(); // tgen
+ GG1113313(); // tgen
+};
+//SIG(1 GG1113313) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1113313 ::foo(){vfunc_called(this, "_ZN9GG11133133fooEv");}
+void GG1113313 ::bar(){vfunc_called(this, "_ZN9GG11133133barEv");}
+GG1113313 ::~GG1113313(){ note_dtor("GG1113313", this);} // tgen
+GG1113313 ::GG1113313(){ note_ctor("GG1113313", this);} // tgen
+
+static void Test_GG1113313()
+{
+ extern Class_Descriptor cd_GG1113313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1113313, buf);
+ GG1113313 *dp, &lv = *(dp=new (buf) GG1113313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1113313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1113313)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1113313");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1113313");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1113313");
+ check_base_class_offset(lv, (AA3*)(FF331*), ABISELECT(80,40), "GG1113313");
+ check_base_class_offset(lv, (BB3*)(FF331*), ABISELECT(96,48), "GG1113313");
+ check_base_class_offset(lv, (FF331*), ABISELECT(64,32), "GG1113313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1113313.pg");
+ test_class_info(&lv, &cd_GG1113313);
+ dp->~GG1113313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1113313(Test_GG1113313, "GG1113313", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1113313C1Ev();
+extern void _ZN9GG1113313D1Ev();
+Name_Map name_map_GG1113313[] = {
+ NSPAIR(_ZN9GG1113313C1Ev),
+ NSPAIR(_ZN9GG1113313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF331;
+extern VTBL_ENTRY _ZTI5FF331[];
+extern VTBL_ENTRY _ZTV5FF331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF331[];
+static Base_Class bases_GG1113313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF331, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1113313[];
+extern void _ZN9GG11133133fooEv();
+extern void _ZN9GG11133133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11133133fooEv,_ZTv0_n20_N9GG11133133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11133133fooEv,_ZThn8_N9GG11133133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11133133fooEv,_ZTv0_n12_N9GG11133133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11133133fooEv,_ZThn16_N9GG11133133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11133133fooEv,_ZTv0_n12_N9GG11133133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11133133fooEv,_ZThn24_N9GG11133133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11133133fooEv,_ZTv0_n20_N9GG11133133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11133133fooEv,_ZThn32_N9GG11133133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11133133fooEv,_ZTv0_n12_N9GG11133133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG11133133fooEv,_ZThn40_N9GG11133133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11133133barEv,_ZTv0_n16_N9GG11133133barEv)();
+extern void ABISELECT(_ZThn80_N9GG11133133barEv,_ZThn40_N9GG11133133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11133133fooEv,_ZTv0_n12_N9GG11133133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG11133133fooEv,_ZThn48_N9GG11133133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11133133barEv,_ZTv0_n16_N9GG11133133barEv)();
+extern void ABISELECT(_ZThn96_N9GG11133133barEv,_ZThn48_N9GG11133133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1113313[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1113313[0]),
+ (VTBL_ENTRY)&_ZN9GG11133133fooEv,
+ (VTBL_ENTRY)&_ZN9GG11133133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1113313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11133133fooEv,_ZTv0_n20_N9GG11133133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1113313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11133133fooEv,_ZTv0_n12_N9GG11133133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1113313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11133133fooEv,_ZTv0_n12_N9GG11133133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1113313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11133133fooEv,_ZTv0_n20_N9GG11133133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1113313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11133133fooEv,_ZTv0_n12_N9GG11133133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11133133barEv,_ZTv0_n16_N9GG11133133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1113313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11133133fooEv,_ZTv0_n12_N9GG11133133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11133133barEv,_ZTv0_n16_N9GG11133133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1113313[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1113313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1113313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1113313[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF3313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF331__9GG1113313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&_ZN5FF3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF331__9GG1113313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3313fooEv,_ZThn16_N5FF3313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF331__9GG1113313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG1113313[] = {
+ {&(_ZTV9GG1113313[8]), 8,42},
+ {&(_ZTV9GG1113313[15]), 15,42},
+ {&(_ZTV9GG1113313[19]), 19,42},
+ {&(_ZTV9GG1113313[23]), 23,42},
+ {&(_ZTV9GG1113313[29]), 29,42},
+ {&(_ZTV9GG1113313[34]), 34,42},
+ {&(_ZTV9GG1113313[40]), 40,42},
+ {&(_tg__ZTV5EE111__9GG1113313[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1113313[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1113313[3]), 3,4},
+ {&(_tg__ZTV5FF331__9GG1113313[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF331__9GG1113313[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF331__9GG1113313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1113313[];
+extern VTBL_ENTRY _ZTV9GG1113313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1113313[];
+static VTBL_ENTRY alt_thunk_names230[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3313fooEv,_ZThn16_N5FF3313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG11133133barEv,_ZTv0_n16_N9GG11133133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11133133barEv,_ZThn48_N9GG11133133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11133133barEv,_ZThn40_N9GG11133133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11133133fooEv,_ZTv0_n12_N9GG11133133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11133133fooEv,_ZThn48_N9GG11133133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11133133fooEv,_ZThn40_N9GG11133133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11133133fooEv,_ZThn24_N9GG11133133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11133133fooEv,_ZThn16_N9GG11133133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11133133fooEv,_ZTv0_n20_N9GG11133133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11133133fooEv,_ZThn32_N9GG11133133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11133133fooEv,_ZThn8_N9GG11133133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1113313 = { "GG1113313", // class name
+ bases_GG1113313, 6,
+ &(vtc_GG1113313[0]), // expected_vtbl_contents
+ &(vtt_GG1113313[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1113313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1113313),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1113313),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names230,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1113321 : virtual EE111 , virtual FF332 {
+ int pg;
+ virtual void foo(); // _ZN9GG11133213fooEv
+ ~GG1113321(); // tgen
+ GG1113321(); // tgen
+};
+//SIG(1 GG1113321) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 v2 Fi} v2 Fi} v1 Fi}
+
+
+void GG1113321 ::foo(){vfunc_called(this, "_ZN9GG11133213fooEv");}
+GG1113321 ::~GG1113321(){ note_dtor("GG1113321", this);} // tgen
+GG1113321 ::GG1113321(){ note_ctor("GG1113321", this);} // tgen
+
+static void Test_GG1113321()
+{
+ extern Class_Descriptor cd_GG1113321;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1113321, buf);
+ GG1113321 *dp, &lv = *(dp=new (buf) GG1113321());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1113321)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1113321)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1113321");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1113321");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1113321");
+ check_base_class_offset(lv, (AA3*)(FF332*), ABISELECT(80,40), "GG1113321");
+ check_base_class_offset(lv, (BB3*)(FF332*), ABISELECT(96,48), "GG1113321");
+ check_base_class_offset(lv, (FF332*), ABISELECT(64,32), "GG1113321");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1113321.pg");
+ test_class_info(&lv, &cd_GG1113321);
+ dp->~GG1113321();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1113321(Test_GG1113321, "GG1113321", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1113321C1Ev();
+extern void _ZN9GG1113321D1Ev();
+Name_Map name_map_GG1113321[] = {
+ NSPAIR(_ZN9GG1113321C1Ev),
+ NSPAIR(_ZN9GG1113321D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF332;
+extern VTBL_ENTRY _ZTI5FF332[];
+extern VTBL_ENTRY _ZTV5FF332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF332[];
+static Base_Class bases_GG1113321[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF332, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1113321[];
+extern void _ZN9GG11133213fooEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11133213fooEv,_ZTv0_n20_N9GG11133213fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11133213fooEv,_ZThn8_N9GG11133213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11133213fooEv,_ZTv0_n12_N9GG11133213fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11133213fooEv,_ZThn16_N9GG11133213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11133213fooEv,_ZTv0_n12_N9GG11133213fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11133213fooEv,_ZThn24_N9GG11133213fooEv)() __attribute__((weak));
+extern void _ZN5FF3323barEv();
+extern void ABISELECT(_ZTv0_n24_N9GG11133213fooEv,_ZTv0_n12_N9GG11133213fooEv)();
+extern void ABISELECT(_ZThn80_N9GG11133213fooEv,_ZThn40_N9GG11133213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+extern void ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11133213fooEv,_ZTv0_n12_N9GG11133213fooEv)();
+extern void ABISELECT(_ZThn96_N9GG11133213fooEv,_ZThn48_N9GG11133213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+extern void ABISELECT(_ZThn32_N5FF3323barEv,_ZThn16_N5FF3323barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1113321[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1113321[0]),
+ (VTBL_ENTRY)&_ZN9GG11133213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1113321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11133213fooEv,_ZTv0_n20_N9GG11133213fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1113321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11133213fooEv,_ZTv0_n12_N9GG11133213fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1113321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11133213fooEv,_ZTv0_n12_N9GG11133213fooEv),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1113321[0]),
+ (VTBL_ENTRY)&_ZN5FF3323barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1113321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11133213fooEv,_ZTv0_n12_N9GG11133213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1113321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11133213fooEv,_ZTv0_n12_N9GG11133213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1113321[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1113321[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1113321[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1113321[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF3323barEv();
+static VTBL_ENTRY _tg__ZTV5FF332__9GG1113321[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN5FF3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+extern void ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF332__9GG1113321[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+extern void ABISELECT(_ZThn32_N5FF3323barEv,_ZThn16_N5FF3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF332__9GG1113321[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+static VTT_ENTRY vtt_GG1113321[] = {
+ {&(_ZTV9GG1113321[8]), 8,41},
+ {&(_ZTV9GG1113321[14]), 14,41},
+ {&(_ZTV9GG1113321[18]), 18,41},
+ {&(_ZTV9GG1113321[22]), 22,41},
+ {&(_ZTV9GG1113321[28]), 28,41},
+ {&(_ZTV9GG1113321[33]), 33,41},
+ {&(_ZTV9GG1113321[39]), 39,41},
+ {&(_tg__ZTV5EE111__9GG1113321[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1113321[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1113321[3]), 3,4},
+ {&(_tg__ZTV5FF332__9GG1113321[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF332__9GG1113321[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF332__9GG1113321[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1113321[];
+extern VTBL_ENTRY _ZTV9GG1113321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1113321[];
+static VTBL_ENTRY alt_thunk_names231[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3323barEv,_ZThn16_N5FF3323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3323barEv,_ZThn16_N5FF3323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11133213fooEv,_ZTv0_n12_N9GG11133213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11133213fooEv,_ZThn48_N9GG11133213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11133213fooEv,_ZThn40_N9GG11133213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11133213fooEv,_ZThn24_N9GG11133213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11133213fooEv,_ZThn16_N9GG11133213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11133213fooEv,_ZTv0_n20_N9GG11133213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11133213fooEv,_ZThn8_N9GG11133213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1113321 = { "GG1113321", // class name
+ bases_GG1113321, 6,
+ &(vtc_GG1113321[0]), // expected_vtbl_contents
+ &(vtt_GG1113321[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1113321),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1113321),41, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1113321),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names231,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1113323 : virtual EE111 , virtual FF332 {
+ int pg;
+ virtual void foo(); // _ZN9GG11133233fooEv
+ virtual void bar(); // _ZN9GG11133233barEv
+ ~GG1113323(); // tgen
+ GG1113323(); // tgen
+};
+//SIG(1 GG1113323) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1113323 ::foo(){vfunc_called(this, "_ZN9GG11133233fooEv");}
+void GG1113323 ::bar(){vfunc_called(this, "_ZN9GG11133233barEv");}
+GG1113323 ::~GG1113323(){ note_dtor("GG1113323", this);} // tgen
+GG1113323 ::GG1113323(){ note_ctor("GG1113323", this);} // tgen
+
+static void Test_GG1113323()
+{
+ extern Class_Descriptor cd_GG1113323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1113323, buf);
+ GG1113323 *dp, &lv = *(dp=new (buf) GG1113323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1113323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1113323)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1113323");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1113323");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1113323");
+ check_base_class_offset(lv, (AA3*)(FF332*), ABISELECT(80,40), "GG1113323");
+ check_base_class_offset(lv, (BB3*)(FF332*), ABISELECT(96,48), "GG1113323");
+ check_base_class_offset(lv, (FF332*), ABISELECT(64,32), "GG1113323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1113323.pg");
+ test_class_info(&lv, &cd_GG1113323);
+ dp->~GG1113323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1113323(Test_GG1113323, "GG1113323", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1113323C1Ev();
+extern void _ZN9GG1113323D1Ev();
+Name_Map name_map_GG1113323[] = {
+ NSPAIR(_ZN9GG1113323C1Ev),
+ NSPAIR(_ZN9GG1113323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF332;
+extern VTBL_ENTRY _ZTI5FF332[];
+extern VTBL_ENTRY _ZTV5FF332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF332[];
+static Base_Class bases_GG1113323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF332, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1113323[];
+extern void _ZN9GG11133233fooEv();
+extern void _ZN9GG11133233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11133233fooEv,_ZTv0_n20_N9GG11133233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11133233fooEv,_ZThn8_N9GG11133233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11133233fooEv,_ZTv0_n12_N9GG11133233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11133233fooEv,_ZThn16_N9GG11133233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11133233fooEv,_ZTv0_n12_N9GG11133233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11133233fooEv,_ZThn24_N9GG11133233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11133233barEv,_ZTv0_n20_N9GG11133233barEv)();
+extern void ABISELECT(_ZThn64_N9GG11133233barEv,_ZThn32_N9GG11133233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11133233fooEv,_ZTv0_n12_N9GG11133233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG11133233fooEv,_ZThn40_N9GG11133233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11133233barEv,_ZTv0_n16_N9GG11133233barEv)();
+extern void ABISELECT(_ZThn80_N9GG11133233barEv,_ZThn40_N9GG11133233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11133233fooEv,_ZTv0_n12_N9GG11133233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG11133233fooEv,_ZThn48_N9GG11133233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11133233barEv,_ZTv0_n16_N9GG11133233barEv)();
+extern void ABISELECT(_ZThn96_N9GG11133233barEv,_ZThn48_N9GG11133233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1113323[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1113323[0]),
+ (VTBL_ENTRY)&_ZN9GG11133233fooEv,
+ (VTBL_ENTRY)&_ZN9GG11133233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1113323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11133233fooEv,_ZTv0_n20_N9GG11133233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1113323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11133233fooEv,_ZTv0_n12_N9GG11133233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1113323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11133233fooEv,_ZTv0_n12_N9GG11133233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1113323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11133233barEv,_ZTv0_n20_N9GG11133233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1113323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11133233fooEv,_ZTv0_n12_N9GG11133233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11133233barEv,_ZTv0_n16_N9GG11133233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1113323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11133233fooEv,_ZTv0_n12_N9GG11133233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11133233barEv,_ZTv0_n16_N9GG11133233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1113323[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1113323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1113323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1113323[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF3323barEv();
+static VTBL_ENTRY _tg__ZTV5FF332__9GG1113323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN5FF3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+extern void ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF332__9GG1113323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+extern void ABISELECT(_ZThn32_N5FF3323barEv,_ZThn16_N5FF3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF332__9GG1113323[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+static VTT_ENTRY vtt_GG1113323[] = {
+ {&(_ZTV9GG1113323[8]), 8,42},
+ {&(_ZTV9GG1113323[15]), 15,42},
+ {&(_ZTV9GG1113323[19]), 19,42},
+ {&(_ZTV9GG1113323[23]), 23,42},
+ {&(_ZTV9GG1113323[29]), 29,42},
+ {&(_ZTV9GG1113323[34]), 34,42},
+ {&(_ZTV9GG1113323[40]), 40,42},
+ {&(_tg__ZTV5EE111__9GG1113323[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1113323[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1113323[3]), 3,4},
+ {&(_tg__ZTV5FF332__9GG1113323[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF332__9GG1113323[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF332__9GG1113323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1113323[];
+extern VTBL_ENTRY _ZTV9GG1113323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1113323[];
+static VTBL_ENTRY alt_thunk_names232[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3323barEv,_ZThn16_N5FF3323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG11133233barEv,_ZTv0_n16_N9GG11133233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11133233barEv,_ZThn48_N9GG11133233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11133233barEv,_ZThn40_N9GG11133233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11133233barEv,_ZTv0_n20_N9GG11133233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11133233barEv,_ZThn32_N9GG11133233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11133233fooEv,_ZTv0_n12_N9GG11133233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11133233fooEv,_ZThn48_N9GG11133233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11133233fooEv,_ZThn40_N9GG11133233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11133233fooEv,_ZThn24_N9GG11133233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11133233fooEv,_ZThn16_N9GG11133233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11133233fooEv,_ZTv0_n20_N9GG11133233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11133233fooEv,_ZThn8_N9GG11133233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1113323 = { "GG1113323", // class name
+ bases_GG1113323, 6,
+ &(vtc_GG1113323[0]), // expected_vtbl_contents
+ &(vtt_GG1113323[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1113323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1113323),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1113323),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names232,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1113331 : virtual EE111 , virtual FF333 {
+ int pg;
+ virtual void foo(); // _ZN9GG11133313fooEv
+ ~GG1113331(); // tgen
+ GG1113331(); // tgen
+};
+//SIG(1 GG1113331) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 v2 Fi} v1 v2 Fi} v1 Fi}
+
+
+void GG1113331 ::foo(){vfunc_called(this, "_ZN9GG11133313fooEv");}
+GG1113331 ::~GG1113331(){ note_dtor("GG1113331", this);} // tgen
+GG1113331 ::GG1113331(){ note_ctor("GG1113331", this);} // tgen
+
+static void Test_GG1113331()
+{
+ extern Class_Descriptor cd_GG1113331;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1113331, buf);
+ GG1113331 *dp, &lv = *(dp=new (buf) GG1113331());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1113331)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1113331)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1113331");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1113331");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1113331");
+ check_base_class_offset(lv, (AA3*)(FF333*), ABISELECT(80,40), "GG1113331");
+ check_base_class_offset(lv, (BB3*)(FF333*), ABISELECT(96,48), "GG1113331");
+ check_base_class_offset(lv, (FF333*), ABISELECT(64,32), "GG1113331");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1113331.pg");
+ test_class_info(&lv, &cd_GG1113331);
+ dp->~GG1113331();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1113331(Test_GG1113331, "GG1113331", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1113331C1Ev();
+extern void _ZN9GG1113331D1Ev();
+Name_Map name_map_GG1113331[] = {
+ NSPAIR(_ZN9GG1113331C1Ev),
+ NSPAIR(_ZN9GG1113331D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF333;
+extern VTBL_ENTRY _ZTI5FF333[];
+extern VTBL_ENTRY _ZTV5FF333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF333[];
+static Base_Class bases_GG1113331[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 37, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF333, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1113331[];
+extern void _ZN9GG11133313fooEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11133313fooEv,_ZTv0_n20_N9GG11133313fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11133313fooEv,_ZThn8_N9GG11133313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11133313fooEv,_ZTv0_n12_N9GG11133313fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11133313fooEv,_ZThn16_N9GG11133313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11133313fooEv,_ZTv0_n12_N9GG11133313fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11133313fooEv,_ZThn24_N9GG11133313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11133313fooEv,_ZTv0_n20_N9GG11133313fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11133313fooEv,_ZThn32_N9GG11133313fooEv)() __attribute__((weak));
+extern void _ZN5FF3333barEv();
+extern void ABISELECT(_ZTv0_n24_N9GG11133313fooEv,_ZTv0_n12_N9GG11133313fooEv)();
+extern void ABISELECT(_ZThn80_N9GG11133313fooEv,_ZThn40_N9GG11133313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+extern void ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11133313fooEv,_ZTv0_n12_N9GG11133313fooEv)();
+extern void ABISELECT(_ZThn96_N9GG11133313fooEv,_ZThn48_N9GG11133313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+extern void ABISELECT(_ZThn32_N5FF3333barEv,_ZThn16_N5FF3333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1113331[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1113331[0]),
+ (VTBL_ENTRY)&_ZN9GG11133313fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1113331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11133313fooEv,_ZTv0_n20_N9GG11133313fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1113331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11133313fooEv,_ZTv0_n12_N9GG11133313fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1113331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11133313fooEv,_ZTv0_n12_N9GG11133313fooEv),
+ 0,
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1113331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11133313fooEv,_ZTv0_n20_N9GG11133313fooEv),
+ (VTBL_ENTRY)&_ZN5FF3333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1113331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11133313fooEv,_ZTv0_n12_N9GG11133313fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1113331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11133313fooEv,_ZTv0_n12_N9GG11133313fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1113331[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1113331[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1113331[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1113331[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF3333fooEv();
+extern void _ZN5FF3333barEv();
+static VTBL_ENTRY _tg__ZTV5FF333__9GG1113331[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&_ZN5FF3333fooEv,
+ (VTBL_ENTRY)&_ZN5FF3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+extern void ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF333__9GG1113331[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3333fooEv,_ZThn16_N5FF3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+extern void ABISELECT(_ZThn32_N5FF3333barEv,_ZThn16_N5FF3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF333__9GG1113331[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+static VTT_ENTRY vtt_GG1113331[] = {
+ {&(_ZTV9GG1113331[8]), 8,43},
+ {&(_ZTV9GG1113331[14]), 14,43},
+ {&(_ZTV9GG1113331[18]), 18,43},
+ {&(_ZTV9GG1113331[22]), 22,43},
+ {&(_ZTV9GG1113331[29]), 29,43},
+ {&(_ZTV9GG1113331[35]), 35,43},
+ {&(_ZTV9GG1113331[41]), 41,43},
+ {&(_tg__ZTV5EE111__9GG1113331[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1113331[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1113331[3]), 3,4},
+ {&(_tg__ZTV5FF333__9GG1113331[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF333__9GG1113331[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF333__9GG1113331[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1113331[];
+extern VTBL_ENTRY _ZTV9GG1113331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1113331[];
+static VTBL_ENTRY alt_thunk_names233[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3333fooEv,_ZThn16_N5FF3333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3333barEv,_ZThn16_N5FF3333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3333barEv,_ZThn16_N5FF3333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11133313fooEv,_ZTv0_n12_N9GG11133313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11133313fooEv,_ZThn48_N9GG11133313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11133313fooEv,_ZThn40_N9GG11133313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11133313fooEv,_ZThn24_N9GG11133313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11133313fooEv,_ZThn16_N9GG11133313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11133313fooEv,_ZTv0_n20_N9GG11133313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11133313fooEv,_ZThn32_N9GG11133313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11133313fooEv,_ZThn8_N9GG11133313fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1113331 = { "GG1113331", // class name
+ bases_GG1113331, 6,
+ &(vtc_GG1113331[0]), // expected_vtbl_contents
+ &(vtt_GG1113331[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1113331),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1113331),43, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1113331),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names233,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1113333 : virtual EE111 , virtual FF333 {
+ int pg;
+ virtual void foo(); // _ZN9GG11133333fooEv
+ virtual void bar(); // _ZN9GG11133333barEv
+ ~GG1113333(); // tgen
+ GG1113333(); // tgen
+};
+//SIG(1 GG1113333) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1113333 ::foo(){vfunc_called(this, "_ZN9GG11133333fooEv");}
+void GG1113333 ::bar(){vfunc_called(this, "_ZN9GG11133333barEv");}
+GG1113333 ::~GG1113333(){ note_dtor("GG1113333", this);} // tgen
+GG1113333 ::GG1113333(){ note_ctor("GG1113333", this);} // tgen
+
+static void Test_GG1113333()
+{
+ extern Class_Descriptor cd_GG1113333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1113333, buf);
+ GG1113333 *dp, &lv = *(dp=new (buf) GG1113333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1113333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1113333)");
+ check_base_class_offset(lv, (AA1*)(EE111*), ABISELECT(32,16), "GG1113333");
+ check_base_class_offset(lv, (BB1*)(EE111*), ABISELECT(48,24), "GG1113333");
+ check_base_class_offset(lv, (EE111*), ABISELECT(16,8), "GG1113333");
+ check_base_class_offset(lv, (AA3*)(FF333*), ABISELECT(80,40), "GG1113333");
+ check_base_class_offset(lv, (BB3*)(FF333*), ABISELECT(96,48), "GG1113333");
+ check_base_class_offset(lv, (FF333*), ABISELECT(64,32), "GG1113333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1113333.pg");
+ test_class_info(&lv, &cd_GG1113333);
+ dp->~GG1113333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1113333(Test_GG1113333, "GG1113333", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1113333C1Ev();
+extern void _ZN9GG1113333D1Ev();
+Name_Map name_map_GG1113333[] = {
+ NSPAIR(_ZN9GG1113333C1Ev),
+ NSPAIR(_ZN9GG1113333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE111;
+extern VTBL_ENTRY _ZTI5EE111[];
+extern VTBL_ENTRY _ZTV5EE111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE111[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF333;
+extern VTBL_ENTRY _ZTI5FF333[];
+extern VTBL_ENTRY _ZTV5FF333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF333[];
+static Base_Class bases_GG1113333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE111, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF333, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1113333[];
+extern void _ZN9GG11133333fooEv();
+extern void _ZN9GG11133333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11133333fooEv,_ZTv0_n20_N9GG11133333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11133333fooEv,_ZThn8_N9GG11133333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11133333fooEv,_ZTv0_n12_N9GG11133333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11133333fooEv,_ZThn16_N9GG11133333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11133333fooEv,_ZTv0_n12_N9GG11133333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11133333fooEv,_ZThn24_N9GG11133333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11133333fooEv,_ZTv0_n20_N9GG11133333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11133333fooEv,_ZThn32_N9GG11133333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11133333barEv,_ZTv0_n24_N9GG11133333barEv)();
+extern void ABISELECT(_ZThn64_N9GG11133333barEv,_ZThn32_N9GG11133333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11133333fooEv,_ZTv0_n12_N9GG11133333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG11133333fooEv,_ZThn40_N9GG11133333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11133333barEv,_ZTv0_n16_N9GG11133333barEv)();
+extern void ABISELECT(_ZThn80_N9GG11133333barEv,_ZThn40_N9GG11133333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11133333fooEv,_ZTv0_n12_N9GG11133333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG11133333fooEv,_ZThn48_N9GG11133333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11133333barEv,_ZTv0_n16_N9GG11133333barEv)();
+extern void ABISELECT(_ZThn96_N9GG11133333barEv,_ZThn48_N9GG11133333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1113333[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1113333[0]),
+ (VTBL_ENTRY)&_ZN9GG11133333fooEv,
+ (VTBL_ENTRY)&_ZN9GG11133333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1113333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11133333fooEv,_ZTv0_n20_N9GG11133333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1113333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11133333fooEv,_ZTv0_n12_N9GG11133333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1113333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11133333fooEv,_ZTv0_n12_N9GG11133333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1113333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11133333fooEv,_ZTv0_n20_N9GG11133333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11133333barEv,_ZTv0_n24_N9GG11133333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1113333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11133333fooEv,_ZTv0_n12_N9GG11133333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11133333barEv,_ZTv0_n16_N9GG11133333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1113333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11133333fooEv,_ZTv0_n12_N9GG11133333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11133333barEv,_ZTv0_n16_N9GG11133333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1113333[];
+extern void _ZN5EE1113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE111__9GG1113333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&_ZN5EE1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE111__9GG1113333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE111__9GG1113333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv),
+};
+extern void _ZN5FF3333fooEv();
+extern void _ZN5FF3333barEv();
+static VTBL_ENTRY _tg__ZTV5FF333__9GG1113333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&_ZN5FF3333fooEv,
+ (VTBL_ENTRY)&_ZN5FF3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+extern void ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF333__9GG1113333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3333fooEv,_ZThn16_N5FF3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+extern void ABISELECT(_ZThn32_N5FF3333barEv,_ZThn16_N5FF3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF333__9GG1113333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+static VTT_ENTRY vtt_GG1113333[] = {
+ {&(_ZTV9GG1113333[8]), 8,44},
+ {&(_ZTV9GG1113333[15]), 15,44},
+ {&(_ZTV9GG1113333[19]), 19,44},
+ {&(_ZTV9GG1113333[23]), 23,44},
+ {&(_ZTV9GG1113333[30]), 30,44},
+ {&(_ZTV9GG1113333[36]), 36,44},
+ {&(_ZTV9GG1113333[42]), 42,44},
+ {&(_tg__ZTV5EE111__9GG1113333[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE111__9GG1113333[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE111__9GG1113333[3]), 3,4},
+ {&(_tg__ZTV5FF333__9GG1113333[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF333__9GG1113333[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF333__9GG1113333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1113333[];
+extern VTBL_ENTRY _ZTV9GG1113333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1113333[];
+static VTBL_ENTRY alt_thunk_names234[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3333barEv,_ZThn16_N5FF3333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3333fooEv,_ZThn16_N5FF3333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1113fooEv,_ZTv0_n12_N5EE1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1113fooEv,_ZThn16_N5EE1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1113fooEv,_ZThn8_N5EE1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG11133333barEv,_ZTv0_n16_N9GG11133333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11133333barEv,_ZThn48_N9GG11133333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11133333barEv,_ZThn40_N9GG11133333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG11133333barEv,_ZTv0_n24_N9GG11133333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11133333barEv,_ZThn32_N9GG11133333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11133333fooEv,_ZTv0_n12_N9GG11133333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11133333fooEv,_ZThn48_N9GG11133333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11133333fooEv,_ZThn40_N9GG11133333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11133333fooEv,_ZThn24_N9GG11133333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11133333fooEv,_ZThn16_N9GG11133333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11133333fooEv,_ZTv0_n20_N9GG11133333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11133333fooEv,_ZThn32_N9GG11133333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11133333fooEv,_ZThn8_N9GG11133333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1113333 = { "GG1113333", // class name
+ bases_GG1113333, 6,
+ &(vtc_GG1113333[0]), // expected_vtbl_contents
+ &(vtt_GG1113333[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1113333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1113333),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1113333),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names234,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1121111 : virtual EE112 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG11211113fooEv
+ ~GG1121111(); // tgen
+ GG1121111(); // tgen
+};
+//SIG(1 GG1121111) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC3 VBC4 v1 Fi} v1 Fi}
+
+
+void GG1121111 ::foo(){vfunc_called(this, "_ZN9GG11211113fooEv");}
+GG1121111 ::~GG1121111(){ note_dtor("GG1121111", this);} // tgen
+GG1121111 ::GG1121111(){ note_ctor("GG1121111", this);} // tgen
+
+static void Test_GG1121111()
+{
+ extern Class_Descriptor cd_GG1121111;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG1121111, buf);
+ GG1121111 *dp, &lv = *(dp=new (buf) GG1121111());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG1121111)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1121111)");
+ check_base_class_offset(lv, (AA1*)(EE112*), ABISELECT(32,16), "GG1121111");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(32,16), "GG1121111");
+ check_base_class_offset(lv, (BB1*)(EE112*), ABISELECT(48,24), "GG1121111");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(48,24), "GG1121111");
+ check_base_class_offset(lv, (EE112*), ABISELECT(16,8), "GG1121111");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG1121111");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1121111.pg");
+ test_class_info(&lv, &cd_GG1121111);
+ dp->~GG1121111();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1121111(Test_GG1121111, "GG1121111", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG1121111C1Ev();
+extern void _ZN9GG1121111D1Ev();
+Name_Map name_map_GG1121111[] = {
+ NSPAIR(_ZN9GG1121111C1Ev),
+ NSPAIR(_ZN9GG1121111D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE112;
+extern VTBL_ENTRY _ZTI5EE112[];
+extern VTBL_ENTRY _ZTV5EE112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE112[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG1121111[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 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_BB1, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE112, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1121111[];
+extern void _ZN9GG11211113fooEv();
+extern void _ZN5EE1123barEv();
+extern void ABISELECT(_ZTv0_n24_N9GG11211113fooEv,_ZTv0_n12_N9GG11211113fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11211113fooEv,_ZThn16_N9GG11211113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11211113fooEv,_ZTv0_n12_N9GG11211113fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11211113fooEv,_ZThn24_N9GG11211113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11211113fooEv,_ZTv0_n20_N9GG11211113fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11211113fooEv,_ZThn32_N9GG11211113fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1121111[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1121111[0]),
+ (VTBL_ENTRY)&_ZN9GG11211113fooEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1121111[0]),
+ (VTBL_ENTRY)&_ZN5EE1123barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1121111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11211113fooEv,_ZTv0_n12_N9GG11211113fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1121111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11211113fooEv,_ZTv0_n12_N9GG11211113fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1121111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11211113fooEv,_ZTv0_n20_N9GG11211113fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1121111[];
+extern void _ZN5EE1123barEv();
+static VTBL_ENTRY _tg__ZTV5EE112__9GG1121111[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN5EE1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE112__9GG1121111[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE112__9GG1121111[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG1121111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG1121111[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG1121111[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG1121111[] = {
+ {&(_ZTV9GG1121111[6]), 6,27},
+ {&(_ZTV9GG1121111[12]), 12,27},
+ {&(_ZTV9GG1121111[16]), 16,27},
+ {&(_ZTV9GG1121111[20]), 20,27},
+ {&(_ZTV9GG1121111[26]), 26,27},
+ {&(_tg__ZTV5EE112__9GG1121111[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE112__9GG1121111[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE112__9GG1121111[3]), 3,4},
+ {&(_tg__ZTV5FF111__9GG1121111[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG1121111[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG1121111[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1121111[];
+extern VTBL_ENTRY _ZTV9GG1121111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1121111[];
+static VTBL_ENTRY alt_thunk_names235[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11211113fooEv,_ZTv0_n20_N9GG11211113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11211113fooEv,_ZThn32_N9GG11211113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11211113fooEv,_ZTv0_n12_N9GG11211113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11211113fooEv,_ZThn24_N9GG11211113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11211113fooEv,_ZThn16_N9GG11211113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1121111 = { "GG1121111", // class name
+ bases_GG1121111, 4,
+ &(vtc_GG1121111[0]), // expected_vtbl_contents
+ &(vtt_GG1121111[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG1121111),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1121111),27, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1121111),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names235,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1121113 : virtual EE112 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG11211133fooEv
+ virtual void bar(); // _ZN9GG11211133barEv
+ ~GG1121113(); // tgen
+ GG1121113(); // tgen
+};
+//SIG(1 GG1121113) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC3 VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG1121113 ::foo(){vfunc_called(this, "_ZN9GG11211133fooEv");}
+void GG1121113 ::bar(){vfunc_called(this, "_ZN9GG11211133barEv");}
+GG1121113 ::~GG1121113(){ note_dtor("GG1121113", this);} // tgen
+GG1121113 ::GG1121113(){ note_ctor("GG1121113", this);} // tgen
+
+static void Test_GG1121113()
+{
+ extern Class_Descriptor cd_GG1121113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG1121113, buf);
+ GG1121113 *dp, &lv = *(dp=new (buf) GG1121113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG1121113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1121113)");
+ check_base_class_offset(lv, (AA1*)(EE112*), ABISELECT(32,16), "GG1121113");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(32,16), "GG1121113");
+ check_base_class_offset(lv, (BB1*)(EE112*), ABISELECT(48,24), "GG1121113");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(48,24), "GG1121113");
+ check_base_class_offset(lv, (EE112*), ABISELECT(16,8), "GG1121113");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG1121113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1121113.pg");
+ test_class_info(&lv, &cd_GG1121113);
+ dp->~GG1121113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1121113(Test_GG1121113, "GG1121113", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG1121113C1Ev();
+extern void _ZN9GG1121113D1Ev();
+Name_Map name_map_GG1121113[] = {
+ NSPAIR(_ZN9GG1121113C1Ev),
+ NSPAIR(_ZN9GG1121113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE112;
+extern VTBL_ENTRY _ZTI5EE112[];
+extern VTBL_ENTRY _ZTV5EE112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE112[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG1121113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE112, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1121113[];
+extern void _ZN9GG11211133fooEv();
+extern void _ZN9GG11211133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11211133barEv,_ZTv0_n20_N9GG11211133barEv)();
+extern void ABISELECT(_ZThn16_N9GG11211133barEv,_ZThn8_N9GG11211133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11211133fooEv,_ZTv0_n12_N9GG11211133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11211133fooEv,_ZThn16_N9GG11211133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11211133fooEv,_ZTv0_n12_N9GG11211133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11211133fooEv,_ZThn24_N9GG11211133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11211133fooEv,_ZTv0_n20_N9GG11211133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11211133fooEv,_ZThn32_N9GG11211133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1121113[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1121113[0]),
+ (VTBL_ENTRY)&_ZN9GG11211133fooEv,
+ (VTBL_ENTRY)&_ZN9GG11211133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1121113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11211133barEv,_ZTv0_n20_N9GG11211133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1121113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11211133fooEv,_ZTv0_n12_N9GG11211133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1121113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11211133fooEv,_ZTv0_n12_N9GG11211133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1121113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11211133fooEv,_ZTv0_n20_N9GG11211133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1121113[];
+extern void _ZN5EE1123barEv();
+static VTBL_ENTRY _tg__ZTV5EE112__9GG1121113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN5EE1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE112__9GG1121113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE112__9GG1121113[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG1121113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG1121113[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG1121113[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG1121113[] = {
+ {&(_ZTV9GG1121113[6]), 6,28},
+ {&(_ZTV9GG1121113[13]), 13,28},
+ {&(_ZTV9GG1121113[17]), 17,28},
+ {&(_ZTV9GG1121113[21]), 21,28},
+ {&(_ZTV9GG1121113[27]), 27,28},
+ {&(_tg__ZTV5EE112__9GG1121113[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE112__9GG1121113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE112__9GG1121113[3]), 3,4},
+ {&(_tg__ZTV5FF111__9GG1121113[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG1121113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG1121113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1121113[];
+extern VTBL_ENTRY _ZTV9GG1121113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1121113[];
+static VTBL_ENTRY alt_thunk_names236[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11211133fooEv,_ZTv0_n20_N9GG11211133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11211133fooEv,_ZThn32_N9GG11211133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11211133fooEv,_ZTv0_n12_N9GG11211133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11211133fooEv,_ZThn24_N9GG11211133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11211133fooEv,_ZThn16_N9GG11211133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11211133barEv,_ZTv0_n20_N9GG11211133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11211133barEv,_ZThn8_N9GG11211133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1121113 = { "GG1121113", // class name
+ bases_GG1121113, 4,
+ &(vtc_GG1121113[0]), // expected_vtbl_contents
+ &(vtt_GG1121113[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG1121113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1121113),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1121113),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names236,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1121123 : virtual EE112 , virtual FF112 {
+ int pg;
+ virtual void foo(); // _ZN9GG11211233fooEv
+ virtual void bar(); // _ZN9GG11211233barEv
+ ~GG1121123(); // tgen
+ GG1121123(); // tgen
+};
+//SIG(1 GG1121123) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC3 VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG1121123 ::foo(){vfunc_called(this, "_ZN9GG11211233fooEv");}
+void GG1121123 ::bar(){vfunc_called(this, "_ZN9GG11211233barEv");}
+GG1121123 ::~GG1121123(){ note_dtor("GG1121123", this);} // tgen
+GG1121123 ::GG1121123(){ note_ctor("GG1121123", this);} // tgen
+
+static void Test_GG1121123()
+{
+ extern Class_Descriptor cd_GG1121123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG1121123, buf);
+ GG1121123 *dp, &lv = *(dp=new (buf) GG1121123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG1121123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1121123)");
+ check_base_class_offset(lv, (AA1*)(EE112*), ABISELECT(32,16), "GG1121123");
+ check_base_class_offset(lv, (AA1*)(FF112*), ABISELECT(32,16), "GG1121123");
+ check_base_class_offset(lv, (BB1*)(EE112*), ABISELECT(48,24), "GG1121123");
+ check_base_class_offset(lv, (BB1*)(FF112*), ABISELECT(48,24), "GG1121123");
+ check_base_class_offset(lv, (EE112*), ABISELECT(16,8), "GG1121123");
+ check_base_class_offset(lv, (FF112*), ABISELECT(64,32), "GG1121123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1121123.pg");
+ test_class_info(&lv, &cd_GG1121123);
+ dp->~GG1121123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1121123(Test_GG1121123, "GG1121123", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG1121123C1Ev();
+extern void _ZN9GG1121123D1Ev();
+Name_Map name_map_GG1121123[] = {
+ NSPAIR(_ZN9GG1121123C1Ev),
+ NSPAIR(_ZN9GG1121123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE112;
+extern VTBL_ENTRY _ZTI5EE112[];
+extern VTBL_ENTRY _ZTV5EE112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE112[];
+extern Class_Descriptor cd_FF112;
+extern VTBL_ENTRY _ZTI5FF112[];
+extern VTBL_ENTRY _ZTV5FF112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF112[];
+static Base_Class bases_GG1121123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE112, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF112, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1121123[];
+extern void _ZN9GG11211233fooEv();
+extern void _ZN9GG11211233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11211233barEv,_ZTv0_n20_N9GG11211233barEv)();
+extern void ABISELECT(_ZThn16_N9GG11211233barEv,_ZThn8_N9GG11211233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11211233fooEv,_ZTv0_n12_N9GG11211233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11211233fooEv,_ZThn16_N9GG11211233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11211233fooEv,_ZTv0_n12_N9GG11211233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11211233fooEv,_ZThn24_N9GG11211233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11211233barEv,_ZTv0_n20_N9GG11211233barEv)();
+extern void ABISELECT(_ZThn64_N9GG11211233barEv,_ZThn32_N9GG11211233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1121123[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1121123[0]),
+ (VTBL_ENTRY)&_ZN9GG11211233fooEv,
+ (VTBL_ENTRY)&_ZN9GG11211233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1121123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11211233barEv,_ZTv0_n20_N9GG11211233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1121123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11211233fooEv,_ZTv0_n12_N9GG11211233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1121123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11211233fooEv,_ZTv0_n12_N9GG11211233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1121123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11211233barEv,_ZTv0_n20_N9GG11211233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1121123[];
+extern void _ZN5EE1123barEv();
+static VTBL_ENTRY _tg__ZTV5EE112__9GG1121123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN5EE1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE112__9GG1121123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE112__9GG1121123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF1123barEv();
+static VTBL_ENTRY _tg__ZTV5FF112__9GG1121123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN5FF1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF112__9GG1121123[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF112__9GG1121123[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG1121123[] = {
+ {&(_ZTV9GG1121123[6]), 6,28},
+ {&(_ZTV9GG1121123[13]), 13,28},
+ {&(_ZTV9GG1121123[17]), 17,28},
+ {&(_ZTV9GG1121123[21]), 21,28},
+ {&(_ZTV9GG1121123[27]), 27,28},
+ {&(_tg__ZTV5EE112__9GG1121123[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE112__9GG1121123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE112__9GG1121123[3]), 3,4},
+ {&(_tg__ZTV5FF112__9GG1121123[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF112__9GG1121123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF112__9GG1121123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1121123[];
+extern VTBL_ENTRY _ZTV9GG1121123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1121123[];
+static VTBL_ENTRY alt_thunk_names237[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11211233fooEv,_ZTv0_n12_N9GG11211233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11211233fooEv,_ZThn24_N9GG11211233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11211233fooEv,_ZThn16_N9GG11211233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11211233barEv,_ZTv0_n20_N9GG11211233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11211233barEv,_ZThn32_N9GG11211233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11211233barEv,_ZThn8_N9GG11211233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1121123 = { "GG1121123", // class name
+ bases_GG1121123, 4,
+ &(vtc_GG1121123[0]), // expected_vtbl_contents
+ &(vtt_GG1121123[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG1121123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1121123),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1121123),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names237,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1121133 : virtual EE112 , virtual FF113 {
+ int pg;
+ virtual void foo(); // _ZN9GG11211333fooEv
+ virtual void bar(); // _ZN9GG11211333barEv
+ ~GG1121133(); // tgen
+ GG1121133(); // tgen
+};
+//SIG(1 GG1121133) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC3 VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1121133 ::foo(){vfunc_called(this, "_ZN9GG11211333fooEv");}
+void GG1121133 ::bar(){vfunc_called(this, "_ZN9GG11211333barEv");}
+GG1121133 ::~GG1121133(){ note_dtor("GG1121133", this);} // tgen
+GG1121133 ::GG1121133(){ note_ctor("GG1121133", this);} // tgen
+
+static void Test_GG1121133()
+{
+ extern Class_Descriptor cd_GG1121133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG1121133, buf);
+ GG1121133 *dp, &lv = *(dp=new (buf) GG1121133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG1121133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1121133)");
+ check_base_class_offset(lv, (AA1*)(EE112*), ABISELECT(32,16), "GG1121133");
+ check_base_class_offset(lv, (AA1*)(FF113*), ABISELECT(32,16), "GG1121133");
+ check_base_class_offset(lv, (BB1*)(EE112*), ABISELECT(48,24), "GG1121133");
+ check_base_class_offset(lv, (BB1*)(FF113*), ABISELECT(48,24), "GG1121133");
+ check_base_class_offset(lv, (EE112*), ABISELECT(16,8), "GG1121133");
+ check_base_class_offset(lv, (FF113*), ABISELECT(64,32), "GG1121133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1121133.pg");
+ test_class_info(&lv, &cd_GG1121133);
+ dp->~GG1121133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1121133(Test_GG1121133, "GG1121133", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG1121133C1Ev();
+extern void _ZN9GG1121133D1Ev();
+Name_Map name_map_GG1121133[] = {
+ NSPAIR(_ZN9GG1121133C1Ev),
+ NSPAIR(_ZN9GG1121133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE112;
+extern VTBL_ENTRY _ZTI5EE112[];
+extern VTBL_ENTRY _ZTV5EE112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE112[];
+extern Class_Descriptor cd_FF113;
+extern VTBL_ENTRY _ZTI5FF113[];
+extern VTBL_ENTRY _ZTV5FF113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF113[];
+static Base_Class bases_GG1121133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE112, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF113, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1121133[];
+extern void _ZN9GG11211333fooEv();
+extern void _ZN9GG11211333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11211333barEv,_ZTv0_n20_N9GG11211333barEv)();
+extern void ABISELECT(_ZThn16_N9GG11211333barEv,_ZThn8_N9GG11211333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11211333fooEv,_ZTv0_n12_N9GG11211333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11211333fooEv,_ZThn16_N9GG11211333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11211333fooEv,_ZTv0_n12_N9GG11211333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11211333fooEv,_ZThn24_N9GG11211333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11211333fooEv,_ZTv0_n20_N9GG11211333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11211333fooEv,_ZThn32_N9GG11211333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11211333barEv,_ZTv0_n24_N9GG11211333barEv)();
+extern void ABISELECT(_ZThn64_N9GG11211333barEv,_ZThn32_N9GG11211333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1121133[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1121133[0]),
+ (VTBL_ENTRY)&_ZN9GG11211333fooEv,
+ (VTBL_ENTRY)&_ZN9GG11211333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1121133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11211333barEv,_ZTv0_n20_N9GG11211333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1121133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11211333fooEv,_ZTv0_n12_N9GG11211333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1121133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11211333fooEv,_ZTv0_n12_N9GG11211333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1121133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11211333fooEv,_ZTv0_n20_N9GG11211333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11211333barEv,_ZTv0_n24_N9GG11211333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1121133[];
+extern void _ZN5EE1123barEv();
+static VTBL_ENTRY _tg__ZTV5EE112__9GG1121133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN5EE1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE112__9GG1121133[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE112__9GG1121133[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF1133fooEv();
+extern void _ZN5FF1133barEv();
+static VTBL_ENTRY _tg__ZTV5FF113__9GG1121133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&_ZN5FF1133fooEv,
+ (VTBL_ENTRY)&_ZN5FF1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF113__9GG1121133[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF113__9GG1121133[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+static VTT_ENTRY vtt_GG1121133[] = {
+ {&(_ZTV9GG1121133[6]), 6,30},
+ {&(_ZTV9GG1121133[13]), 13,30},
+ {&(_ZTV9GG1121133[17]), 17,30},
+ {&(_ZTV9GG1121133[21]), 21,30},
+ {&(_ZTV9GG1121133[28]), 28,30},
+ {&(_tg__ZTV5EE112__9GG1121133[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE112__9GG1121133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE112__9GG1121133[3]), 3,4},
+ {&(_tg__ZTV5FF113__9GG1121133[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF113__9GG1121133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF113__9GG1121133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1121133[];
+extern VTBL_ENTRY _ZTV9GG1121133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1121133[];
+static VTBL_ENTRY alt_thunk_names238[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG11211333barEv,_ZTv0_n24_N9GG11211333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11211333barEv,_ZThn32_N9GG11211333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11211333fooEv,_ZTv0_n20_N9GG11211333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11211333fooEv,_ZThn32_N9GG11211333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11211333fooEv,_ZTv0_n12_N9GG11211333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11211333fooEv,_ZThn24_N9GG11211333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11211333fooEv,_ZThn16_N9GG11211333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11211333barEv,_ZTv0_n20_N9GG11211333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11211333barEv,_ZThn8_N9GG11211333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1121133 = { "GG1121133", // class name
+ bases_GG1121133, 4,
+ &(vtc_GG1121133[0]), // expected_vtbl_contents
+ &(vtt_GG1121133[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG1121133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1121133),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1121133),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names238,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1121213 : virtual EE112 , virtual FF121 {
+ int pg;
+ virtual void foo(); // _ZN9GG11212133fooEv
+ virtual void bar(); // _ZN9GG11212133barEv
+ ~GG1121213(); // tgen
+ GG1121213(); // tgen
+};
+//SIG(1 GG1121213) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1121213 ::foo(){vfunc_called(this, "_ZN9GG11212133fooEv");}
+void GG1121213 ::bar(){vfunc_called(this, "_ZN9GG11212133barEv");}
+GG1121213 ::~GG1121213(){ note_dtor("GG1121213", this);} // tgen
+GG1121213 ::GG1121213(){ note_ctor("GG1121213", this);} // tgen
+
+static void Test_GG1121213()
+{
+ extern Class_Descriptor cd_GG1121213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1121213, buf);
+ GG1121213 *dp, &lv = *(dp=new (buf) GG1121213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1121213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1121213)");
+ check_base_class_offset(lv, (AA1*)(EE112*), ABISELECT(32,16), "GG1121213");
+ check_base_class_offset(lv, (AA1*)(FF121*), ABISELECT(32,16), "GG1121213");
+ check_base_class_offset(lv, (BB1*)(EE112*), ABISELECT(48,24), "GG1121213");
+ check_base_class_offset(lv, (EE112*), ABISELECT(16,8), "GG1121213");
+ check_base_class_offset(lv, (BB2*)(FF121*), ABISELECT(80,40), "GG1121213");
+ check_base_class_offset(lv, (FF121*), ABISELECT(64,32), "GG1121213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1121213.pg");
+ test_class_info(&lv, &cd_GG1121213);
+ dp->~GG1121213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1121213(Test_GG1121213, "GG1121213", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1121213C1Ev();
+extern void _ZN9GG1121213D1Ev();
+Name_Map name_map_GG1121213[] = {
+ NSPAIR(_ZN9GG1121213C1Ev),
+ NSPAIR(_ZN9GG1121213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE112;
+extern VTBL_ENTRY _ZTI5EE112[];
+extern VTBL_ENTRY _ZTV5EE112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE112[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF121;
+extern VTBL_ENTRY _ZTI5FF121[];
+extern VTBL_ENTRY _ZTV5FF121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF121[];
+static Base_Class bases_GG1121213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE112, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF121, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1121213[];
+extern void _ZN9GG11212133fooEv();
+extern void _ZN9GG11212133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11212133barEv,_ZTv0_n20_N9GG11212133barEv)();
+extern void ABISELECT(_ZThn16_N9GG11212133barEv,_ZThn8_N9GG11212133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11212133fooEv,_ZTv0_n12_N9GG11212133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11212133fooEv,_ZThn16_N9GG11212133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11212133fooEv,_ZTv0_n12_N9GG11212133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11212133fooEv,_ZThn24_N9GG11212133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11212133fooEv,_ZTv0_n20_N9GG11212133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11212133fooEv,_ZThn32_N9GG11212133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11212133barEv,_ZTv0_n12_N9GG11212133barEv)();
+extern void ABISELECT(_ZThn80_N9GG11212133barEv,_ZThn40_N9GG11212133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1121213[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1121213[0]),
+ (VTBL_ENTRY)&_ZN9GG11212133fooEv,
+ (VTBL_ENTRY)&_ZN9GG11212133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1121213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11212133barEv,_ZTv0_n20_N9GG11212133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1121213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11212133fooEv,_ZTv0_n12_N9GG11212133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1121213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11212133fooEv,_ZTv0_n12_N9GG11212133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1121213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11212133fooEv,_ZTv0_n20_N9GG11212133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1121213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11212133barEv,_ZTv0_n12_N9GG11212133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1121213[];
+extern void _ZN5EE1123barEv();
+static VTBL_ENTRY _tg__ZTV5EE112__9GG1121213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN5EE1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE112__9GG1121213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE112__9GG1121213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF1213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF121__9GG1121213[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN5FF1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF121__9GG1121213[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF121__9GG1121213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG1121213[] = {
+ {&(_ZTV9GG1121213[7]), 7,33},
+ {&(_ZTV9GG1121213[14]), 14,33},
+ {&(_ZTV9GG1121213[18]), 18,33},
+ {&(_ZTV9GG1121213[22]), 22,33},
+ {&(_ZTV9GG1121213[28]), 28,33},
+ {&(_ZTV9GG1121213[32]), 32,33},
+ {&(_tg__ZTV5EE112__9GG1121213[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE112__9GG1121213[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE112__9GG1121213[3]), 3,4},
+ {&(_tg__ZTV5FF121__9GG1121213[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF121__9GG1121213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF121__9GG1121213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1121213[];
+extern VTBL_ENTRY _ZTV9GG1121213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1121213[];
+static VTBL_ENTRY alt_thunk_names239[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11212133barEv,_ZTv0_n12_N9GG11212133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11212133barEv,_ZThn40_N9GG11212133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11212133fooEv,_ZTv0_n20_N9GG11212133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11212133fooEv,_ZThn32_N9GG11212133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11212133fooEv,_ZTv0_n12_N9GG11212133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11212133fooEv,_ZThn24_N9GG11212133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11212133fooEv,_ZThn16_N9GG11212133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11212133barEv,_ZTv0_n20_N9GG11212133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11212133barEv,_ZThn8_N9GG11212133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1121213 = { "GG1121213", // class name
+ bases_GG1121213, 5,
+ &(vtc_GG1121213[0]), // expected_vtbl_contents
+ &(vtt_GG1121213[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1121213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1121213),33, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1121213),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names239,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1121223 : virtual EE112 , virtual FF122 {
+ int pg;
+ virtual void foo(); // _ZN9GG11212233fooEv
+ virtual void bar(); // _ZN9GG11212233barEv
+ ~GG1121223(); // tgen
+ GG1121223(); // tgen
+};
+//SIG(1 GG1121223) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1121223 ::foo(){vfunc_called(this, "_ZN9GG11212233fooEv");}
+void GG1121223 ::bar(){vfunc_called(this, "_ZN9GG11212233barEv");}
+GG1121223 ::~GG1121223(){ note_dtor("GG1121223", this);} // tgen
+GG1121223 ::GG1121223(){ note_ctor("GG1121223", this);} // tgen
+
+static void Test_GG1121223()
+{
+ extern Class_Descriptor cd_GG1121223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1121223, buf);
+ GG1121223 *dp, &lv = *(dp=new (buf) GG1121223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1121223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1121223)");
+ check_base_class_offset(lv, (AA1*)(EE112*), ABISELECT(32,16), "GG1121223");
+ check_base_class_offset(lv, (AA1*)(FF122*), ABISELECT(32,16), "GG1121223");
+ check_base_class_offset(lv, (BB1*)(EE112*), ABISELECT(48,24), "GG1121223");
+ check_base_class_offset(lv, (EE112*), ABISELECT(16,8), "GG1121223");
+ check_base_class_offset(lv, (BB2*)(FF122*), ABISELECT(80,40), "GG1121223");
+ check_base_class_offset(lv, (FF122*), ABISELECT(64,32), "GG1121223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1121223.pg");
+ test_class_info(&lv, &cd_GG1121223);
+ dp->~GG1121223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1121223(Test_GG1121223, "GG1121223", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1121223C1Ev();
+extern void _ZN9GG1121223D1Ev();
+Name_Map name_map_GG1121223[] = {
+ NSPAIR(_ZN9GG1121223C1Ev),
+ NSPAIR(_ZN9GG1121223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE112;
+extern VTBL_ENTRY _ZTI5EE112[];
+extern VTBL_ENTRY _ZTV5EE112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE112[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF122;
+extern VTBL_ENTRY _ZTI5FF122[];
+extern VTBL_ENTRY _ZTV5FF122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF122[];
+static Base_Class bases_GG1121223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE112, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF122, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1121223[];
+extern void _ZN9GG11212233fooEv();
+extern void _ZN9GG11212233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11212233barEv,_ZTv0_n20_N9GG11212233barEv)();
+extern void ABISELECT(_ZThn16_N9GG11212233barEv,_ZThn8_N9GG11212233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11212233fooEv,_ZTv0_n12_N9GG11212233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11212233fooEv,_ZThn16_N9GG11212233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11212233fooEv,_ZTv0_n12_N9GG11212233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11212233fooEv,_ZThn24_N9GG11212233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11212233barEv,_ZTv0_n20_N9GG11212233barEv)();
+extern void ABISELECT(_ZThn64_N9GG11212233barEv,_ZThn32_N9GG11212233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11212233barEv,_ZTv0_n12_N9GG11212233barEv)();
+extern void ABISELECT(_ZThn80_N9GG11212233barEv,_ZThn40_N9GG11212233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1121223[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1121223[0]),
+ (VTBL_ENTRY)&_ZN9GG11212233fooEv,
+ (VTBL_ENTRY)&_ZN9GG11212233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1121223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11212233barEv,_ZTv0_n20_N9GG11212233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1121223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11212233fooEv,_ZTv0_n12_N9GG11212233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1121223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11212233fooEv,_ZTv0_n12_N9GG11212233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1121223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11212233barEv,_ZTv0_n20_N9GG11212233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1121223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11212233barEv,_ZTv0_n12_N9GG11212233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1121223[];
+extern void _ZN5EE1123barEv();
+static VTBL_ENTRY _tg__ZTV5EE112__9GG1121223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN5EE1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE112__9GG1121223[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE112__9GG1121223[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF1223barEv();
+static VTBL_ENTRY _tg__ZTV5FF122__9GG1121223[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN5FF1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF122__9GG1121223[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv)();
+extern void ABISELECT(_ZThn16_N5FF1223barEv,_ZThn8_N5FF1223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF122__9GG1121223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv),
+};
+static VTT_ENTRY vtt_GG1121223[] = {
+ {&(_ZTV9GG1121223[7]), 7,33},
+ {&(_ZTV9GG1121223[14]), 14,33},
+ {&(_ZTV9GG1121223[18]), 18,33},
+ {&(_ZTV9GG1121223[22]), 22,33},
+ {&(_ZTV9GG1121223[28]), 28,33},
+ {&(_ZTV9GG1121223[32]), 32,33},
+ {&(_tg__ZTV5EE112__9GG1121223[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE112__9GG1121223[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE112__9GG1121223[3]), 3,4},
+ {&(_tg__ZTV5FF122__9GG1121223[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF122__9GG1121223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF122__9GG1121223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1121223[];
+extern VTBL_ENTRY _ZTV9GG1121223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1121223[];
+static VTBL_ENTRY alt_thunk_names240[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1223barEv,_ZThn8_N5FF1223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11212233barEv,_ZTv0_n12_N9GG11212233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11212233barEv,_ZThn40_N9GG11212233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11212233fooEv,_ZTv0_n12_N9GG11212233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11212233fooEv,_ZThn24_N9GG11212233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11212233fooEv,_ZThn16_N9GG11212233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11212233barEv,_ZTv0_n20_N9GG11212233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11212233barEv,_ZThn32_N9GG11212233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11212233barEv,_ZThn8_N9GG11212233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1121223 = { "GG1121223", // class name
+ bases_GG1121223, 5,
+ &(vtc_GG1121223[0]), // expected_vtbl_contents
+ &(vtt_GG1121223[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1121223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1121223),33, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1121223),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names240,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1121233 : virtual EE112 , virtual FF123 {
+ int pg;
+ virtual void foo(); // _ZN9GG11212333fooEv
+ virtual void bar(); // _ZN9GG11212333barEv
+ ~GG1121233(); // tgen
+ GG1121233(); // tgen
+};
+//SIG(1 GG1121233) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1121233 ::foo(){vfunc_called(this, "_ZN9GG11212333fooEv");}
+void GG1121233 ::bar(){vfunc_called(this, "_ZN9GG11212333barEv");}
+GG1121233 ::~GG1121233(){ note_dtor("GG1121233", this);} // tgen
+GG1121233 ::GG1121233(){ note_ctor("GG1121233", this);} // tgen
+
+static void Test_GG1121233()
+{
+ extern Class_Descriptor cd_GG1121233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1121233, buf);
+ GG1121233 *dp, &lv = *(dp=new (buf) GG1121233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1121233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1121233)");
+ check_base_class_offset(lv, (AA1*)(EE112*), ABISELECT(32,16), "GG1121233");
+ check_base_class_offset(lv, (AA1*)(FF123*), ABISELECT(32,16), "GG1121233");
+ check_base_class_offset(lv, (BB1*)(EE112*), ABISELECT(48,24), "GG1121233");
+ check_base_class_offset(lv, (EE112*), ABISELECT(16,8), "GG1121233");
+ check_base_class_offset(lv, (BB2*)(FF123*), ABISELECT(80,40), "GG1121233");
+ check_base_class_offset(lv, (FF123*), ABISELECT(64,32), "GG1121233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1121233.pg");
+ test_class_info(&lv, &cd_GG1121233);
+ dp->~GG1121233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1121233(Test_GG1121233, "GG1121233", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1121233C1Ev();
+extern void _ZN9GG1121233D1Ev();
+Name_Map name_map_GG1121233[] = {
+ NSPAIR(_ZN9GG1121233C1Ev),
+ NSPAIR(_ZN9GG1121233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE112;
+extern VTBL_ENTRY _ZTI5EE112[];
+extern VTBL_ENTRY _ZTV5EE112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE112[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF123;
+extern VTBL_ENTRY _ZTI5FF123[];
+extern VTBL_ENTRY _ZTV5FF123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF123[];
+static Base_Class bases_GG1121233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE112, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF123, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1121233[];
+extern void _ZN9GG11212333fooEv();
+extern void _ZN9GG11212333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11212333barEv,_ZTv0_n20_N9GG11212333barEv)();
+extern void ABISELECT(_ZThn16_N9GG11212333barEv,_ZThn8_N9GG11212333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11212333fooEv,_ZTv0_n12_N9GG11212333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11212333fooEv,_ZThn16_N9GG11212333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11212333fooEv,_ZTv0_n12_N9GG11212333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11212333fooEv,_ZThn24_N9GG11212333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11212333fooEv,_ZTv0_n20_N9GG11212333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11212333fooEv,_ZThn32_N9GG11212333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11212333barEv,_ZTv0_n24_N9GG11212333barEv)();
+extern void ABISELECT(_ZThn64_N9GG11212333barEv,_ZThn32_N9GG11212333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11212333barEv,_ZTv0_n12_N9GG11212333barEv)();
+extern void ABISELECT(_ZThn80_N9GG11212333barEv,_ZThn40_N9GG11212333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1121233[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1121233[0]),
+ (VTBL_ENTRY)&_ZN9GG11212333fooEv,
+ (VTBL_ENTRY)&_ZN9GG11212333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1121233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11212333barEv,_ZTv0_n20_N9GG11212333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1121233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11212333fooEv,_ZTv0_n12_N9GG11212333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1121233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11212333fooEv,_ZTv0_n12_N9GG11212333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1121233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11212333fooEv,_ZTv0_n20_N9GG11212333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11212333barEv,_ZTv0_n24_N9GG11212333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1121233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11212333barEv,_ZTv0_n12_N9GG11212333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1121233[];
+extern void _ZN5EE1123barEv();
+static VTBL_ENTRY _tg__ZTV5EE112__9GG1121233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN5EE1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE112__9GG1121233[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE112__9GG1121233[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF1233fooEv();
+extern void _ZN5FF1233barEv();
+static VTBL_ENTRY _tg__ZTV5FF123__9GG1121233[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&_ZN5FF1233fooEv,
+ (VTBL_ENTRY)&_ZN5FF1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF123__9GG1121233[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv)();
+extern void ABISELECT(_ZThn16_N5FF1233barEv,_ZThn8_N5FF1233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF123__9GG1121233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv),
+};
+static VTT_ENTRY vtt_GG1121233[] = {
+ {&(_ZTV9GG1121233[7]), 7,35},
+ {&(_ZTV9GG1121233[14]), 14,35},
+ {&(_ZTV9GG1121233[18]), 18,35},
+ {&(_ZTV9GG1121233[22]), 22,35},
+ {&(_ZTV9GG1121233[29]), 29,35},
+ {&(_ZTV9GG1121233[34]), 34,35},
+ {&(_tg__ZTV5EE112__9GG1121233[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE112__9GG1121233[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE112__9GG1121233[3]), 3,4},
+ {&(_tg__ZTV5FF123__9GG1121233[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF123__9GG1121233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF123__9GG1121233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1121233[];
+extern VTBL_ENTRY _ZTV9GG1121233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1121233[];
+static VTBL_ENTRY alt_thunk_names241[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1233barEv,_ZThn8_N5FF1233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11212333barEv,_ZTv0_n12_N9GG11212333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11212333barEv,_ZThn40_N9GG11212333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG11212333barEv,_ZTv0_n24_N9GG11212333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11212333barEv,_ZThn32_N9GG11212333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11212333fooEv,_ZTv0_n20_N9GG11212333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11212333fooEv,_ZThn32_N9GG11212333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11212333fooEv,_ZTv0_n12_N9GG11212333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11212333fooEv,_ZThn24_N9GG11212333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11212333fooEv,_ZThn16_N9GG11212333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11212333barEv,_ZTv0_n20_N9GG11212333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11212333barEv,_ZThn8_N9GG11212333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1121233 = { "GG1121233", // class name
+ bases_GG1121233, 5,
+ &(vtc_GG1121233[0]), // expected_vtbl_contents
+ &(vtt_GG1121233[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1121233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1121233),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1121233),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names241,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1121313 : virtual EE112 , virtual FF131 {
+ int pg;
+ virtual void foo(); // _ZN9GG11213133fooEv
+ virtual void bar(); // _ZN9GG11213133barEv
+ ~GG1121313(); // tgen
+ GG1121313(); // tgen
+};
+//SIG(1 GG1121313) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1121313 ::foo(){vfunc_called(this, "_ZN9GG11213133fooEv");}
+void GG1121313 ::bar(){vfunc_called(this, "_ZN9GG11213133barEv");}
+GG1121313 ::~GG1121313(){ note_dtor("GG1121313", this);} // tgen
+GG1121313 ::GG1121313(){ note_ctor("GG1121313", this);} // tgen
+
+static void Test_GG1121313()
+{
+ extern Class_Descriptor cd_GG1121313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1121313, buf);
+ GG1121313 *dp, &lv = *(dp=new (buf) GG1121313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1121313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1121313)");
+ check_base_class_offset(lv, (AA1*)(EE112*), ABISELECT(32,16), "GG1121313");
+ check_base_class_offset(lv, (AA1*)(FF131*), ABISELECT(32,16), "GG1121313");
+ check_base_class_offset(lv, (BB1*)(EE112*), ABISELECT(48,24), "GG1121313");
+ check_base_class_offset(lv, (EE112*), ABISELECT(16,8), "GG1121313");
+ check_base_class_offset(lv, (BB3*)(FF131*), ABISELECT(80,40), "GG1121313");
+ check_base_class_offset(lv, (FF131*), ABISELECT(64,32), "GG1121313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1121313.pg");
+ test_class_info(&lv, &cd_GG1121313);
+ dp->~GG1121313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1121313(Test_GG1121313, "GG1121313", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1121313C1Ev();
+extern void _ZN9GG1121313D1Ev();
+Name_Map name_map_GG1121313[] = {
+ NSPAIR(_ZN9GG1121313C1Ev),
+ NSPAIR(_ZN9GG1121313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE112;
+extern VTBL_ENTRY _ZTI5EE112[];
+extern VTBL_ENTRY _ZTV5EE112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE112[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF131;
+extern VTBL_ENTRY _ZTI5FF131[];
+extern VTBL_ENTRY _ZTV5FF131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF131[];
+static Base_Class bases_GG1121313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE112, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF131, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1121313[];
+extern void _ZN9GG11213133fooEv();
+extern void _ZN9GG11213133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11213133barEv,_ZTv0_n20_N9GG11213133barEv)();
+extern void ABISELECT(_ZThn16_N9GG11213133barEv,_ZThn8_N9GG11213133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11213133fooEv,_ZTv0_n12_N9GG11213133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11213133fooEv,_ZThn16_N9GG11213133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11213133fooEv,_ZTv0_n12_N9GG11213133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11213133fooEv,_ZThn24_N9GG11213133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11213133fooEv,_ZTv0_n20_N9GG11213133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11213133fooEv,_ZThn32_N9GG11213133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11213133fooEv,_ZTv0_n12_N9GG11213133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG11213133fooEv,_ZThn40_N9GG11213133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11213133barEv,_ZTv0_n16_N9GG11213133barEv)();
+extern void ABISELECT(_ZThn80_N9GG11213133barEv,_ZThn40_N9GG11213133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1121313[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1121313[0]),
+ (VTBL_ENTRY)&_ZN9GG11213133fooEv,
+ (VTBL_ENTRY)&_ZN9GG11213133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1121313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11213133barEv,_ZTv0_n20_N9GG11213133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1121313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11213133fooEv,_ZTv0_n12_N9GG11213133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1121313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11213133fooEv,_ZTv0_n12_N9GG11213133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1121313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11213133fooEv,_ZTv0_n20_N9GG11213133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1121313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11213133fooEv,_ZTv0_n12_N9GG11213133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11213133barEv,_ZTv0_n16_N9GG11213133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1121313[];
+extern void _ZN5EE1123barEv();
+static VTBL_ENTRY _tg__ZTV5EE112__9GG1121313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN5EE1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE112__9GG1121313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE112__9GG1121313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF1313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF131__9GG1121313[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&_ZN5FF1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF131__9GG1121313[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF131__9GG1121313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG1121313[] = {
+ {&(_ZTV9GG1121313[7]), 7,35},
+ {&(_ZTV9GG1121313[14]), 14,35},
+ {&(_ZTV9GG1121313[18]), 18,35},
+ {&(_ZTV9GG1121313[22]), 22,35},
+ {&(_ZTV9GG1121313[28]), 28,35},
+ {&(_ZTV9GG1121313[33]), 33,35},
+ {&(_tg__ZTV5EE112__9GG1121313[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE112__9GG1121313[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE112__9GG1121313[3]), 3,4},
+ {&(_tg__ZTV5FF131__9GG1121313[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF131__9GG1121313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF131__9GG1121313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1121313[];
+extern VTBL_ENTRY _ZTV9GG1121313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1121313[];
+static VTBL_ENTRY alt_thunk_names242[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG11213133barEv,_ZTv0_n16_N9GG11213133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11213133barEv,_ZThn40_N9GG11213133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11213133fooEv,_ZTv0_n20_N9GG11213133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11213133fooEv,_ZThn32_N9GG11213133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11213133fooEv,_ZTv0_n12_N9GG11213133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11213133fooEv,_ZThn40_N9GG11213133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11213133fooEv,_ZThn24_N9GG11213133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11213133fooEv,_ZThn16_N9GG11213133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11213133barEv,_ZTv0_n20_N9GG11213133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11213133barEv,_ZThn8_N9GG11213133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1121313 = { "GG1121313", // class name
+ bases_GG1121313, 5,
+ &(vtc_GG1121313[0]), // expected_vtbl_contents
+ &(vtt_GG1121313[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1121313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1121313),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1121313),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names242,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1121323 : virtual EE112 , virtual FF132 {
+ int pg;
+ virtual void foo(); // _ZN9GG11213233fooEv
+ virtual void bar(); // _ZN9GG11213233barEv
+ ~GG1121323(); // tgen
+ GG1121323(); // tgen
+};
+//SIG(1 GG1121323) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1121323 ::foo(){vfunc_called(this, "_ZN9GG11213233fooEv");}
+void GG1121323 ::bar(){vfunc_called(this, "_ZN9GG11213233barEv");}
+GG1121323 ::~GG1121323(){ note_dtor("GG1121323", this);} // tgen
+GG1121323 ::GG1121323(){ note_ctor("GG1121323", this);} // tgen
+
+static void Test_GG1121323()
+{
+ extern Class_Descriptor cd_GG1121323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1121323, buf);
+ GG1121323 *dp, &lv = *(dp=new (buf) GG1121323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1121323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1121323)");
+ check_base_class_offset(lv, (AA1*)(EE112*), ABISELECT(32,16), "GG1121323");
+ check_base_class_offset(lv, (AA1*)(FF132*), ABISELECT(32,16), "GG1121323");
+ check_base_class_offset(lv, (BB1*)(EE112*), ABISELECT(48,24), "GG1121323");
+ check_base_class_offset(lv, (EE112*), ABISELECT(16,8), "GG1121323");
+ check_base_class_offset(lv, (BB3*)(FF132*), ABISELECT(80,40), "GG1121323");
+ check_base_class_offset(lv, (FF132*), ABISELECT(64,32), "GG1121323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1121323.pg");
+ test_class_info(&lv, &cd_GG1121323);
+ dp->~GG1121323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1121323(Test_GG1121323, "GG1121323", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1121323C1Ev();
+extern void _ZN9GG1121323D1Ev();
+Name_Map name_map_GG1121323[] = {
+ NSPAIR(_ZN9GG1121323C1Ev),
+ NSPAIR(_ZN9GG1121323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE112;
+extern VTBL_ENTRY _ZTI5EE112[];
+extern VTBL_ENTRY _ZTV5EE112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE112[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF132;
+extern VTBL_ENTRY _ZTI5FF132[];
+extern VTBL_ENTRY _ZTV5FF132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF132[];
+static Base_Class bases_GG1121323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE112, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF132, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1121323[];
+extern void _ZN9GG11213233fooEv();
+extern void _ZN9GG11213233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11213233barEv,_ZTv0_n20_N9GG11213233barEv)();
+extern void ABISELECT(_ZThn16_N9GG11213233barEv,_ZThn8_N9GG11213233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11213233fooEv,_ZTv0_n12_N9GG11213233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11213233fooEv,_ZThn16_N9GG11213233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11213233fooEv,_ZTv0_n12_N9GG11213233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11213233fooEv,_ZThn24_N9GG11213233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11213233barEv,_ZTv0_n20_N9GG11213233barEv)();
+extern void ABISELECT(_ZThn64_N9GG11213233barEv,_ZThn32_N9GG11213233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11213233fooEv,_ZTv0_n12_N9GG11213233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG11213233fooEv,_ZThn40_N9GG11213233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11213233barEv,_ZTv0_n16_N9GG11213233barEv)();
+extern void ABISELECT(_ZThn80_N9GG11213233barEv,_ZThn40_N9GG11213233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1121323[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1121323[0]),
+ (VTBL_ENTRY)&_ZN9GG11213233fooEv,
+ (VTBL_ENTRY)&_ZN9GG11213233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1121323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11213233barEv,_ZTv0_n20_N9GG11213233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1121323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11213233fooEv,_ZTv0_n12_N9GG11213233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1121323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11213233fooEv,_ZTv0_n12_N9GG11213233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1121323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11213233barEv,_ZTv0_n20_N9GG11213233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1121323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11213233fooEv,_ZTv0_n12_N9GG11213233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11213233barEv,_ZTv0_n16_N9GG11213233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1121323[];
+extern void _ZN5EE1123barEv();
+static VTBL_ENTRY _tg__ZTV5EE112__9GG1121323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN5EE1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE112__9GG1121323[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE112__9GG1121323[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF1323barEv();
+static VTBL_ENTRY _tg__ZTV5FF132__9GG1121323[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN5FF1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF132__9GG1121323[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv)();
+extern void ABISELECT(_ZThn16_N5FF1323barEv,_ZThn8_N5FF1323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF132__9GG1121323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv),
+};
+static VTT_ENTRY vtt_GG1121323[] = {
+ {&(_ZTV9GG1121323[7]), 7,35},
+ {&(_ZTV9GG1121323[14]), 14,35},
+ {&(_ZTV9GG1121323[18]), 18,35},
+ {&(_ZTV9GG1121323[22]), 22,35},
+ {&(_ZTV9GG1121323[28]), 28,35},
+ {&(_ZTV9GG1121323[33]), 33,35},
+ {&(_tg__ZTV5EE112__9GG1121323[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE112__9GG1121323[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE112__9GG1121323[3]), 3,4},
+ {&(_tg__ZTV5FF132__9GG1121323[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF132__9GG1121323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF132__9GG1121323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1121323[];
+extern VTBL_ENTRY _ZTV9GG1121323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1121323[];
+static VTBL_ENTRY alt_thunk_names243[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1323barEv,_ZThn8_N5FF1323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG11213233barEv,_ZTv0_n16_N9GG11213233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11213233barEv,_ZThn40_N9GG11213233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11213233fooEv,_ZTv0_n12_N9GG11213233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11213233fooEv,_ZThn40_N9GG11213233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11213233fooEv,_ZThn24_N9GG11213233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11213233fooEv,_ZThn16_N9GG11213233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11213233barEv,_ZTv0_n20_N9GG11213233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11213233barEv,_ZThn32_N9GG11213233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11213233barEv,_ZThn8_N9GG11213233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1121323 = { "GG1121323", // class name
+ bases_GG1121323, 5,
+ &(vtc_GG1121323[0]), // expected_vtbl_contents
+ &(vtt_GG1121323[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1121323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1121323),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1121323),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names243,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1121333 : virtual EE112 , virtual FF133 {
+ int pg;
+ virtual void foo(); // _ZN9GG11213333fooEv
+ virtual void bar(); // _ZN9GG11213333barEv
+ ~GG1121333(); // tgen
+ GG1121333(); // tgen
+};
+//SIG(1 GG1121333) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1121333 ::foo(){vfunc_called(this, "_ZN9GG11213333fooEv");}
+void GG1121333 ::bar(){vfunc_called(this, "_ZN9GG11213333barEv");}
+GG1121333 ::~GG1121333(){ note_dtor("GG1121333", this);} // tgen
+GG1121333 ::GG1121333(){ note_ctor("GG1121333", this);} // tgen
+
+static void Test_GG1121333()
+{
+ extern Class_Descriptor cd_GG1121333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1121333, buf);
+ GG1121333 *dp, &lv = *(dp=new (buf) GG1121333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1121333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1121333)");
+ check_base_class_offset(lv, (AA1*)(EE112*), ABISELECT(32,16), "GG1121333");
+ check_base_class_offset(lv, (AA1*)(FF133*), ABISELECT(32,16), "GG1121333");
+ check_base_class_offset(lv, (BB1*)(EE112*), ABISELECT(48,24), "GG1121333");
+ check_base_class_offset(lv, (EE112*), ABISELECT(16,8), "GG1121333");
+ check_base_class_offset(lv, (BB3*)(FF133*), ABISELECT(80,40), "GG1121333");
+ check_base_class_offset(lv, (FF133*), ABISELECT(64,32), "GG1121333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1121333.pg");
+ test_class_info(&lv, &cd_GG1121333);
+ dp->~GG1121333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1121333(Test_GG1121333, "GG1121333", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1121333C1Ev();
+extern void _ZN9GG1121333D1Ev();
+Name_Map name_map_GG1121333[] = {
+ NSPAIR(_ZN9GG1121333C1Ev),
+ NSPAIR(_ZN9GG1121333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE112;
+extern VTBL_ENTRY _ZTI5EE112[];
+extern VTBL_ENTRY _ZTV5EE112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE112[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF133;
+extern VTBL_ENTRY _ZTI5FF133[];
+extern VTBL_ENTRY _ZTV5FF133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF133[];
+static Base_Class bases_GG1121333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE112, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF133, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1121333[];
+extern void _ZN9GG11213333fooEv();
+extern void _ZN9GG11213333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11213333barEv,_ZTv0_n20_N9GG11213333barEv)();
+extern void ABISELECT(_ZThn16_N9GG11213333barEv,_ZThn8_N9GG11213333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11213333fooEv,_ZTv0_n12_N9GG11213333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11213333fooEv,_ZThn16_N9GG11213333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11213333fooEv,_ZTv0_n12_N9GG11213333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11213333fooEv,_ZThn24_N9GG11213333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11213333fooEv,_ZTv0_n20_N9GG11213333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11213333fooEv,_ZThn32_N9GG11213333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11213333barEv,_ZTv0_n24_N9GG11213333barEv)();
+extern void ABISELECT(_ZThn64_N9GG11213333barEv,_ZThn32_N9GG11213333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11213333fooEv,_ZTv0_n12_N9GG11213333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG11213333fooEv,_ZThn40_N9GG11213333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11213333barEv,_ZTv0_n16_N9GG11213333barEv)();
+extern void ABISELECT(_ZThn80_N9GG11213333barEv,_ZThn40_N9GG11213333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1121333[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1121333[0]),
+ (VTBL_ENTRY)&_ZN9GG11213333fooEv,
+ (VTBL_ENTRY)&_ZN9GG11213333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1121333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11213333barEv,_ZTv0_n20_N9GG11213333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1121333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11213333fooEv,_ZTv0_n12_N9GG11213333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1121333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11213333fooEv,_ZTv0_n12_N9GG11213333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1121333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11213333fooEv,_ZTv0_n20_N9GG11213333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11213333barEv,_ZTv0_n24_N9GG11213333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1121333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11213333fooEv,_ZTv0_n12_N9GG11213333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11213333barEv,_ZTv0_n16_N9GG11213333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1121333[];
+extern void _ZN5EE1123barEv();
+static VTBL_ENTRY _tg__ZTV5EE112__9GG1121333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN5EE1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE112__9GG1121333[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE112__9GG1121333[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF1333fooEv();
+extern void _ZN5FF1333barEv();
+static VTBL_ENTRY _tg__ZTV5FF133__9GG1121333[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&_ZN5FF1333fooEv,
+ (VTBL_ENTRY)&_ZN5FF1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF133__9GG1121333[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv)();
+extern void ABISELECT(_ZThn16_N5FF1333barEv,_ZThn8_N5FF1333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF133__9GG1121333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv),
+};
+static VTT_ENTRY vtt_GG1121333[] = {
+ {&(_ZTV9GG1121333[7]), 7,37},
+ {&(_ZTV9GG1121333[14]), 14,37},
+ {&(_ZTV9GG1121333[18]), 18,37},
+ {&(_ZTV9GG1121333[22]), 22,37},
+ {&(_ZTV9GG1121333[29]), 29,37},
+ {&(_ZTV9GG1121333[35]), 35,37},
+ {&(_tg__ZTV5EE112__9GG1121333[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE112__9GG1121333[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE112__9GG1121333[3]), 3,4},
+ {&(_tg__ZTV5FF133__9GG1121333[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF133__9GG1121333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF133__9GG1121333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1121333[];
+extern VTBL_ENTRY _ZTV9GG1121333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1121333[];
+static VTBL_ENTRY alt_thunk_names244[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1333barEv,_ZThn8_N5FF1333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG11213333barEv,_ZTv0_n16_N9GG11213333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11213333barEv,_ZThn40_N9GG11213333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG11213333barEv,_ZTv0_n24_N9GG11213333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11213333barEv,_ZThn32_N9GG11213333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11213333fooEv,_ZTv0_n20_N9GG11213333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11213333fooEv,_ZThn32_N9GG11213333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11213333fooEv,_ZTv0_n12_N9GG11213333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11213333fooEv,_ZThn40_N9GG11213333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11213333fooEv,_ZThn24_N9GG11213333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11213333fooEv,_ZThn16_N9GG11213333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11213333barEv,_ZTv0_n20_N9GG11213333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11213333barEv,_ZThn8_N9GG11213333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1121333 = { "GG1121333", // class name
+ bases_GG1121333, 5,
+ &(vtc_GG1121333[0]), // expected_vtbl_contents
+ &(vtt_GG1121333[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1121333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1121333),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1121333),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names244,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1122113 : virtual EE112 , virtual FF211 {
+ int pg;
+ virtual void foo(); // _ZN9GG11221133fooEv
+ virtual void bar(); // _ZN9GG11221133barEv
+ ~GG1122113(); // tgen
+ GG1122113(); // tgen
+};
+//SIG(1 GG1122113) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG1122113 ::foo(){vfunc_called(this, "_ZN9GG11221133fooEv");}
+void GG1122113 ::bar(){vfunc_called(this, "_ZN9GG11221133barEv");}
+GG1122113 ::~GG1122113(){ note_dtor("GG1122113", this);} // tgen
+GG1122113 ::GG1122113(){ note_ctor("GG1122113", this);} // tgen
+
+static void Test_GG1122113()
+{
+ extern Class_Descriptor cd_GG1122113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1122113, buf);
+ GG1122113 *dp, &lv = *(dp=new (buf) GG1122113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1122113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1122113)");
+ check_base_class_offset(lv, (AA1*)(EE112*), ABISELECT(32,16), "GG1122113");
+ check_base_class_offset(lv, (BB1*)(EE112*), ABISELECT(48,24), "GG1122113");
+ check_base_class_offset(lv, (BB1*)(FF211*), ABISELECT(48,24), "GG1122113");
+ check_base_class_offset(lv, (EE112*), ABISELECT(16,8), "GG1122113");
+ check_base_class_offset(lv, (AA2*)(FF211*), ABISELECT(80,40), "GG1122113");
+ check_base_class_offset(lv, (FF211*), ABISELECT(64,32), "GG1122113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1122113.pg");
+ test_class_info(&lv, &cd_GG1122113);
+ dp->~GG1122113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1122113(Test_GG1122113, "GG1122113", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1122113C1Ev();
+extern void _ZN9GG1122113D1Ev();
+Name_Map name_map_GG1122113[] = {
+ NSPAIR(_ZN9GG1122113C1Ev),
+ NSPAIR(_ZN9GG1122113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE112;
+extern VTBL_ENTRY _ZTI5EE112[];
+extern VTBL_ENTRY _ZTV5EE112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE112[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF211;
+extern VTBL_ENTRY _ZTI5FF211[];
+extern VTBL_ENTRY _ZTV5FF211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF211[];
+static Base_Class bases_GG1122113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE112, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF211, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1122113[];
+extern void _ZN9GG11221133fooEv();
+extern void _ZN9GG11221133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11221133barEv,_ZTv0_n20_N9GG11221133barEv)();
+extern void ABISELECT(_ZThn16_N9GG11221133barEv,_ZThn8_N9GG11221133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11221133fooEv,_ZTv0_n12_N9GG11221133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11221133fooEv,_ZThn16_N9GG11221133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11221133fooEv,_ZTv0_n12_N9GG11221133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11221133fooEv,_ZThn24_N9GG11221133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11221133fooEv,_ZTv0_n20_N9GG11221133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11221133fooEv,_ZThn32_N9GG11221133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11221133barEv,_ZTv0_n12_N9GG11221133barEv)();
+extern void ABISELECT(_ZThn80_N9GG11221133barEv,_ZThn40_N9GG11221133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1122113[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1122113[0]),
+ (VTBL_ENTRY)&_ZN9GG11221133fooEv,
+ (VTBL_ENTRY)&_ZN9GG11221133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1122113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11221133barEv,_ZTv0_n20_N9GG11221133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1122113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11221133fooEv,_ZTv0_n12_N9GG11221133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1122113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11221133fooEv,_ZTv0_n12_N9GG11221133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1122113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11221133fooEv,_ZTv0_n20_N9GG11221133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1122113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11221133barEv,_ZTv0_n12_N9GG11221133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1122113[];
+extern void _ZN5EE1123barEv();
+static VTBL_ENTRY _tg__ZTV5EE112__9GG1122113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN5EE1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE112__9GG1122113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE112__9GG1122113[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF2113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF211__9GG1122113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN5FF2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF211__9GG1122113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF211__9GG1122113[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv),
+};
+static VTT_ENTRY vtt_GG1122113[] = {
+ {&(_ZTV9GG1122113[7]), 7,33},
+ {&(_ZTV9GG1122113[14]), 14,33},
+ {&(_ZTV9GG1122113[18]), 18,33},
+ {&(_ZTV9GG1122113[22]), 22,33},
+ {&(_ZTV9GG1122113[28]), 28,33},
+ {&(_ZTV9GG1122113[32]), 32,33},
+ {&(_tg__ZTV5EE112__9GG1122113[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE112__9GG1122113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE112__9GG1122113[3]), 3,4},
+ {&(_tg__ZTV5FF211__9GG1122113[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF211__9GG1122113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF211__9GG1122113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1122113[];
+extern VTBL_ENTRY _ZTV9GG1122113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1122113[];
+static VTBL_ENTRY alt_thunk_names245[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11221133barEv,_ZTv0_n12_N9GG11221133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11221133barEv,_ZThn40_N9GG11221133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11221133fooEv,_ZTv0_n20_N9GG11221133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11221133fooEv,_ZThn32_N9GG11221133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11221133fooEv,_ZTv0_n12_N9GG11221133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11221133fooEv,_ZThn24_N9GG11221133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11221133fooEv,_ZThn16_N9GG11221133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11221133barEv,_ZTv0_n20_N9GG11221133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11221133barEv,_ZThn8_N9GG11221133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1122113 = { "GG1122113", // class name
+ bases_GG1122113, 5,
+ &(vtc_GG1122113[0]), // expected_vtbl_contents
+ &(vtt_GG1122113[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1122113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1122113),33, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1122113),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names245,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1122123 : virtual EE112 , virtual FF212 {
+ int pg;
+ virtual void foo(); // _ZN9GG11221233fooEv
+ virtual void bar(); // _ZN9GG11221233barEv
+ ~GG1122123(); // tgen
+ GG1122123(); // tgen
+};
+//SIG(1 GG1122123) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG1122123 ::foo(){vfunc_called(this, "_ZN9GG11221233fooEv");}
+void GG1122123 ::bar(){vfunc_called(this, "_ZN9GG11221233barEv");}
+GG1122123 ::~GG1122123(){ note_dtor("GG1122123", this);} // tgen
+GG1122123 ::GG1122123(){ note_ctor("GG1122123", this);} // tgen
+
+static void Test_GG1122123()
+{
+ extern Class_Descriptor cd_GG1122123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1122123, buf);
+ GG1122123 *dp, &lv = *(dp=new (buf) GG1122123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1122123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1122123)");
+ check_base_class_offset(lv, (AA1*)(EE112*), ABISELECT(32,16), "GG1122123");
+ check_base_class_offset(lv, (BB1*)(EE112*), ABISELECT(48,24), "GG1122123");
+ check_base_class_offset(lv, (BB1*)(FF212*), ABISELECT(48,24), "GG1122123");
+ check_base_class_offset(lv, (EE112*), ABISELECT(16,8), "GG1122123");
+ check_base_class_offset(lv, (AA2*)(FF212*), ABISELECT(80,40), "GG1122123");
+ check_base_class_offset(lv, (FF212*), ABISELECT(64,32), "GG1122123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1122123.pg");
+ test_class_info(&lv, &cd_GG1122123);
+ dp->~GG1122123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1122123(Test_GG1122123, "GG1122123", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1122123C1Ev();
+extern void _ZN9GG1122123D1Ev();
+Name_Map name_map_GG1122123[] = {
+ NSPAIR(_ZN9GG1122123C1Ev),
+ NSPAIR(_ZN9GG1122123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE112;
+extern VTBL_ENTRY _ZTI5EE112[];
+extern VTBL_ENTRY _ZTV5EE112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE112[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF212;
+extern VTBL_ENTRY _ZTI5FF212[];
+extern VTBL_ENTRY _ZTV5FF212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF212[];
+static Base_Class bases_GG1122123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE112, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF212, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1122123[];
+extern void _ZN9GG11221233fooEv();
+extern void _ZN9GG11221233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11221233barEv,_ZTv0_n20_N9GG11221233barEv)();
+extern void ABISELECT(_ZThn16_N9GG11221233barEv,_ZThn8_N9GG11221233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11221233fooEv,_ZTv0_n12_N9GG11221233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11221233fooEv,_ZThn16_N9GG11221233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11221233fooEv,_ZTv0_n12_N9GG11221233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11221233fooEv,_ZThn24_N9GG11221233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11221233barEv,_ZTv0_n20_N9GG11221233barEv)();
+extern void ABISELECT(_ZThn64_N9GG11221233barEv,_ZThn32_N9GG11221233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11221233barEv,_ZTv0_n12_N9GG11221233barEv)();
+extern void ABISELECT(_ZThn80_N9GG11221233barEv,_ZThn40_N9GG11221233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1122123[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1122123[0]),
+ (VTBL_ENTRY)&_ZN9GG11221233fooEv,
+ (VTBL_ENTRY)&_ZN9GG11221233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1122123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11221233barEv,_ZTv0_n20_N9GG11221233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1122123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11221233fooEv,_ZTv0_n12_N9GG11221233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1122123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11221233fooEv,_ZTv0_n12_N9GG11221233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1122123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11221233barEv,_ZTv0_n20_N9GG11221233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1122123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11221233barEv,_ZTv0_n12_N9GG11221233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1122123[];
+extern void _ZN5EE1123barEv();
+static VTBL_ENTRY _tg__ZTV5EE112__9GG1122123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN5EE1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE112__9GG1122123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE112__9GG1122123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF2123barEv();
+static VTBL_ENTRY _tg__ZTV5FF212__9GG1122123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN5FF2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv)();
+extern void ABISELECT(_ZThn16_N5FF2123barEv,_ZThn8_N5FF2123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF212__9GG1122123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF212__9GG1122123[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG1122123[] = {
+ {&(_ZTV9GG1122123[7]), 7,33},
+ {&(_ZTV9GG1122123[14]), 14,33},
+ {&(_ZTV9GG1122123[18]), 18,33},
+ {&(_ZTV9GG1122123[22]), 22,33},
+ {&(_ZTV9GG1122123[28]), 28,33},
+ {&(_ZTV9GG1122123[32]), 32,33},
+ {&(_tg__ZTV5EE112__9GG1122123[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE112__9GG1122123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE112__9GG1122123[3]), 3,4},
+ {&(_tg__ZTV5FF212__9GG1122123[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF212__9GG1122123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF212__9GG1122123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1122123[];
+extern VTBL_ENTRY _ZTV9GG1122123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1122123[];
+static VTBL_ENTRY alt_thunk_names246[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2123barEv,_ZThn8_N5FF2123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11221233barEv,_ZTv0_n12_N9GG11221233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11221233barEv,_ZThn40_N9GG11221233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11221233fooEv,_ZTv0_n12_N9GG11221233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11221233fooEv,_ZThn24_N9GG11221233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11221233fooEv,_ZThn16_N9GG11221233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11221233barEv,_ZTv0_n20_N9GG11221233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11221233barEv,_ZThn32_N9GG11221233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11221233barEv,_ZThn8_N9GG11221233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1122123 = { "GG1122123", // class name
+ bases_GG1122123, 5,
+ &(vtc_GG1122123[0]), // expected_vtbl_contents
+ &(vtt_GG1122123[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1122123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1122123),33, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1122123),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names246,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1122133 : virtual EE112 , virtual FF213 {
+ int pg;
+ virtual void foo(); // _ZN9GG11221333fooEv
+ virtual void bar(); // _ZN9GG11221333barEv
+ ~GG1122133(); // tgen
+ GG1122133(); // tgen
+};
+//SIG(1 GG1122133) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1122133 ::foo(){vfunc_called(this, "_ZN9GG11221333fooEv");}
+void GG1122133 ::bar(){vfunc_called(this, "_ZN9GG11221333barEv");}
+GG1122133 ::~GG1122133(){ note_dtor("GG1122133", this);} // tgen
+GG1122133 ::GG1122133(){ note_ctor("GG1122133", this);} // tgen
+
+static void Test_GG1122133()
+{
+ extern Class_Descriptor cd_GG1122133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1122133, buf);
+ GG1122133 *dp, &lv = *(dp=new (buf) GG1122133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1122133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1122133)");
+ check_base_class_offset(lv, (AA1*)(EE112*), ABISELECT(32,16), "GG1122133");
+ check_base_class_offset(lv, (BB1*)(EE112*), ABISELECT(48,24), "GG1122133");
+ check_base_class_offset(lv, (BB1*)(FF213*), ABISELECT(48,24), "GG1122133");
+ check_base_class_offset(lv, (EE112*), ABISELECT(16,8), "GG1122133");
+ check_base_class_offset(lv, (AA2*)(FF213*), ABISELECT(80,40), "GG1122133");
+ check_base_class_offset(lv, (FF213*), ABISELECT(64,32), "GG1122133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1122133.pg");
+ test_class_info(&lv, &cd_GG1122133);
+ dp->~GG1122133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1122133(Test_GG1122133, "GG1122133", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1122133C1Ev();
+extern void _ZN9GG1122133D1Ev();
+Name_Map name_map_GG1122133[] = {
+ NSPAIR(_ZN9GG1122133C1Ev),
+ NSPAIR(_ZN9GG1122133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE112;
+extern VTBL_ENTRY _ZTI5EE112[];
+extern VTBL_ENTRY _ZTV5EE112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE112[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF213;
+extern VTBL_ENTRY _ZTI5FF213[];
+extern VTBL_ENTRY _ZTV5FF213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF213[];
+static Base_Class bases_GG1122133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE112, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF213, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1122133[];
+extern void _ZN9GG11221333fooEv();
+extern void _ZN9GG11221333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11221333barEv,_ZTv0_n20_N9GG11221333barEv)();
+extern void ABISELECT(_ZThn16_N9GG11221333barEv,_ZThn8_N9GG11221333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11221333fooEv,_ZTv0_n12_N9GG11221333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11221333fooEv,_ZThn16_N9GG11221333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11221333fooEv,_ZTv0_n12_N9GG11221333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11221333fooEv,_ZThn24_N9GG11221333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11221333fooEv,_ZTv0_n20_N9GG11221333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11221333fooEv,_ZThn32_N9GG11221333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11221333barEv,_ZTv0_n24_N9GG11221333barEv)();
+extern void ABISELECT(_ZThn64_N9GG11221333barEv,_ZThn32_N9GG11221333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11221333barEv,_ZTv0_n12_N9GG11221333barEv)();
+extern void ABISELECT(_ZThn80_N9GG11221333barEv,_ZThn40_N9GG11221333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1122133[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1122133[0]),
+ (VTBL_ENTRY)&_ZN9GG11221333fooEv,
+ (VTBL_ENTRY)&_ZN9GG11221333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1122133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11221333barEv,_ZTv0_n20_N9GG11221333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1122133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11221333fooEv,_ZTv0_n12_N9GG11221333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1122133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11221333fooEv,_ZTv0_n12_N9GG11221333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1122133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11221333fooEv,_ZTv0_n20_N9GG11221333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11221333barEv,_ZTv0_n24_N9GG11221333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1122133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11221333barEv,_ZTv0_n12_N9GG11221333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1122133[];
+extern void _ZN5EE1123barEv();
+static VTBL_ENTRY _tg__ZTV5EE112__9GG1122133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN5EE1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE112__9GG1122133[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE112__9GG1122133[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF2133fooEv();
+extern void _ZN5FF2133barEv();
+static VTBL_ENTRY _tg__ZTV5FF213__9GG1122133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&_ZN5FF2133fooEv,
+ (VTBL_ENTRY)&_ZN5FF2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv)();
+extern void ABISELECT(_ZThn16_N5FF2133barEv,_ZThn8_N5FF2133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF213__9GG1122133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF213__9GG1122133[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv),
+};
+static VTT_ENTRY vtt_GG1122133[] = {
+ {&(_ZTV9GG1122133[7]), 7,35},
+ {&(_ZTV9GG1122133[14]), 14,35},
+ {&(_ZTV9GG1122133[18]), 18,35},
+ {&(_ZTV9GG1122133[22]), 22,35},
+ {&(_ZTV9GG1122133[29]), 29,35},
+ {&(_ZTV9GG1122133[34]), 34,35},
+ {&(_tg__ZTV5EE112__9GG1122133[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE112__9GG1122133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE112__9GG1122133[3]), 3,4},
+ {&(_tg__ZTV5FF213__9GG1122133[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF213__9GG1122133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF213__9GG1122133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1122133[];
+extern VTBL_ENTRY _ZTV9GG1122133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1122133[];
+static VTBL_ENTRY alt_thunk_names247[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2133barEv,_ZThn8_N5FF2133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11221333barEv,_ZTv0_n12_N9GG11221333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11221333barEv,_ZThn40_N9GG11221333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG11221333barEv,_ZTv0_n24_N9GG11221333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11221333barEv,_ZThn32_N9GG11221333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11221333fooEv,_ZTv0_n20_N9GG11221333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11221333fooEv,_ZThn32_N9GG11221333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11221333fooEv,_ZTv0_n12_N9GG11221333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11221333fooEv,_ZThn24_N9GG11221333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11221333fooEv,_ZThn16_N9GG11221333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11221333barEv,_ZTv0_n20_N9GG11221333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11221333barEv,_ZThn8_N9GG11221333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1122133 = { "GG1122133", // class name
+ bases_GG1122133, 5,
+ &(vtc_GG1122133[0]), // expected_vtbl_contents
+ &(vtt_GG1122133[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1122133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1122133),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1122133),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names247,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1122213 : virtual EE112 , virtual FF221 {
+ int pg;
+ virtual void foo(); // _ZN9GG11222133fooEv
+ virtual void bar(); // _ZN9GG11222133barEv
+ ~GG1122213(); // tgen
+ GG1122213(); // tgen
+};
+//SIG(1 GG1122213) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1122213 ::foo(){vfunc_called(this, "_ZN9GG11222133fooEv");}
+void GG1122213 ::bar(){vfunc_called(this, "_ZN9GG11222133barEv");}
+GG1122213 ::~GG1122213(){ note_dtor("GG1122213", this);} // tgen
+GG1122213 ::GG1122213(){ note_ctor("GG1122213", this);} // tgen
+
+static void Test_GG1122213()
+{
+ extern Class_Descriptor cd_GG1122213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1122213, buf);
+ GG1122213 *dp, &lv = *(dp=new (buf) GG1122213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1122213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1122213)");
+ check_base_class_offset(lv, (AA1*)(EE112*), ABISELECT(32,16), "GG1122213");
+ check_base_class_offset(lv, (BB1*)(EE112*), ABISELECT(48,24), "GG1122213");
+ check_base_class_offset(lv, (EE112*), ABISELECT(16,8), "GG1122213");
+ check_base_class_offset(lv, (AA2*)(FF221*), ABISELECT(80,40), "GG1122213");
+ check_base_class_offset(lv, (BB2*)(FF221*), ABISELECT(96,48), "GG1122213");
+ check_base_class_offset(lv, (FF221*), ABISELECT(64,32), "GG1122213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1122213.pg");
+ test_class_info(&lv, &cd_GG1122213);
+ dp->~GG1122213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1122213(Test_GG1122213, "GG1122213", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1122213C1Ev();
+extern void _ZN9GG1122213D1Ev();
+Name_Map name_map_GG1122213[] = {
+ NSPAIR(_ZN9GG1122213C1Ev),
+ NSPAIR(_ZN9GG1122213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE112;
+extern VTBL_ENTRY _ZTI5EE112[];
+extern VTBL_ENTRY _ZTV5EE112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE112[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF221;
+extern VTBL_ENTRY _ZTI5FF221[];
+extern VTBL_ENTRY _ZTV5FF221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF221[];
+static Base_Class bases_GG1122213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE112, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF221, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1122213[];
+extern void _ZN9GG11222133fooEv();
+extern void _ZN9GG11222133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11222133barEv,_ZTv0_n20_N9GG11222133barEv)();
+extern void ABISELECT(_ZThn16_N9GG11222133barEv,_ZThn8_N9GG11222133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11222133fooEv,_ZTv0_n12_N9GG11222133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11222133fooEv,_ZThn16_N9GG11222133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11222133fooEv,_ZTv0_n12_N9GG11222133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11222133fooEv,_ZThn24_N9GG11222133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11222133fooEv,_ZTv0_n20_N9GG11222133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11222133fooEv,_ZThn32_N9GG11222133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11222133barEv,_ZTv0_n12_N9GG11222133barEv)();
+extern void ABISELECT(_ZThn80_N9GG11222133barEv,_ZThn40_N9GG11222133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11222133barEv,_ZTv0_n12_N9GG11222133barEv)();
+extern void ABISELECT(_ZThn96_N9GG11222133barEv,_ZThn48_N9GG11222133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1122213[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1122213[0]),
+ (VTBL_ENTRY)&_ZN9GG11222133fooEv,
+ (VTBL_ENTRY)&_ZN9GG11222133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1122213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11222133barEv,_ZTv0_n20_N9GG11222133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1122213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11222133fooEv,_ZTv0_n12_N9GG11222133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1122213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11222133fooEv,_ZTv0_n12_N9GG11222133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1122213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11222133fooEv,_ZTv0_n20_N9GG11222133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1122213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11222133barEv,_ZTv0_n12_N9GG11222133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1122213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11222133barEv,_ZTv0_n12_N9GG11222133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1122213[];
+extern void _ZN5EE1123barEv();
+static VTBL_ENTRY _tg__ZTV5EE112__9GG1122213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN5EE1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE112__9GG1122213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE112__9GG1122213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF2213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF221__9GG1122213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN5FF2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF221__9GG1122213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF221__9GG1122213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG1122213[] = {
+ {&(_ZTV9GG1122213[8]), 8,38},
+ {&(_ZTV9GG1122213[15]), 15,38},
+ {&(_ZTV9GG1122213[19]), 19,38},
+ {&(_ZTV9GG1122213[23]), 23,38},
+ {&(_ZTV9GG1122213[29]), 29,38},
+ {&(_ZTV9GG1122213[33]), 33,38},
+ {&(_ZTV9GG1122213[37]), 37,38},
+ {&(_tg__ZTV5EE112__9GG1122213[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE112__9GG1122213[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE112__9GG1122213[3]), 3,4},
+ {&(_tg__ZTV5FF221__9GG1122213[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF221__9GG1122213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF221__9GG1122213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1122213[];
+extern VTBL_ENTRY _ZTV9GG1122213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1122213[];
+static VTBL_ENTRY alt_thunk_names248[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11222133barEv,_ZTv0_n12_N9GG11222133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11222133barEv,_ZThn48_N9GG11222133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11222133barEv,_ZThn40_N9GG11222133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11222133fooEv,_ZTv0_n20_N9GG11222133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11222133fooEv,_ZThn32_N9GG11222133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11222133fooEv,_ZTv0_n12_N9GG11222133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11222133fooEv,_ZThn24_N9GG11222133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11222133fooEv,_ZThn16_N9GG11222133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11222133barEv,_ZTv0_n20_N9GG11222133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11222133barEv,_ZThn8_N9GG11222133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1122213 = { "GG1122213", // class name
+ bases_GG1122213, 6,
+ &(vtc_GG1122213[0]), // expected_vtbl_contents
+ &(vtt_GG1122213[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1122213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1122213),38, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1122213),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names248,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1122222 : virtual EE112 , virtual FF222 {
+ int pg;
+ virtual void bar(); // _ZN9GG11222223barEv
+ ~GG1122222(); // tgen
+ GG1122222(); // tgen
+};
+//SIG(1 GG1122222) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v3 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+void GG1122222 ::bar(){vfunc_called(this, "_ZN9GG11222223barEv");}
+GG1122222 ::~GG1122222(){ note_dtor("GG1122222", this);} // tgen
+GG1122222 ::GG1122222(){ note_ctor("GG1122222", this);} // tgen
+
+static void Test_GG1122222()
+{
+ extern Class_Descriptor cd_GG1122222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1122222, buf);
+ GG1122222 *dp, &lv = *(dp=new (buf) GG1122222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1122222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1122222)");
+ check_base_class_offset(lv, (AA1*)(EE112*), ABISELECT(32,16), "GG1122222");
+ check_base_class_offset(lv, (BB1*)(EE112*), ABISELECT(48,24), "GG1122222");
+ check_base_class_offset(lv, (EE112*), ABISELECT(16,8), "GG1122222");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(80,40), "GG1122222");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(96,48), "GG1122222");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG1122222");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1122222.pg");
+ test_class_info(&lv, &cd_GG1122222);
+ dp->~GG1122222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1122222(Test_GG1122222, "GG1122222", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1122222C1Ev();
+extern void _ZN9GG1122222D1Ev();
+Name_Map name_map_GG1122222[] = {
+ NSPAIR(_ZN9GG1122222C1Ev),
+ NSPAIR(_ZN9GG1122222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE112;
+extern VTBL_ENTRY _ZTI5EE112[];
+extern VTBL_ENTRY _ZTV5EE112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE112[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG1122222[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE112, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1122222[];
+extern void _ZN9GG11222223barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11222223barEv,_ZTv0_n20_N9GG11222223barEv)();
+extern void ABISELECT(_ZThn16_N9GG11222223barEv,_ZThn8_N9GG11222223barEv)() __attribute__((weak));
+extern void _ZN3AA13fooEv();
+extern void _ZN3BB13fooEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11222223barEv,_ZTv0_n20_N9GG11222223barEv)();
+extern void ABISELECT(_ZThn64_N9GG11222223barEv,_ZThn32_N9GG11222223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11222223barEv,_ZTv0_n12_N9GG11222223barEv)();
+extern void ABISELECT(_ZThn80_N9GG11222223barEv,_ZThn40_N9GG11222223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11222223barEv,_ZTv0_n12_N9GG11222223barEv)();
+extern void ABISELECT(_ZThn96_N9GG11222223barEv,_ZThn48_N9GG11222223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1122222[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1122222[0]),
+ (VTBL_ENTRY)&_ZN9GG11222223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1122222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11222223barEv,_ZTv0_n20_N9GG11222223barEv),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1122222[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1122222[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1122222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11222223barEv,_ZTv0_n20_N9GG11222223barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1122222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11222223barEv,_ZTv0_n12_N9GG11222223barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1122222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11222223barEv,_ZTv0_n12_N9GG11222223barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1122222[];
+extern void _ZN5EE1123barEv();
+static VTBL_ENTRY _tg__ZTV5EE112__9GG1122222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN5EE1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE112__9GG1122222[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE112__9GG1122222[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG1122222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG1122222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG1122222[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG1122222[] = {
+ {&(_ZTV9GG1122222[8]), 8,37},
+ {&(_ZTV9GG1122222[14]), 14,37},
+ {&(_ZTV9GG1122222[18]), 18,37},
+ {&(_ZTV9GG1122222[22]), 22,37},
+ {&(_ZTV9GG1122222[28]), 28,37},
+ {&(_ZTV9GG1122222[32]), 32,37},
+ {&(_ZTV9GG1122222[36]), 36,37},
+ {&(_tg__ZTV5EE112__9GG1122222[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE112__9GG1122222[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE112__9GG1122222[3]), 3,4},
+ {&(_tg__ZTV5FF222__9GG1122222[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG1122222[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG1122222[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1122222[];
+extern VTBL_ENTRY _ZTV9GG1122222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1122222[];
+static VTBL_ENTRY alt_thunk_names249[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11222223barEv,_ZTv0_n12_N9GG11222223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11222223barEv,_ZThn48_N9GG11222223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11222223barEv,_ZThn40_N9GG11222223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11222223barEv,_ZTv0_n20_N9GG11222223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11222223barEv,_ZThn32_N9GG11222223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11222223barEv,_ZThn8_N9GG11222223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1122222 = { "GG1122222", // class name
+ bases_GG1122222, 6,
+ &(vtc_GG1122222[0]), // expected_vtbl_contents
+ &(vtt_GG1122222[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1122222),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1122222),37, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1122222),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names249,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1122223 : virtual EE112 , virtual FF222 {
+ int pg;
+ virtual void foo(); // _ZN9GG11222233fooEv
+ virtual void bar(); // _ZN9GG11222233barEv
+ ~GG1122223(); // tgen
+ GG1122223(); // tgen
+};
+//SIG(1 GG1122223) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1122223 ::foo(){vfunc_called(this, "_ZN9GG11222233fooEv");}
+void GG1122223 ::bar(){vfunc_called(this, "_ZN9GG11222233barEv");}
+GG1122223 ::~GG1122223(){ note_dtor("GG1122223", this);} // tgen
+GG1122223 ::GG1122223(){ note_ctor("GG1122223", this);} // tgen
+
+static void Test_GG1122223()
+{
+ extern Class_Descriptor cd_GG1122223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1122223, buf);
+ GG1122223 *dp, &lv = *(dp=new (buf) GG1122223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1122223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1122223)");
+ check_base_class_offset(lv, (AA1*)(EE112*), ABISELECT(32,16), "GG1122223");
+ check_base_class_offset(lv, (BB1*)(EE112*), ABISELECT(48,24), "GG1122223");
+ check_base_class_offset(lv, (EE112*), ABISELECT(16,8), "GG1122223");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(80,40), "GG1122223");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(96,48), "GG1122223");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG1122223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1122223.pg");
+ test_class_info(&lv, &cd_GG1122223);
+ dp->~GG1122223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1122223(Test_GG1122223, "GG1122223", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1122223C1Ev();
+extern void _ZN9GG1122223D1Ev();
+Name_Map name_map_GG1122223[] = {
+ NSPAIR(_ZN9GG1122223C1Ev),
+ NSPAIR(_ZN9GG1122223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE112;
+extern VTBL_ENTRY _ZTI5EE112[];
+extern VTBL_ENTRY _ZTV5EE112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE112[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG1122223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE112, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1122223[];
+extern void _ZN9GG11222233fooEv();
+extern void _ZN9GG11222233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11222233barEv,_ZTv0_n20_N9GG11222233barEv)();
+extern void ABISELECT(_ZThn16_N9GG11222233barEv,_ZThn8_N9GG11222233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11222233fooEv,_ZTv0_n12_N9GG11222233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11222233fooEv,_ZThn16_N9GG11222233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11222233fooEv,_ZTv0_n12_N9GG11222233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11222233fooEv,_ZThn24_N9GG11222233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11222233barEv,_ZTv0_n20_N9GG11222233barEv)();
+extern void ABISELECT(_ZThn64_N9GG11222233barEv,_ZThn32_N9GG11222233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11222233barEv,_ZTv0_n12_N9GG11222233barEv)();
+extern void ABISELECT(_ZThn80_N9GG11222233barEv,_ZThn40_N9GG11222233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11222233barEv,_ZTv0_n12_N9GG11222233barEv)();
+extern void ABISELECT(_ZThn96_N9GG11222233barEv,_ZThn48_N9GG11222233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1122223[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1122223[0]),
+ (VTBL_ENTRY)&_ZN9GG11222233fooEv,
+ (VTBL_ENTRY)&_ZN9GG11222233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1122223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11222233barEv,_ZTv0_n20_N9GG11222233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1122223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11222233fooEv,_ZTv0_n12_N9GG11222233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1122223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11222233fooEv,_ZTv0_n12_N9GG11222233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1122223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11222233barEv,_ZTv0_n20_N9GG11222233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1122223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11222233barEv,_ZTv0_n12_N9GG11222233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1122223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11222233barEv,_ZTv0_n12_N9GG11222233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1122223[];
+extern void _ZN5EE1123barEv();
+static VTBL_ENTRY _tg__ZTV5EE112__9GG1122223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN5EE1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE112__9GG1122223[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE112__9GG1122223[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG1122223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG1122223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG1122223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG1122223[] = {
+ {&(_ZTV9GG1122223[8]), 8,38},
+ {&(_ZTV9GG1122223[15]), 15,38},
+ {&(_ZTV9GG1122223[19]), 19,38},
+ {&(_ZTV9GG1122223[23]), 23,38},
+ {&(_ZTV9GG1122223[29]), 29,38},
+ {&(_ZTV9GG1122223[33]), 33,38},
+ {&(_ZTV9GG1122223[37]), 37,38},
+ {&(_tg__ZTV5EE112__9GG1122223[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE112__9GG1122223[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE112__9GG1122223[3]), 3,4},
+ {&(_tg__ZTV5FF222__9GG1122223[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG1122223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG1122223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1122223[];
+extern VTBL_ENTRY _ZTV9GG1122223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1122223[];
+static VTBL_ENTRY alt_thunk_names250[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11222233barEv,_ZTv0_n12_N9GG11222233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11222233barEv,_ZThn48_N9GG11222233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11222233barEv,_ZThn40_N9GG11222233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11222233fooEv,_ZTv0_n12_N9GG11222233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11222233fooEv,_ZThn24_N9GG11222233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11222233fooEv,_ZThn16_N9GG11222233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11222233barEv,_ZTv0_n20_N9GG11222233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11222233barEv,_ZThn32_N9GG11222233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11222233barEv,_ZThn8_N9GG11222233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1122223 = { "GG1122223", // class name
+ bases_GG1122223, 6,
+ &(vtc_GG1122223[0]), // expected_vtbl_contents
+ &(vtt_GG1122223[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1122223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1122223),38, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1122223),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names250,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1122233 : virtual EE112 , virtual FF223 {
+ int pg;
+ virtual void foo(); // _ZN9GG11222333fooEv
+ virtual void bar(); // _ZN9GG11222333barEv
+ ~GG1122233(); // tgen
+ GG1122233(); // tgen
+};
+//SIG(1 GG1122233) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1122233 ::foo(){vfunc_called(this, "_ZN9GG11222333fooEv");}
+void GG1122233 ::bar(){vfunc_called(this, "_ZN9GG11222333barEv");}
+GG1122233 ::~GG1122233(){ note_dtor("GG1122233", this);} // tgen
+GG1122233 ::GG1122233(){ note_ctor("GG1122233", this);} // tgen
+
+static void Test_GG1122233()
+{
+ extern Class_Descriptor cd_GG1122233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1122233, buf);
+ GG1122233 *dp, &lv = *(dp=new (buf) GG1122233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1122233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1122233)");
+ check_base_class_offset(lv, (AA1*)(EE112*), ABISELECT(32,16), "GG1122233");
+ check_base_class_offset(lv, (BB1*)(EE112*), ABISELECT(48,24), "GG1122233");
+ check_base_class_offset(lv, (EE112*), ABISELECT(16,8), "GG1122233");
+ check_base_class_offset(lv, (AA2*)(FF223*), ABISELECT(80,40), "GG1122233");
+ check_base_class_offset(lv, (BB2*)(FF223*), ABISELECT(96,48), "GG1122233");
+ check_base_class_offset(lv, (FF223*), ABISELECT(64,32), "GG1122233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1122233.pg");
+ test_class_info(&lv, &cd_GG1122233);
+ dp->~GG1122233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1122233(Test_GG1122233, "GG1122233", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1122233C1Ev();
+extern void _ZN9GG1122233D1Ev();
+Name_Map name_map_GG1122233[] = {
+ NSPAIR(_ZN9GG1122233C1Ev),
+ NSPAIR(_ZN9GG1122233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE112;
+extern VTBL_ENTRY _ZTI5EE112[];
+extern VTBL_ENTRY _ZTV5EE112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE112[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF223;
+extern VTBL_ENTRY _ZTI5FF223[];
+extern VTBL_ENTRY _ZTV5FF223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF223[];
+static Base_Class bases_GG1122233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE112, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF223, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1122233[];
+extern void _ZN9GG11222333fooEv();
+extern void _ZN9GG11222333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11222333barEv,_ZTv0_n20_N9GG11222333barEv)();
+extern void ABISELECT(_ZThn16_N9GG11222333barEv,_ZThn8_N9GG11222333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11222333fooEv,_ZTv0_n12_N9GG11222333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11222333fooEv,_ZThn16_N9GG11222333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11222333fooEv,_ZTv0_n12_N9GG11222333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11222333fooEv,_ZThn24_N9GG11222333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11222333fooEv,_ZTv0_n20_N9GG11222333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11222333fooEv,_ZThn32_N9GG11222333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11222333barEv,_ZTv0_n24_N9GG11222333barEv)();
+extern void ABISELECT(_ZThn64_N9GG11222333barEv,_ZThn32_N9GG11222333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11222333barEv,_ZTv0_n12_N9GG11222333barEv)();
+extern void ABISELECT(_ZThn80_N9GG11222333barEv,_ZThn40_N9GG11222333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11222333barEv,_ZTv0_n12_N9GG11222333barEv)();
+extern void ABISELECT(_ZThn96_N9GG11222333barEv,_ZThn48_N9GG11222333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1122233[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1122233[0]),
+ (VTBL_ENTRY)&_ZN9GG11222333fooEv,
+ (VTBL_ENTRY)&_ZN9GG11222333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1122233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11222333barEv,_ZTv0_n20_N9GG11222333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1122233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11222333fooEv,_ZTv0_n12_N9GG11222333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1122233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11222333fooEv,_ZTv0_n12_N9GG11222333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1122233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11222333fooEv,_ZTv0_n20_N9GG11222333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11222333barEv,_ZTv0_n24_N9GG11222333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1122233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11222333barEv,_ZTv0_n12_N9GG11222333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1122233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11222333barEv,_ZTv0_n12_N9GG11222333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1122233[];
+extern void _ZN5EE1123barEv();
+static VTBL_ENTRY _tg__ZTV5EE112__9GG1122233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN5EE1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE112__9GG1122233[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE112__9GG1122233[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF2233fooEv();
+extern void _ZN5FF2233barEv();
+static VTBL_ENTRY _tg__ZTV5FF223__9GG1122233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&_ZN5FF2233fooEv,
+ (VTBL_ENTRY)&_ZN5FF2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+extern void ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF223__9GG1122233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+extern void ABISELECT(_ZThn32_N5FF2233barEv,_ZThn16_N5FF2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF223__9GG1122233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+static VTT_ENTRY vtt_GG1122233[] = {
+ {&(_ZTV9GG1122233[8]), 8,40},
+ {&(_ZTV9GG1122233[15]), 15,40},
+ {&(_ZTV9GG1122233[19]), 19,40},
+ {&(_ZTV9GG1122233[23]), 23,40},
+ {&(_ZTV9GG1122233[30]), 30,40},
+ {&(_ZTV9GG1122233[35]), 35,40},
+ {&(_ZTV9GG1122233[39]), 39,40},
+ {&(_tg__ZTV5EE112__9GG1122233[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE112__9GG1122233[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE112__9GG1122233[3]), 3,4},
+ {&(_tg__ZTV5FF223__9GG1122233[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF223__9GG1122233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF223__9GG1122233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1122233[];
+extern VTBL_ENTRY _ZTV9GG1122233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1122233[];
+static VTBL_ENTRY alt_thunk_names251[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2233barEv,_ZThn16_N5FF2233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11222333barEv,_ZTv0_n12_N9GG11222333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11222333barEv,_ZThn48_N9GG11222333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11222333barEv,_ZThn40_N9GG11222333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG11222333barEv,_ZTv0_n24_N9GG11222333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11222333barEv,_ZThn32_N9GG11222333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11222333fooEv,_ZTv0_n20_N9GG11222333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11222333fooEv,_ZThn32_N9GG11222333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11222333fooEv,_ZTv0_n12_N9GG11222333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11222333fooEv,_ZThn24_N9GG11222333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11222333fooEv,_ZThn16_N9GG11222333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11222333barEv,_ZTv0_n20_N9GG11222333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11222333barEv,_ZThn8_N9GG11222333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1122233 = { "GG1122233", // class name
+ bases_GG1122233, 6,
+ &(vtc_GG1122233[0]), // expected_vtbl_contents
+ &(vtt_GG1122233[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1122233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1122233),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1122233),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names251,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1122313 : virtual EE112 , virtual FF231 {
+ int pg;
+ virtual void foo(); // _ZN9GG11223133fooEv
+ virtual void bar(); // _ZN9GG11223133barEv
+ ~GG1122313(); // tgen
+ GG1122313(); // tgen
+};
+//SIG(1 GG1122313) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1122313 ::foo(){vfunc_called(this, "_ZN9GG11223133fooEv");}
+void GG1122313 ::bar(){vfunc_called(this, "_ZN9GG11223133barEv");}
+GG1122313 ::~GG1122313(){ note_dtor("GG1122313", this);} // tgen
+GG1122313 ::GG1122313(){ note_ctor("GG1122313", this);} // tgen
+
+static void Test_GG1122313()
+{
+ extern Class_Descriptor cd_GG1122313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1122313, buf);
+ GG1122313 *dp, &lv = *(dp=new (buf) GG1122313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1122313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1122313)");
+ check_base_class_offset(lv, (AA1*)(EE112*), ABISELECT(32,16), "GG1122313");
+ check_base_class_offset(lv, (BB1*)(EE112*), ABISELECT(48,24), "GG1122313");
+ check_base_class_offset(lv, (EE112*), ABISELECT(16,8), "GG1122313");
+ check_base_class_offset(lv, (AA2*)(FF231*), ABISELECT(80,40), "GG1122313");
+ check_base_class_offset(lv, (BB3*)(FF231*), ABISELECT(96,48), "GG1122313");
+ check_base_class_offset(lv, (FF231*), ABISELECT(64,32), "GG1122313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1122313.pg");
+ test_class_info(&lv, &cd_GG1122313);
+ dp->~GG1122313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1122313(Test_GG1122313, "GG1122313", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1122313C1Ev();
+extern void _ZN9GG1122313D1Ev();
+Name_Map name_map_GG1122313[] = {
+ NSPAIR(_ZN9GG1122313C1Ev),
+ NSPAIR(_ZN9GG1122313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE112;
+extern VTBL_ENTRY _ZTI5EE112[];
+extern VTBL_ENTRY _ZTV5EE112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE112[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF231;
+extern VTBL_ENTRY _ZTI5FF231[];
+extern VTBL_ENTRY _ZTV5FF231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF231[];
+static Base_Class bases_GG1122313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE112, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF231, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1122313[];
+extern void _ZN9GG11223133fooEv();
+extern void _ZN9GG11223133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11223133barEv,_ZTv0_n20_N9GG11223133barEv)();
+extern void ABISELECT(_ZThn16_N9GG11223133barEv,_ZThn8_N9GG11223133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11223133fooEv,_ZTv0_n12_N9GG11223133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11223133fooEv,_ZThn16_N9GG11223133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11223133fooEv,_ZTv0_n12_N9GG11223133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11223133fooEv,_ZThn24_N9GG11223133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11223133fooEv,_ZTv0_n20_N9GG11223133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11223133fooEv,_ZThn32_N9GG11223133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11223133barEv,_ZTv0_n12_N9GG11223133barEv)();
+extern void ABISELECT(_ZThn80_N9GG11223133barEv,_ZThn40_N9GG11223133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11223133fooEv,_ZTv0_n12_N9GG11223133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG11223133fooEv,_ZThn48_N9GG11223133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11223133barEv,_ZTv0_n16_N9GG11223133barEv)();
+extern void ABISELECT(_ZThn96_N9GG11223133barEv,_ZThn48_N9GG11223133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1122313[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1122313[0]),
+ (VTBL_ENTRY)&_ZN9GG11223133fooEv,
+ (VTBL_ENTRY)&_ZN9GG11223133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1122313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11223133barEv,_ZTv0_n20_N9GG11223133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1122313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11223133fooEv,_ZTv0_n12_N9GG11223133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1122313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11223133fooEv,_ZTv0_n12_N9GG11223133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1122313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11223133fooEv,_ZTv0_n20_N9GG11223133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1122313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11223133barEv,_ZTv0_n12_N9GG11223133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1122313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11223133fooEv,_ZTv0_n12_N9GG11223133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11223133barEv,_ZTv0_n16_N9GG11223133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1122313[];
+extern void _ZN5EE1123barEv();
+static VTBL_ENTRY _tg__ZTV5EE112__9GG1122313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN5EE1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE112__9GG1122313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE112__9GG1122313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF2313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF231__9GG1122313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN5FF2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF231__9GG1122313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2313fooEv,_ZThn16_N5FF2313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF231__9GG1122313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG1122313[] = {
+ {&(_ZTV9GG1122313[8]), 8,40},
+ {&(_ZTV9GG1122313[15]), 15,40},
+ {&(_ZTV9GG1122313[19]), 19,40},
+ {&(_ZTV9GG1122313[23]), 23,40},
+ {&(_ZTV9GG1122313[29]), 29,40},
+ {&(_ZTV9GG1122313[33]), 33,40},
+ {&(_ZTV9GG1122313[38]), 38,40},
+ {&(_tg__ZTV5EE112__9GG1122313[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE112__9GG1122313[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE112__9GG1122313[3]), 3,4},
+ {&(_tg__ZTV5FF231__9GG1122313[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF231__9GG1122313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF231__9GG1122313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1122313[];
+extern VTBL_ENTRY _ZTV9GG1122313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1122313[];
+static VTBL_ENTRY alt_thunk_names252[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2313fooEv,_ZThn16_N5FF2313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG11223133barEv,_ZTv0_n16_N9GG11223133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11223133barEv,_ZThn48_N9GG11223133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11223133barEv,_ZTv0_n12_N9GG11223133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11223133barEv,_ZThn40_N9GG11223133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11223133fooEv,_ZTv0_n20_N9GG11223133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11223133fooEv,_ZThn32_N9GG11223133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11223133fooEv,_ZTv0_n12_N9GG11223133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11223133fooEv,_ZThn48_N9GG11223133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11223133fooEv,_ZThn24_N9GG11223133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11223133fooEv,_ZThn16_N9GG11223133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11223133barEv,_ZTv0_n20_N9GG11223133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11223133barEv,_ZThn8_N9GG11223133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1122313 = { "GG1122313", // class name
+ bases_GG1122313, 6,
+ &(vtc_GG1122313[0]), // expected_vtbl_contents
+ &(vtt_GG1122313[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1122313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1122313),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1122313),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names252,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1122323 : virtual EE112 , virtual FF232 {
+ int pg;
+ virtual void foo(); // _ZN9GG11223233fooEv
+ virtual void bar(); // _ZN9GG11223233barEv
+ ~GG1122323(); // tgen
+ GG1122323(); // tgen
+};
+//SIG(1 GG1122323) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1122323 ::foo(){vfunc_called(this, "_ZN9GG11223233fooEv");}
+void GG1122323 ::bar(){vfunc_called(this, "_ZN9GG11223233barEv");}
+GG1122323 ::~GG1122323(){ note_dtor("GG1122323", this);} // tgen
+GG1122323 ::GG1122323(){ note_ctor("GG1122323", this);} // tgen
+
+static void Test_GG1122323()
+{
+ extern Class_Descriptor cd_GG1122323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1122323, buf);
+ GG1122323 *dp, &lv = *(dp=new (buf) GG1122323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1122323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1122323)");
+ check_base_class_offset(lv, (AA1*)(EE112*), ABISELECT(32,16), "GG1122323");
+ check_base_class_offset(lv, (BB1*)(EE112*), ABISELECT(48,24), "GG1122323");
+ check_base_class_offset(lv, (EE112*), ABISELECT(16,8), "GG1122323");
+ check_base_class_offset(lv, (AA2*)(FF232*), ABISELECT(80,40), "GG1122323");
+ check_base_class_offset(lv, (BB3*)(FF232*), ABISELECT(96,48), "GG1122323");
+ check_base_class_offset(lv, (FF232*), ABISELECT(64,32), "GG1122323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1122323.pg");
+ test_class_info(&lv, &cd_GG1122323);
+ dp->~GG1122323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1122323(Test_GG1122323, "GG1122323", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1122323C1Ev();
+extern void _ZN9GG1122323D1Ev();
+Name_Map name_map_GG1122323[] = {
+ NSPAIR(_ZN9GG1122323C1Ev),
+ NSPAIR(_ZN9GG1122323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE112;
+extern VTBL_ENTRY _ZTI5EE112[];
+extern VTBL_ENTRY _ZTV5EE112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE112[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF232;
+extern VTBL_ENTRY _ZTI5FF232[];
+extern VTBL_ENTRY _ZTV5FF232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF232[];
+static Base_Class bases_GG1122323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE112, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF232, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1122323[];
+extern void _ZN9GG11223233fooEv();
+extern void _ZN9GG11223233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11223233barEv,_ZTv0_n20_N9GG11223233barEv)();
+extern void ABISELECT(_ZThn16_N9GG11223233barEv,_ZThn8_N9GG11223233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11223233fooEv,_ZTv0_n12_N9GG11223233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11223233fooEv,_ZThn16_N9GG11223233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11223233fooEv,_ZTv0_n12_N9GG11223233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11223233fooEv,_ZThn24_N9GG11223233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11223233barEv,_ZTv0_n20_N9GG11223233barEv)();
+extern void ABISELECT(_ZThn64_N9GG11223233barEv,_ZThn32_N9GG11223233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11223233barEv,_ZTv0_n12_N9GG11223233barEv)();
+extern void ABISELECT(_ZThn80_N9GG11223233barEv,_ZThn40_N9GG11223233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11223233fooEv,_ZTv0_n12_N9GG11223233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG11223233fooEv,_ZThn48_N9GG11223233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11223233barEv,_ZTv0_n16_N9GG11223233barEv)();
+extern void ABISELECT(_ZThn96_N9GG11223233barEv,_ZThn48_N9GG11223233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1122323[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1122323[0]),
+ (VTBL_ENTRY)&_ZN9GG11223233fooEv,
+ (VTBL_ENTRY)&_ZN9GG11223233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1122323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11223233barEv,_ZTv0_n20_N9GG11223233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1122323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11223233fooEv,_ZTv0_n12_N9GG11223233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1122323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11223233fooEv,_ZTv0_n12_N9GG11223233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1122323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11223233barEv,_ZTv0_n20_N9GG11223233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1122323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11223233barEv,_ZTv0_n12_N9GG11223233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1122323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11223233fooEv,_ZTv0_n12_N9GG11223233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11223233barEv,_ZTv0_n16_N9GG11223233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1122323[];
+extern void _ZN5EE1123barEv();
+static VTBL_ENTRY _tg__ZTV5EE112__9GG1122323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN5EE1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE112__9GG1122323[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE112__9GG1122323[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF2323barEv();
+static VTBL_ENTRY _tg__ZTV5FF232__9GG1122323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN5FF2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv)();
+extern void ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF232__9GG1122323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv)();
+extern void ABISELECT(_ZThn32_N5FF2323barEv,_ZThn16_N5FF2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF232__9GG1122323[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv),
+};
+static VTT_ENTRY vtt_GG1122323[] = {
+ {&(_ZTV9GG1122323[8]), 8,40},
+ {&(_ZTV9GG1122323[15]), 15,40},
+ {&(_ZTV9GG1122323[19]), 19,40},
+ {&(_ZTV9GG1122323[23]), 23,40},
+ {&(_ZTV9GG1122323[29]), 29,40},
+ {&(_ZTV9GG1122323[33]), 33,40},
+ {&(_ZTV9GG1122323[38]), 38,40},
+ {&(_tg__ZTV5EE112__9GG1122323[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE112__9GG1122323[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE112__9GG1122323[3]), 3,4},
+ {&(_tg__ZTV5FF232__9GG1122323[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF232__9GG1122323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF232__9GG1122323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1122323[];
+extern VTBL_ENTRY _ZTV9GG1122323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1122323[];
+static VTBL_ENTRY alt_thunk_names253[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2323barEv,_ZThn16_N5FF2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG11223233barEv,_ZTv0_n16_N9GG11223233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11223233barEv,_ZThn48_N9GG11223233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11223233barEv,_ZTv0_n12_N9GG11223233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11223233barEv,_ZThn40_N9GG11223233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11223233fooEv,_ZTv0_n12_N9GG11223233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11223233fooEv,_ZThn48_N9GG11223233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11223233fooEv,_ZThn24_N9GG11223233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11223233fooEv,_ZThn16_N9GG11223233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11223233barEv,_ZTv0_n20_N9GG11223233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11223233barEv,_ZThn32_N9GG11223233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11223233barEv,_ZThn8_N9GG11223233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1122323 = { "GG1122323", // class name
+ bases_GG1122323, 6,
+ &(vtc_GG1122323[0]), // expected_vtbl_contents
+ &(vtt_GG1122323[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1122323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1122323),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1122323),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names253,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1122333 : virtual EE112 , virtual FF233 {
+ int pg;
+ virtual void foo(); // _ZN9GG11223333fooEv
+ virtual void bar(); // _ZN9GG11223333barEv
+ ~GG1122333(); // tgen
+ GG1122333(); // tgen
+};
+//SIG(1 GG1122333) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1122333 ::foo(){vfunc_called(this, "_ZN9GG11223333fooEv");}
+void GG1122333 ::bar(){vfunc_called(this, "_ZN9GG11223333barEv");}
+GG1122333 ::~GG1122333(){ note_dtor("GG1122333", this);} // tgen
+GG1122333 ::GG1122333(){ note_ctor("GG1122333", this);} // tgen
+
+static void Test_GG1122333()
+{
+ extern Class_Descriptor cd_GG1122333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1122333, buf);
+ GG1122333 *dp, &lv = *(dp=new (buf) GG1122333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1122333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1122333)");
+ check_base_class_offset(lv, (AA1*)(EE112*), ABISELECT(32,16), "GG1122333");
+ check_base_class_offset(lv, (BB1*)(EE112*), ABISELECT(48,24), "GG1122333");
+ check_base_class_offset(lv, (EE112*), ABISELECT(16,8), "GG1122333");
+ check_base_class_offset(lv, (AA2*)(FF233*), ABISELECT(80,40), "GG1122333");
+ check_base_class_offset(lv, (BB3*)(FF233*), ABISELECT(96,48), "GG1122333");
+ check_base_class_offset(lv, (FF233*), ABISELECT(64,32), "GG1122333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1122333.pg");
+ test_class_info(&lv, &cd_GG1122333);
+ dp->~GG1122333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1122333(Test_GG1122333, "GG1122333", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1122333C1Ev();
+extern void _ZN9GG1122333D1Ev();
+Name_Map name_map_GG1122333[] = {
+ NSPAIR(_ZN9GG1122333C1Ev),
+ NSPAIR(_ZN9GG1122333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE112;
+extern VTBL_ENTRY _ZTI5EE112[];
+extern VTBL_ENTRY _ZTV5EE112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE112[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF233;
+extern VTBL_ENTRY _ZTI5FF233[];
+extern VTBL_ENTRY _ZTV5FF233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF233[];
+static Base_Class bases_GG1122333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE112, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF233, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1122333[];
+extern void _ZN9GG11223333fooEv();
+extern void _ZN9GG11223333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11223333barEv,_ZTv0_n20_N9GG11223333barEv)();
+extern void ABISELECT(_ZThn16_N9GG11223333barEv,_ZThn8_N9GG11223333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11223333fooEv,_ZTv0_n12_N9GG11223333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11223333fooEv,_ZThn16_N9GG11223333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11223333fooEv,_ZTv0_n12_N9GG11223333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11223333fooEv,_ZThn24_N9GG11223333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11223333fooEv,_ZTv0_n20_N9GG11223333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11223333fooEv,_ZThn32_N9GG11223333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11223333barEv,_ZTv0_n24_N9GG11223333barEv)();
+extern void ABISELECT(_ZThn64_N9GG11223333barEv,_ZThn32_N9GG11223333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11223333barEv,_ZTv0_n12_N9GG11223333barEv)();
+extern void ABISELECT(_ZThn80_N9GG11223333barEv,_ZThn40_N9GG11223333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11223333fooEv,_ZTv0_n12_N9GG11223333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG11223333fooEv,_ZThn48_N9GG11223333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11223333barEv,_ZTv0_n16_N9GG11223333barEv)();
+extern void ABISELECT(_ZThn96_N9GG11223333barEv,_ZThn48_N9GG11223333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1122333[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1122333[0]),
+ (VTBL_ENTRY)&_ZN9GG11223333fooEv,
+ (VTBL_ENTRY)&_ZN9GG11223333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1122333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11223333barEv,_ZTv0_n20_N9GG11223333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1122333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11223333fooEv,_ZTv0_n12_N9GG11223333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1122333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11223333fooEv,_ZTv0_n12_N9GG11223333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1122333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11223333fooEv,_ZTv0_n20_N9GG11223333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11223333barEv,_ZTv0_n24_N9GG11223333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1122333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11223333barEv,_ZTv0_n12_N9GG11223333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1122333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11223333fooEv,_ZTv0_n12_N9GG11223333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11223333barEv,_ZTv0_n16_N9GG11223333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1122333[];
+extern void _ZN5EE1123barEv();
+static VTBL_ENTRY _tg__ZTV5EE112__9GG1122333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN5EE1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE112__9GG1122333[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE112__9GG1122333[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF2333fooEv();
+extern void _ZN5FF2333barEv();
+static VTBL_ENTRY _tg__ZTV5FF233__9GG1122333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&_ZN5FF2333fooEv,
+ (VTBL_ENTRY)&_ZN5FF2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv)();
+extern void ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF233__9GG1122333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2333fooEv,_ZThn16_N5FF2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv)();
+extern void ABISELECT(_ZThn32_N5FF2333barEv,_ZThn16_N5FF2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF233__9GG1122333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv),
+};
+static VTT_ENTRY vtt_GG1122333[] = {
+ {&(_ZTV9GG1122333[8]), 8,42},
+ {&(_ZTV9GG1122333[15]), 15,42},
+ {&(_ZTV9GG1122333[19]), 19,42},
+ {&(_ZTV9GG1122333[23]), 23,42},
+ {&(_ZTV9GG1122333[30]), 30,42},
+ {&(_ZTV9GG1122333[35]), 35,42},
+ {&(_ZTV9GG1122333[40]), 40,42},
+ {&(_tg__ZTV5EE112__9GG1122333[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE112__9GG1122333[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE112__9GG1122333[3]), 3,4},
+ {&(_tg__ZTV5FF233__9GG1122333[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF233__9GG1122333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF233__9GG1122333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1122333[];
+extern VTBL_ENTRY _ZTV9GG1122333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1122333[];
+static VTBL_ENTRY alt_thunk_names254[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2333barEv,_ZThn16_N5FF2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2333fooEv,_ZThn16_N5FF2333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG11223333barEv,_ZTv0_n16_N9GG11223333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11223333barEv,_ZThn48_N9GG11223333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11223333barEv,_ZTv0_n12_N9GG11223333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11223333barEv,_ZThn40_N9GG11223333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG11223333barEv,_ZTv0_n24_N9GG11223333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11223333barEv,_ZThn32_N9GG11223333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11223333fooEv,_ZTv0_n20_N9GG11223333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11223333fooEv,_ZThn32_N9GG11223333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11223333fooEv,_ZTv0_n12_N9GG11223333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11223333fooEv,_ZThn48_N9GG11223333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11223333fooEv,_ZThn24_N9GG11223333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11223333fooEv,_ZThn16_N9GG11223333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11223333barEv,_ZTv0_n20_N9GG11223333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11223333barEv,_ZThn8_N9GG11223333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1122333 = { "GG1122333", // class name
+ bases_GG1122333, 6,
+ &(vtc_GG1122333[0]), // expected_vtbl_contents
+ &(vtt_GG1122333[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1122333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1122333),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1122333),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names254,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1123113 : virtual EE112 , virtual FF311 {
+ int pg;
+ virtual void foo(); // _ZN9GG11231133fooEv
+ virtual void bar(); // _ZN9GG11231133barEv
+ ~GG1123113(); // tgen
+ GG1123113(); // tgen
+};
+//SIG(1 GG1123113) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG1123113 ::foo(){vfunc_called(this, "_ZN9GG11231133fooEv");}
+void GG1123113 ::bar(){vfunc_called(this, "_ZN9GG11231133barEv");}
+GG1123113 ::~GG1123113(){ note_dtor("GG1123113", this);} // tgen
+GG1123113 ::GG1123113(){ note_ctor("GG1123113", this);} // tgen
+
+static void Test_GG1123113()
+{
+ extern Class_Descriptor cd_GG1123113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1123113, buf);
+ GG1123113 *dp, &lv = *(dp=new (buf) GG1123113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1123113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1123113)");
+ check_base_class_offset(lv, (AA1*)(EE112*), ABISELECT(32,16), "GG1123113");
+ check_base_class_offset(lv, (BB1*)(EE112*), ABISELECT(48,24), "GG1123113");
+ check_base_class_offset(lv, (BB1*)(FF311*), ABISELECT(48,24), "GG1123113");
+ check_base_class_offset(lv, (EE112*), ABISELECT(16,8), "GG1123113");
+ check_base_class_offset(lv, (AA3*)(FF311*), ABISELECT(80,40), "GG1123113");
+ check_base_class_offset(lv, (FF311*), ABISELECT(64,32), "GG1123113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1123113.pg");
+ test_class_info(&lv, &cd_GG1123113);
+ dp->~GG1123113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1123113(Test_GG1123113, "GG1123113", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1123113C1Ev();
+extern void _ZN9GG1123113D1Ev();
+Name_Map name_map_GG1123113[] = {
+ NSPAIR(_ZN9GG1123113C1Ev),
+ NSPAIR(_ZN9GG1123113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE112;
+extern VTBL_ENTRY _ZTI5EE112[];
+extern VTBL_ENTRY _ZTV5EE112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE112[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF311;
+extern VTBL_ENTRY _ZTI5FF311[];
+extern VTBL_ENTRY _ZTV5FF311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF311[];
+static Base_Class bases_GG1123113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE112, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF311, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1123113[];
+extern void _ZN9GG11231133fooEv();
+extern void _ZN9GG11231133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11231133barEv,_ZTv0_n20_N9GG11231133barEv)();
+extern void ABISELECT(_ZThn16_N9GG11231133barEv,_ZThn8_N9GG11231133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11231133fooEv,_ZTv0_n12_N9GG11231133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11231133fooEv,_ZThn16_N9GG11231133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11231133fooEv,_ZTv0_n12_N9GG11231133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11231133fooEv,_ZThn24_N9GG11231133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11231133fooEv,_ZTv0_n20_N9GG11231133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11231133fooEv,_ZThn32_N9GG11231133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11231133fooEv,_ZTv0_n12_N9GG11231133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG11231133fooEv,_ZThn40_N9GG11231133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11231133barEv,_ZTv0_n16_N9GG11231133barEv)();
+extern void ABISELECT(_ZThn80_N9GG11231133barEv,_ZThn40_N9GG11231133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1123113[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1123113[0]),
+ (VTBL_ENTRY)&_ZN9GG11231133fooEv,
+ (VTBL_ENTRY)&_ZN9GG11231133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1123113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11231133barEv,_ZTv0_n20_N9GG11231133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1123113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11231133fooEv,_ZTv0_n12_N9GG11231133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1123113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11231133fooEv,_ZTv0_n12_N9GG11231133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1123113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11231133fooEv,_ZTv0_n20_N9GG11231133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1123113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11231133fooEv,_ZTv0_n12_N9GG11231133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11231133barEv,_ZTv0_n16_N9GG11231133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1123113[];
+extern void _ZN5EE1123barEv();
+static VTBL_ENTRY _tg__ZTV5EE112__9GG1123113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN5EE1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE112__9GG1123113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE112__9GG1123113[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF3113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF311__9GG1123113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&_ZN5FF3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF311__9GG1123113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF311__9GG1123113[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+};
+static VTT_ENTRY vtt_GG1123113[] = {
+ {&(_ZTV9GG1123113[7]), 7,35},
+ {&(_ZTV9GG1123113[14]), 14,35},
+ {&(_ZTV9GG1123113[18]), 18,35},
+ {&(_ZTV9GG1123113[22]), 22,35},
+ {&(_ZTV9GG1123113[28]), 28,35},
+ {&(_ZTV9GG1123113[33]), 33,35},
+ {&(_tg__ZTV5EE112__9GG1123113[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE112__9GG1123113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE112__9GG1123113[3]), 3,4},
+ {&(_tg__ZTV5FF311__9GG1123113[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF311__9GG1123113[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF311__9GG1123113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1123113[];
+extern VTBL_ENTRY _ZTV9GG1123113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1123113[];
+static VTBL_ENTRY alt_thunk_names255[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG11231133barEv,_ZTv0_n16_N9GG11231133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11231133barEv,_ZThn40_N9GG11231133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11231133fooEv,_ZTv0_n20_N9GG11231133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11231133fooEv,_ZThn32_N9GG11231133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11231133fooEv,_ZTv0_n12_N9GG11231133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11231133fooEv,_ZThn40_N9GG11231133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11231133fooEv,_ZThn24_N9GG11231133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11231133fooEv,_ZThn16_N9GG11231133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11231133barEv,_ZTv0_n20_N9GG11231133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11231133barEv,_ZThn8_N9GG11231133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1123113 = { "GG1123113", // class name
+ bases_GG1123113, 5,
+ &(vtc_GG1123113[0]), // expected_vtbl_contents
+ &(vtt_GG1123113[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1123113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1123113),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1123113),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names255,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1123123 : virtual EE112 , virtual FF312 {
+ int pg;
+ virtual void foo(); // _ZN9GG11231233fooEv
+ virtual void bar(); // _ZN9GG11231233barEv
+ ~GG1123123(); // tgen
+ GG1123123(); // tgen
+};
+//SIG(1 GG1123123) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG1123123 ::foo(){vfunc_called(this, "_ZN9GG11231233fooEv");}
+void GG1123123 ::bar(){vfunc_called(this, "_ZN9GG11231233barEv");}
+GG1123123 ::~GG1123123(){ note_dtor("GG1123123", this);} // tgen
+GG1123123 ::GG1123123(){ note_ctor("GG1123123", this);} // tgen
+
+static void Test_GG1123123()
+{
+ extern Class_Descriptor cd_GG1123123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1123123, buf);
+ GG1123123 *dp, &lv = *(dp=new (buf) GG1123123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1123123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1123123)");
+ check_base_class_offset(lv, (AA1*)(EE112*), ABISELECT(32,16), "GG1123123");
+ check_base_class_offset(lv, (BB1*)(EE112*), ABISELECT(48,24), "GG1123123");
+ check_base_class_offset(lv, (BB1*)(FF312*), ABISELECT(48,24), "GG1123123");
+ check_base_class_offset(lv, (EE112*), ABISELECT(16,8), "GG1123123");
+ check_base_class_offset(lv, (AA3*)(FF312*), ABISELECT(80,40), "GG1123123");
+ check_base_class_offset(lv, (FF312*), ABISELECT(64,32), "GG1123123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1123123.pg");
+ test_class_info(&lv, &cd_GG1123123);
+ dp->~GG1123123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1123123(Test_GG1123123, "GG1123123", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1123123C1Ev();
+extern void _ZN9GG1123123D1Ev();
+Name_Map name_map_GG1123123[] = {
+ NSPAIR(_ZN9GG1123123C1Ev),
+ NSPAIR(_ZN9GG1123123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE112;
+extern VTBL_ENTRY _ZTI5EE112[];
+extern VTBL_ENTRY _ZTV5EE112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE112[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF312;
+extern VTBL_ENTRY _ZTI5FF312[];
+extern VTBL_ENTRY _ZTV5FF312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF312[];
+static Base_Class bases_GG1123123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE112, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF312, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1123123[];
+extern void _ZN9GG11231233fooEv();
+extern void _ZN9GG11231233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11231233barEv,_ZTv0_n20_N9GG11231233barEv)();
+extern void ABISELECT(_ZThn16_N9GG11231233barEv,_ZThn8_N9GG11231233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11231233fooEv,_ZTv0_n12_N9GG11231233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11231233fooEv,_ZThn16_N9GG11231233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11231233fooEv,_ZTv0_n12_N9GG11231233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11231233fooEv,_ZThn24_N9GG11231233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11231233barEv,_ZTv0_n20_N9GG11231233barEv)();
+extern void ABISELECT(_ZThn64_N9GG11231233barEv,_ZThn32_N9GG11231233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11231233fooEv,_ZTv0_n12_N9GG11231233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG11231233fooEv,_ZThn40_N9GG11231233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11231233barEv,_ZTv0_n16_N9GG11231233barEv)();
+extern void ABISELECT(_ZThn80_N9GG11231233barEv,_ZThn40_N9GG11231233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1123123[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1123123[0]),
+ (VTBL_ENTRY)&_ZN9GG11231233fooEv,
+ (VTBL_ENTRY)&_ZN9GG11231233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1123123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11231233barEv,_ZTv0_n20_N9GG11231233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1123123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11231233fooEv,_ZTv0_n12_N9GG11231233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1123123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11231233fooEv,_ZTv0_n12_N9GG11231233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1123123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11231233barEv,_ZTv0_n20_N9GG11231233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1123123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11231233fooEv,_ZTv0_n12_N9GG11231233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11231233barEv,_ZTv0_n16_N9GG11231233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1123123[];
+extern void _ZN5EE1123barEv();
+static VTBL_ENTRY _tg__ZTV5EE112__9GG1123123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN5EE1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE112__9GG1123123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE112__9GG1123123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF3123barEv();
+static VTBL_ENTRY _tg__ZTV5FF312__9GG1123123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN5FF3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv)();
+extern void ABISELECT(_ZThn16_N5FF3123barEv,_ZThn8_N5FF3123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF312__9GG1123123[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF312__9GG1123123[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG1123123[] = {
+ {&(_ZTV9GG1123123[7]), 7,35},
+ {&(_ZTV9GG1123123[14]), 14,35},
+ {&(_ZTV9GG1123123[18]), 18,35},
+ {&(_ZTV9GG1123123[22]), 22,35},
+ {&(_ZTV9GG1123123[28]), 28,35},
+ {&(_ZTV9GG1123123[33]), 33,35},
+ {&(_tg__ZTV5EE112__9GG1123123[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE112__9GG1123123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE112__9GG1123123[3]), 3,4},
+ {&(_tg__ZTV5FF312__9GG1123123[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF312__9GG1123123[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF312__9GG1123123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1123123[];
+extern VTBL_ENTRY _ZTV9GG1123123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1123123[];
+static VTBL_ENTRY alt_thunk_names256[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3123barEv,_ZThn8_N5FF3123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG11231233barEv,_ZTv0_n16_N9GG11231233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11231233barEv,_ZThn40_N9GG11231233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11231233fooEv,_ZTv0_n12_N9GG11231233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11231233fooEv,_ZThn40_N9GG11231233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11231233fooEv,_ZThn24_N9GG11231233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11231233fooEv,_ZThn16_N9GG11231233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11231233barEv,_ZTv0_n20_N9GG11231233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11231233barEv,_ZThn32_N9GG11231233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11231233barEv,_ZThn8_N9GG11231233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1123123 = { "GG1123123", // class name
+ bases_GG1123123, 5,
+ &(vtc_GG1123123[0]), // expected_vtbl_contents
+ &(vtt_GG1123123[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1123123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1123123),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1123123),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names256,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1123133 : virtual EE112 , virtual FF313 {
+ int pg;
+ virtual void foo(); // _ZN9GG11231333fooEv
+ virtual void bar(); // _ZN9GG11231333barEv
+ ~GG1123133(); // tgen
+ GG1123133(); // tgen
+};
+//SIG(1 GG1123133) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1123133 ::foo(){vfunc_called(this, "_ZN9GG11231333fooEv");}
+void GG1123133 ::bar(){vfunc_called(this, "_ZN9GG11231333barEv");}
+GG1123133 ::~GG1123133(){ note_dtor("GG1123133", this);} // tgen
+GG1123133 ::GG1123133(){ note_ctor("GG1123133", this);} // tgen
+
+static void Test_GG1123133()
+{
+ extern Class_Descriptor cd_GG1123133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1123133, buf);
+ GG1123133 *dp, &lv = *(dp=new (buf) GG1123133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1123133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1123133)");
+ check_base_class_offset(lv, (AA1*)(EE112*), ABISELECT(32,16), "GG1123133");
+ check_base_class_offset(lv, (BB1*)(EE112*), ABISELECT(48,24), "GG1123133");
+ check_base_class_offset(lv, (BB1*)(FF313*), ABISELECT(48,24), "GG1123133");
+ check_base_class_offset(lv, (EE112*), ABISELECT(16,8), "GG1123133");
+ check_base_class_offset(lv, (AA3*)(FF313*), ABISELECT(80,40), "GG1123133");
+ check_base_class_offset(lv, (FF313*), ABISELECT(64,32), "GG1123133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1123133.pg");
+ test_class_info(&lv, &cd_GG1123133);
+ dp->~GG1123133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1123133(Test_GG1123133, "GG1123133", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1123133C1Ev();
+extern void _ZN9GG1123133D1Ev();
+Name_Map name_map_GG1123133[] = {
+ NSPAIR(_ZN9GG1123133C1Ev),
+ NSPAIR(_ZN9GG1123133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE112;
+extern VTBL_ENTRY _ZTI5EE112[];
+extern VTBL_ENTRY _ZTV5EE112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE112[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF313;
+extern VTBL_ENTRY _ZTI5FF313[];
+extern VTBL_ENTRY _ZTV5FF313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF313[];
+static Base_Class bases_GG1123133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE112, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF313, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1123133[];
+extern void _ZN9GG11231333fooEv();
+extern void _ZN9GG11231333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11231333barEv,_ZTv0_n20_N9GG11231333barEv)();
+extern void ABISELECT(_ZThn16_N9GG11231333barEv,_ZThn8_N9GG11231333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11231333fooEv,_ZTv0_n12_N9GG11231333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11231333fooEv,_ZThn16_N9GG11231333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11231333fooEv,_ZTv0_n12_N9GG11231333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11231333fooEv,_ZThn24_N9GG11231333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11231333fooEv,_ZTv0_n20_N9GG11231333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11231333fooEv,_ZThn32_N9GG11231333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11231333barEv,_ZTv0_n24_N9GG11231333barEv)();
+extern void ABISELECT(_ZThn64_N9GG11231333barEv,_ZThn32_N9GG11231333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11231333fooEv,_ZTv0_n12_N9GG11231333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG11231333fooEv,_ZThn40_N9GG11231333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11231333barEv,_ZTv0_n16_N9GG11231333barEv)();
+extern void ABISELECT(_ZThn80_N9GG11231333barEv,_ZThn40_N9GG11231333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1123133[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1123133[0]),
+ (VTBL_ENTRY)&_ZN9GG11231333fooEv,
+ (VTBL_ENTRY)&_ZN9GG11231333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1123133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11231333barEv,_ZTv0_n20_N9GG11231333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1123133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11231333fooEv,_ZTv0_n12_N9GG11231333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1123133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11231333fooEv,_ZTv0_n12_N9GG11231333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1123133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11231333fooEv,_ZTv0_n20_N9GG11231333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11231333barEv,_ZTv0_n24_N9GG11231333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1123133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11231333fooEv,_ZTv0_n12_N9GG11231333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11231333barEv,_ZTv0_n16_N9GG11231333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1123133[];
+extern void _ZN5EE1123barEv();
+static VTBL_ENTRY _tg__ZTV5EE112__9GG1123133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN5EE1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE112__9GG1123133[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE112__9GG1123133[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF3133fooEv();
+extern void _ZN5FF3133barEv();
+static VTBL_ENTRY _tg__ZTV5FF313__9GG1123133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&_ZN5FF3133fooEv,
+ (VTBL_ENTRY)&_ZN5FF3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv)();
+extern void ABISELECT(_ZThn16_N5FF3133barEv,_ZThn8_N5FF3133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF313__9GG1123133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF313__9GG1123133[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+};
+static VTT_ENTRY vtt_GG1123133[] = {
+ {&(_ZTV9GG1123133[7]), 7,37},
+ {&(_ZTV9GG1123133[14]), 14,37},
+ {&(_ZTV9GG1123133[18]), 18,37},
+ {&(_ZTV9GG1123133[22]), 22,37},
+ {&(_ZTV9GG1123133[29]), 29,37},
+ {&(_ZTV9GG1123133[35]), 35,37},
+ {&(_tg__ZTV5EE112__9GG1123133[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE112__9GG1123133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE112__9GG1123133[3]), 3,4},
+ {&(_tg__ZTV5FF313__9GG1123133[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF313__9GG1123133[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF313__9GG1123133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1123133[];
+extern VTBL_ENTRY _ZTV9GG1123133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1123133[];
+static VTBL_ENTRY alt_thunk_names257[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3133barEv,_ZThn8_N5FF3133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG11231333barEv,_ZTv0_n16_N9GG11231333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11231333barEv,_ZThn40_N9GG11231333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG11231333barEv,_ZTv0_n24_N9GG11231333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11231333barEv,_ZThn32_N9GG11231333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11231333fooEv,_ZTv0_n20_N9GG11231333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11231333fooEv,_ZThn32_N9GG11231333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11231333fooEv,_ZTv0_n12_N9GG11231333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11231333fooEv,_ZThn40_N9GG11231333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11231333fooEv,_ZThn24_N9GG11231333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11231333fooEv,_ZThn16_N9GG11231333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11231333barEv,_ZTv0_n20_N9GG11231333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11231333barEv,_ZThn8_N9GG11231333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1123133 = { "GG1123133", // class name
+ bases_GG1123133, 5,
+ &(vtc_GG1123133[0]), // expected_vtbl_contents
+ &(vtt_GG1123133[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1123133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1123133),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1123133),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names257,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1123213 : virtual EE112 , virtual FF321 {
+ int pg;
+ virtual void foo(); // _ZN9GG11232133fooEv
+ virtual void bar(); // _ZN9GG11232133barEv
+ ~GG1123213(); // tgen
+ GG1123213(); // tgen
+};
+//SIG(1 GG1123213) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1123213 ::foo(){vfunc_called(this, "_ZN9GG11232133fooEv");}
+void GG1123213 ::bar(){vfunc_called(this, "_ZN9GG11232133barEv");}
+GG1123213 ::~GG1123213(){ note_dtor("GG1123213", this);} // tgen
+GG1123213 ::GG1123213(){ note_ctor("GG1123213", this);} // tgen
+
+static void Test_GG1123213()
+{
+ extern Class_Descriptor cd_GG1123213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1123213, buf);
+ GG1123213 *dp, &lv = *(dp=new (buf) GG1123213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1123213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1123213)");
+ check_base_class_offset(lv, (AA1*)(EE112*), ABISELECT(32,16), "GG1123213");
+ check_base_class_offset(lv, (BB1*)(EE112*), ABISELECT(48,24), "GG1123213");
+ check_base_class_offset(lv, (EE112*), ABISELECT(16,8), "GG1123213");
+ check_base_class_offset(lv, (AA3*)(FF321*), ABISELECT(80,40), "GG1123213");
+ check_base_class_offset(lv, (BB2*)(FF321*), ABISELECT(96,48), "GG1123213");
+ check_base_class_offset(lv, (FF321*), ABISELECT(64,32), "GG1123213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1123213.pg");
+ test_class_info(&lv, &cd_GG1123213);
+ dp->~GG1123213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1123213(Test_GG1123213, "GG1123213", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1123213C1Ev();
+extern void _ZN9GG1123213D1Ev();
+Name_Map name_map_GG1123213[] = {
+ NSPAIR(_ZN9GG1123213C1Ev),
+ NSPAIR(_ZN9GG1123213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE112;
+extern VTBL_ENTRY _ZTI5EE112[];
+extern VTBL_ENTRY _ZTV5EE112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE112[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF321;
+extern VTBL_ENTRY _ZTI5FF321[];
+extern VTBL_ENTRY _ZTV5FF321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF321[];
+static Base_Class bases_GG1123213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE112, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF321, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1123213[];
+extern void _ZN9GG11232133fooEv();
+extern void _ZN9GG11232133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11232133barEv,_ZTv0_n20_N9GG11232133barEv)();
+extern void ABISELECT(_ZThn16_N9GG11232133barEv,_ZThn8_N9GG11232133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11232133fooEv,_ZTv0_n12_N9GG11232133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11232133fooEv,_ZThn16_N9GG11232133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11232133fooEv,_ZTv0_n12_N9GG11232133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11232133fooEv,_ZThn24_N9GG11232133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11232133fooEv,_ZTv0_n20_N9GG11232133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11232133fooEv,_ZThn32_N9GG11232133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11232133fooEv,_ZTv0_n12_N9GG11232133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG11232133fooEv,_ZThn40_N9GG11232133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11232133barEv,_ZTv0_n16_N9GG11232133barEv)();
+extern void ABISELECT(_ZThn80_N9GG11232133barEv,_ZThn40_N9GG11232133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11232133barEv,_ZTv0_n12_N9GG11232133barEv)();
+extern void ABISELECT(_ZThn96_N9GG11232133barEv,_ZThn48_N9GG11232133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1123213[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1123213[0]),
+ (VTBL_ENTRY)&_ZN9GG11232133fooEv,
+ (VTBL_ENTRY)&_ZN9GG11232133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1123213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11232133barEv,_ZTv0_n20_N9GG11232133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1123213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11232133fooEv,_ZTv0_n12_N9GG11232133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1123213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11232133fooEv,_ZTv0_n12_N9GG11232133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1123213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11232133fooEv,_ZTv0_n20_N9GG11232133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1123213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11232133fooEv,_ZTv0_n12_N9GG11232133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11232133barEv,_ZTv0_n16_N9GG11232133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1123213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11232133barEv,_ZTv0_n12_N9GG11232133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1123213[];
+extern void _ZN5EE1123barEv();
+static VTBL_ENTRY _tg__ZTV5EE112__9GG1123213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN5EE1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE112__9GG1123213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE112__9GG1123213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF3213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF321__9GG1123213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN5FF3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3213fooEv,_ZThn8_N5FF3213fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF321__9GG1123213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF321__9GG1123213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG1123213[] = {
+ {&(_ZTV9GG1123213[8]), 8,40},
+ {&(_ZTV9GG1123213[15]), 15,40},
+ {&(_ZTV9GG1123213[19]), 19,40},
+ {&(_ZTV9GG1123213[23]), 23,40},
+ {&(_ZTV9GG1123213[29]), 29,40},
+ {&(_ZTV9GG1123213[34]), 34,40},
+ {&(_ZTV9GG1123213[39]), 39,40},
+ {&(_tg__ZTV5EE112__9GG1123213[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE112__9GG1123213[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE112__9GG1123213[3]), 3,4},
+ {&(_tg__ZTV5FF321__9GG1123213[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF321__9GG1123213[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF321__9GG1123213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1123213[];
+extern VTBL_ENTRY _ZTV9GG1123213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1123213[];
+static VTBL_ENTRY alt_thunk_names258[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3213fooEv,_ZThn8_N5FF3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11232133barEv,_ZTv0_n12_N9GG11232133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11232133barEv,_ZThn48_N9GG11232133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG11232133barEv,_ZTv0_n16_N9GG11232133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11232133barEv,_ZThn40_N9GG11232133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11232133fooEv,_ZTv0_n20_N9GG11232133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11232133fooEv,_ZThn32_N9GG11232133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11232133fooEv,_ZTv0_n12_N9GG11232133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11232133fooEv,_ZThn40_N9GG11232133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11232133fooEv,_ZThn24_N9GG11232133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11232133fooEv,_ZThn16_N9GG11232133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11232133barEv,_ZTv0_n20_N9GG11232133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11232133barEv,_ZThn8_N9GG11232133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1123213 = { "GG1123213", // class name
+ bases_GG1123213, 6,
+ &(vtc_GG1123213[0]), // expected_vtbl_contents
+ &(vtt_GG1123213[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1123213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1123213),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1123213),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names258,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1123223 : virtual EE112 , virtual FF322 {
+ int pg;
+ virtual void foo(); // _ZN9GG11232233fooEv
+ virtual void bar(); // _ZN9GG11232233barEv
+ ~GG1123223(); // tgen
+ GG1123223(); // tgen
+};
+//SIG(1 GG1123223) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1123223 ::foo(){vfunc_called(this, "_ZN9GG11232233fooEv");}
+void GG1123223 ::bar(){vfunc_called(this, "_ZN9GG11232233barEv");}
+GG1123223 ::~GG1123223(){ note_dtor("GG1123223", this);} // tgen
+GG1123223 ::GG1123223(){ note_ctor("GG1123223", this);} // tgen
+
+static void Test_GG1123223()
+{
+ extern Class_Descriptor cd_GG1123223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1123223, buf);
+ GG1123223 *dp, &lv = *(dp=new (buf) GG1123223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1123223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1123223)");
+ check_base_class_offset(lv, (AA1*)(EE112*), ABISELECT(32,16), "GG1123223");
+ check_base_class_offset(lv, (BB1*)(EE112*), ABISELECT(48,24), "GG1123223");
+ check_base_class_offset(lv, (EE112*), ABISELECT(16,8), "GG1123223");
+ check_base_class_offset(lv, (AA3*)(FF322*), ABISELECT(80,40), "GG1123223");
+ check_base_class_offset(lv, (BB2*)(FF322*), ABISELECT(96,48), "GG1123223");
+ check_base_class_offset(lv, (FF322*), ABISELECT(64,32), "GG1123223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1123223.pg");
+ test_class_info(&lv, &cd_GG1123223);
+ dp->~GG1123223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1123223(Test_GG1123223, "GG1123223", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1123223C1Ev();
+extern void _ZN9GG1123223D1Ev();
+Name_Map name_map_GG1123223[] = {
+ NSPAIR(_ZN9GG1123223C1Ev),
+ NSPAIR(_ZN9GG1123223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE112;
+extern VTBL_ENTRY _ZTI5EE112[];
+extern VTBL_ENTRY _ZTV5EE112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE112[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF322;
+extern VTBL_ENTRY _ZTI5FF322[];
+extern VTBL_ENTRY _ZTV5FF322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF322[];
+static Base_Class bases_GG1123223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE112, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF322, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1123223[];
+extern void _ZN9GG11232233fooEv();
+extern void _ZN9GG11232233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11232233barEv,_ZTv0_n20_N9GG11232233barEv)();
+extern void ABISELECT(_ZThn16_N9GG11232233barEv,_ZThn8_N9GG11232233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11232233fooEv,_ZTv0_n12_N9GG11232233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11232233fooEv,_ZThn16_N9GG11232233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11232233fooEv,_ZTv0_n12_N9GG11232233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11232233fooEv,_ZThn24_N9GG11232233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11232233barEv,_ZTv0_n20_N9GG11232233barEv)();
+extern void ABISELECT(_ZThn64_N9GG11232233barEv,_ZThn32_N9GG11232233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11232233fooEv,_ZTv0_n12_N9GG11232233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG11232233fooEv,_ZThn40_N9GG11232233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11232233barEv,_ZTv0_n16_N9GG11232233barEv)();
+extern void ABISELECT(_ZThn80_N9GG11232233barEv,_ZThn40_N9GG11232233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11232233barEv,_ZTv0_n12_N9GG11232233barEv)();
+extern void ABISELECT(_ZThn96_N9GG11232233barEv,_ZThn48_N9GG11232233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1123223[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1123223[0]),
+ (VTBL_ENTRY)&_ZN9GG11232233fooEv,
+ (VTBL_ENTRY)&_ZN9GG11232233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1123223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11232233barEv,_ZTv0_n20_N9GG11232233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1123223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11232233fooEv,_ZTv0_n12_N9GG11232233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1123223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11232233fooEv,_ZTv0_n12_N9GG11232233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1123223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11232233barEv,_ZTv0_n20_N9GG11232233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1123223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11232233fooEv,_ZTv0_n12_N9GG11232233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11232233barEv,_ZTv0_n16_N9GG11232233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1123223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11232233barEv,_ZTv0_n12_N9GG11232233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1123223[];
+extern void _ZN5EE1123barEv();
+static VTBL_ENTRY _tg__ZTV5EE112__9GG1123223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN5EE1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE112__9GG1123223[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE112__9GG1123223[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF3223barEv();
+static VTBL_ENTRY _tg__ZTV5FF322__9GG1123223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN5FF3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv)();
+extern void ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF322__9GG1123223[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv)();
+extern void ABISELECT(_ZThn32_N5FF3223barEv,_ZThn16_N5FF3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF322__9GG1123223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv),
+};
+static VTT_ENTRY vtt_GG1123223[] = {
+ {&(_ZTV9GG1123223[8]), 8,40},
+ {&(_ZTV9GG1123223[15]), 15,40},
+ {&(_ZTV9GG1123223[19]), 19,40},
+ {&(_ZTV9GG1123223[23]), 23,40},
+ {&(_ZTV9GG1123223[29]), 29,40},
+ {&(_ZTV9GG1123223[34]), 34,40},
+ {&(_ZTV9GG1123223[39]), 39,40},
+ {&(_tg__ZTV5EE112__9GG1123223[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE112__9GG1123223[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE112__9GG1123223[3]), 3,4},
+ {&(_tg__ZTV5FF322__9GG1123223[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF322__9GG1123223[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF322__9GG1123223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1123223[];
+extern VTBL_ENTRY _ZTV9GG1123223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1123223[];
+static VTBL_ENTRY alt_thunk_names259[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3223barEv,_ZThn16_N5FF3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11232233barEv,_ZTv0_n12_N9GG11232233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11232233barEv,_ZThn48_N9GG11232233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG11232233barEv,_ZTv0_n16_N9GG11232233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11232233barEv,_ZThn40_N9GG11232233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11232233fooEv,_ZTv0_n12_N9GG11232233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11232233fooEv,_ZThn40_N9GG11232233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11232233fooEv,_ZThn24_N9GG11232233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11232233fooEv,_ZThn16_N9GG11232233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11232233barEv,_ZTv0_n20_N9GG11232233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11232233barEv,_ZThn32_N9GG11232233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11232233barEv,_ZThn8_N9GG11232233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1123223 = { "GG1123223", // class name
+ bases_GG1123223, 6,
+ &(vtc_GG1123223[0]), // expected_vtbl_contents
+ &(vtt_GG1123223[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1123223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1123223),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1123223),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names259,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1123233 : virtual EE112 , virtual FF323 {
+ int pg;
+ virtual void foo(); // _ZN9GG11232333fooEv
+ virtual void bar(); // _ZN9GG11232333barEv
+ ~GG1123233(); // tgen
+ GG1123233(); // tgen
+};
+//SIG(1 GG1123233) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1123233 ::foo(){vfunc_called(this, "_ZN9GG11232333fooEv");}
+void GG1123233 ::bar(){vfunc_called(this, "_ZN9GG11232333barEv");}
+GG1123233 ::~GG1123233(){ note_dtor("GG1123233", this);} // tgen
+GG1123233 ::GG1123233(){ note_ctor("GG1123233", this);} // tgen
+
+static void Test_GG1123233()
+{
+ extern Class_Descriptor cd_GG1123233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1123233, buf);
+ GG1123233 *dp, &lv = *(dp=new (buf) GG1123233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1123233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1123233)");
+ check_base_class_offset(lv, (AA1*)(EE112*), ABISELECT(32,16), "GG1123233");
+ check_base_class_offset(lv, (BB1*)(EE112*), ABISELECT(48,24), "GG1123233");
+ check_base_class_offset(lv, (EE112*), ABISELECT(16,8), "GG1123233");
+ check_base_class_offset(lv, (AA3*)(FF323*), ABISELECT(80,40), "GG1123233");
+ check_base_class_offset(lv, (BB2*)(FF323*), ABISELECT(96,48), "GG1123233");
+ check_base_class_offset(lv, (FF323*), ABISELECT(64,32), "GG1123233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1123233.pg");
+ test_class_info(&lv, &cd_GG1123233);
+ dp->~GG1123233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1123233(Test_GG1123233, "GG1123233", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1123233C1Ev();
+extern void _ZN9GG1123233D1Ev();
+Name_Map name_map_GG1123233[] = {
+ NSPAIR(_ZN9GG1123233C1Ev),
+ NSPAIR(_ZN9GG1123233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE112;
+extern VTBL_ENTRY _ZTI5EE112[];
+extern VTBL_ENTRY _ZTV5EE112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE112[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF323;
+extern VTBL_ENTRY _ZTI5FF323[];
+extern VTBL_ENTRY _ZTV5FF323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF323[];
+static Base_Class bases_GG1123233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE112, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF323, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1123233[];
+extern void _ZN9GG11232333fooEv();
+extern void _ZN9GG11232333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11232333barEv,_ZTv0_n20_N9GG11232333barEv)();
+extern void ABISELECT(_ZThn16_N9GG11232333barEv,_ZThn8_N9GG11232333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11232333fooEv,_ZTv0_n12_N9GG11232333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11232333fooEv,_ZThn16_N9GG11232333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11232333fooEv,_ZTv0_n12_N9GG11232333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11232333fooEv,_ZThn24_N9GG11232333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11232333fooEv,_ZTv0_n20_N9GG11232333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11232333fooEv,_ZThn32_N9GG11232333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11232333barEv,_ZTv0_n24_N9GG11232333barEv)();
+extern void ABISELECT(_ZThn64_N9GG11232333barEv,_ZThn32_N9GG11232333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11232333fooEv,_ZTv0_n12_N9GG11232333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG11232333fooEv,_ZThn40_N9GG11232333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11232333barEv,_ZTv0_n16_N9GG11232333barEv)();
+extern void ABISELECT(_ZThn80_N9GG11232333barEv,_ZThn40_N9GG11232333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11232333barEv,_ZTv0_n12_N9GG11232333barEv)();
+extern void ABISELECT(_ZThn96_N9GG11232333barEv,_ZThn48_N9GG11232333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1123233[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1123233[0]),
+ (VTBL_ENTRY)&_ZN9GG11232333fooEv,
+ (VTBL_ENTRY)&_ZN9GG11232333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1123233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11232333barEv,_ZTv0_n20_N9GG11232333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1123233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11232333fooEv,_ZTv0_n12_N9GG11232333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1123233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11232333fooEv,_ZTv0_n12_N9GG11232333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1123233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11232333fooEv,_ZTv0_n20_N9GG11232333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11232333barEv,_ZTv0_n24_N9GG11232333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1123233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11232333fooEv,_ZTv0_n12_N9GG11232333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11232333barEv,_ZTv0_n16_N9GG11232333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1123233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11232333barEv,_ZTv0_n12_N9GG11232333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1123233[];
+extern void _ZN5EE1123barEv();
+static VTBL_ENTRY _tg__ZTV5EE112__9GG1123233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN5EE1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE112__9GG1123233[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE112__9GG1123233[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF3233fooEv();
+extern void _ZN5FF3233barEv();
+static VTBL_ENTRY _tg__ZTV5FF323__9GG1123233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&_ZN5FF3233fooEv,
+ (VTBL_ENTRY)&_ZN5FF3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3233fooEv,_ZThn8_N5FF3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv)();
+extern void ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF323__9GG1123233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv)();
+extern void ABISELECT(_ZThn32_N5FF3233barEv,_ZThn16_N5FF3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF323__9GG1123233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv),
+};
+static VTT_ENTRY vtt_GG1123233[] = {
+ {&(_ZTV9GG1123233[8]), 8,42},
+ {&(_ZTV9GG1123233[15]), 15,42},
+ {&(_ZTV9GG1123233[19]), 19,42},
+ {&(_ZTV9GG1123233[23]), 23,42},
+ {&(_ZTV9GG1123233[30]), 30,42},
+ {&(_ZTV9GG1123233[36]), 36,42},
+ {&(_ZTV9GG1123233[41]), 41,42},
+ {&(_tg__ZTV5EE112__9GG1123233[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE112__9GG1123233[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE112__9GG1123233[3]), 3,4},
+ {&(_tg__ZTV5FF323__9GG1123233[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF323__9GG1123233[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF323__9GG1123233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1123233[];
+extern VTBL_ENTRY _ZTV9GG1123233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1123233[];
+static VTBL_ENTRY alt_thunk_names260[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3233barEv,_ZThn16_N5FF3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3233fooEv,_ZThn8_N5FF3233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11232333barEv,_ZTv0_n12_N9GG11232333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11232333barEv,_ZThn48_N9GG11232333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG11232333barEv,_ZTv0_n16_N9GG11232333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11232333barEv,_ZThn40_N9GG11232333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG11232333barEv,_ZTv0_n24_N9GG11232333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11232333barEv,_ZThn32_N9GG11232333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11232333fooEv,_ZTv0_n20_N9GG11232333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11232333fooEv,_ZThn32_N9GG11232333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11232333fooEv,_ZTv0_n12_N9GG11232333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11232333fooEv,_ZThn40_N9GG11232333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11232333fooEv,_ZThn24_N9GG11232333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11232333fooEv,_ZThn16_N9GG11232333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11232333barEv,_ZTv0_n20_N9GG11232333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11232333barEv,_ZThn8_N9GG11232333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1123233 = { "GG1123233", // class name
+ bases_GG1123233, 6,
+ &(vtc_GG1123233[0]), // expected_vtbl_contents
+ &(vtt_GG1123233[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1123233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1123233),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1123233),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names260,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1123313 : virtual EE112 , virtual FF331 {
+ int pg;
+ virtual void foo(); // _ZN9GG11233133fooEv
+ virtual void bar(); // _ZN9GG11233133barEv
+ ~GG1123313(); // tgen
+ GG1123313(); // tgen
+};
+//SIG(1 GG1123313) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1123313 ::foo(){vfunc_called(this, "_ZN9GG11233133fooEv");}
+void GG1123313 ::bar(){vfunc_called(this, "_ZN9GG11233133barEv");}
+GG1123313 ::~GG1123313(){ note_dtor("GG1123313", this);} // tgen
+GG1123313 ::GG1123313(){ note_ctor("GG1123313", this);} // tgen
+
+static void Test_GG1123313()
+{
+ extern Class_Descriptor cd_GG1123313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1123313, buf);
+ GG1123313 *dp, &lv = *(dp=new (buf) GG1123313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1123313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1123313)");
+ check_base_class_offset(lv, (AA1*)(EE112*), ABISELECT(32,16), "GG1123313");
+ check_base_class_offset(lv, (BB1*)(EE112*), ABISELECT(48,24), "GG1123313");
+ check_base_class_offset(lv, (EE112*), ABISELECT(16,8), "GG1123313");
+ check_base_class_offset(lv, (AA3*)(FF331*), ABISELECT(80,40), "GG1123313");
+ check_base_class_offset(lv, (BB3*)(FF331*), ABISELECT(96,48), "GG1123313");
+ check_base_class_offset(lv, (FF331*), ABISELECT(64,32), "GG1123313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1123313.pg");
+ test_class_info(&lv, &cd_GG1123313);
+ dp->~GG1123313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1123313(Test_GG1123313, "GG1123313", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1123313C1Ev();
+extern void _ZN9GG1123313D1Ev();
+Name_Map name_map_GG1123313[] = {
+ NSPAIR(_ZN9GG1123313C1Ev),
+ NSPAIR(_ZN9GG1123313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE112;
+extern VTBL_ENTRY _ZTI5EE112[];
+extern VTBL_ENTRY _ZTV5EE112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE112[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF331;
+extern VTBL_ENTRY _ZTI5FF331[];
+extern VTBL_ENTRY _ZTV5FF331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF331[];
+static Base_Class bases_GG1123313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE112, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF331, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1123313[];
+extern void _ZN9GG11233133fooEv();
+extern void _ZN9GG11233133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11233133barEv,_ZTv0_n20_N9GG11233133barEv)();
+extern void ABISELECT(_ZThn16_N9GG11233133barEv,_ZThn8_N9GG11233133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11233133fooEv,_ZTv0_n12_N9GG11233133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11233133fooEv,_ZThn16_N9GG11233133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11233133fooEv,_ZTv0_n12_N9GG11233133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11233133fooEv,_ZThn24_N9GG11233133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11233133fooEv,_ZTv0_n20_N9GG11233133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11233133fooEv,_ZThn32_N9GG11233133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11233133fooEv,_ZTv0_n12_N9GG11233133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG11233133fooEv,_ZThn40_N9GG11233133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11233133barEv,_ZTv0_n16_N9GG11233133barEv)();
+extern void ABISELECT(_ZThn80_N9GG11233133barEv,_ZThn40_N9GG11233133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11233133fooEv,_ZTv0_n12_N9GG11233133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG11233133fooEv,_ZThn48_N9GG11233133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11233133barEv,_ZTv0_n16_N9GG11233133barEv)();
+extern void ABISELECT(_ZThn96_N9GG11233133barEv,_ZThn48_N9GG11233133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1123313[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1123313[0]),
+ (VTBL_ENTRY)&_ZN9GG11233133fooEv,
+ (VTBL_ENTRY)&_ZN9GG11233133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1123313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11233133barEv,_ZTv0_n20_N9GG11233133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1123313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11233133fooEv,_ZTv0_n12_N9GG11233133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1123313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11233133fooEv,_ZTv0_n12_N9GG11233133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1123313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11233133fooEv,_ZTv0_n20_N9GG11233133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1123313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11233133fooEv,_ZTv0_n12_N9GG11233133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11233133barEv,_ZTv0_n16_N9GG11233133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1123313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11233133fooEv,_ZTv0_n12_N9GG11233133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11233133barEv,_ZTv0_n16_N9GG11233133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1123313[];
+extern void _ZN5EE1123barEv();
+static VTBL_ENTRY _tg__ZTV5EE112__9GG1123313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN5EE1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE112__9GG1123313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE112__9GG1123313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF3313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF331__9GG1123313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&_ZN5FF3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF331__9GG1123313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3313fooEv,_ZThn16_N5FF3313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF331__9GG1123313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG1123313[] = {
+ {&(_ZTV9GG1123313[8]), 8,42},
+ {&(_ZTV9GG1123313[15]), 15,42},
+ {&(_ZTV9GG1123313[19]), 19,42},
+ {&(_ZTV9GG1123313[23]), 23,42},
+ {&(_ZTV9GG1123313[29]), 29,42},
+ {&(_ZTV9GG1123313[34]), 34,42},
+ {&(_ZTV9GG1123313[40]), 40,42},
+ {&(_tg__ZTV5EE112__9GG1123313[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE112__9GG1123313[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE112__9GG1123313[3]), 3,4},
+ {&(_tg__ZTV5FF331__9GG1123313[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF331__9GG1123313[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF331__9GG1123313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1123313[];
+extern VTBL_ENTRY _ZTV9GG1123313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1123313[];
+static VTBL_ENTRY alt_thunk_names261[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3313fooEv,_ZThn16_N5FF3313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG11233133barEv,_ZTv0_n16_N9GG11233133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11233133barEv,_ZThn48_N9GG11233133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11233133barEv,_ZThn40_N9GG11233133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11233133fooEv,_ZTv0_n20_N9GG11233133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11233133fooEv,_ZThn32_N9GG11233133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11233133fooEv,_ZTv0_n12_N9GG11233133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11233133fooEv,_ZThn48_N9GG11233133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11233133fooEv,_ZThn40_N9GG11233133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11233133fooEv,_ZThn24_N9GG11233133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11233133fooEv,_ZThn16_N9GG11233133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11233133barEv,_ZTv0_n20_N9GG11233133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11233133barEv,_ZThn8_N9GG11233133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1123313 = { "GG1123313", // class name
+ bases_GG1123313, 6,
+ &(vtc_GG1123313[0]), // expected_vtbl_contents
+ &(vtt_GG1123313[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1123313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1123313),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1123313),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names261,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1123323 : virtual EE112 , virtual FF332 {
+ int pg;
+ virtual void foo(); // _ZN9GG11233233fooEv
+ virtual void bar(); // _ZN9GG11233233barEv
+ ~GG1123323(); // tgen
+ GG1123323(); // tgen
+};
+//SIG(1 GG1123323) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1123323 ::foo(){vfunc_called(this, "_ZN9GG11233233fooEv");}
+void GG1123323 ::bar(){vfunc_called(this, "_ZN9GG11233233barEv");}
+GG1123323 ::~GG1123323(){ note_dtor("GG1123323", this);} // tgen
+GG1123323 ::GG1123323(){ note_ctor("GG1123323", this);} // tgen
+
+static void Test_GG1123323()
+{
+ extern Class_Descriptor cd_GG1123323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1123323, buf);
+ GG1123323 *dp, &lv = *(dp=new (buf) GG1123323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1123323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1123323)");
+ check_base_class_offset(lv, (AA1*)(EE112*), ABISELECT(32,16), "GG1123323");
+ check_base_class_offset(lv, (BB1*)(EE112*), ABISELECT(48,24), "GG1123323");
+ check_base_class_offset(lv, (EE112*), ABISELECT(16,8), "GG1123323");
+ check_base_class_offset(lv, (AA3*)(FF332*), ABISELECT(80,40), "GG1123323");
+ check_base_class_offset(lv, (BB3*)(FF332*), ABISELECT(96,48), "GG1123323");
+ check_base_class_offset(lv, (FF332*), ABISELECT(64,32), "GG1123323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1123323.pg");
+ test_class_info(&lv, &cd_GG1123323);
+ dp->~GG1123323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1123323(Test_GG1123323, "GG1123323", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1123323C1Ev();
+extern void _ZN9GG1123323D1Ev();
+Name_Map name_map_GG1123323[] = {
+ NSPAIR(_ZN9GG1123323C1Ev),
+ NSPAIR(_ZN9GG1123323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE112;
+extern VTBL_ENTRY _ZTI5EE112[];
+extern VTBL_ENTRY _ZTV5EE112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE112[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF332;
+extern VTBL_ENTRY _ZTI5FF332[];
+extern VTBL_ENTRY _ZTV5FF332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF332[];
+static Base_Class bases_GG1123323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE112, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF332, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1123323[];
+extern void _ZN9GG11233233fooEv();
+extern void _ZN9GG11233233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11233233barEv,_ZTv0_n20_N9GG11233233barEv)();
+extern void ABISELECT(_ZThn16_N9GG11233233barEv,_ZThn8_N9GG11233233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11233233fooEv,_ZTv0_n12_N9GG11233233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11233233fooEv,_ZThn16_N9GG11233233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11233233fooEv,_ZTv0_n12_N9GG11233233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11233233fooEv,_ZThn24_N9GG11233233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11233233barEv,_ZTv0_n20_N9GG11233233barEv)();
+extern void ABISELECT(_ZThn64_N9GG11233233barEv,_ZThn32_N9GG11233233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11233233fooEv,_ZTv0_n12_N9GG11233233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG11233233fooEv,_ZThn40_N9GG11233233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11233233barEv,_ZTv0_n16_N9GG11233233barEv)();
+extern void ABISELECT(_ZThn80_N9GG11233233barEv,_ZThn40_N9GG11233233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11233233fooEv,_ZTv0_n12_N9GG11233233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG11233233fooEv,_ZThn48_N9GG11233233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11233233barEv,_ZTv0_n16_N9GG11233233barEv)();
+extern void ABISELECT(_ZThn96_N9GG11233233barEv,_ZThn48_N9GG11233233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1123323[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1123323[0]),
+ (VTBL_ENTRY)&_ZN9GG11233233fooEv,
+ (VTBL_ENTRY)&_ZN9GG11233233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1123323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11233233barEv,_ZTv0_n20_N9GG11233233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1123323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11233233fooEv,_ZTv0_n12_N9GG11233233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1123323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11233233fooEv,_ZTv0_n12_N9GG11233233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1123323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11233233barEv,_ZTv0_n20_N9GG11233233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1123323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11233233fooEv,_ZTv0_n12_N9GG11233233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11233233barEv,_ZTv0_n16_N9GG11233233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1123323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11233233fooEv,_ZTv0_n12_N9GG11233233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11233233barEv,_ZTv0_n16_N9GG11233233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1123323[];
+extern void _ZN5EE1123barEv();
+static VTBL_ENTRY _tg__ZTV5EE112__9GG1123323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN5EE1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE112__9GG1123323[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE112__9GG1123323[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF3323barEv();
+static VTBL_ENTRY _tg__ZTV5FF332__9GG1123323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN5FF3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+extern void ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF332__9GG1123323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+extern void ABISELECT(_ZThn32_N5FF3323barEv,_ZThn16_N5FF3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF332__9GG1123323[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+static VTT_ENTRY vtt_GG1123323[] = {
+ {&(_ZTV9GG1123323[8]), 8,42},
+ {&(_ZTV9GG1123323[15]), 15,42},
+ {&(_ZTV9GG1123323[19]), 19,42},
+ {&(_ZTV9GG1123323[23]), 23,42},
+ {&(_ZTV9GG1123323[29]), 29,42},
+ {&(_ZTV9GG1123323[34]), 34,42},
+ {&(_ZTV9GG1123323[40]), 40,42},
+ {&(_tg__ZTV5EE112__9GG1123323[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE112__9GG1123323[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE112__9GG1123323[3]), 3,4},
+ {&(_tg__ZTV5FF332__9GG1123323[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF332__9GG1123323[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF332__9GG1123323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1123323[];
+extern VTBL_ENTRY _ZTV9GG1123323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1123323[];
+static VTBL_ENTRY alt_thunk_names262[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3323barEv,_ZThn16_N5FF3323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG11233233barEv,_ZTv0_n16_N9GG11233233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11233233barEv,_ZThn48_N9GG11233233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11233233barEv,_ZThn40_N9GG11233233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11233233fooEv,_ZTv0_n12_N9GG11233233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11233233fooEv,_ZThn48_N9GG11233233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11233233fooEv,_ZThn40_N9GG11233233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11233233fooEv,_ZThn24_N9GG11233233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11233233fooEv,_ZThn16_N9GG11233233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11233233barEv,_ZTv0_n20_N9GG11233233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11233233barEv,_ZThn32_N9GG11233233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11233233barEv,_ZThn8_N9GG11233233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1123323 = { "GG1123323", // class name
+ bases_GG1123323, 6,
+ &(vtc_GG1123323[0]), // expected_vtbl_contents
+ &(vtt_GG1123323[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1123323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1123323),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1123323),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names262,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1123333 : virtual EE112 , virtual FF333 {
+ int pg;
+ virtual void foo(); // _ZN9GG11233333fooEv
+ virtual void bar(); // _ZN9GG11233333barEv
+ ~GG1123333(); // tgen
+ GG1123333(); // tgen
+};
+//SIG(1 GG1123333) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1123333 ::foo(){vfunc_called(this, "_ZN9GG11233333fooEv");}
+void GG1123333 ::bar(){vfunc_called(this, "_ZN9GG11233333barEv");}
+GG1123333 ::~GG1123333(){ note_dtor("GG1123333", this);} // tgen
+GG1123333 ::GG1123333(){ note_ctor("GG1123333", this);} // tgen
+
+static void Test_GG1123333()
+{
+ extern Class_Descriptor cd_GG1123333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1123333, buf);
+ GG1123333 *dp, &lv = *(dp=new (buf) GG1123333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1123333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1123333)");
+ check_base_class_offset(lv, (AA1*)(EE112*), ABISELECT(32,16), "GG1123333");
+ check_base_class_offset(lv, (BB1*)(EE112*), ABISELECT(48,24), "GG1123333");
+ check_base_class_offset(lv, (EE112*), ABISELECT(16,8), "GG1123333");
+ check_base_class_offset(lv, (AA3*)(FF333*), ABISELECT(80,40), "GG1123333");
+ check_base_class_offset(lv, (BB3*)(FF333*), ABISELECT(96,48), "GG1123333");
+ check_base_class_offset(lv, (FF333*), ABISELECT(64,32), "GG1123333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1123333.pg");
+ test_class_info(&lv, &cd_GG1123333);
+ dp->~GG1123333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1123333(Test_GG1123333, "GG1123333", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1123333C1Ev();
+extern void _ZN9GG1123333D1Ev();
+Name_Map name_map_GG1123333[] = {
+ NSPAIR(_ZN9GG1123333C1Ev),
+ NSPAIR(_ZN9GG1123333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE112;
+extern VTBL_ENTRY _ZTI5EE112[];
+extern VTBL_ENTRY _ZTV5EE112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE112[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF333;
+extern VTBL_ENTRY _ZTI5FF333[];
+extern VTBL_ENTRY _ZTV5FF333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF333[];
+static Base_Class bases_GG1123333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE112, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF333, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1123333[];
+extern void _ZN9GG11233333fooEv();
+extern void _ZN9GG11233333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11233333barEv,_ZTv0_n20_N9GG11233333barEv)();
+extern void ABISELECT(_ZThn16_N9GG11233333barEv,_ZThn8_N9GG11233333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11233333fooEv,_ZTv0_n12_N9GG11233333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11233333fooEv,_ZThn16_N9GG11233333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11233333fooEv,_ZTv0_n12_N9GG11233333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11233333fooEv,_ZThn24_N9GG11233333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11233333fooEv,_ZTv0_n20_N9GG11233333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11233333fooEv,_ZThn32_N9GG11233333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11233333barEv,_ZTv0_n24_N9GG11233333barEv)();
+extern void ABISELECT(_ZThn64_N9GG11233333barEv,_ZThn32_N9GG11233333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11233333fooEv,_ZTv0_n12_N9GG11233333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG11233333fooEv,_ZThn40_N9GG11233333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11233333barEv,_ZTv0_n16_N9GG11233333barEv)();
+extern void ABISELECT(_ZThn80_N9GG11233333barEv,_ZThn40_N9GG11233333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11233333fooEv,_ZTv0_n12_N9GG11233333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG11233333fooEv,_ZThn48_N9GG11233333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11233333barEv,_ZTv0_n16_N9GG11233333barEv)();
+extern void ABISELECT(_ZThn96_N9GG11233333barEv,_ZThn48_N9GG11233333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1123333[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1123333[0]),
+ (VTBL_ENTRY)&_ZN9GG11233333fooEv,
+ (VTBL_ENTRY)&_ZN9GG11233333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1123333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11233333barEv,_ZTv0_n20_N9GG11233333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1123333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11233333fooEv,_ZTv0_n12_N9GG11233333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1123333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11233333fooEv,_ZTv0_n12_N9GG11233333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1123333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11233333fooEv,_ZTv0_n20_N9GG11233333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11233333barEv,_ZTv0_n24_N9GG11233333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1123333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11233333fooEv,_ZTv0_n12_N9GG11233333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11233333barEv,_ZTv0_n16_N9GG11233333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1123333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11233333fooEv,_ZTv0_n12_N9GG11233333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11233333barEv,_ZTv0_n16_N9GG11233333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1123333[];
+extern void _ZN5EE1123barEv();
+static VTBL_ENTRY _tg__ZTV5EE112__9GG1123333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN5EE1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE112__9GG1123333[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE112__9GG1123333[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF3333fooEv();
+extern void _ZN5FF3333barEv();
+static VTBL_ENTRY _tg__ZTV5FF333__9GG1123333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&_ZN5FF3333fooEv,
+ (VTBL_ENTRY)&_ZN5FF3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+extern void ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF333__9GG1123333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3333fooEv,_ZThn16_N5FF3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+extern void ABISELECT(_ZThn32_N5FF3333barEv,_ZThn16_N5FF3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF333__9GG1123333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+static VTT_ENTRY vtt_GG1123333[] = {
+ {&(_ZTV9GG1123333[8]), 8,44},
+ {&(_ZTV9GG1123333[15]), 15,44},
+ {&(_ZTV9GG1123333[19]), 19,44},
+ {&(_ZTV9GG1123333[23]), 23,44},
+ {&(_ZTV9GG1123333[30]), 30,44},
+ {&(_ZTV9GG1123333[36]), 36,44},
+ {&(_ZTV9GG1123333[42]), 42,44},
+ {&(_tg__ZTV5EE112__9GG1123333[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE112__9GG1123333[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE112__9GG1123333[3]), 3,4},
+ {&(_tg__ZTV5FF333__9GG1123333[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF333__9GG1123333[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF333__9GG1123333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1123333[];
+extern VTBL_ENTRY _ZTV9GG1123333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1123333[];
+static VTBL_ENTRY alt_thunk_names263[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3333barEv,_ZThn16_N5FF3333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3333fooEv,_ZThn16_N5FF3333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG11233333barEv,_ZTv0_n16_N9GG11233333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11233333barEv,_ZThn48_N9GG11233333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11233333barEv,_ZThn40_N9GG11233333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG11233333barEv,_ZTv0_n24_N9GG11233333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11233333barEv,_ZThn32_N9GG11233333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11233333fooEv,_ZTv0_n20_N9GG11233333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11233333fooEv,_ZThn32_N9GG11233333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11233333fooEv,_ZTv0_n12_N9GG11233333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11233333fooEv,_ZThn48_N9GG11233333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11233333fooEv,_ZThn40_N9GG11233333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11233333fooEv,_ZThn24_N9GG11233333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11233333fooEv,_ZThn16_N9GG11233333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11233333barEv,_ZTv0_n20_N9GG11233333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11233333barEv,_ZThn8_N9GG11233333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1123333 = { "GG1123333", // class name
+ bases_GG1123333, 6,
+ &(vtc_GG1123333[0]), // expected_vtbl_contents
+ &(vtt_GG1123333[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1123333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1123333),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1123333),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names263,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1131111 : virtual EE113 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG11311113fooEv
+ ~GG1131111(); // tgen
+ GG1131111(); // tgen
+};
+//SIG(1 GG1131111) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC3 VBC4 v1 Fi} v1 Fi}
+
+
+void GG1131111 ::foo(){vfunc_called(this, "_ZN9GG11311113fooEv");}
+GG1131111 ::~GG1131111(){ note_dtor("GG1131111", this);} // tgen
+GG1131111 ::GG1131111(){ note_ctor("GG1131111", this);} // tgen
+
+static void Test_GG1131111()
+{
+ extern Class_Descriptor cd_GG1131111;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG1131111, buf);
+ GG1131111 *dp, &lv = *(dp=new (buf) GG1131111());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG1131111)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1131111)");
+ check_base_class_offset(lv, (AA1*)(EE113*), ABISELECT(32,16), "GG1131111");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(32,16), "GG1131111");
+ check_base_class_offset(lv, (BB1*)(EE113*), ABISELECT(48,24), "GG1131111");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(48,24), "GG1131111");
+ check_base_class_offset(lv, (EE113*), ABISELECT(16,8), "GG1131111");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG1131111");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1131111.pg");
+ test_class_info(&lv, &cd_GG1131111);
+ dp->~GG1131111();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1131111(Test_GG1131111, "GG1131111", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG1131111C1Ev();
+extern void _ZN9GG1131111D1Ev();
+Name_Map name_map_GG1131111[] = {
+ NSPAIR(_ZN9GG1131111C1Ev),
+ NSPAIR(_ZN9GG1131111D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE113;
+extern VTBL_ENTRY _ZTI5EE113[];
+extern VTBL_ENTRY _ZTV5EE113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE113[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG1131111[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE113, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1131111[];
+extern void _ZN9GG11311113fooEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11311113fooEv,_ZTv0_n20_N9GG11311113fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11311113fooEv,_ZThn8_N9GG11311113fooEv)() __attribute__((weak));
+extern void _ZN5EE1133barEv();
+extern void ABISELECT(_ZTv0_n24_N9GG11311113fooEv,_ZTv0_n12_N9GG11311113fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11311113fooEv,_ZThn16_N9GG11311113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11311113fooEv,_ZTv0_n12_N9GG11311113fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11311113fooEv,_ZThn24_N9GG11311113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11311113fooEv,_ZTv0_n20_N9GG11311113fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11311113fooEv,_ZThn32_N9GG11311113fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1131111[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1131111[0]),
+ (VTBL_ENTRY)&_ZN9GG11311113fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1131111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11311113fooEv,_ZTv0_n20_N9GG11311113fooEv),
+ (VTBL_ENTRY)&_ZN5EE1133barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1131111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11311113fooEv,_ZTv0_n12_N9GG11311113fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1131111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11311113fooEv,_ZTv0_n12_N9GG11311113fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1131111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11311113fooEv,_ZTv0_n20_N9GG11311113fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1131111[];
+extern void _ZN5EE1133fooEv();
+extern void _ZN5EE1133barEv();
+static VTBL_ENTRY _tg__ZTV5EE113__9GG1131111[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&_ZN5EE1133fooEv,
+ (VTBL_ENTRY)&_ZN5EE1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE113__9GG1131111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE113__9GG1131111[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG1131111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG1131111[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG1131111[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG1131111[] = {
+ {&(_ZTV9GG1131111[6]), 6,29},
+ {&(_ZTV9GG1131111[13]), 13,29},
+ {&(_ZTV9GG1131111[18]), 18,29},
+ {&(_ZTV9GG1131111[22]), 22,29},
+ {&(_ZTV9GG1131111[28]), 28,29},
+ {&(_tg__ZTV5EE113__9GG1131111[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE113__9GG1131111[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE113__9GG1131111[3]), 3,4},
+ {&(_tg__ZTV5FF111__9GG1131111[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG1131111[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG1131111[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1131111[];
+extern VTBL_ENTRY _ZTV9GG1131111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1131111[];
+static VTBL_ENTRY alt_thunk_names264[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11311113fooEv,_ZTv0_n12_N9GG11311113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11311113fooEv,_ZThn24_N9GG11311113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11311113fooEv,_ZThn16_N9GG11311113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11311113fooEv,_ZTv0_n20_N9GG11311113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11311113fooEv,_ZThn32_N9GG11311113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11311113fooEv,_ZThn8_N9GG11311113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1131111 = { "GG1131111", // class name
+ bases_GG1131111, 4,
+ &(vtc_GG1131111[0]), // expected_vtbl_contents
+ &(vtt_GG1131111[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG1131111),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1131111),29, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1131111),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names264,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1131113 : virtual EE113 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG11311133fooEv
+ virtual void bar(); // _ZN9GG11311133barEv
+ ~GG1131113(); // tgen
+ GG1131113(); // tgen
+};
+//SIG(1 GG1131113) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC3 VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG1131113 ::foo(){vfunc_called(this, "_ZN9GG11311133fooEv");}
+void GG1131113 ::bar(){vfunc_called(this, "_ZN9GG11311133barEv");}
+GG1131113 ::~GG1131113(){ note_dtor("GG1131113", this);} // tgen
+GG1131113 ::GG1131113(){ note_ctor("GG1131113", this);} // tgen
+
+static void Test_GG1131113()
+{
+ extern Class_Descriptor cd_GG1131113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG1131113, buf);
+ GG1131113 *dp, &lv = *(dp=new (buf) GG1131113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG1131113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1131113)");
+ check_base_class_offset(lv, (AA1*)(EE113*), ABISELECT(32,16), "GG1131113");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(32,16), "GG1131113");
+ check_base_class_offset(lv, (BB1*)(EE113*), ABISELECT(48,24), "GG1131113");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(48,24), "GG1131113");
+ check_base_class_offset(lv, (EE113*), ABISELECT(16,8), "GG1131113");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG1131113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1131113.pg");
+ test_class_info(&lv, &cd_GG1131113);
+ dp->~GG1131113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1131113(Test_GG1131113, "GG1131113", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG1131113C1Ev();
+extern void _ZN9GG1131113D1Ev();
+Name_Map name_map_GG1131113[] = {
+ NSPAIR(_ZN9GG1131113C1Ev),
+ NSPAIR(_ZN9GG1131113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE113;
+extern VTBL_ENTRY _ZTI5EE113[];
+extern VTBL_ENTRY _ZTV5EE113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE113[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG1131113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE113, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1131113[];
+extern void _ZN9GG11311133fooEv();
+extern void _ZN9GG11311133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11311133fooEv,_ZTv0_n20_N9GG11311133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11311133fooEv,_ZThn8_N9GG11311133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11311133barEv,_ZTv0_n24_N9GG11311133barEv)();
+extern void ABISELECT(_ZThn16_N9GG11311133barEv,_ZThn8_N9GG11311133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11311133fooEv,_ZTv0_n12_N9GG11311133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11311133fooEv,_ZThn16_N9GG11311133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11311133fooEv,_ZTv0_n12_N9GG11311133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11311133fooEv,_ZThn24_N9GG11311133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11311133fooEv,_ZTv0_n20_N9GG11311133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11311133fooEv,_ZThn32_N9GG11311133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1131113[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1131113[0]),
+ (VTBL_ENTRY)&_ZN9GG11311133fooEv,
+ (VTBL_ENTRY)&_ZN9GG11311133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1131113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11311133fooEv,_ZTv0_n20_N9GG11311133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11311133barEv,_ZTv0_n24_N9GG11311133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1131113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11311133fooEv,_ZTv0_n12_N9GG11311133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1131113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11311133fooEv,_ZTv0_n12_N9GG11311133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1131113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11311133fooEv,_ZTv0_n20_N9GG11311133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1131113[];
+extern void _ZN5EE1133fooEv();
+extern void _ZN5EE1133barEv();
+static VTBL_ENTRY _tg__ZTV5EE113__9GG1131113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&_ZN5EE1133fooEv,
+ (VTBL_ENTRY)&_ZN5EE1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE113__9GG1131113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE113__9GG1131113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG1131113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG1131113[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG1131113[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG1131113[] = {
+ {&(_ZTV9GG1131113[6]), 6,30},
+ {&(_ZTV9GG1131113[14]), 14,30},
+ {&(_ZTV9GG1131113[19]), 19,30},
+ {&(_ZTV9GG1131113[23]), 23,30},
+ {&(_ZTV9GG1131113[29]), 29,30},
+ {&(_tg__ZTV5EE113__9GG1131113[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE113__9GG1131113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE113__9GG1131113[3]), 3,4},
+ {&(_tg__ZTV5FF111__9GG1131113[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG1131113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG1131113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1131113[];
+extern VTBL_ENTRY _ZTV9GG1131113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1131113[];
+static VTBL_ENTRY alt_thunk_names265[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11311133fooEv,_ZTv0_n12_N9GG11311133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11311133fooEv,_ZThn24_N9GG11311133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11311133fooEv,_ZThn16_N9GG11311133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG11311133barEv,_ZTv0_n24_N9GG11311133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11311133barEv,_ZThn8_N9GG11311133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11311133fooEv,_ZTv0_n20_N9GG11311133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11311133fooEv,_ZThn32_N9GG11311133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11311133fooEv,_ZThn8_N9GG11311133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1131113 = { "GG1131113", // class name
+ bases_GG1131113, 4,
+ &(vtc_GG1131113[0]), // expected_vtbl_contents
+ &(vtt_GG1131113[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG1131113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1131113),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1131113),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names265,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1131123 : virtual EE113 , virtual FF112 {
+ int pg;
+ virtual void foo(); // _ZN9GG11311233fooEv
+ virtual void bar(); // _ZN9GG11311233barEv
+ ~GG1131123(); // tgen
+ GG1131123(); // tgen
+};
+//SIG(1 GG1131123) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC3 VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG1131123 ::foo(){vfunc_called(this, "_ZN9GG11311233fooEv");}
+void GG1131123 ::bar(){vfunc_called(this, "_ZN9GG11311233barEv");}
+GG1131123 ::~GG1131123(){ note_dtor("GG1131123", this);} // tgen
+GG1131123 ::GG1131123(){ note_ctor("GG1131123", this);} // tgen
+
+static void Test_GG1131123()
+{
+ extern Class_Descriptor cd_GG1131123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG1131123, buf);
+ GG1131123 *dp, &lv = *(dp=new (buf) GG1131123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG1131123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1131123)");
+ check_base_class_offset(lv, (AA1*)(EE113*), ABISELECT(32,16), "GG1131123");
+ check_base_class_offset(lv, (AA1*)(FF112*), ABISELECT(32,16), "GG1131123");
+ check_base_class_offset(lv, (BB1*)(EE113*), ABISELECT(48,24), "GG1131123");
+ check_base_class_offset(lv, (BB1*)(FF112*), ABISELECT(48,24), "GG1131123");
+ check_base_class_offset(lv, (EE113*), ABISELECT(16,8), "GG1131123");
+ check_base_class_offset(lv, (FF112*), ABISELECT(64,32), "GG1131123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1131123.pg");
+ test_class_info(&lv, &cd_GG1131123);
+ dp->~GG1131123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1131123(Test_GG1131123, "GG1131123", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG1131123C1Ev();
+extern void _ZN9GG1131123D1Ev();
+Name_Map name_map_GG1131123[] = {
+ NSPAIR(_ZN9GG1131123C1Ev),
+ NSPAIR(_ZN9GG1131123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE113;
+extern VTBL_ENTRY _ZTI5EE113[];
+extern VTBL_ENTRY _ZTV5EE113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE113[];
+extern Class_Descriptor cd_FF112;
+extern VTBL_ENTRY _ZTI5FF112[];
+extern VTBL_ENTRY _ZTV5FF112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF112[];
+static Base_Class bases_GG1131123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE113, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF112, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1131123[];
+extern void _ZN9GG11311233fooEv();
+extern void _ZN9GG11311233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11311233fooEv,_ZTv0_n20_N9GG11311233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11311233fooEv,_ZThn8_N9GG11311233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11311233barEv,_ZTv0_n24_N9GG11311233barEv)();
+extern void ABISELECT(_ZThn16_N9GG11311233barEv,_ZThn8_N9GG11311233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11311233fooEv,_ZTv0_n12_N9GG11311233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11311233fooEv,_ZThn16_N9GG11311233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11311233fooEv,_ZTv0_n12_N9GG11311233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11311233fooEv,_ZThn24_N9GG11311233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11311233barEv,_ZTv0_n20_N9GG11311233barEv)();
+extern void ABISELECT(_ZThn64_N9GG11311233barEv,_ZThn32_N9GG11311233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1131123[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1131123[0]),
+ (VTBL_ENTRY)&_ZN9GG11311233fooEv,
+ (VTBL_ENTRY)&_ZN9GG11311233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1131123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11311233fooEv,_ZTv0_n20_N9GG11311233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11311233barEv,_ZTv0_n24_N9GG11311233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1131123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11311233fooEv,_ZTv0_n12_N9GG11311233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1131123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11311233fooEv,_ZTv0_n12_N9GG11311233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1131123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11311233barEv,_ZTv0_n20_N9GG11311233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1131123[];
+extern void _ZN5EE1133fooEv();
+extern void _ZN5EE1133barEv();
+static VTBL_ENTRY _tg__ZTV5EE113__9GG1131123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&_ZN5EE1133fooEv,
+ (VTBL_ENTRY)&_ZN5EE1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE113__9GG1131123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE113__9GG1131123[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void _ZN5FF1123barEv();
+static VTBL_ENTRY _tg__ZTV5FF112__9GG1131123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN5FF1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF112__9GG1131123[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF112__9GG1131123[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG1131123[] = {
+ {&(_ZTV9GG1131123[6]), 6,30},
+ {&(_ZTV9GG1131123[14]), 14,30},
+ {&(_ZTV9GG1131123[19]), 19,30},
+ {&(_ZTV9GG1131123[23]), 23,30},
+ {&(_ZTV9GG1131123[29]), 29,30},
+ {&(_tg__ZTV5EE113__9GG1131123[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE113__9GG1131123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE113__9GG1131123[3]), 3,4},
+ {&(_tg__ZTV5FF112__9GG1131123[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF112__9GG1131123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF112__9GG1131123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1131123[];
+extern VTBL_ENTRY _ZTV9GG1131123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1131123[];
+static VTBL_ENTRY alt_thunk_names266[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11311233barEv,_ZTv0_n20_N9GG11311233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11311233barEv,_ZThn32_N9GG11311233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11311233fooEv,_ZTv0_n12_N9GG11311233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11311233fooEv,_ZThn24_N9GG11311233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11311233fooEv,_ZThn16_N9GG11311233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG11311233barEv,_ZTv0_n24_N9GG11311233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11311233barEv,_ZThn8_N9GG11311233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11311233fooEv,_ZTv0_n20_N9GG11311233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11311233fooEv,_ZThn8_N9GG11311233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1131123 = { "GG1131123", // class name
+ bases_GG1131123, 4,
+ &(vtc_GG1131123[0]), // expected_vtbl_contents
+ &(vtt_GG1131123[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG1131123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1131123),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1131123),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names266,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1131133 : virtual EE113 , virtual FF113 {
+ int pg;
+ virtual void foo(); // _ZN9GG11311333fooEv
+ virtual void bar(); // _ZN9GG11311333barEv
+ ~GG1131133(); // tgen
+ GG1131133(); // tgen
+};
+//SIG(1 GG1131133) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC3 VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1131133 ::foo(){vfunc_called(this, "_ZN9GG11311333fooEv");}
+void GG1131133 ::bar(){vfunc_called(this, "_ZN9GG11311333barEv");}
+GG1131133 ::~GG1131133(){ note_dtor("GG1131133", this);} // tgen
+GG1131133 ::GG1131133(){ note_ctor("GG1131133", this);} // tgen
+
+static void Test_GG1131133()
+{
+ extern Class_Descriptor cd_GG1131133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG1131133, buf);
+ GG1131133 *dp, &lv = *(dp=new (buf) GG1131133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG1131133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1131133)");
+ check_base_class_offset(lv, (AA1*)(EE113*), ABISELECT(32,16), "GG1131133");
+ check_base_class_offset(lv, (AA1*)(FF113*), ABISELECT(32,16), "GG1131133");
+ check_base_class_offset(lv, (BB1*)(EE113*), ABISELECT(48,24), "GG1131133");
+ check_base_class_offset(lv, (BB1*)(FF113*), ABISELECT(48,24), "GG1131133");
+ check_base_class_offset(lv, (EE113*), ABISELECT(16,8), "GG1131133");
+ check_base_class_offset(lv, (FF113*), ABISELECT(64,32), "GG1131133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1131133.pg");
+ test_class_info(&lv, &cd_GG1131133);
+ dp->~GG1131133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1131133(Test_GG1131133, "GG1131133", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG1131133C1Ev();
+extern void _ZN9GG1131133D1Ev();
+Name_Map name_map_GG1131133[] = {
+ NSPAIR(_ZN9GG1131133C1Ev),
+ NSPAIR(_ZN9GG1131133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE113;
+extern VTBL_ENTRY _ZTI5EE113[];
+extern VTBL_ENTRY _ZTV5EE113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE113[];
+extern Class_Descriptor cd_FF113;
+extern VTBL_ENTRY _ZTI5FF113[];
+extern VTBL_ENTRY _ZTV5FF113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF113[];
+static Base_Class bases_GG1131133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE113, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF113, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1131133[];
+extern void _ZN9GG11311333fooEv();
+extern void _ZN9GG11311333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11311333fooEv,_ZTv0_n20_N9GG11311333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11311333fooEv,_ZThn8_N9GG11311333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11311333barEv,_ZTv0_n24_N9GG11311333barEv)();
+extern void ABISELECT(_ZThn16_N9GG11311333barEv,_ZThn8_N9GG11311333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11311333fooEv,_ZTv0_n12_N9GG11311333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11311333fooEv,_ZThn16_N9GG11311333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11311333fooEv,_ZTv0_n12_N9GG11311333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11311333fooEv,_ZThn24_N9GG11311333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11311333fooEv,_ZTv0_n20_N9GG11311333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11311333fooEv,_ZThn32_N9GG11311333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11311333barEv,_ZTv0_n24_N9GG11311333barEv)();
+extern void ABISELECT(_ZThn64_N9GG11311333barEv,_ZThn32_N9GG11311333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1131133[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1131133[0]),
+ (VTBL_ENTRY)&_ZN9GG11311333fooEv,
+ (VTBL_ENTRY)&_ZN9GG11311333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1131133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11311333fooEv,_ZTv0_n20_N9GG11311333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11311333barEv,_ZTv0_n24_N9GG11311333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1131133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11311333fooEv,_ZTv0_n12_N9GG11311333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1131133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11311333fooEv,_ZTv0_n12_N9GG11311333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1131133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11311333fooEv,_ZTv0_n20_N9GG11311333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11311333barEv,_ZTv0_n24_N9GG11311333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1131133[];
+extern void _ZN5EE1133fooEv();
+extern void _ZN5EE1133barEv();
+static VTBL_ENTRY _tg__ZTV5EE113__9GG1131133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&_ZN5EE1133fooEv,
+ (VTBL_ENTRY)&_ZN5EE1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE113__9GG1131133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE113__9GG1131133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void _ZN5FF1133fooEv();
+extern void _ZN5FF1133barEv();
+static VTBL_ENTRY _tg__ZTV5FF113__9GG1131133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&_ZN5FF1133fooEv,
+ (VTBL_ENTRY)&_ZN5FF1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF113__9GG1131133[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF113__9GG1131133[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+static VTT_ENTRY vtt_GG1131133[] = {
+ {&(_ZTV9GG1131133[6]), 6,32},
+ {&(_ZTV9GG1131133[14]), 14,32},
+ {&(_ZTV9GG1131133[19]), 19,32},
+ {&(_ZTV9GG1131133[23]), 23,32},
+ {&(_ZTV9GG1131133[30]), 30,32},
+ {&(_tg__ZTV5EE113__9GG1131133[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE113__9GG1131133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE113__9GG1131133[3]), 3,4},
+ {&(_tg__ZTV5FF113__9GG1131133[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF113__9GG1131133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF113__9GG1131133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1131133[];
+extern VTBL_ENTRY _ZTV9GG1131133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1131133[];
+static VTBL_ENTRY alt_thunk_names267[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11311333fooEv,_ZTv0_n12_N9GG11311333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11311333fooEv,_ZThn24_N9GG11311333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11311333fooEv,_ZThn16_N9GG11311333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG11311333barEv,_ZTv0_n24_N9GG11311333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11311333barEv,_ZThn32_N9GG11311333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11311333barEv,_ZThn8_N9GG11311333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11311333fooEv,_ZTv0_n20_N9GG11311333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11311333fooEv,_ZThn32_N9GG11311333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11311333fooEv,_ZThn8_N9GG11311333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1131133 = { "GG1131133", // class name
+ bases_GG1131133, 4,
+ &(vtc_GG1131133[0]), // expected_vtbl_contents
+ &(vtt_GG1131133[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG1131133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1131133),32, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1131133),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names267,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1131213 : virtual EE113 , virtual FF121 {
+ int pg;
+ virtual void foo(); // _ZN9GG11312133fooEv
+ virtual void bar(); // _ZN9GG11312133barEv
+ ~GG1131213(); // tgen
+ GG1131213(); // tgen
+};
+//SIG(1 GG1131213) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1131213 ::foo(){vfunc_called(this, "_ZN9GG11312133fooEv");}
+void GG1131213 ::bar(){vfunc_called(this, "_ZN9GG11312133barEv");}
+GG1131213 ::~GG1131213(){ note_dtor("GG1131213", this);} // tgen
+GG1131213 ::GG1131213(){ note_ctor("GG1131213", this);} // tgen
+
+static void Test_GG1131213()
+{
+ extern Class_Descriptor cd_GG1131213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1131213, buf);
+ GG1131213 *dp, &lv = *(dp=new (buf) GG1131213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1131213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1131213)");
+ check_base_class_offset(lv, (AA1*)(EE113*), ABISELECT(32,16), "GG1131213");
+ check_base_class_offset(lv, (AA1*)(FF121*), ABISELECT(32,16), "GG1131213");
+ check_base_class_offset(lv, (BB1*)(EE113*), ABISELECT(48,24), "GG1131213");
+ check_base_class_offset(lv, (EE113*), ABISELECT(16,8), "GG1131213");
+ check_base_class_offset(lv, (BB2*)(FF121*), ABISELECT(80,40), "GG1131213");
+ check_base_class_offset(lv, (FF121*), ABISELECT(64,32), "GG1131213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1131213.pg");
+ test_class_info(&lv, &cd_GG1131213);
+ dp->~GG1131213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1131213(Test_GG1131213, "GG1131213", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1131213C1Ev();
+extern void _ZN9GG1131213D1Ev();
+Name_Map name_map_GG1131213[] = {
+ NSPAIR(_ZN9GG1131213C1Ev),
+ NSPAIR(_ZN9GG1131213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE113;
+extern VTBL_ENTRY _ZTI5EE113[];
+extern VTBL_ENTRY _ZTV5EE113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE113[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF121;
+extern VTBL_ENTRY _ZTI5FF121[];
+extern VTBL_ENTRY _ZTV5FF121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF121[];
+static Base_Class bases_GG1131213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE113, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF121, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1131213[];
+extern void _ZN9GG11312133fooEv();
+extern void _ZN9GG11312133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11312133fooEv,_ZTv0_n20_N9GG11312133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11312133fooEv,_ZThn8_N9GG11312133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11312133barEv,_ZTv0_n24_N9GG11312133barEv)();
+extern void ABISELECT(_ZThn16_N9GG11312133barEv,_ZThn8_N9GG11312133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11312133fooEv,_ZTv0_n12_N9GG11312133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11312133fooEv,_ZThn16_N9GG11312133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11312133fooEv,_ZTv0_n12_N9GG11312133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11312133fooEv,_ZThn24_N9GG11312133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11312133fooEv,_ZTv0_n20_N9GG11312133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11312133fooEv,_ZThn32_N9GG11312133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11312133barEv,_ZTv0_n12_N9GG11312133barEv)();
+extern void ABISELECT(_ZThn80_N9GG11312133barEv,_ZThn40_N9GG11312133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1131213[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1131213[0]),
+ (VTBL_ENTRY)&_ZN9GG11312133fooEv,
+ (VTBL_ENTRY)&_ZN9GG11312133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1131213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11312133fooEv,_ZTv0_n20_N9GG11312133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11312133barEv,_ZTv0_n24_N9GG11312133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1131213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11312133fooEv,_ZTv0_n12_N9GG11312133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1131213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11312133fooEv,_ZTv0_n12_N9GG11312133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1131213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11312133fooEv,_ZTv0_n20_N9GG11312133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1131213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11312133barEv,_ZTv0_n12_N9GG11312133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1131213[];
+extern void _ZN5EE1133fooEv();
+extern void _ZN5EE1133barEv();
+static VTBL_ENTRY _tg__ZTV5EE113__9GG1131213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&_ZN5EE1133fooEv,
+ (VTBL_ENTRY)&_ZN5EE1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE113__9GG1131213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE113__9GG1131213[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void _ZN5FF1213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF121__9GG1131213[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN5FF1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF121__9GG1131213[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF121__9GG1131213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG1131213[] = {
+ {&(_ZTV9GG1131213[7]), 7,35},
+ {&(_ZTV9GG1131213[15]), 15,35},
+ {&(_ZTV9GG1131213[20]), 20,35},
+ {&(_ZTV9GG1131213[24]), 24,35},
+ {&(_ZTV9GG1131213[30]), 30,35},
+ {&(_ZTV9GG1131213[34]), 34,35},
+ {&(_tg__ZTV5EE113__9GG1131213[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE113__9GG1131213[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE113__9GG1131213[3]), 3,4},
+ {&(_tg__ZTV5FF121__9GG1131213[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF121__9GG1131213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF121__9GG1131213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1131213[];
+extern VTBL_ENTRY _ZTV9GG1131213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1131213[];
+static VTBL_ENTRY alt_thunk_names268[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11312133barEv,_ZTv0_n12_N9GG11312133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11312133barEv,_ZThn40_N9GG11312133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11312133fooEv,_ZTv0_n12_N9GG11312133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11312133fooEv,_ZThn24_N9GG11312133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11312133fooEv,_ZThn16_N9GG11312133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG11312133barEv,_ZTv0_n24_N9GG11312133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11312133barEv,_ZThn8_N9GG11312133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11312133fooEv,_ZTv0_n20_N9GG11312133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11312133fooEv,_ZThn32_N9GG11312133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11312133fooEv,_ZThn8_N9GG11312133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1131213 = { "GG1131213", // class name
+ bases_GG1131213, 5,
+ &(vtc_GG1131213[0]), // expected_vtbl_contents
+ &(vtt_GG1131213[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1131213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1131213),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1131213),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names268,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1131223 : virtual EE113 , virtual FF122 {
+ int pg;
+ virtual void foo(); // _ZN9GG11312233fooEv
+ virtual void bar(); // _ZN9GG11312233barEv
+ ~GG1131223(); // tgen
+ GG1131223(); // tgen
+};
+//SIG(1 GG1131223) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1131223 ::foo(){vfunc_called(this, "_ZN9GG11312233fooEv");}
+void GG1131223 ::bar(){vfunc_called(this, "_ZN9GG11312233barEv");}
+GG1131223 ::~GG1131223(){ note_dtor("GG1131223", this);} // tgen
+GG1131223 ::GG1131223(){ note_ctor("GG1131223", this);} // tgen
+
+static void Test_GG1131223()
+{
+ extern Class_Descriptor cd_GG1131223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1131223, buf);
+ GG1131223 *dp, &lv = *(dp=new (buf) GG1131223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1131223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1131223)");
+ check_base_class_offset(lv, (AA1*)(EE113*), ABISELECT(32,16), "GG1131223");
+ check_base_class_offset(lv, (AA1*)(FF122*), ABISELECT(32,16), "GG1131223");
+ check_base_class_offset(lv, (BB1*)(EE113*), ABISELECT(48,24), "GG1131223");
+ check_base_class_offset(lv, (EE113*), ABISELECT(16,8), "GG1131223");
+ check_base_class_offset(lv, (BB2*)(FF122*), ABISELECT(80,40), "GG1131223");
+ check_base_class_offset(lv, (FF122*), ABISELECT(64,32), "GG1131223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1131223.pg");
+ test_class_info(&lv, &cd_GG1131223);
+ dp->~GG1131223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1131223(Test_GG1131223, "GG1131223", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1131223C1Ev();
+extern void _ZN9GG1131223D1Ev();
+Name_Map name_map_GG1131223[] = {
+ NSPAIR(_ZN9GG1131223C1Ev),
+ NSPAIR(_ZN9GG1131223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE113;
+extern VTBL_ENTRY _ZTI5EE113[];
+extern VTBL_ENTRY _ZTV5EE113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE113[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF122;
+extern VTBL_ENTRY _ZTI5FF122[];
+extern VTBL_ENTRY _ZTV5FF122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF122[];
+static Base_Class bases_GG1131223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE113, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF122, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1131223[];
+extern void _ZN9GG11312233fooEv();
+extern void _ZN9GG11312233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11312233fooEv,_ZTv0_n20_N9GG11312233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11312233fooEv,_ZThn8_N9GG11312233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11312233barEv,_ZTv0_n24_N9GG11312233barEv)();
+extern void ABISELECT(_ZThn16_N9GG11312233barEv,_ZThn8_N9GG11312233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11312233fooEv,_ZTv0_n12_N9GG11312233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11312233fooEv,_ZThn16_N9GG11312233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11312233fooEv,_ZTv0_n12_N9GG11312233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11312233fooEv,_ZThn24_N9GG11312233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11312233barEv,_ZTv0_n20_N9GG11312233barEv)();
+extern void ABISELECT(_ZThn64_N9GG11312233barEv,_ZThn32_N9GG11312233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11312233barEv,_ZTv0_n12_N9GG11312233barEv)();
+extern void ABISELECT(_ZThn80_N9GG11312233barEv,_ZThn40_N9GG11312233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1131223[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1131223[0]),
+ (VTBL_ENTRY)&_ZN9GG11312233fooEv,
+ (VTBL_ENTRY)&_ZN9GG11312233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1131223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11312233fooEv,_ZTv0_n20_N9GG11312233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11312233barEv,_ZTv0_n24_N9GG11312233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1131223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11312233fooEv,_ZTv0_n12_N9GG11312233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1131223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11312233fooEv,_ZTv0_n12_N9GG11312233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1131223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11312233barEv,_ZTv0_n20_N9GG11312233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1131223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11312233barEv,_ZTv0_n12_N9GG11312233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1131223[];
+extern void _ZN5EE1133fooEv();
+extern void _ZN5EE1133barEv();
+static VTBL_ENTRY _tg__ZTV5EE113__9GG1131223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&_ZN5EE1133fooEv,
+ (VTBL_ENTRY)&_ZN5EE1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE113__9GG1131223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE113__9GG1131223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void _ZN5FF1223barEv();
+static VTBL_ENTRY _tg__ZTV5FF122__9GG1131223[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN5FF1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF122__9GG1131223[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv)();
+extern void ABISELECT(_ZThn16_N5FF1223barEv,_ZThn8_N5FF1223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF122__9GG1131223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv),
+};
+static VTT_ENTRY vtt_GG1131223[] = {
+ {&(_ZTV9GG1131223[7]), 7,35},
+ {&(_ZTV9GG1131223[15]), 15,35},
+ {&(_ZTV9GG1131223[20]), 20,35},
+ {&(_ZTV9GG1131223[24]), 24,35},
+ {&(_ZTV9GG1131223[30]), 30,35},
+ {&(_ZTV9GG1131223[34]), 34,35},
+ {&(_tg__ZTV5EE113__9GG1131223[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE113__9GG1131223[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE113__9GG1131223[3]), 3,4},
+ {&(_tg__ZTV5FF122__9GG1131223[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF122__9GG1131223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF122__9GG1131223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1131223[];
+extern VTBL_ENTRY _ZTV9GG1131223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1131223[];
+static VTBL_ENTRY alt_thunk_names269[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1223barEv,_ZThn8_N5FF1223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11312233barEv,_ZTv0_n12_N9GG11312233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11312233barEv,_ZThn40_N9GG11312233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11312233barEv,_ZTv0_n20_N9GG11312233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11312233barEv,_ZThn32_N9GG11312233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11312233fooEv,_ZTv0_n12_N9GG11312233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11312233fooEv,_ZThn24_N9GG11312233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11312233fooEv,_ZThn16_N9GG11312233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG11312233barEv,_ZTv0_n24_N9GG11312233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11312233barEv,_ZThn8_N9GG11312233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11312233fooEv,_ZTv0_n20_N9GG11312233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11312233fooEv,_ZThn8_N9GG11312233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1131223 = { "GG1131223", // class name
+ bases_GG1131223, 5,
+ &(vtc_GG1131223[0]), // expected_vtbl_contents
+ &(vtt_GG1131223[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1131223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1131223),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1131223),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names269,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1131233 : virtual EE113 , virtual FF123 {
+ int pg;
+ virtual void foo(); // _ZN9GG11312333fooEv
+ virtual void bar(); // _ZN9GG11312333barEv
+ ~GG1131233(); // tgen
+ GG1131233(); // tgen
+};
+//SIG(1 GG1131233) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1131233 ::foo(){vfunc_called(this, "_ZN9GG11312333fooEv");}
+void GG1131233 ::bar(){vfunc_called(this, "_ZN9GG11312333barEv");}
+GG1131233 ::~GG1131233(){ note_dtor("GG1131233", this);} // tgen
+GG1131233 ::GG1131233(){ note_ctor("GG1131233", this);} // tgen
+
+static void Test_GG1131233()
+{
+ extern Class_Descriptor cd_GG1131233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1131233, buf);
+ GG1131233 *dp, &lv = *(dp=new (buf) GG1131233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1131233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1131233)");
+ check_base_class_offset(lv, (AA1*)(EE113*), ABISELECT(32,16), "GG1131233");
+ check_base_class_offset(lv, (AA1*)(FF123*), ABISELECT(32,16), "GG1131233");
+ check_base_class_offset(lv, (BB1*)(EE113*), ABISELECT(48,24), "GG1131233");
+ check_base_class_offset(lv, (EE113*), ABISELECT(16,8), "GG1131233");
+ check_base_class_offset(lv, (BB2*)(FF123*), ABISELECT(80,40), "GG1131233");
+ check_base_class_offset(lv, (FF123*), ABISELECT(64,32), "GG1131233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1131233.pg");
+ test_class_info(&lv, &cd_GG1131233);
+ dp->~GG1131233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1131233(Test_GG1131233, "GG1131233", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1131233C1Ev();
+extern void _ZN9GG1131233D1Ev();
+Name_Map name_map_GG1131233[] = {
+ NSPAIR(_ZN9GG1131233C1Ev),
+ NSPAIR(_ZN9GG1131233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE113;
+extern VTBL_ENTRY _ZTI5EE113[];
+extern VTBL_ENTRY _ZTV5EE113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE113[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF123;
+extern VTBL_ENTRY _ZTI5FF123[];
+extern VTBL_ENTRY _ZTV5FF123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF123[];
+static Base_Class bases_GG1131233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE113, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF123, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1131233[];
+extern void _ZN9GG11312333fooEv();
+extern void _ZN9GG11312333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11312333fooEv,_ZTv0_n20_N9GG11312333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11312333fooEv,_ZThn8_N9GG11312333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11312333barEv,_ZTv0_n24_N9GG11312333barEv)();
+extern void ABISELECT(_ZThn16_N9GG11312333barEv,_ZThn8_N9GG11312333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11312333fooEv,_ZTv0_n12_N9GG11312333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11312333fooEv,_ZThn16_N9GG11312333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11312333fooEv,_ZTv0_n12_N9GG11312333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11312333fooEv,_ZThn24_N9GG11312333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11312333fooEv,_ZTv0_n20_N9GG11312333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11312333fooEv,_ZThn32_N9GG11312333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11312333barEv,_ZTv0_n24_N9GG11312333barEv)();
+extern void ABISELECT(_ZThn64_N9GG11312333barEv,_ZThn32_N9GG11312333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11312333barEv,_ZTv0_n12_N9GG11312333barEv)();
+extern void ABISELECT(_ZThn80_N9GG11312333barEv,_ZThn40_N9GG11312333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1131233[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1131233[0]),
+ (VTBL_ENTRY)&_ZN9GG11312333fooEv,
+ (VTBL_ENTRY)&_ZN9GG11312333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1131233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11312333fooEv,_ZTv0_n20_N9GG11312333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11312333barEv,_ZTv0_n24_N9GG11312333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1131233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11312333fooEv,_ZTv0_n12_N9GG11312333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1131233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11312333fooEv,_ZTv0_n12_N9GG11312333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1131233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11312333fooEv,_ZTv0_n20_N9GG11312333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11312333barEv,_ZTv0_n24_N9GG11312333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1131233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11312333barEv,_ZTv0_n12_N9GG11312333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1131233[];
+extern void _ZN5EE1133fooEv();
+extern void _ZN5EE1133barEv();
+static VTBL_ENTRY _tg__ZTV5EE113__9GG1131233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&_ZN5EE1133fooEv,
+ (VTBL_ENTRY)&_ZN5EE1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE113__9GG1131233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE113__9GG1131233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void _ZN5FF1233fooEv();
+extern void _ZN5FF1233barEv();
+static VTBL_ENTRY _tg__ZTV5FF123__9GG1131233[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&_ZN5FF1233fooEv,
+ (VTBL_ENTRY)&_ZN5FF1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF123__9GG1131233[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv)();
+extern void ABISELECT(_ZThn16_N5FF1233barEv,_ZThn8_N5FF1233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF123__9GG1131233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv),
+};
+static VTT_ENTRY vtt_GG1131233[] = {
+ {&(_ZTV9GG1131233[7]), 7,37},
+ {&(_ZTV9GG1131233[15]), 15,37},
+ {&(_ZTV9GG1131233[20]), 20,37},
+ {&(_ZTV9GG1131233[24]), 24,37},
+ {&(_ZTV9GG1131233[31]), 31,37},
+ {&(_ZTV9GG1131233[36]), 36,37},
+ {&(_tg__ZTV5EE113__9GG1131233[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE113__9GG1131233[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE113__9GG1131233[3]), 3,4},
+ {&(_tg__ZTV5FF123__9GG1131233[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF123__9GG1131233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF123__9GG1131233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1131233[];
+extern VTBL_ENTRY _ZTV9GG1131233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1131233[];
+static VTBL_ENTRY alt_thunk_names270[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1233barEv,_ZThn8_N5FF1233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11312333barEv,_ZTv0_n12_N9GG11312333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11312333barEv,_ZThn40_N9GG11312333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11312333fooEv,_ZTv0_n12_N9GG11312333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11312333fooEv,_ZThn24_N9GG11312333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11312333fooEv,_ZThn16_N9GG11312333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG11312333barEv,_ZTv0_n24_N9GG11312333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11312333barEv,_ZThn32_N9GG11312333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11312333barEv,_ZThn8_N9GG11312333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11312333fooEv,_ZTv0_n20_N9GG11312333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11312333fooEv,_ZThn32_N9GG11312333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11312333fooEv,_ZThn8_N9GG11312333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1131233 = { "GG1131233", // class name
+ bases_GG1131233, 5,
+ &(vtc_GG1131233[0]), // expected_vtbl_contents
+ &(vtt_GG1131233[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1131233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1131233),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1131233),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names270,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1131313 : virtual EE113 , virtual FF131 {
+ int pg;
+ virtual void foo(); // _ZN9GG11313133fooEv
+ virtual void bar(); // _ZN9GG11313133barEv
+ ~GG1131313(); // tgen
+ GG1131313(); // tgen
+};
+//SIG(1 GG1131313) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1131313 ::foo(){vfunc_called(this, "_ZN9GG11313133fooEv");}
+void GG1131313 ::bar(){vfunc_called(this, "_ZN9GG11313133barEv");}
+GG1131313 ::~GG1131313(){ note_dtor("GG1131313", this);} // tgen
+GG1131313 ::GG1131313(){ note_ctor("GG1131313", this);} // tgen
+
+static void Test_GG1131313()
+{
+ extern Class_Descriptor cd_GG1131313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1131313, buf);
+ GG1131313 *dp, &lv = *(dp=new (buf) GG1131313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1131313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1131313)");
+ check_base_class_offset(lv, (AA1*)(EE113*), ABISELECT(32,16), "GG1131313");
+ check_base_class_offset(lv, (AA1*)(FF131*), ABISELECT(32,16), "GG1131313");
+ check_base_class_offset(lv, (BB1*)(EE113*), ABISELECT(48,24), "GG1131313");
+ check_base_class_offset(lv, (EE113*), ABISELECT(16,8), "GG1131313");
+ check_base_class_offset(lv, (BB3*)(FF131*), ABISELECT(80,40), "GG1131313");
+ check_base_class_offset(lv, (FF131*), ABISELECT(64,32), "GG1131313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1131313.pg");
+ test_class_info(&lv, &cd_GG1131313);
+ dp->~GG1131313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1131313(Test_GG1131313, "GG1131313", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1131313C1Ev();
+extern void _ZN9GG1131313D1Ev();
+Name_Map name_map_GG1131313[] = {
+ NSPAIR(_ZN9GG1131313C1Ev),
+ NSPAIR(_ZN9GG1131313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE113;
+extern VTBL_ENTRY _ZTI5EE113[];
+extern VTBL_ENTRY _ZTV5EE113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE113[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF131;
+extern VTBL_ENTRY _ZTI5FF131[];
+extern VTBL_ENTRY _ZTV5FF131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF131[];
+static Base_Class bases_GG1131313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE113, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF131, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1131313[];
+extern void _ZN9GG11313133fooEv();
+extern void _ZN9GG11313133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11313133fooEv,_ZTv0_n20_N9GG11313133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11313133fooEv,_ZThn8_N9GG11313133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11313133barEv,_ZTv0_n24_N9GG11313133barEv)();
+extern void ABISELECT(_ZThn16_N9GG11313133barEv,_ZThn8_N9GG11313133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11313133fooEv,_ZTv0_n12_N9GG11313133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11313133fooEv,_ZThn16_N9GG11313133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11313133fooEv,_ZTv0_n12_N9GG11313133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11313133fooEv,_ZThn24_N9GG11313133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11313133fooEv,_ZTv0_n20_N9GG11313133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11313133fooEv,_ZThn32_N9GG11313133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11313133fooEv,_ZTv0_n12_N9GG11313133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG11313133fooEv,_ZThn40_N9GG11313133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11313133barEv,_ZTv0_n16_N9GG11313133barEv)();
+extern void ABISELECT(_ZThn80_N9GG11313133barEv,_ZThn40_N9GG11313133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1131313[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1131313[0]),
+ (VTBL_ENTRY)&_ZN9GG11313133fooEv,
+ (VTBL_ENTRY)&_ZN9GG11313133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1131313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11313133fooEv,_ZTv0_n20_N9GG11313133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11313133barEv,_ZTv0_n24_N9GG11313133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1131313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11313133fooEv,_ZTv0_n12_N9GG11313133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1131313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11313133fooEv,_ZTv0_n12_N9GG11313133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1131313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11313133fooEv,_ZTv0_n20_N9GG11313133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1131313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11313133fooEv,_ZTv0_n12_N9GG11313133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11313133barEv,_ZTv0_n16_N9GG11313133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1131313[];
+extern void _ZN5EE1133fooEv();
+extern void _ZN5EE1133barEv();
+static VTBL_ENTRY _tg__ZTV5EE113__9GG1131313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&_ZN5EE1133fooEv,
+ (VTBL_ENTRY)&_ZN5EE1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE113__9GG1131313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE113__9GG1131313[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void _ZN5FF1313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF131__9GG1131313[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&_ZN5FF1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF131__9GG1131313[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF131__9GG1131313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG1131313[] = {
+ {&(_ZTV9GG1131313[7]), 7,37},
+ {&(_ZTV9GG1131313[15]), 15,37},
+ {&(_ZTV9GG1131313[20]), 20,37},
+ {&(_ZTV9GG1131313[24]), 24,37},
+ {&(_ZTV9GG1131313[30]), 30,37},
+ {&(_ZTV9GG1131313[35]), 35,37},
+ {&(_tg__ZTV5EE113__9GG1131313[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE113__9GG1131313[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE113__9GG1131313[3]), 3,4},
+ {&(_tg__ZTV5FF131__9GG1131313[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF131__9GG1131313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF131__9GG1131313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1131313[];
+extern VTBL_ENTRY _ZTV9GG1131313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1131313[];
+static VTBL_ENTRY alt_thunk_names271[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG11313133barEv,_ZTv0_n16_N9GG11313133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11313133barEv,_ZThn40_N9GG11313133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11313133fooEv,_ZTv0_n12_N9GG11313133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11313133fooEv,_ZThn40_N9GG11313133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11313133fooEv,_ZThn24_N9GG11313133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11313133fooEv,_ZThn16_N9GG11313133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG11313133barEv,_ZTv0_n24_N9GG11313133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11313133barEv,_ZThn8_N9GG11313133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11313133fooEv,_ZTv0_n20_N9GG11313133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11313133fooEv,_ZThn32_N9GG11313133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11313133fooEv,_ZThn8_N9GG11313133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1131313 = { "GG1131313", // class name
+ bases_GG1131313, 5,
+ &(vtc_GG1131313[0]), // expected_vtbl_contents
+ &(vtt_GG1131313[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1131313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1131313),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1131313),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names271,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1131323 : virtual EE113 , virtual FF132 {
+ int pg;
+ virtual void foo(); // _ZN9GG11313233fooEv
+ virtual void bar(); // _ZN9GG11313233barEv
+ ~GG1131323(); // tgen
+ GG1131323(); // tgen
+};
+//SIG(1 GG1131323) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1131323 ::foo(){vfunc_called(this, "_ZN9GG11313233fooEv");}
+void GG1131323 ::bar(){vfunc_called(this, "_ZN9GG11313233barEv");}
+GG1131323 ::~GG1131323(){ note_dtor("GG1131323", this);} // tgen
+GG1131323 ::GG1131323(){ note_ctor("GG1131323", this);} // tgen
+
+static void Test_GG1131323()
+{
+ extern Class_Descriptor cd_GG1131323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1131323, buf);
+ GG1131323 *dp, &lv = *(dp=new (buf) GG1131323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1131323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1131323)");
+ check_base_class_offset(lv, (AA1*)(EE113*), ABISELECT(32,16), "GG1131323");
+ check_base_class_offset(lv, (AA1*)(FF132*), ABISELECT(32,16), "GG1131323");
+ check_base_class_offset(lv, (BB1*)(EE113*), ABISELECT(48,24), "GG1131323");
+ check_base_class_offset(lv, (EE113*), ABISELECT(16,8), "GG1131323");
+ check_base_class_offset(lv, (BB3*)(FF132*), ABISELECT(80,40), "GG1131323");
+ check_base_class_offset(lv, (FF132*), ABISELECT(64,32), "GG1131323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1131323.pg");
+ test_class_info(&lv, &cd_GG1131323);
+ dp->~GG1131323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1131323(Test_GG1131323, "GG1131323", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1131323C1Ev();
+extern void _ZN9GG1131323D1Ev();
+Name_Map name_map_GG1131323[] = {
+ NSPAIR(_ZN9GG1131323C1Ev),
+ NSPAIR(_ZN9GG1131323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE113;
+extern VTBL_ENTRY _ZTI5EE113[];
+extern VTBL_ENTRY _ZTV5EE113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE113[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF132;
+extern VTBL_ENTRY _ZTI5FF132[];
+extern VTBL_ENTRY _ZTV5FF132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF132[];
+static Base_Class bases_GG1131323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE113, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF132, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1131323[];
+extern void _ZN9GG11313233fooEv();
+extern void _ZN9GG11313233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11313233fooEv,_ZTv0_n20_N9GG11313233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11313233fooEv,_ZThn8_N9GG11313233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11313233barEv,_ZTv0_n24_N9GG11313233barEv)();
+extern void ABISELECT(_ZThn16_N9GG11313233barEv,_ZThn8_N9GG11313233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11313233fooEv,_ZTv0_n12_N9GG11313233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11313233fooEv,_ZThn16_N9GG11313233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11313233fooEv,_ZTv0_n12_N9GG11313233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11313233fooEv,_ZThn24_N9GG11313233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11313233barEv,_ZTv0_n20_N9GG11313233barEv)();
+extern void ABISELECT(_ZThn64_N9GG11313233barEv,_ZThn32_N9GG11313233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11313233fooEv,_ZTv0_n12_N9GG11313233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG11313233fooEv,_ZThn40_N9GG11313233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11313233barEv,_ZTv0_n16_N9GG11313233barEv)();
+extern void ABISELECT(_ZThn80_N9GG11313233barEv,_ZThn40_N9GG11313233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1131323[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1131323[0]),
+ (VTBL_ENTRY)&_ZN9GG11313233fooEv,
+ (VTBL_ENTRY)&_ZN9GG11313233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1131323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11313233fooEv,_ZTv0_n20_N9GG11313233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11313233barEv,_ZTv0_n24_N9GG11313233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1131323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11313233fooEv,_ZTv0_n12_N9GG11313233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1131323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11313233fooEv,_ZTv0_n12_N9GG11313233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1131323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11313233barEv,_ZTv0_n20_N9GG11313233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1131323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11313233fooEv,_ZTv0_n12_N9GG11313233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11313233barEv,_ZTv0_n16_N9GG11313233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1131323[];
+extern void _ZN5EE1133fooEv();
+extern void _ZN5EE1133barEv();
+static VTBL_ENTRY _tg__ZTV5EE113__9GG1131323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&_ZN5EE1133fooEv,
+ (VTBL_ENTRY)&_ZN5EE1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE113__9GG1131323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE113__9GG1131323[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void _ZN5FF1323barEv();
+static VTBL_ENTRY _tg__ZTV5FF132__9GG1131323[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN5FF1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF132__9GG1131323[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv)();
+extern void ABISELECT(_ZThn16_N5FF1323barEv,_ZThn8_N5FF1323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF132__9GG1131323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv),
+};
+static VTT_ENTRY vtt_GG1131323[] = {
+ {&(_ZTV9GG1131323[7]), 7,37},
+ {&(_ZTV9GG1131323[15]), 15,37},
+ {&(_ZTV9GG1131323[20]), 20,37},
+ {&(_ZTV9GG1131323[24]), 24,37},
+ {&(_ZTV9GG1131323[30]), 30,37},
+ {&(_ZTV9GG1131323[35]), 35,37},
+ {&(_tg__ZTV5EE113__9GG1131323[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE113__9GG1131323[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE113__9GG1131323[3]), 3,4},
+ {&(_tg__ZTV5FF132__9GG1131323[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF132__9GG1131323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF132__9GG1131323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1131323[];
+extern VTBL_ENTRY _ZTV9GG1131323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1131323[];
+static VTBL_ENTRY alt_thunk_names272[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1323barEv,_ZThn8_N5FF1323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG11313233barEv,_ZTv0_n16_N9GG11313233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11313233barEv,_ZThn40_N9GG11313233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11313233barEv,_ZTv0_n20_N9GG11313233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11313233barEv,_ZThn32_N9GG11313233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11313233fooEv,_ZTv0_n12_N9GG11313233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11313233fooEv,_ZThn40_N9GG11313233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11313233fooEv,_ZThn24_N9GG11313233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11313233fooEv,_ZThn16_N9GG11313233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG11313233barEv,_ZTv0_n24_N9GG11313233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11313233barEv,_ZThn8_N9GG11313233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11313233fooEv,_ZTv0_n20_N9GG11313233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11313233fooEv,_ZThn8_N9GG11313233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1131323 = { "GG1131323", // class name
+ bases_GG1131323, 5,
+ &(vtc_GG1131323[0]), // expected_vtbl_contents
+ &(vtt_GG1131323[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1131323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1131323),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1131323),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names272,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1131333 : virtual EE113 , virtual FF133 {
+ int pg;
+ virtual void foo(); // _ZN9GG11313333fooEv
+ virtual void bar(); // _ZN9GG11313333barEv
+ ~GG1131333(); // tgen
+ GG1131333(); // tgen
+};
+//SIG(1 GG1131333) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1131333 ::foo(){vfunc_called(this, "_ZN9GG11313333fooEv");}
+void GG1131333 ::bar(){vfunc_called(this, "_ZN9GG11313333barEv");}
+GG1131333 ::~GG1131333(){ note_dtor("GG1131333", this);} // tgen
+GG1131333 ::GG1131333(){ note_ctor("GG1131333", this);} // tgen
+
+static void Test_GG1131333()
+{
+ extern Class_Descriptor cd_GG1131333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1131333, buf);
+ GG1131333 *dp, &lv = *(dp=new (buf) GG1131333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1131333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1131333)");
+ check_base_class_offset(lv, (AA1*)(EE113*), ABISELECT(32,16), "GG1131333");
+ check_base_class_offset(lv, (AA1*)(FF133*), ABISELECT(32,16), "GG1131333");
+ check_base_class_offset(lv, (BB1*)(EE113*), ABISELECT(48,24), "GG1131333");
+ check_base_class_offset(lv, (EE113*), ABISELECT(16,8), "GG1131333");
+ check_base_class_offset(lv, (BB3*)(FF133*), ABISELECT(80,40), "GG1131333");
+ check_base_class_offset(lv, (FF133*), ABISELECT(64,32), "GG1131333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1131333.pg");
+ test_class_info(&lv, &cd_GG1131333);
+ dp->~GG1131333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1131333(Test_GG1131333, "GG1131333", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1131333C1Ev();
+extern void _ZN9GG1131333D1Ev();
+Name_Map name_map_GG1131333[] = {
+ NSPAIR(_ZN9GG1131333C1Ev),
+ NSPAIR(_ZN9GG1131333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE113;
+extern VTBL_ENTRY _ZTI5EE113[];
+extern VTBL_ENTRY _ZTV5EE113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE113[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF133;
+extern VTBL_ENTRY _ZTI5FF133[];
+extern VTBL_ENTRY _ZTV5FF133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF133[];
+static Base_Class bases_GG1131333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE113, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF133, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1131333[];
+extern void _ZN9GG11313333fooEv();
+extern void _ZN9GG11313333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11313333fooEv,_ZTv0_n20_N9GG11313333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11313333fooEv,_ZThn8_N9GG11313333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11313333barEv,_ZTv0_n24_N9GG11313333barEv)();
+extern void ABISELECT(_ZThn16_N9GG11313333barEv,_ZThn8_N9GG11313333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11313333fooEv,_ZTv0_n12_N9GG11313333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11313333fooEv,_ZThn16_N9GG11313333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11313333fooEv,_ZTv0_n12_N9GG11313333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11313333fooEv,_ZThn24_N9GG11313333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11313333fooEv,_ZTv0_n20_N9GG11313333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11313333fooEv,_ZThn32_N9GG11313333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11313333barEv,_ZTv0_n24_N9GG11313333barEv)();
+extern void ABISELECT(_ZThn64_N9GG11313333barEv,_ZThn32_N9GG11313333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11313333fooEv,_ZTv0_n12_N9GG11313333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG11313333fooEv,_ZThn40_N9GG11313333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11313333barEv,_ZTv0_n16_N9GG11313333barEv)();
+extern void ABISELECT(_ZThn80_N9GG11313333barEv,_ZThn40_N9GG11313333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1131333[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1131333[0]),
+ (VTBL_ENTRY)&_ZN9GG11313333fooEv,
+ (VTBL_ENTRY)&_ZN9GG11313333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1131333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11313333fooEv,_ZTv0_n20_N9GG11313333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11313333barEv,_ZTv0_n24_N9GG11313333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1131333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11313333fooEv,_ZTv0_n12_N9GG11313333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1131333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11313333fooEv,_ZTv0_n12_N9GG11313333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1131333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11313333fooEv,_ZTv0_n20_N9GG11313333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11313333barEv,_ZTv0_n24_N9GG11313333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1131333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11313333fooEv,_ZTv0_n12_N9GG11313333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11313333barEv,_ZTv0_n16_N9GG11313333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1131333[];
+extern void _ZN5EE1133fooEv();
+extern void _ZN5EE1133barEv();
+static VTBL_ENTRY _tg__ZTV5EE113__9GG1131333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&_ZN5EE1133fooEv,
+ (VTBL_ENTRY)&_ZN5EE1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE113__9GG1131333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE113__9GG1131333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void _ZN5FF1333fooEv();
+extern void _ZN5FF1333barEv();
+static VTBL_ENTRY _tg__ZTV5FF133__9GG1131333[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&_ZN5FF1333fooEv,
+ (VTBL_ENTRY)&_ZN5FF1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF133__9GG1131333[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv)();
+extern void ABISELECT(_ZThn16_N5FF1333barEv,_ZThn8_N5FF1333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF133__9GG1131333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv),
+};
+static VTT_ENTRY vtt_GG1131333[] = {
+ {&(_ZTV9GG1131333[7]), 7,39},
+ {&(_ZTV9GG1131333[15]), 15,39},
+ {&(_ZTV9GG1131333[20]), 20,39},
+ {&(_ZTV9GG1131333[24]), 24,39},
+ {&(_ZTV9GG1131333[31]), 31,39},
+ {&(_ZTV9GG1131333[37]), 37,39},
+ {&(_tg__ZTV5EE113__9GG1131333[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE113__9GG1131333[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE113__9GG1131333[3]), 3,4},
+ {&(_tg__ZTV5FF133__9GG1131333[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF133__9GG1131333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF133__9GG1131333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1131333[];
+extern VTBL_ENTRY _ZTV9GG1131333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1131333[];
+static VTBL_ENTRY alt_thunk_names273[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1333barEv,_ZThn8_N5FF1333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG11313333barEv,_ZTv0_n16_N9GG11313333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11313333barEv,_ZThn40_N9GG11313333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11313333fooEv,_ZTv0_n12_N9GG11313333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11313333fooEv,_ZThn40_N9GG11313333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11313333fooEv,_ZThn24_N9GG11313333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11313333fooEv,_ZThn16_N9GG11313333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG11313333barEv,_ZTv0_n24_N9GG11313333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11313333barEv,_ZThn32_N9GG11313333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11313333barEv,_ZThn8_N9GG11313333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11313333fooEv,_ZTv0_n20_N9GG11313333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11313333fooEv,_ZThn32_N9GG11313333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11313333fooEv,_ZThn8_N9GG11313333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1131333 = { "GG1131333", // class name
+ bases_GG1131333, 5,
+ &(vtc_GG1131333[0]), // expected_vtbl_contents
+ &(vtt_GG1131333[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1131333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1131333),39, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1131333),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names273,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1132113 : virtual EE113 , virtual FF211 {
+ int pg;
+ virtual void foo(); // _ZN9GG11321133fooEv
+ virtual void bar(); // _ZN9GG11321133barEv
+ ~GG1132113(); // tgen
+ GG1132113(); // tgen
+};
+//SIG(1 GG1132113) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG1132113 ::foo(){vfunc_called(this, "_ZN9GG11321133fooEv");}
+void GG1132113 ::bar(){vfunc_called(this, "_ZN9GG11321133barEv");}
+GG1132113 ::~GG1132113(){ note_dtor("GG1132113", this);} // tgen
+GG1132113 ::GG1132113(){ note_ctor("GG1132113", this);} // tgen
+
+static void Test_GG1132113()
+{
+ extern Class_Descriptor cd_GG1132113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1132113, buf);
+ GG1132113 *dp, &lv = *(dp=new (buf) GG1132113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1132113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1132113)");
+ check_base_class_offset(lv, (AA1*)(EE113*), ABISELECT(32,16), "GG1132113");
+ check_base_class_offset(lv, (BB1*)(EE113*), ABISELECT(48,24), "GG1132113");
+ check_base_class_offset(lv, (BB1*)(FF211*), ABISELECT(48,24), "GG1132113");
+ check_base_class_offset(lv, (EE113*), ABISELECT(16,8), "GG1132113");
+ check_base_class_offset(lv, (AA2*)(FF211*), ABISELECT(80,40), "GG1132113");
+ check_base_class_offset(lv, (FF211*), ABISELECT(64,32), "GG1132113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1132113.pg");
+ test_class_info(&lv, &cd_GG1132113);
+ dp->~GG1132113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1132113(Test_GG1132113, "GG1132113", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1132113C1Ev();
+extern void _ZN9GG1132113D1Ev();
+Name_Map name_map_GG1132113[] = {
+ NSPAIR(_ZN9GG1132113C1Ev),
+ NSPAIR(_ZN9GG1132113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE113;
+extern VTBL_ENTRY _ZTI5EE113[];
+extern VTBL_ENTRY _ZTV5EE113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE113[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF211;
+extern VTBL_ENTRY _ZTI5FF211[];
+extern VTBL_ENTRY _ZTV5FF211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF211[];
+static Base_Class bases_GG1132113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE113, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF211, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1132113[];
+extern void _ZN9GG11321133fooEv();
+extern void _ZN9GG11321133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11321133fooEv,_ZTv0_n20_N9GG11321133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11321133fooEv,_ZThn8_N9GG11321133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11321133barEv,_ZTv0_n24_N9GG11321133barEv)();
+extern void ABISELECT(_ZThn16_N9GG11321133barEv,_ZThn8_N9GG11321133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11321133fooEv,_ZTv0_n12_N9GG11321133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11321133fooEv,_ZThn16_N9GG11321133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11321133fooEv,_ZTv0_n12_N9GG11321133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11321133fooEv,_ZThn24_N9GG11321133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11321133fooEv,_ZTv0_n20_N9GG11321133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11321133fooEv,_ZThn32_N9GG11321133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11321133barEv,_ZTv0_n12_N9GG11321133barEv)();
+extern void ABISELECT(_ZThn80_N9GG11321133barEv,_ZThn40_N9GG11321133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1132113[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1132113[0]),
+ (VTBL_ENTRY)&_ZN9GG11321133fooEv,
+ (VTBL_ENTRY)&_ZN9GG11321133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1132113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11321133fooEv,_ZTv0_n20_N9GG11321133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11321133barEv,_ZTv0_n24_N9GG11321133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1132113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11321133fooEv,_ZTv0_n12_N9GG11321133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1132113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11321133fooEv,_ZTv0_n12_N9GG11321133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1132113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11321133fooEv,_ZTv0_n20_N9GG11321133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1132113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11321133barEv,_ZTv0_n12_N9GG11321133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1132113[];
+extern void _ZN5EE1133fooEv();
+extern void _ZN5EE1133barEv();
+static VTBL_ENTRY _tg__ZTV5EE113__9GG1132113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&_ZN5EE1133fooEv,
+ (VTBL_ENTRY)&_ZN5EE1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE113__9GG1132113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE113__9GG1132113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void _ZN5FF2113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF211__9GG1132113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN5FF2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF211__9GG1132113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF211__9GG1132113[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv),
+};
+static VTT_ENTRY vtt_GG1132113[] = {
+ {&(_ZTV9GG1132113[7]), 7,35},
+ {&(_ZTV9GG1132113[15]), 15,35},
+ {&(_ZTV9GG1132113[20]), 20,35},
+ {&(_ZTV9GG1132113[24]), 24,35},
+ {&(_ZTV9GG1132113[30]), 30,35},
+ {&(_ZTV9GG1132113[34]), 34,35},
+ {&(_tg__ZTV5EE113__9GG1132113[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE113__9GG1132113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE113__9GG1132113[3]), 3,4},
+ {&(_tg__ZTV5FF211__9GG1132113[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF211__9GG1132113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF211__9GG1132113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1132113[];
+extern VTBL_ENTRY _ZTV9GG1132113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1132113[];
+static VTBL_ENTRY alt_thunk_names274[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11321133barEv,_ZTv0_n12_N9GG11321133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11321133barEv,_ZThn40_N9GG11321133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11321133fooEv,_ZTv0_n12_N9GG11321133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11321133fooEv,_ZThn24_N9GG11321133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11321133fooEv,_ZThn16_N9GG11321133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG11321133barEv,_ZTv0_n24_N9GG11321133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11321133barEv,_ZThn8_N9GG11321133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11321133fooEv,_ZTv0_n20_N9GG11321133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11321133fooEv,_ZThn32_N9GG11321133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11321133fooEv,_ZThn8_N9GG11321133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1132113 = { "GG1132113", // class name
+ bases_GG1132113, 5,
+ &(vtc_GG1132113[0]), // expected_vtbl_contents
+ &(vtt_GG1132113[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1132113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1132113),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1132113),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names274,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1132123 : virtual EE113 , virtual FF212 {
+ int pg;
+ virtual void foo(); // _ZN9GG11321233fooEv
+ virtual void bar(); // _ZN9GG11321233barEv
+ ~GG1132123(); // tgen
+ GG1132123(); // tgen
+};
+//SIG(1 GG1132123) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG1132123 ::foo(){vfunc_called(this, "_ZN9GG11321233fooEv");}
+void GG1132123 ::bar(){vfunc_called(this, "_ZN9GG11321233barEv");}
+GG1132123 ::~GG1132123(){ note_dtor("GG1132123", this);} // tgen
+GG1132123 ::GG1132123(){ note_ctor("GG1132123", this);} // tgen
+
+static void Test_GG1132123()
+{
+ extern Class_Descriptor cd_GG1132123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1132123, buf);
+ GG1132123 *dp, &lv = *(dp=new (buf) GG1132123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1132123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1132123)");
+ check_base_class_offset(lv, (AA1*)(EE113*), ABISELECT(32,16), "GG1132123");
+ check_base_class_offset(lv, (BB1*)(EE113*), ABISELECT(48,24), "GG1132123");
+ check_base_class_offset(lv, (BB1*)(FF212*), ABISELECT(48,24), "GG1132123");
+ check_base_class_offset(lv, (EE113*), ABISELECT(16,8), "GG1132123");
+ check_base_class_offset(lv, (AA2*)(FF212*), ABISELECT(80,40), "GG1132123");
+ check_base_class_offset(lv, (FF212*), ABISELECT(64,32), "GG1132123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1132123.pg");
+ test_class_info(&lv, &cd_GG1132123);
+ dp->~GG1132123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1132123(Test_GG1132123, "GG1132123", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1132123C1Ev();
+extern void _ZN9GG1132123D1Ev();
+Name_Map name_map_GG1132123[] = {
+ NSPAIR(_ZN9GG1132123C1Ev),
+ NSPAIR(_ZN9GG1132123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE113;
+extern VTBL_ENTRY _ZTI5EE113[];
+extern VTBL_ENTRY _ZTV5EE113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE113[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF212;
+extern VTBL_ENTRY _ZTI5FF212[];
+extern VTBL_ENTRY _ZTV5FF212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF212[];
+static Base_Class bases_GG1132123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE113, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF212, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1132123[];
+extern void _ZN9GG11321233fooEv();
+extern void _ZN9GG11321233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11321233fooEv,_ZTv0_n20_N9GG11321233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11321233fooEv,_ZThn8_N9GG11321233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11321233barEv,_ZTv0_n24_N9GG11321233barEv)();
+extern void ABISELECT(_ZThn16_N9GG11321233barEv,_ZThn8_N9GG11321233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11321233fooEv,_ZTv0_n12_N9GG11321233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11321233fooEv,_ZThn16_N9GG11321233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11321233fooEv,_ZTv0_n12_N9GG11321233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11321233fooEv,_ZThn24_N9GG11321233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11321233barEv,_ZTv0_n20_N9GG11321233barEv)();
+extern void ABISELECT(_ZThn64_N9GG11321233barEv,_ZThn32_N9GG11321233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11321233barEv,_ZTv0_n12_N9GG11321233barEv)();
+extern void ABISELECT(_ZThn80_N9GG11321233barEv,_ZThn40_N9GG11321233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1132123[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1132123[0]),
+ (VTBL_ENTRY)&_ZN9GG11321233fooEv,
+ (VTBL_ENTRY)&_ZN9GG11321233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1132123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11321233fooEv,_ZTv0_n20_N9GG11321233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11321233barEv,_ZTv0_n24_N9GG11321233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1132123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11321233fooEv,_ZTv0_n12_N9GG11321233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1132123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11321233fooEv,_ZTv0_n12_N9GG11321233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1132123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11321233barEv,_ZTv0_n20_N9GG11321233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1132123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11321233barEv,_ZTv0_n12_N9GG11321233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1132123[];
+extern void _ZN5EE1133fooEv();
+extern void _ZN5EE1133barEv();
+static VTBL_ENTRY _tg__ZTV5EE113__9GG1132123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&_ZN5EE1133fooEv,
+ (VTBL_ENTRY)&_ZN5EE1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE113__9GG1132123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE113__9GG1132123[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void _ZN5FF2123barEv();
+static VTBL_ENTRY _tg__ZTV5FF212__9GG1132123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN5FF2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv)();
+extern void ABISELECT(_ZThn16_N5FF2123barEv,_ZThn8_N5FF2123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF212__9GG1132123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF212__9GG1132123[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG1132123[] = {
+ {&(_ZTV9GG1132123[7]), 7,35},
+ {&(_ZTV9GG1132123[15]), 15,35},
+ {&(_ZTV9GG1132123[20]), 20,35},
+ {&(_ZTV9GG1132123[24]), 24,35},
+ {&(_ZTV9GG1132123[30]), 30,35},
+ {&(_ZTV9GG1132123[34]), 34,35},
+ {&(_tg__ZTV5EE113__9GG1132123[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE113__9GG1132123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE113__9GG1132123[3]), 3,4},
+ {&(_tg__ZTV5FF212__9GG1132123[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF212__9GG1132123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF212__9GG1132123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1132123[];
+extern VTBL_ENTRY _ZTV9GG1132123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1132123[];
+static VTBL_ENTRY alt_thunk_names275[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2123barEv,_ZThn8_N5FF2123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11321233barEv,_ZTv0_n12_N9GG11321233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11321233barEv,_ZThn40_N9GG11321233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11321233barEv,_ZTv0_n20_N9GG11321233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11321233barEv,_ZThn32_N9GG11321233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11321233fooEv,_ZTv0_n12_N9GG11321233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11321233fooEv,_ZThn24_N9GG11321233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11321233fooEv,_ZThn16_N9GG11321233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG11321233barEv,_ZTv0_n24_N9GG11321233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11321233barEv,_ZThn8_N9GG11321233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11321233fooEv,_ZTv0_n20_N9GG11321233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11321233fooEv,_ZThn8_N9GG11321233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1132123 = { "GG1132123", // class name
+ bases_GG1132123, 5,
+ &(vtc_GG1132123[0]), // expected_vtbl_contents
+ &(vtt_GG1132123[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1132123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1132123),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1132123),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names275,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1132133 : virtual EE113 , virtual FF213 {
+ int pg;
+ virtual void foo(); // _ZN9GG11321333fooEv
+ virtual void bar(); // _ZN9GG11321333barEv
+ ~GG1132133(); // tgen
+ GG1132133(); // tgen
+};
+//SIG(1 GG1132133) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1132133 ::foo(){vfunc_called(this, "_ZN9GG11321333fooEv");}
+void GG1132133 ::bar(){vfunc_called(this, "_ZN9GG11321333barEv");}
+GG1132133 ::~GG1132133(){ note_dtor("GG1132133", this);} // tgen
+GG1132133 ::GG1132133(){ note_ctor("GG1132133", this);} // tgen
+
+static void Test_GG1132133()
+{
+ extern Class_Descriptor cd_GG1132133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1132133, buf);
+ GG1132133 *dp, &lv = *(dp=new (buf) GG1132133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1132133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1132133)");
+ check_base_class_offset(lv, (AA1*)(EE113*), ABISELECT(32,16), "GG1132133");
+ check_base_class_offset(lv, (BB1*)(EE113*), ABISELECT(48,24), "GG1132133");
+ check_base_class_offset(lv, (BB1*)(FF213*), ABISELECT(48,24), "GG1132133");
+ check_base_class_offset(lv, (EE113*), ABISELECT(16,8), "GG1132133");
+ check_base_class_offset(lv, (AA2*)(FF213*), ABISELECT(80,40), "GG1132133");
+ check_base_class_offset(lv, (FF213*), ABISELECT(64,32), "GG1132133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1132133.pg");
+ test_class_info(&lv, &cd_GG1132133);
+ dp->~GG1132133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1132133(Test_GG1132133, "GG1132133", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1132133C1Ev();
+extern void _ZN9GG1132133D1Ev();
+Name_Map name_map_GG1132133[] = {
+ NSPAIR(_ZN9GG1132133C1Ev),
+ NSPAIR(_ZN9GG1132133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE113;
+extern VTBL_ENTRY _ZTI5EE113[];
+extern VTBL_ENTRY _ZTV5EE113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE113[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF213;
+extern VTBL_ENTRY _ZTI5FF213[];
+extern VTBL_ENTRY _ZTV5FF213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF213[];
+static Base_Class bases_GG1132133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE113, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF213, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1132133[];
+extern void _ZN9GG11321333fooEv();
+extern void _ZN9GG11321333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11321333fooEv,_ZTv0_n20_N9GG11321333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11321333fooEv,_ZThn8_N9GG11321333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11321333barEv,_ZTv0_n24_N9GG11321333barEv)();
+extern void ABISELECT(_ZThn16_N9GG11321333barEv,_ZThn8_N9GG11321333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11321333fooEv,_ZTv0_n12_N9GG11321333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11321333fooEv,_ZThn16_N9GG11321333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11321333fooEv,_ZTv0_n12_N9GG11321333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11321333fooEv,_ZThn24_N9GG11321333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11321333fooEv,_ZTv0_n20_N9GG11321333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11321333fooEv,_ZThn32_N9GG11321333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11321333barEv,_ZTv0_n24_N9GG11321333barEv)();
+extern void ABISELECT(_ZThn64_N9GG11321333barEv,_ZThn32_N9GG11321333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11321333barEv,_ZTv0_n12_N9GG11321333barEv)();
+extern void ABISELECT(_ZThn80_N9GG11321333barEv,_ZThn40_N9GG11321333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1132133[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1132133[0]),
+ (VTBL_ENTRY)&_ZN9GG11321333fooEv,
+ (VTBL_ENTRY)&_ZN9GG11321333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1132133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11321333fooEv,_ZTv0_n20_N9GG11321333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11321333barEv,_ZTv0_n24_N9GG11321333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1132133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11321333fooEv,_ZTv0_n12_N9GG11321333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1132133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11321333fooEv,_ZTv0_n12_N9GG11321333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1132133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11321333fooEv,_ZTv0_n20_N9GG11321333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11321333barEv,_ZTv0_n24_N9GG11321333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1132133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11321333barEv,_ZTv0_n12_N9GG11321333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1132133[];
+extern void _ZN5EE1133fooEv();
+extern void _ZN5EE1133barEv();
+static VTBL_ENTRY _tg__ZTV5EE113__9GG1132133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&_ZN5EE1133fooEv,
+ (VTBL_ENTRY)&_ZN5EE1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE113__9GG1132133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE113__9GG1132133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void _ZN5FF2133fooEv();
+extern void _ZN5FF2133barEv();
+static VTBL_ENTRY _tg__ZTV5FF213__9GG1132133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&_ZN5FF2133fooEv,
+ (VTBL_ENTRY)&_ZN5FF2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv)();
+extern void ABISELECT(_ZThn16_N5FF2133barEv,_ZThn8_N5FF2133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF213__9GG1132133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF213__9GG1132133[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv),
+};
+static VTT_ENTRY vtt_GG1132133[] = {
+ {&(_ZTV9GG1132133[7]), 7,37},
+ {&(_ZTV9GG1132133[15]), 15,37},
+ {&(_ZTV9GG1132133[20]), 20,37},
+ {&(_ZTV9GG1132133[24]), 24,37},
+ {&(_ZTV9GG1132133[31]), 31,37},
+ {&(_ZTV9GG1132133[36]), 36,37},
+ {&(_tg__ZTV5EE113__9GG1132133[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE113__9GG1132133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE113__9GG1132133[3]), 3,4},
+ {&(_tg__ZTV5FF213__9GG1132133[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF213__9GG1132133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF213__9GG1132133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1132133[];
+extern VTBL_ENTRY _ZTV9GG1132133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1132133[];
+static VTBL_ENTRY alt_thunk_names276[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2133barEv,_ZThn8_N5FF2133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11321333barEv,_ZTv0_n12_N9GG11321333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11321333barEv,_ZThn40_N9GG11321333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11321333fooEv,_ZTv0_n12_N9GG11321333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11321333fooEv,_ZThn24_N9GG11321333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11321333fooEv,_ZThn16_N9GG11321333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG11321333barEv,_ZTv0_n24_N9GG11321333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11321333barEv,_ZThn32_N9GG11321333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11321333barEv,_ZThn8_N9GG11321333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11321333fooEv,_ZTv0_n20_N9GG11321333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11321333fooEv,_ZThn32_N9GG11321333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11321333fooEv,_ZThn8_N9GG11321333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1132133 = { "GG1132133", // class name
+ bases_GG1132133, 5,
+ &(vtc_GG1132133[0]), // expected_vtbl_contents
+ &(vtt_GG1132133[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1132133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1132133),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1132133),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names276,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1132213 : virtual EE113 , virtual FF221 {
+ int pg;
+ virtual void foo(); // _ZN9GG11322133fooEv
+ virtual void bar(); // _ZN9GG11322133barEv
+ ~GG1132213(); // tgen
+ GG1132213(); // tgen
+};
+//SIG(1 GG1132213) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1132213 ::foo(){vfunc_called(this, "_ZN9GG11322133fooEv");}
+void GG1132213 ::bar(){vfunc_called(this, "_ZN9GG11322133barEv");}
+GG1132213 ::~GG1132213(){ note_dtor("GG1132213", this);} // tgen
+GG1132213 ::GG1132213(){ note_ctor("GG1132213", this);} // tgen
+
+static void Test_GG1132213()
+{
+ extern Class_Descriptor cd_GG1132213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1132213, buf);
+ GG1132213 *dp, &lv = *(dp=new (buf) GG1132213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1132213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1132213)");
+ check_base_class_offset(lv, (AA1*)(EE113*), ABISELECT(32,16), "GG1132213");
+ check_base_class_offset(lv, (BB1*)(EE113*), ABISELECT(48,24), "GG1132213");
+ check_base_class_offset(lv, (EE113*), ABISELECT(16,8), "GG1132213");
+ check_base_class_offset(lv, (AA2*)(FF221*), ABISELECT(80,40), "GG1132213");
+ check_base_class_offset(lv, (BB2*)(FF221*), ABISELECT(96,48), "GG1132213");
+ check_base_class_offset(lv, (FF221*), ABISELECT(64,32), "GG1132213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1132213.pg");
+ test_class_info(&lv, &cd_GG1132213);
+ dp->~GG1132213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1132213(Test_GG1132213, "GG1132213", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1132213C1Ev();
+extern void _ZN9GG1132213D1Ev();
+Name_Map name_map_GG1132213[] = {
+ NSPAIR(_ZN9GG1132213C1Ev),
+ NSPAIR(_ZN9GG1132213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE113;
+extern VTBL_ENTRY _ZTI5EE113[];
+extern VTBL_ENTRY _ZTV5EE113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE113[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF221;
+extern VTBL_ENTRY _ZTI5FF221[];
+extern VTBL_ENTRY _ZTV5FF221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF221[];
+static Base_Class bases_GG1132213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE113, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF221, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1132213[];
+extern void _ZN9GG11322133fooEv();
+extern void _ZN9GG11322133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11322133fooEv,_ZTv0_n20_N9GG11322133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11322133fooEv,_ZThn8_N9GG11322133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11322133barEv,_ZTv0_n24_N9GG11322133barEv)();
+extern void ABISELECT(_ZThn16_N9GG11322133barEv,_ZThn8_N9GG11322133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11322133fooEv,_ZTv0_n12_N9GG11322133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11322133fooEv,_ZThn16_N9GG11322133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11322133fooEv,_ZTv0_n12_N9GG11322133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11322133fooEv,_ZThn24_N9GG11322133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11322133fooEv,_ZTv0_n20_N9GG11322133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11322133fooEv,_ZThn32_N9GG11322133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11322133barEv,_ZTv0_n12_N9GG11322133barEv)();
+extern void ABISELECT(_ZThn80_N9GG11322133barEv,_ZThn40_N9GG11322133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11322133barEv,_ZTv0_n12_N9GG11322133barEv)();
+extern void ABISELECT(_ZThn96_N9GG11322133barEv,_ZThn48_N9GG11322133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1132213[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1132213[0]),
+ (VTBL_ENTRY)&_ZN9GG11322133fooEv,
+ (VTBL_ENTRY)&_ZN9GG11322133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1132213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11322133fooEv,_ZTv0_n20_N9GG11322133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11322133barEv,_ZTv0_n24_N9GG11322133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1132213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11322133fooEv,_ZTv0_n12_N9GG11322133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1132213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11322133fooEv,_ZTv0_n12_N9GG11322133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1132213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11322133fooEv,_ZTv0_n20_N9GG11322133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1132213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11322133barEv,_ZTv0_n12_N9GG11322133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1132213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11322133barEv,_ZTv0_n12_N9GG11322133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1132213[];
+extern void _ZN5EE1133fooEv();
+extern void _ZN5EE1133barEv();
+static VTBL_ENTRY _tg__ZTV5EE113__9GG1132213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&_ZN5EE1133fooEv,
+ (VTBL_ENTRY)&_ZN5EE1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE113__9GG1132213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE113__9GG1132213[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void _ZN5FF2213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF221__9GG1132213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN5FF2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF221__9GG1132213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF221__9GG1132213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG1132213[] = {
+ {&(_ZTV9GG1132213[8]), 8,40},
+ {&(_ZTV9GG1132213[16]), 16,40},
+ {&(_ZTV9GG1132213[21]), 21,40},
+ {&(_ZTV9GG1132213[25]), 25,40},
+ {&(_ZTV9GG1132213[31]), 31,40},
+ {&(_ZTV9GG1132213[35]), 35,40},
+ {&(_ZTV9GG1132213[39]), 39,40},
+ {&(_tg__ZTV5EE113__9GG1132213[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE113__9GG1132213[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE113__9GG1132213[3]), 3,4},
+ {&(_tg__ZTV5FF221__9GG1132213[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF221__9GG1132213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF221__9GG1132213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1132213[];
+extern VTBL_ENTRY _ZTV9GG1132213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1132213[];
+static VTBL_ENTRY alt_thunk_names277[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11322133barEv,_ZTv0_n12_N9GG11322133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11322133barEv,_ZThn48_N9GG11322133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11322133barEv,_ZThn40_N9GG11322133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11322133fooEv,_ZTv0_n12_N9GG11322133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11322133fooEv,_ZThn24_N9GG11322133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11322133fooEv,_ZThn16_N9GG11322133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG11322133barEv,_ZTv0_n24_N9GG11322133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11322133barEv,_ZThn8_N9GG11322133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11322133fooEv,_ZTv0_n20_N9GG11322133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11322133fooEv,_ZThn32_N9GG11322133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11322133fooEv,_ZThn8_N9GG11322133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1132213 = { "GG1132213", // class name
+ bases_GG1132213, 6,
+ &(vtc_GG1132213[0]), // expected_vtbl_contents
+ &(vtt_GG1132213[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1132213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1132213),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1132213),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names277,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1132222 : virtual EE113 , virtual FF222 {
+ int pg;
+ virtual void bar(); // _ZN9GG11322223barEv
+ ~GG1132222(); // tgen
+ GG1132222(); // tgen
+};
+//SIG(1 GG1132222) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v2 v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+void GG1132222 ::bar(){vfunc_called(this, "_ZN9GG11322223barEv");}
+GG1132222 ::~GG1132222(){ note_dtor("GG1132222", this);} // tgen
+GG1132222 ::GG1132222(){ note_ctor("GG1132222", this);} // tgen
+
+static void Test_GG1132222()
+{
+ extern Class_Descriptor cd_GG1132222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1132222, buf);
+ GG1132222 *dp, &lv = *(dp=new (buf) GG1132222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1132222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1132222)");
+ check_base_class_offset(lv, (AA1*)(EE113*), ABISELECT(32,16), "GG1132222");
+ check_base_class_offset(lv, (BB1*)(EE113*), ABISELECT(48,24), "GG1132222");
+ check_base_class_offset(lv, (EE113*), ABISELECT(16,8), "GG1132222");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(80,40), "GG1132222");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(96,48), "GG1132222");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG1132222");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1132222.pg");
+ test_class_info(&lv, &cd_GG1132222);
+ dp->~GG1132222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1132222(Test_GG1132222, "GG1132222", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1132222C1Ev();
+extern void _ZN9GG1132222D1Ev();
+Name_Map name_map_GG1132222[] = {
+ NSPAIR(_ZN9GG1132222C1Ev),
+ NSPAIR(_ZN9GG1132222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE113;
+extern VTBL_ENTRY _ZTI5EE113[];
+extern VTBL_ENTRY _ZTV5EE113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE113[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG1132222[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE113, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1132222[];
+extern void _ZN9GG11322223barEv();
+extern void _ZN5EE1133fooEv();
+extern void ABISELECT(_ZTv0_n48_N9GG11322223barEv,_ZTv0_n24_N9GG11322223barEv)();
+extern void ABISELECT(_ZThn16_N9GG11322223barEv,_ZThn8_N9GG11322223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11322223barEv,_ZTv0_n20_N9GG11322223barEv)();
+extern void ABISELECT(_ZThn64_N9GG11322223barEv,_ZThn32_N9GG11322223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11322223barEv,_ZTv0_n12_N9GG11322223barEv)();
+extern void ABISELECT(_ZThn80_N9GG11322223barEv,_ZThn40_N9GG11322223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11322223barEv,_ZTv0_n12_N9GG11322223barEv)();
+extern void ABISELECT(_ZThn96_N9GG11322223barEv,_ZThn48_N9GG11322223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1132222[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1132222[0]),
+ (VTBL_ENTRY)&_ZN9GG11322223barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1132222[0]),
+ (VTBL_ENTRY)&_ZN5EE1133fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11322223barEv,_ZTv0_n24_N9GG11322223barEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1132222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1132222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1132222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11322223barEv,_ZTv0_n20_N9GG11322223barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1132222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11322223barEv,_ZTv0_n12_N9GG11322223barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1132222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11322223barEv,_ZTv0_n12_N9GG11322223barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1132222[];
+extern void _ZN5EE1133fooEv();
+extern void _ZN5EE1133barEv();
+static VTBL_ENTRY _tg__ZTV5EE113__9GG1132222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&_ZN5EE1133fooEv,
+ (VTBL_ENTRY)&_ZN5EE1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE113__9GG1132222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE113__9GG1132222[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG1132222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG1132222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG1132222[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG1132222[] = {
+ {&(_ZTV9GG1132222[8]), 8,39},
+ {&(_ZTV9GG1132222[15]), 15,39},
+ {&(_ZTV9GG1132222[20]), 20,39},
+ {&(_ZTV9GG1132222[24]), 24,39},
+ {&(_ZTV9GG1132222[30]), 30,39},
+ {&(_ZTV9GG1132222[34]), 34,39},
+ {&(_ZTV9GG1132222[38]), 38,39},
+ {&(_tg__ZTV5EE113__9GG1132222[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE113__9GG1132222[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE113__9GG1132222[3]), 3,4},
+ {&(_tg__ZTV5FF222__9GG1132222[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG1132222[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG1132222[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1132222[];
+extern VTBL_ENTRY _ZTV9GG1132222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1132222[];
+static VTBL_ENTRY alt_thunk_names278[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11322223barEv,_ZTv0_n12_N9GG11322223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11322223barEv,_ZThn48_N9GG11322223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11322223barEv,_ZThn40_N9GG11322223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11322223barEv,_ZTv0_n20_N9GG11322223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11322223barEv,_ZThn32_N9GG11322223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG11322223barEv,_ZTv0_n24_N9GG11322223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11322223barEv,_ZThn8_N9GG11322223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1132222 = { "GG1132222", // class name
+ bases_GG1132222, 6,
+ &(vtc_GG1132222[0]), // expected_vtbl_contents
+ &(vtt_GG1132222[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1132222),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1132222),39, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1132222),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names278,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1132223 : virtual EE113 , virtual FF222 {
+ int pg;
+ virtual void foo(); // _ZN9GG11322233fooEv
+ virtual void bar(); // _ZN9GG11322233barEv
+ ~GG1132223(); // tgen
+ GG1132223(); // tgen
+};
+//SIG(1 GG1132223) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1132223 ::foo(){vfunc_called(this, "_ZN9GG11322233fooEv");}
+void GG1132223 ::bar(){vfunc_called(this, "_ZN9GG11322233barEv");}
+GG1132223 ::~GG1132223(){ note_dtor("GG1132223", this);} // tgen
+GG1132223 ::GG1132223(){ note_ctor("GG1132223", this);} // tgen
+
+static void Test_GG1132223()
+{
+ extern Class_Descriptor cd_GG1132223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1132223, buf);
+ GG1132223 *dp, &lv = *(dp=new (buf) GG1132223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1132223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1132223)");
+ check_base_class_offset(lv, (AA1*)(EE113*), ABISELECT(32,16), "GG1132223");
+ check_base_class_offset(lv, (BB1*)(EE113*), ABISELECT(48,24), "GG1132223");
+ check_base_class_offset(lv, (EE113*), ABISELECT(16,8), "GG1132223");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(80,40), "GG1132223");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(96,48), "GG1132223");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG1132223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1132223.pg");
+ test_class_info(&lv, &cd_GG1132223);
+ dp->~GG1132223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1132223(Test_GG1132223, "GG1132223", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1132223C1Ev();
+extern void _ZN9GG1132223D1Ev();
+Name_Map name_map_GG1132223[] = {
+ NSPAIR(_ZN9GG1132223C1Ev),
+ NSPAIR(_ZN9GG1132223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE113;
+extern VTBL_ENTRY _ZTI5EE113[];
+extern VTBL_ENTRY _ZTV5EE113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE113[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG1132223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE113, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1132223[];
+extern void _ZN9GG11322233fooEv();
+extern void _ZN9GG11322233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11322233fooEv,_ZTv0_n20_N9GG11322233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11322233fooEv,_ZThn8_N9GG11322233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11322233barEv,_ZTv0_n24_N9GG11322233barEv)();
+extern void ABISELECT(_ZThn16_N9GG11322233barEv,_ZThn8_N9GG11322233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11322233fooEv,_ZTv0_n12_N9GG11322233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11322233fooEv,_ZThn16_N9GG11322233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11322233fooEv,_ZTv0_n12_N9GG11322233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11322233fooEv,_ZThn24_N9GG11322233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11322233barEv,_ZTv0_n20_N9GG11322233barEv)();
+extern void ABISELECT(_ZThn64_N9GG11322233barEv,_ZThn32_N9GG11322233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11322233barEv,_ZTv0_n12_N9GG11322233barEv)();
+extern void ABISELECT(_ZThn80_N9GG11322233barEv,_ZThn40_N9GG11322233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11322233barEv,_ZTv0_n12_N9GG11322233barEv)();
+extern void ABISELECT(_ZThn96_N9GG11322233barEv,_ZThn48_N9GG11322233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1132223[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1132223[0]),
+ (VTBL_ENTRY)&_ZN9GG11322233fooEv,
+ (VTBL_ENTRY)&_ZN9GG11322233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1132223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11322233fooEv,_ZTv0_n20_N9GG11322233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11322233barEv,_ZTv0_n24_N9GG11322233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1132223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11322233fooEv,_ZTv0_n12_N9GG11322233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1132223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11322233fooEv,_ZTv0_n12_N9GG11322233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1132223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11322233barEv,_ZTv0_n20_N9GG11322233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1132223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11322233barEv,_ZTv0_n12_N9GG11322233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1132223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11322233barEv,_ZTv0_n12_N9GG11322233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1132223[];
+extern void _ZN5EE1133fooEv();
+extern void _ZN5EE1133barEv();
+static VTBL_ENTRY _tg__ZTV5EE113__9GG1132223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&_ZN5EE1133fooEv,
+ (VTBL_ENTRY)&_ZN5EE1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE113__9GG1132223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE113__9GG1132223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG1132223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG1132223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG1132223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG1132223[] = {
+ {&(_ZTV9GG1132223[8]), 8,40},
+ {&(_ZTV9GG1132223[16]), 16,40},
+ {&(_ZTV9GG1132223[21]), 21,40},
+ {&(_ZTV9GG1132223[25]), 25,40},
+ {&(_ZTV9GG1132223[31]), 31,40},
+ {&(_ZTV9GG1132223[35]), 35,40},
+ {&(_ZTV9GG1132223[39]), 39,40},
+ {&(_tg__ZTV5EE113__9GG1132223[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE113__9GG1132223[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE113__9GG1132223[3]), 3,4},
+ {&(_tg__ZTV5FF222__9GG1132223[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG1132223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG1132223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1132223[];
+extern VTBL_ENTRY _ZTV9GG1132223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1132223[];
+static VTBL_ENTRY alt_thunk_names279[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11322233barEv,_ZTv0_n12_N9GG11322233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11322233barEv,_ZThn48_N9GG11322233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11322233barEv,_ZThn40_N9GG11322233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11322233barEv,_ZTv0_n20_N9GG11322233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11322233barEv,_ZThn32_N9GG11322233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11322233fooEv,_ZTv0_n12_N9GG11322233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11322233fooEv,_ZThn24_N9GG11322233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11322233fooEv,_ZThn16_N9GG11322233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG11322233barEv,_ZTv0_n24_N9GG11322233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11322233barEv,_ZThn8_N9GG11322233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11322233fooEv,_ZTv0_n20_N9GG11322233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11322233fooEv,_ZThn8_N9GG11322233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1132223 = { "GG1132223", // class name
+ bases_GG1132223, 6,
+ &(vtc_GG1132223[0]), // expected_vtbl_contents
+ &(vtt_GG1132223[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1132223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1132223),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1132223),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names279,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1132233 : virtual EE113 , virtual FF223 {
+ int pg;
+ virtual void foo(); // _ZN9GG11322333fooEv
+ virtual void bar(); // _ZN9GG11322333barEv
+ ~GG1132233(); // tgen
+ GG1132233(); // tgen
+};
+//SIG(1 GG1132233) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1132233 ::foo(){vfunc_called(this, "_ZN9GG11322333fooEv");}
+void GG1132233 ::bar(){vfunc_called(this, "_ZN9GG11322333barEv");}
+GG1132233 ::~GG1132233(){ note_dtor("GG1132233", this);} // tgen
+GG1132233 ::GG1132233(){ note_ctor("GG1132233", this);} // tgen
+
+static void Test_GG1132233()
+{
+ extern Class_Descriptor cd_GG1132233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1132233, buf);
+ GG1132233 *dp, &lv = *(dp=new (buf) GG1132233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1132233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1132233)");
+ check_base_class_offset(lv, (AA1*)(EE113*), ABISELECT(32,16), "GG1132233");
+ check_base_class_offset(lv, (BB1*)(EE113*), ABISELECT(48,24), "GG1132233");
+ check_base_class_offset(lv, (EE113*), ABISELECT(16,8), "GG1132233");
+ check_base_class_offset(lv, (AA2*)(FF223*), ABISELECT(80,40), "GG1132233");
+ check_base_class_offset(lv, (BB2*)(FF223*), ABISELECT(96,48), "GG1132233");
+ check_base_class_offset(lv, (FF223*), ABISELECT(64,32), "GG1132233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1132233.pg");
+ test_class_info(&lv, &cd_GG1132233);
+ dp->~GG1132233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1132233(Test_GG1132233, "GG1132233", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1132233C1Ev();
+extern void _ZN9GG1132233D1Ev();
+Name_Map name_map_GG1132233[] = {
+ NSPAIR(_ZN9GG1132233C1Ev),
+ NSPAIR(_ZN9GG1132233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE113;
+extern VTBL_ENTRY _ZTI5EE113[];
+extern VTBL_ENTRY _ZTV5EE113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE113[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF223;
+extern VTBL_ENTRY _ZTI5FF223[];
+extern VTBL_ENTRY _ZTV5FF223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF223[];
+static Base_Class bases_GG1132233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE113, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF223, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1132233[];
+extern void _ZN9GG11322333fooEv();
+extern void _ZN9GG11322333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11322333fooEv,_ZTv0_n20_N9GG11322333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11322333fooEv,_ZThn8_N9GG11322333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11322333barEv,_ZTv0_n24_N9GG11322333barEv)();
+extern void ABISELECT(_ZThn16_N9GG11322333barEv,_ZThn8_N9GG11322333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11322333fooEv,_ZTv0_n12_N9GG11322333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11322333fooEv,_ZThn16_N9GG11322333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11322333fooEv,_ZTv0_n12_N9GG11322333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11322333fooEv,_ZThn24_N9GG11322333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11322333fooEv,_ZTv0_n20_N9GG11322333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11322333fooEv,_ZThn32_N9GG11322333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11322333barEv,_ZTv0_n24_N9GG11322333barEv)();
+extern void ABISELECT(_ZThn64_N9GG11322333barEv,_ZThn32_N9GG11322333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11322333barEv,_ZTv0_n12_N9GG11322333barEv)();
+extern void ABISELECT(_ZThn80_N9GG11322333barEv,_ZThn40_N9GG11322333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11322333barEv,_ZTv0_n12_N9GG11322333barEv)();
+extern void ABISELECT(_ZThn96_N9GG11322333barEv,_ZThn48_N9GG11322333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1132233[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1132233[0]),
+ (VTBL_ENTRY)&_ZN9GG11322333fooEv,
+ (VTBL_ENTRY)&_ZN9GG11322333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1132233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11322333fooEv,_ZTv0_n20_N9GG11322333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11322333barEv,_ZTv0_n24_N9GG11322333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1132233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11322333fooEv,_ZTv0_n12_N9GG11322333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1132233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11322333fooEv,_ZTv0_n12_N9GG11322333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1132233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11322333fooEv,_ZTv0_n20_N9GG11322333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11322333barEv,_ZTv0_n24_N9GG11322333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1132233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11322333barEv,_ZTv0_n12_N9GG11322333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1132233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11322333barEv,_ZTv0_n12_N9GG11322333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1132233[];
+extern void _ZN5EE1133fooEv();
+extern void _ZN5EE1133barEv();
+static VTBL_ENTRY _tg__ZTV5EE113__9GG1132233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&_ZN5EE1133fooEv,
+ (VTBL_ENTRY)&_ZN5EE1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE113__9GG1132233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE113__9GG1132233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void _ZN5FF2233fooEv();
+extern void _ZN5FF2233barEv();
+static VTBL_ENTRY _tg__ZTV5FF223__9GG1132233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&_ZN5FF2233fooEv,
+ (VTBL_ENTRY)&_ZN5FF2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+extern void ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF223__9GG1132233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+extern void ABISELECT(_ZThn32_N5FF2233barEv,_ZThn16_N5FF2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF223__9GG1132233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+static VTT_ENTRY vtt_GG1132233[] = {
+ {&(_ZTV9GG1132233[8]), 8,42},
+ {&(_ZTV9GG1132233[16]), 16,42},
+ {&(_ZTV9GG1132233[21]), 21,42},
+ {&(_ZTV9GG1132233[25]), 25,42},
+ {&(_ZTV9GG1132233[32]), 32,42},
+ {&(_ZTV9GG1132233[37]), 37,42},
+ {&(_ZTV9GG1132233[41]), 41,42},
+ {&(_tg__ZTV5EE113__9GG1132233[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE113__9GG1132233[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE113__9GG1132233[3]), 3,4},
+ {&(_tg__ZTV5FF223__9GG1132233[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF223__9GG1132233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF223__9GG1132233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1132233[];
+extern VTBL_ENTRY _ZTV9GG1132233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1132233[];
+static VTBL_ENTRY alt_thunk_names280[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2233barEv,_ZThn16_N5FF2233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11322333barEv,_ZTv0_n12_N9GG11322333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11322333barEv,_ZThn48_N9GG11322333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11322333barEv,_ZThn40_N9GG11322333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11322333fooEv,_ZTv0_n12_N9GG11322333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11322333fooEv,_ZThn24_N9GG11322333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11322333fooEv,_ZThn16_N9GG11322333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG11322333barEv,_ZTv0_n24_N9GG11322333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11322333barEv,_ZThn32_N9GG11322333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11322333barEv,_ZThn8_N9GG11322333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11322333fooEv,_ZTv0_n20_N9GG11322333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11322333fooEv,_ZThn32_N9GG11322333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11322333fooEv,_ZThn8_N9GG11322333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1132233 = { "GG1132233", // class name
+ bases_GG1132233, 6,
+ &(vtc_GG1132233[0]), // expected_vtbl_contents
+ &(vtt_GG1132233[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1132233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1132233),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1132233),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names280,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1132313 : virtual EE113 , virtual FF231 {
+ int pg;
+ virtual void foo(); // _ZN9GG11323133fooEv
+ virtual void bar(); // _ZN9GG11323133barEv
+ ~GG1132313(); // tgen
+ GG1132313(); // tgen
+};
+//SIG(1 GG1132313) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1132313 ::foo(){vfunc_called(this, "_ZN9GG11323133fooEv");}
+void GG1132313 ::bar(){vfunc_called(this, "_ZN9GG11323133barEv");}
+GG1132313 ::~GG1132313(){ note_dtor("GG1132313", this);} // tgen
+GG1132313 ::GG1132313(){ note_ctor("GG1132313", this);} // tgen
+
+static void Test_GG1132313()
+{
+ extern Class_Descriptor cd_GG1132313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1132313, buf);
+ GG1132313 *dp, &lv = *(dp=new (buf) GG1132313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1132313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1132313)");
+ check_base_class_offset(lv, (AA1*)(EE113*), ABISELECT(32,16), "GG1132313");
+ check_base_class_offset(lv, (BB1*)(EE113*), ABISELECT(48,24), "GG1132313");
+ check_base_class_offset(lv, (EE113*), ABISELECT(16,8), "GG1132313");
+ check_base_class_offset(lv, (AA2*)(FF231*), ABISELECT(80,40), "GG1132313");
+ check_base_class_offset(lv, (BB3*)(FF231*), ABISELECT(96,48), "GG1132313");
+ check_base_class_offset(lv, (FF231*), ABISELECT(64,32), "GG1132313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1132313.pg");
+ test_class_info(&lv, &cd_GG1132313);
+ dp->~GG1132313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1132313(Test_GG1132313, "GG1132313", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1132313C1Ev();
+extern void _ZN9GG1132313D1Ev();
+Name_Map name_map_GG1132313[] = {
+ NSPAIR(_ZN9GG1132313C1Ev),
+ NSPAIR(_ZN9GG1132313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE113;
+extern VTBL_ENTRY _ZTI5EE113[];
+extern VTBL_ENTRY _ZTV5EE113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE113[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF231;
+extern VTBL_ENTRY _ZTI5FF231[];
+extern VTBL_ENTRY _ZTV5FF231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF231[];
+static Base_Class bases_GG1132313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE113, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF231, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1132313[];
+extern void _ZN9GG11323133fooEv();
+extern void _ZN9GG11323133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11323133fooEv,_ZTv0_n20_N9GG11323133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11323133fooEv,_ZThn8_N9GG11323133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11323133barEv,_ZTv0_n24_N9GG11323133barEv)();
+extern void ABISELECT(_ZThn16_N9GG11323133barEv,_ZThn8_N9GG11323133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11323133fooEv,_ZTv0_n12_N9GG11323133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11323133fooEv,_ZThn16_N9GG11323133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11323133fooEv,_ZTv0_n12_N9GG11323133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11323133fooEv,_ZThn24_N9GG11323133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11323133fooEv,_ZTv0_n20_N9GG11323133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11323133fooEv,_ZThn32_N9GG11323133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11323133barEv,_ZTv0_n12_N9GG11323133barEv)();
+extern void ABISELECT(_ZThn80_N9GG11323133barEv,_ZThn40_N9GG11323133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11323133fooEv,_ZTv0_n12_N9GG11323133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG11323133fooEv,_ZThn48_N9GG11323133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11323133barEv,_ZTv0_n16_N9GG11323133barEv)();
+extern void ABISELECT(_ZThn96_N9GG11323133barEv,_ZThn48_N9GG11323133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1132313[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1132313[0]),
+ (VTBL_ENTRY)&_ZN9GG11323133fooEv,
+ (VTBL_ENTRY)&_ZN9GG11323133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1132313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11323133fooEv,_ZTv0_n20_N9GG11323133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11323133barEv,_ZTv0_n24_N9GG11323133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1132313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11323133fooEv,_ZTv0_n12_N9GG11323133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1132313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11323133fooEv,_ZTv0_n12_N9GG11323133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1132313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11323133fooEv,_ZTv0_n20_N9GG11323133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1132313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11323133barEv,_ZTv0_n12_N9GG11323133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1132313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11323133fooEv,_ZTv0_n12_N9GG11323133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11323133barEv,_ZTv0_n16_N9GG11323133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1132313[];
+extern void _ZN5EE1133fooEv();
+extern void _ZN5EE1133barEv();
+static VTBL_ENTRY _tg__ZTV5EE113__9GG1132313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&_ZN5EE1133fooEv,
+ (VTBL_ENTRY)&_ZN5EE1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE113__9GG1132313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE113__9GG1132313[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void _ZN5FF2313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF231__9GG1132313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN5FF2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF231__9GG1132313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2313fooEv,_ZThn16_N5FF2313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF231__9GG1132313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG1132313[] = {
+ {&(_ZTV9GG1132313[8]), 8,42},
+ {&(_ZTV9GG1132313[16]), 16,42},
+ {&(_ZTV9GG1132313[21]), 21,42},
+ {&(_ZTV9GG1132313[25]), 25,42},
+ {&(_ZTV9GG1132313[31]), 31,42},
+ {&(_ZTV9GG1132313[35]), 35,42},
+ {&(_ZTV9GG1132313[40]), 40,42},
+ {&(_tg__ZTV5EE113__9GG1132313[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE113__9GG1132313[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE113__9GG1132313[3]), 3,4},
+ {&(_tg__ZTV5FF231__9GG1132313[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF231__9GG1132313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF231__9GG1132313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1132313[];
+extern VTBL_ENTRY _ZTV9GG1132313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1132313[];
+static VTBL_ENTRY alt_thunk_names281[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2313fooEv,_ZThn16_N5FF2313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG11323133barEv,_ZTv0_n16_N9GG11323133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11323133barEv,_ZThn48_N9GG11323133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11323133barEv,_ZTv0_n12_N9GG11323133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11323133barEv,_ZThn40_N9GG11323133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11323133fooEv,_ZTv0_n12_N9GG11323133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11323133fooEv,_ZThn48_N9GG11323133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11323133fooEv,_ZThn24_N9GG11323133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11323133fooEv,_ZThn16_N9GG11323133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG11323133barEv,_ZTv0_n24_N9GG11323133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11323133barEv,_ZThn8_N9GG11323133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11323133fooEv,_ZTv0_n20_N9GG11323133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11323133fooEv,_ZThn32_N9GG11323133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11323133fooEv,_ZThn8_N9GG11323133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1132313 = { "GG1132313", // class name
+ bases_GG1132313, 6,
+ &(vtc_GG1132313[0]), // expected_vtbl_contents
+ &(vtt_GG1132313[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1132313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1132313),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1132313),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names281,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1132323 : virtual EE113 , virtual FF232 {
+ int pg;
+ virtual void foo(); // _ZN9GG11323233fooEv
+ virtual void bar(); // _ZN9GG11323233barEv
+ ~GG1132323(); // tgen
+ GG1132323(); // tgen
+};
+//SIG(1 GG1132323) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1132323 ::foo(){vfunc_called(this, "_ZN9GG11323233fooEv");}
+void GG1132323 ::bar(){vfunc_called(this, "_ZN9GG11323233barEv");}
+GG1132323 ::~GG1132323(){ note_dtor("GG1132323", this);} // tgen
+GG1132323 ::GG1132323(){ note_ctor("GG1132323", this);} // tgen
+
+static void Test_GG1132323()
+{
+ extern Class_Descriptor cd_GG1132323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1132323, buf);
+ GG1132323 *dp, &lv = *(dp=new (buf) GG1132323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1132323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1132323)");
+ check_base_class_offset(lv, (AA1*)(EE113*), ABISELECT(32,16), "GG1132323");
+ check_base_class_offset(lv, (BB1*)(EE113*), ABISELECT(48,24), "GG1132323");
+ check_base_class_offset(lv, (EE113*), ABISELECT(16,8), "GG1132323");
+ check_base_class_offset(lv, (AA2*)(FF232*), ABISELECT(80,40), "GG1132323");
+ check_base_class_offset(lv, (BB3*)(FF232*), ABISELECT(96,48), "GG1132323");
+ check_base_class_offset(lv, (FF232*), ABISELECT(64,32), "GG1132323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1132323.pg");
+ test_class_info(&lv, &cd_GG1132323);
+ dp->~GG1132323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1132323(Test_GG1132323, "GG1132323", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1132323C1Ev();
+extern void _ZN9GG1132323D1Ev();
+Name_Map name_map_GG1132323[] = {
+ NSPAIR(_ZN9GG1132323C1Ev),
+ NSPAIR(_ZN9GG1132323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE113;
+extern VTBL_ENTRY _ZTI5EE113[];
+extern VTBL_ENTRY _ZTV5EE113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE113[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF232;
+extern VTBL_ENTRY _ZTI5FF232[];
+extern VTBL_ENTRY _ZTV5FF232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF232[];
+static Base_Class bases_GG1132323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE113, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF232, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1132323[];
+extern void _ZN9GG11323233fooEv();
+extern void _ZN9GG11323233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11323233fooEv,_ZTv0_n20_N9GG11323233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11323233fooEv,_ZThn8_N9GG11323233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11323233barEv,_ZTv0_n24_N9GG11323233barEv)();
+extern void ABISELECT(_ZThn16_N9GG11323233barEv,_ZThn8_N9GG11323233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11323233fooEv,_ZTv0_n12_N9GG11323233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11323233fooEv,_ZThn16_N9GG11323233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11323233fooEv,_ZTv0_n12_N9GG11323233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11323233fooEv,_ZThn24_N9GG11323233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11323233barEv,_ZTv0_n20_N9GG11323233barEv)();
+extern void ABISELECT(_ZThn64_N9GG11323233barEv,_ZThn32_N9GG11323233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11323233barEv,_ZTv0_n12_N9GG11323233barEv)();
+extern void ABISELECT(_ZThn80_N9GG11323233barEv,_ZThn40_N9GG11323233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11323233fooEv,_ZTv0_n12_N9GG11323233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG11323233fooEv,_ZThn48_N9GG11323233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11323233barEv,_ZTv0_n16_N9GG11323233barEv)();
+extern void ABISELECT(_ZThn96_N9GG11323233barEv,_ZThn48_N9GG11323233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1132323[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1132323[0]),
+ (VTBL_ENTRY)&_ZN9GG11323233fooEv,
+ (VTBL_ENTRY)&_ZN9GG11323233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1132323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11323233fooEv,_ZTv0_n20_N9GG11323233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11323233barEv,_ZTv0_n24_N9GG11323233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1132323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11323233fooEv,_ZTv0_n12_N9GG11323233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1132323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11323233fooEv,_ZTv0_n12_N9GG11323233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1132323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11323233barEv,_ZTv0_n20_N9GG11323233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1132323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11323233barEv,_ZTv0_n12_N9GG11323233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1132323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11323233fooEv,_ZTv0_n12_N9GG11323233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11323233barEv,_ZTv0_n16_N9GG11323233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1132323[];
+extern void _ZN5EE1133fooEv();
+extern void _ZN5EE1133barEv();
+static VTBL_ENTRY _tg__ZTV5EE113__9GG1132323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&_ZN5EE1133fooEv,
+ (VTBL_ENTRY)&_ZN5EE1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE113__9GG1132323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE113__9GG1132323[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void _ZN5FF2323barEv();
+static VTBL_ENTRY _tg__ZTV5FF232__9GG1132323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN5FF2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv)();
+extern void ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF232__9GG1132323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv)();
+extern void ABISELECT(_ZThn32_N5FF2323barEv,_ZThn16_N5FF2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF232__9GG1132323[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv),
+};
+static VTT_ENTRY vtt_GG1132323[] = {
+ {&(_ZTV9GG1132323[8]), 8,42},
+ {&(_ZTV9GG1132323[16]), 16,42},
+ {&(_ZTV9GG1132323[21]), 21,42},
+ {&(_ZTV9GG1132323[25]), 25,42},
+ {&(_ZTV9GG1132323[31]), 31,42},
+ {&(_ZTV9GG1132323[35]), 35,42},
+ {&(_ZTV9GG1132323[40]), 40,42},
+ {&(_tg__ZTV5EE113__9GG1132323[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE113__9GG1132323[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE113__9GG1132323[3]), 3,4},
+ {&(_tg__ZTV5FF232__9GG1132323[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF232__9GG1132323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF232__9GG1132323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1132323[];
+extern VTBL_ENTRY _ZTV9GG1132323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1132323[];
+static VTBL_ENTRY alt_thunk_names282[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2323barEv,_ZThn16_N5FF2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG11323233barEv,_ZTv0_n16_N9GG11323233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11323233barEv,_ZThn48_N9GG11323233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11323233barEv,_ZTv0_n12_N9GG11323233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11323233barEv,_ZThn40_N9GG11323233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11323233barEv,_ZTv0_n20_N9GG11323233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11323233barEv,_ZThn32_N9GG11323233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11323233fooEv,_ZTv0_n12_N9GG11323233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11323233fooEv,_ZThn48_N9GG11323233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11323233fooEv,_ZThn24_N9GG11323233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11323233fooEv,_ZThn16_N9GG11323233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG11323233barEv,_ZTv0_n24_N9GG11323233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11323233barEv,_ZThn8_N9GG11323233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11323233fooEv,_ZTv0_n20_N9GG11323233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11323233fooEv,_ZThn8_N9GG11323233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1132323 = { "GG1132323", // class name
+ bases_GG1132323, 6,
+ &(vtc_GG1132323[0]), // expected_vtbl_contents
+ &(vtt_GG1132323[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1132323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1132323),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1132323),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names282,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1132333 : virtual EE113 , virtual FF233 {
+ int pg;
+ virtual void foo(); // _ZN9GG11323333fooEv
+ virtual void bar(); // _ZN9GG11323333barEv
+ ~GG1132333(); // tgen
+ GG1132333(); // tgen
+};
+//SIG(1 GG1132333) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1132333 ::foo(){vfunc_called(this, "_ZN9GG11323333fooEv");}
+void GG1132333 ::bar(){vfunc_called(this, "_ZN9GG11323333barEv");}
+GG1132333 ::~GG1132333(){ note_dtor("GG1132333", this);} // tgen
+GG1132333 ::GG1132333(){ note_ctor("GG1132333", this);} // tgen
+
+static void Test_GG1132333()
+{
+ extern Class_Descriptor cd_GG1132333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1132333, buf);
+ GG1132333 *dp, &lv = *(dp=new (buf) GG1132333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1132333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1132333)");
+ check_base_class_offset(lv, (AA1*)(EE113*), ABISELECT(32,16), "GG1132333");
+ check_base_class_offset(lv, (BB1*)(EE113*), ABISELECT(48,24), "GG1132333");
+ check_base_class_offset(lv, (EE113*), ABISELECT(16,8), "GG1132333");
+ check_base_class_offset(lv, (AA2*)(FF233*), ABISELECT(80,40), "GG1132333");
+ check_base_class_offset(lv, (BB3*)(FF233*), ABISELECT(96,48), "GG1132333");
+ check_base_class_offset(lv, (FF233*), ABISELECT(64,32), "GG1132333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1132333.pg");
+ test_class_info(&lv, &cd_GG1132333);
+ dp->~GG1132333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1132333(Test_GG1132333, "GG1132333", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1132333C1Ev();
+extern void _ZN9GG1132333D1Ev();
+Name_Map name_map_GG1132333[] = {
+ NSPAIR(_ZN9GG1132333C1Ev),
+ NSPAIR(_ZN9GG1132333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE113;
+extern VTBL_ENTRY _ZTI5EE113[];
+extern VTBL_ENTRY _ZTV5EE113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE113[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF233;
+extern VTBL_ENTRY _ZTI5FF233[];
+extern VTBL_ENTRY _ZTV5FF233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF233[];
+static Base_Class bases_GG1132333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE113, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF233, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1132333[];
+extern void _ZN9GG11323333fooEv();
+extern void _ZN9GG11323333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11323333fooEv,_ZTv0_n20_N9GG11323333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11323333fooEv,_ZThn8_N9GG11323333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11323333barEv,_ZTv0_n24_N9GG11323333barEv)();
+extern void ABISELECT(_ZThn16_N9GG11323333barEv,_ZThn8_N9GG11323333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11323333fooEv,_ZTv0_n12_N9GG11323333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11323333fooEv,_ZThn16_N9GG11323333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11323333fooEv,_ZTv0_n12_N9GG11323333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11323333fooEv,_ZThn24_N9GG11323333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11323333fooEv,_ZTv0_n20_N9GG11323333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11323333fooEv,_ZThn32_N9GG11323333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11323333barEv,_ZTv0_n24_N9GG11323333barEv)();
+extern void ABISELECT(_ZThn64_N9GG11323333barEv,_ZThn32_N9GG11323333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11323333barEv,_ZTv0_n12_N9GG11323333barEv)();
+extern void ABISELECT(_ZThn80_N9GG11323333barEv,_ZThn40_N9GG11323333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11323333fooEv,_ZTv0_n12_N9GG11323333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG11323333fooEv,_ZThn48_N9GG11323333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11323333barEv,_ZTv0_n16_N9GG11323333barEv)();
+extern void ABISELECT(_ZThn96_N9GG11323333barEv,_ZThn48_N9GG11323333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1132333[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1132333[0]),
+ (VTBL_ENTRY)&_ZN9GG11323333fooEv,
+ (VTBL_ENTRY)&_ZN9GG11323333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1132333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11323333fooEv,_ZTv0_n20_N9GG11323333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11323333barEv,_ZTv0_n24_N9GG11323333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1132333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11323333fooEv,_ZTv0_n12_N9GG11323333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1132333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11323333fooEv,_ZTv0_n12_N9GG11323333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1132333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11323333fooEv,_ZTv0_n20_N9GG11323333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11323333barEv,_ZTv0_n24_N9GG11323333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1132333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11323333barEv,_ZTv0_n12_N9GG11323333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1132333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11323333fooEv,_ZTv0_n12_N9GG11323333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11323333barEv,_ZTv0_n16_N9GG11323333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1132333[];
+extern void _ZN5EE1133fooEv();
+extern void _ZN5EE1133barEv();
+static VTBL_ENTRY _tg__ZTV5EE113__9GG1132333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&_ZN5EE1133fooEv,
+ (VTBL_ENTRY)&_ZN5EE1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE113__9GG1132333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE113__9GG1132333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void _ZN5FF2333fooEv();
+extern void _ZN5FF2333barEv();
+static VTBL_ENTRY _tg__ZTV5FF233__9GG1132333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&_ZN5FF2333fooEv,
+ (VTBL_ENTRY)&_ZN5FF2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv)();
+extern void ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF233__9GG1132333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2333fooEv,_ZThn16_N5FF2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv)();
+extern void ABISELECT(_ZThn32_N5FF2333barEv,_ZThn16_N5FF2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF233__9GG1132333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv),
+};
+static VTT_ENTRY vtt_GG1132333[] = {
+ {&(_ZTV9GG1132333[8]), 8,44},
+ {&(_ZTV9GG1132333[16]), 16,44},
+ {&(_ZTV9GG1132333[21]), 21,44},
+ {&(_ZTV9GG1132333[25]), 25,44},
+ {&(_ZTV9GG1132333[32]), 32,44},
+ {&(_ZTV9GG1132333[37]), 37,44},
+ {&(_ZTV9GG1132333[42]), 42,44},
+ {&(_tg__ZTV5EE113__9GG1132333[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE113__9GG1132333[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE113__9GG1132333[3]), 3,4},
+ {&(_tg__ZTV5FF233__9GG1132333[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF233__9GG1132333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF233__9GG1132333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1132333[];
+extern VTBL_ENTRY _ZTV9GG1132333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1132333[];
+static VTBL_ENTRY alt_thunk_names283[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2333barEv,_ZThn16_N5FF2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2333fooEv,_ZThn16_N5FF2333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG11323333barEv,_ZTv0_n16_N9GG11323333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11323333barEv,_ZThn48_N9GG11323333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11323333barEv,_ZTv0_n12_N9GG11323333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11323333barEv,_ZThn40_N9GG11323333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11323333fooEv,_ZTv0_n12_N9GG11323333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11323333fooEv,_ZThn48_N9GG11323333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11323333fooEv,_ZThn24_N9GG11323333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11323333fooEv,_ZThn16_N9GG11323333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG11323333barEv,_ZTv0_n24_N9GG11323333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11323333barEv,_ZThn32_N9GG11323333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11323333barEv,_ZThn8_N9GG11323333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11323333fooEv,_ZTv0_n20_N9GG11323333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11323333fooEv,_ZThn32_N9GG11323333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11323333fooEv,_ZThn8_N9GG11323333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1132333 = { "GG1132333", // class name
+ bases_GG1132333, 6,
+ &(vtc_GG1132333[0]), // expected_vtbl_contents
+ &(vtt_GG1132333[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1132333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1132333),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1132333),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names283,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1133113 : virtual EE113 , virtual FF311 {
+ int pg;
+ virtual void foo(); // _ZN9GG11331133fooEv
+ virtual void bar(); // _ZN9GG11331133barEv
+ ~GG1133113(); // tgen
+ GG1133113(); // tgen
+};
+//SIG(1 GG1133113) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG1133113 ::foo(){vfunc_called(this, "_ZN9GG11331133fooEv");}
+void GG1133113 ::bar(){vfunc_called(this, "_ZN9GG11331133barEv");}
+GG1133113 ::~GG1133113(){ note_dtor("GG1133113", this);} // tgen
+GG1133113 ::GG1133113(){ note_ctor("GG1133113", this);} // tgen
+
+static void Test_GG1133113()
+{
+ extern Class_Descriptor cd_GG1133113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1133113, buf);
+ GG1133113 *dp, &lv = *(dp=new (buf) GG1133113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1133113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1133113)");
+ check_base_class_offset(lv, (AA1*)(EE113*), ABISELECT(32,16), "GG1133113");
+ check_base_class_offset(lv, (BB1*)(EE113*), ABISELECT(48,24), "GG1133113");
+ check_base_class_offset(lv, (BB1*)(FF311*), ABISELECT(48,24), "GG1133113");
+ check_base_class_offset(lv, (EE113*), ABISELECT(16,8), "GG1133113");
+ check_base_class_offset(lv, (AA3*)(FF311*), ABISELECT(80,40), "GG1133113");
+ check_base_class_offset(lv, (FF311*), ABISELECT(64,32), "GG1133113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1133113.pg");
+ test_class_info(&lv, &cd_GG1133113);
+ dp->~GG1133113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1133113(Test_GG1133113, "GG1133113", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1133113C1Ev();
+extern void _ZN9GG1133113D1Ev();
+Name_Map name_map_GG1133113[] = {
+ NSPAIR(_ZN9GG1133113C1Ev),
+ NSPAIR(_ZN9GG1133113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE113;
+extern VTBL_ENTRY _ZTI5EE113[];
+extern VTBL_ENTRY _ZTV5EE113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE113[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF311;
+extern VTBL_ENTRY _ZTI5FF311[];
+extern VTBL_ENTRY _ZTV5FF311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF311[];
+static Base_Class bases_GG1133113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE113, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF311, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1133113[];
+extern void _ZN9GG11331133fooEv();
+extern void _ZN9GG11331133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11331133fooEv,_ZTv0_n20_N9GG11331133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11331133fooEv,_ZThn8_N9GG11331133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11331133barEv,_ZTv0_n24_N9GG11331133barEv)();
+extern void ABISELECT(_ZThn16_N9GG11331133barEv,_ZThn8_N9GG11331133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11331133fooEv,_ZTv0_n12_N9GG11331133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11331133fooEv,_ZThn16_N9GG11331133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11331133fooEv,_ZTv0_n12_N9GG11331133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11331133fooEv,_ZThn24_N9GG11331133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11331133fooEv,_ZTv0_n20_N9GG11331133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11331133fooEv,_ZThn32_N9GG11331133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11331133fooEv,_ZTv0_n12_N9GG11331133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG11331133fooEv,_ZThn40_N9GG11331133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11331133barEv,_ZTv0_n16_N9GG11331133barEv)();
+extern void ABISELECT(_ZThn80_N9GG11331133barEv,_ZThn40_N9GG11331133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1133113[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1133113[0]),
+ (VTBL_ENTRY)&_ZN9GG11331133fooEv,
+ (VTBL_ENTRY)&_ZN9GG11331133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1133113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11331133fooEv,_ZTv0_n20_N9GG11331133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11331133barEv,_ZTv0_n24_N9GG11331133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1133113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11331133fooEv,_ZTv0_n12_N9GG11331133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1133113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11331133fooEv,_ZTv0_n12_N9GG11331133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1133113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11331133fooEv,_ZTv0_n20_N9GG11331133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1133113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11331133fooEv,_ZTv0_n12_N9GG11331133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11331133barEv,_ZTv0_n16_N9GG11331133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1133113[];
+extern void _ZN5EE1133fooEv();
+extern void _ZN5EE1133barEv();
+static VTBL_ENTRY _tg__ZTV5EE113__9GG1133113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&_ZN5EE1133fooEv,
+ (VTBL_ENTRY)&_ZN5EE1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE113__9GG1133113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE113__9GG1133113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void _ZN5FF3113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF311__9GG1133113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&_ZN5FF3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF311__9GG1133113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF311__9GG1133113[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+};
+static VTT_ENTRY vtt_GG1133113[] = {
+ {&(_ZTV9GG1133113[7]), 7,37},
+ {&(_ZTV9GG1133113[15]), 15,37},
+ {&(_ZTV9GG1133113[20]), 20,37},
+ {&(_ZTV9GG1133113[24]), 24,37},
+ {&(_ZTV9GG1133113[30]), 30,37},
+ {&(_ZTV9GG1133113[35]), 35,37},
+ {&(_tg__ZTV5EE113__9GG1133113[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE113__9GG1133113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE113__9GG1133113[3]), 3,4},
+ {&(_tg__ZTV5FF311__9GG1133113[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF311__9GG1133113[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF311__9GG1133113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1133113[];
+extern VTBL_ENTRY _ZTV9GG1133113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1133113[];
+static VTBL_ENTRY alt_thunk_names284[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG11331133barEv,_ZTv0_n16_N9GG11331133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11331133barEv,_ZThn40_N9GG11331133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11331133fooEv,_ZTv0_n12_N9GG11331133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11331133fooEv,_ZThn40_N9GG11331133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11331133fooEv,_ZThn24_N9GG11331133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11331133fooEv,_ZThn16_N9GG11331133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG11331133barEv,_ZTv0_n24_N9GG11331133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11331133barEv,_ZThn8_N9GG11331133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11331133fooEv,_ZTv0_n20_N9GG11331133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11331133fooEv,_ZThn32_N9GG11331133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11331133fooEv,_ZThn8_N9GG11331133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1133113 = { "GG1133113", // class name
+ bases_GG1133113, 5,
+ &(vtc_GG1133113[0]), // expected_vtbl_contents
+ &(vtt_GG1133113[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1133113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1133113),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1133113),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names284,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1133123 : virtual EE113 , virtual FF312 {
+ int pg;
+ virtual void foo(); // _ZN9GG11331233fooEv
+ virtual void bar(); // _ZN9GG11331233barEv
+ ~GG1133123(); // tgen
+ GG1133123(); // tgen
+};
+//SIG(1 GG1133123) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG1133123 ::foo(){vfunc_called(this, "_ZN9GG11331233fooEv");}
+void GG1133123 ::bar(){vfunc_called(this, "_ZN9GG11331233barEv");}
+GG1133123 ::~GG1133123(){ note_dtor("GG1133123", this);} // tgen
+GG1133123 ::GG1133123(){ note_ctor("GG1133123", this);} // tgen
+
+static void Test_GG1133123()
+{
+ extern Class_Descriptor cd_GG1133123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1133123, buf);
+ GG1133123 *dp, &lv = *(dp=new (buf) GG1133123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1133123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1133123)");
+ check_base_class_offset(lv, (AA1*)(EE113*), ABISELECT(32,16), "GG1133123");
+ check_base_class_offset(lv, (BB1*)(EE113*), ABISELECT(48,24), "GG1133123");
+ check_base_class_offset(lv, (BB1*)(FF312*), ABISELECT(48,24), "GG1133123");
+ check_base_class_offset(lv, (EE113*), ABISELECT(16,8), "GG1133123");
+ check_base_class_offset(lv, (AA3*)(FF312*), ABISELECT(80,40), "GG1133123");
+ check_base_class_offset(lv, (FF312*), ABISELECT(64,32), "GG1133123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1133123.pg");
+ test_class_info(&lv, &cd_GG1133123);
+ dp->~GG1133123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1133123(Test_GG1133123, "GG1133123", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1133123C1Ev();
+extern void _ZN9GG1133123D1Ev();
+Name_Map name_map_GG1133123[] = {
+ NSPAIR(_ZN9GG1133123C1Ev),
+ NSPAIR(_ZN9GG1133123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE113;
+extern VTBL_ENTRY _ZTI5EE113[];
+extern VTBL_ENTRY _ZTV5EE113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE113[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF312;
+extern VTBL_ENTRY _ZTI5FF312[];
+extern VTBL_ENTRY _ZTV5FF312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF312[];
+static Base_Class bases_GG1133123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE113, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF312, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1133123[];
+extern void _ZN9GG11331233fooEv();
+extern void _ZN9GG11331233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11331233fooEv,_ZTv0_n20_N9GG11331233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11331233fooEv,_ZThn8_N9GG11331233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11331233barEv,_ZTv0_n24_N9GG11331233barEv)();
+extern void ABISELECT(_ZThn16_N9GG11331233barEv,_ZThn8_N9GG11331233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11331233fooEv,_ZTv0_n12_N9GG11331233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11331233fooEv,_ZThn16_N9GG11331233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11331233fooEv,_ZTv0_n12_N9GG11331233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11331233fooEv,_ZThn24_N9GG11331233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11331233barEv,_ZTv0_n20_N9GG11331233barEv)();
+extern void ABISELECT(_ZThn64_N9GG11331233barEv,_ZThn32_N9GG11331233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11331233fooEv,_ZTv0_n12_N9GG11331233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG11331233fooEv,_ZThn40_N9GG11331233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11331233barEv,_ZTv0_n16_N9GG11331233barEv)();
+extern void ABISELECT(_ZThn80_N9GG11331233barEv,_ZThn40_N9GG11331233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1133123[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1133123[0]),
+ (VTBL_ENTRY)&_ZN9GG11331233fooEv,
+ (VTBL_ENTRY)&_ZN9GG11331233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1133123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11331233fooEv,_ZTv0_n20_N9GG11331233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11331233barEv,_ZTv0_n24_N9GG11331233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1133123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11331233fooEv,_ZTv0_n12_N9GG11331233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1133123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11331233fooEv,_ZTv0_n12_N9GG11331233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1133123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11331233barEv,_ZTv0_n20_N9GG11331233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1133123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11331233fooEv,_ZTv0_n12_N9GG11331233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11331233barEv,_ZTv0_n16_N9GG11331233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1133123[];
+extern void _ZN5EE1133fooEv();
+extern void _ZN5EE1133barEv();
+static VTBL_ENTRY _tg__ZTV5EE113__9GG1133123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&_ZN5EE1133fooEv,
+ (VTBL_ENTRY)&_ZN5EE1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE113__9GG1133123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE113__9GG1133123[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void _ZN5FF3123barEv();
+static VTBL_ENTRY _tg__ZTV5FF312__9GG1133123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN5FF3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv)();
+extern void ABISELECT(_ZThn16_N5FF3123barEv,_ZThn8_N5FF3123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF312__9GG1133123[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF312__9GG1133123[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG1133123[] = {
+ {&(_ZTV9GG1133123[7]), 7,37},
+ {&(_ZTV9GG1133123[15]), 15,37},
+ {&(_ZTV9GG1133123[20]), 20,37},
+ {&(_ZTV9GG1133123[24]), 24,37},
+ {&(_ZTV9GG1133123[30]), 30,37},
+ {&(_ZTV9GG1133123[35]), 35,37},
+ {&(_tg__ZTV5EE113__9GG1133123[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE113__9GG1133123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE113__9GG1133123[3]), 3,4},
+ {&(_tg__ZTV5FF312__9GG1133123[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF312__9GG1133123[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF312__9GG1133123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1133123[];
+extern VTBL_ENTRY _ZTV9GG1133123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1133123[];
+static VTBL_ENTRY alt_thunk_names285[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3123barEv,_ZThn8_N5FF3123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG11331233barEv,_ZTv0_n16_N9GG11331233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11331233barEv,_ZThn40_N9GG11331233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11331233barEv,_ZTv0_n20_N9GG11331233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11331233barEv,_ZThn32_N9GG11331233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11331233fooEv,_ZTv0_n12_N9GG11331233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11331233fooEv,_ZThn40_N9GG11331233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11331233fooEv,_ZThn24_N9GG11331233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11331233fooEv,_ZThn16_N9GG11331233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG11331233barEv,_ZTv0_n24_N9GG11331233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11331233barEv,_ZThn8_N9GG11331233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11331233fooEv,_ZTv0_n20_N9GG11331233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11331233fooEv,_ZThn8_N9GG11331233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1133123 = { "GG1133123", // class name
+ bases_GG1133123, 5,
+ &(vtc_GG1133123[0]), // expected_vtbl_contents
+ &(vtt_GG1133123[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1133123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1133123),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1133123),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names285,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1133133 : virtual EE113 , virtual FF313 {
+ int pg;
+ virtual void foo(); // _ZN9GG11331333fooEv
+ virtual void bar(); // _ZN9GG11331333barEv
+ ~GG1133133(); // tgen
+ GG1133133(); // tgen
+};
+//SIG(1 GG1133133) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1133133 ::foo(){vfunc_called(this, "_ZN9GG11331333fooEv");}
+void GG1133133 ::bar(){vfunc_called(this, "_ZN9GG11331333barEv");}
+GG1133133 ::~GG1133133(){ note_dtor("GG1133133", this);} // tgen
+GG1133133 ::GG1133133(){ note_ctor("GG1133133", this);} // tgen
+
+static void Test_GG1133133()
+{
+ extern Class_Descriptor cd_GG1133133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1133133, buf);
+ GG1133133 *dp, &lv = *(dp=new (buf) GG1133133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1133133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1133133)");
+ check_base_class_offset(lv, (AA1*)(EE113*), ABISELECT(32,16), "GG1133133");
+ check_base_class_offset(lv, (BB1*)(EE113*), ABISELECT(48,24), "GG1133133");
+ check_base_class_offset(lv, (BB1*)(FF313*), ABISELECT(48,24), "GG1133133");
+ check_base_class_offset(lv, (EE113*), ABISELECT(16,8), "GG1133133");
+ check_base_class_offset(lv, (AA3*)(FF313*), ABISELECT(80,40), "GG1133133");
+ check_base_class_offset(lv, (FF313*), ABISELECT(64,32), "GG1133133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1133133.pg");
+ test_class_info(&lv, &cd_GG1133133);
+ dp->~GG1133133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1133133(Test_GG1133133, "GG1133133", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1133133C1Ev();
+extern void _ZN9GG1133133D1Ev();
+Name_Map name_map_GG1133133[] = {
+ NSPAIR(_ZN9GG1133133C1Ev),
+ NSPAIR(_ZN9GG1133133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE113;
+extern VTBL_ENTRY _ZTI5EE113[];
+extern VTBL_ENTRY _ZTV5EE113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE113[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF313;
+extern VTBL_ENTRY _ZTI5FF313[];
+extern VTBL_ENTRY _ZTV5FF313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF313[];
+static Base_Class bases_GG1133133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE113, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF313, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1133133[];
+extern void _ZN9GG11331333fooEv();
+extern void _ZN9GG11331333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11331333fooEv,_ZTv0_n20_N9GG11331333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11331333fooEv,_ZThn8_N9GG11331333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11331333barEv,_ZTv0_n24_N9GG11331333barEv)();
+extern void ABISELECT(_ZThn16_N9GG11331333barEv,_ZThn8_N9GG11331333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11331333fooEv,_ZTv0_n12_N9GG11331333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11331333fooEv,_ZThn16_N9GG11331333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11331333fooEv,_ZTv0_n12_N9GG11331333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11331333fooEv,_ZThn24_N9GG11331333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11331333fooEv,_ZTv0_n20_N9GG11331333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11331333fooEv,_ZThn32_N9GG11331333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11331333barEv,_ZTv0_n24_N9GG11331333barEv)();
+extern void ABISELECT(_ZThn64_N9GG11331333barEv,_ZThn32_N9GG11331333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11331333fooEv,_ZTv0_n12_N9GG11331333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG11331333fooEv,_ZThn40_N9GG11331333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11331333barEv,_ZTv0_n16_N9GG11331333barEv)();
+extern void ABISELECT(_ZThn80_N9GG11331333barEv,_ZThn40_N9GG11331333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1133133[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1133133[0]),
+ (VTBL_ENTRY)&_ZN9GG11331333fooEv,
+ (VTBL_ENTRY)&_ZN9GG11331333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1133133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11331333fooEv,_ZTv0_n20_N9GG11331333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11331333barEv,_ZTv0_n24_N9GG11331333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1133133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11331333fooEv,_ZTv0_n12_N9GG11331333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1133133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11331333fooEv,_ZTv0_n12_N9GG11331333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1133133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11331333fooEv,_ZTv0_n20_N9GG11331333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11331333barEv,_ZTv0_n24_N9GG11331333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1133133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11331333fooEv,_ZTv0_n12_N9GG11331333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11331333barEv,_ZTv0_n16_N9GG11331333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1133133[];
+extern void _ZN5EE1133fooEv();
+extern void _ZN5EE1133barEv();
+static VTBL_ENTRY _tg__ZTV5EE113__9GG1133133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&_ZN5EE1133fooEv,
+ (VTBL_ENTRY)&_ZN5EE1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE113__9GG1133133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE113__9GG1133133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void _ZN5FF3133fooEv();
+extern void _ZN5FF3133barEv();
+static VTBL_ENTRY _tg__ZTV5FF313__9GG1133133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&_ZN5FF3133fooEv,
+ (VTBL_ENTRY)&_ZN5FF3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv)();
+extern void ABISELECT(_ZThn16_N5FF3133barEv,_ZThn8_N5FF3133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF313__9GG1133133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF313__9GG1133133[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+};
+static VTT_ENTRY vtt_GG1133133[] = {
+ {&(_ZTV9GG1133133[7]), 7,39},
+ {&(_ZTV9GG1133133[15]), 15,39},
+ {&(_ZTV9GG1133133[20]), 20,39},
+ {&(_ZTV9GG1133133[24]), 24,39},
+ {&(_ZTV9GG1133133[31]), 31,39},
+ {&(_ZTV9GG1133133[37]), 37,39},
+ {&(_tg__ZTV5EE113__9GG1133133[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE113__9GG1133133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE113__9GG1133133[3]), 3,4},
+ {&(_tg__ZTV5FF313__9GG1133133[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF313__9GG1133133[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF313__9GG1133133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1133133[];
+extern VTBL_ENTRY _ZTV9GG1133133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1133133[];
+static VTBL_ENTRY alt_thunk_names286[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3133barEv,_ZThn8_N5FF3133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG11331333barEv,_ZTv0_n16_N9GG11331333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11331333barEv,_ZThn40_N9GG11331333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11331333fooEv,_ZTv0_n12_N9GG11331333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11331333fooEv,_ZThn40_N9GG11331333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11331333fooEv,_ZThn24_N9GG11331333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11331333fooEv,_ZThn16_N9GG11331333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG11331333barEv,_ZTv0_n24_N9GG11331333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11331333barEv,_ZThn32_N9GG11331333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11331333barEv,_ZThn8_N9GG11331333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11331333fooEv,_ZTv0_n20_N9GG11331333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11331333fooEv,_ZThn32_N9GG11331333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11331333fooEv,_ZThn8_N9GG11331333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1133133 = { "GG1133133", // class name
+ bases_GG1133133, 5,
+ &(vtc_GG1133133[0]), // expected_vtbl_contents
+ &(vtt_GG1133133[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1133133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1133133),39, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1133133),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names286,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1133213 : virtual EE113 , virtual FF321 {
+ int pg;
+ virtual void foo(); // _ZN9GG11332133fooEv
+ virtual void bar(); // _ZN9GG11332133barEv
+ ~GG1133213(); // tgen
+ GG1133213(); // tgen
+};
+//SIG(1 GG1133213) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1133213 ::foo(){vfunc_called(this, "_ZN9GG11332133fooEv");}
+void GG1133213 ::bar(){vfunc_called(this, "_ZN9GG11332133barEv");}
+GG1133213 ::~GG1133213(){ note_dtor("GG1133213", this);} // tgen
+GG1133213 ::GG1133213(){ note_ctor("GG1133213", this);} // tgen
+
+static void Test_GG1133213()
+{
+ extern Class_Descriptor cd_GG1133213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1133213, buf);
+ GG1133213 *dp, &lv = *(dp=new (buf) GG1133213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1133213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1133213)");
+ check_base_class_offset(lv, (AA1*)(EE113*), ABISELECT(32,16), "GG1133213");
+ check_base_class_offset(lv, (BB1*)(EE113*), ABISELECT(48,24), "GG1133213");
+ check_base_class_offset(lv, (EE113*), ABISELECT(16,8), "GG1133213");
+ check_base_class_offset(lv, (AA3*)(FF321*), ABISELECT(80,40), "GG1133213");
+ check_base_class_offset(lv, (BB2*)(FF321*), ABISELECT(96,48), "GG1133213");
+ check_base_class_offset(lv, (FF321*), ABISELECT(64,32), "GG1133213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1133213.pg");
+ test_class_info(&lv, &cd_GG1133213);
+ dp->~GG1133213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1133213(Test_GG1133213, "GG1133213", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1133213C1Ev();
+extern void _ZN9GG1133213D1Ev();
+Name_Map name_map_GG1133213[] = {
+ NSPAIR(_ZN9GG1133213C1Ev),
+ NSPAIR(_ZN9GG1133213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE113;
+extern VTBL_ENTRY _ZTI5EE113[];
+extern VTBL_ENTRY _ZTV5EE113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE113[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF321;
+extern VTBL_ENTRY _ZTI5FF321[];
+extern VTBL_ENTRY _ZTV5FF321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF321[];
+static Base_Class bases_GG1133213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE113, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF321, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1133213[];
+extern void _ZN9GG11332133fooEv();
+extern void _ZN9GG11332133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11332133fooEv,_ZTv0_n20_N9GG11332133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11332133fooEv,_ZThn8_N9GG11332133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11332133barEv,_ZTv0_n24_N9GG11332133barEv)();
+extern void ABISELECT(_ZThn16_N9GG11332133barEv,_ZThn8_N9GG11332133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11332133fooEv,_ZTv0_n12_N9GG11332133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11332133fooEv,_ZThn16_N9GG11332133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11332133fooEv,_ZTv0_n12_N9GG11332133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11332133fooEv,_ZThn24_N9GG11332133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11332133fooEv,_ZTv0_n20_N9GG11332133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11332133fooEv,_ZThn32_N9GG11332133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11332133fooEv,_ZTv0_n12_N9GG11332133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG11332133fooEv,_ZThn40_N9GG11332133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11332133barEv,_ZTv0_n16_N9GG11332133barEv)();
+extern void ABISELECT(_ZThn80_N9GG11332133barEv,_ZThn40_N9GG11332133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11332133barEv,_ZTv0_n12_N9GG11332133barEv)();
+extern void ABISELECT(_ZThn96_N9GG11332133barEv,_ZThn48_N9GG11332133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1133213[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1133213[0]),
+ (VTBL_ENTRY)&_ZN9GG11332133fooEv,
+ (VTBL_ENTRY)&_ZN9GG11332133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1133213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11332133fooEv,_ZTv0_n20_N9GG11332133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11332133barEv,_ZTv0_n24_N9GG11332133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1133213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11332133fooEv,_ZTv0_n12_N9GG11332133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1133213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11332133fooEv,_ZTv0_n12_N9GG11332133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1133213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11332133fooEv,_ZTv0_n20_N9GG11332133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1133213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11332133fooEv,_ZTv0_n12_N9GG11332133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11332133barEv,_ZTv0_n16_N9GG11332133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1133213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11332133barEv,_ZTv0_n12_N9GG11332133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1133213[];
+extern void _ZN5EE1133fooEv();
+extern void _ZN5EE1133barEv();
+static VTBL_ENTRY _tg__ZTV5EE113__9GG1133213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&_ZN5EE1133fooEv,
+ (VTBL_ENTRY)&_ZN5EE1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE113__9GG1133213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE113__9GG1133213[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void _ZN5FF3213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF321__9GG1133213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN5FF3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3213fooEv,_ZThn8_N5FF3213fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF321__9GG1133213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF321__9GG1133213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG1133213[] = {
+ {&(_ZTV9GG1133213[8]), 8,42},
+ {&(_ZTV9GG1133213[16]), 16,42},
+ {&(_ZTV9GG1133213[21]), 21,42},
+ {&(_ZTV9GG1133213[25]), 25,42},
+ {&(_ZTV9GG1133213[31]), 31,42},
+ {&(_ZTV9GG1133213[36]), 36,42},
+ {&(_ZTV9GG1133213[41]), 41,42},
+ {&(_tg__ZTV5EE113__9GG1133213[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE113__9GG1133213[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE113__9GG1133213[3]), 3,4},
+ {&(_tg__ZTV5FF321__9GG1133213[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF321__9GG1133213[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF321__9GG1133213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1133213[];
+extern VTBL_ENTRY _ZTV9GG1133213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1133213[];
+static VTBL_ENTRY alt_thunk_names287[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3213fooEv,_ZThn8_N5FF3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11332133barEv,_ZTv0_n12_N9GG11332133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11332133barEv,_ZThn48_N9GG11332133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG11332133barEv,_ZTv0_n16_N9GG11332133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11332133barEv,_ZThn40_N9GG11332133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11332133fooEv,_ZTv0_n12_N9GG11332133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11332133fooEv,_ZThn40_N9GG11332133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11332133fooEv,_ZThn24_N9GG11332133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11332133fooEv,_ZThn16_N9GG11332133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG11332133barEv,_ZTv0_n24_N9GG11332133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11332133barEv,_ZThn8_N9GG11332133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11332133fooEv,_ZTv0_n20_N9GG11332133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11332133fooEv,_ZThn32_N9GG11332133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11332133fooEv,_ZThn8_N9GG11332133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1133213 = { "GG1133213", // class name
+ bases_GG1133213, 6,
+ &(vtc_GG1133213[0]), // expected_vtbl_contents
+ &(vtt_GG1133213[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1133213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1133213),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1133213),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names287,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1133223 : virtual EE113 , virtual FF322 {
+ int pg;
+ virtual void foo(); // _ZN9GG11332233fooEv
+ virtual void bar(); // _ZN9GG11332233barEv
+ ~GG1133223(); // tgen
+ GG1133223(); // tgen
+};
+//SIG(1 GG1133223) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1133223 ::foo(){vfunc_called(this, "_ZN9GG11332233fooEv");}
+void GG1133223 ::bar(){vfunc_called(this, "_ZN9GG11332233barEv");}
+GG1133223 ::~GG1133223(){ note_dtor("GG1133223", this);} // tgen
+GG1133223 ::GG1133223(){ note_ctor("GG1133223", this);} // tgen
+
+static void Test_GG1133223()
+{
+ extern Class_Descriptor cd_GG1133223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1133223, buf);
+ GG1133223 *dp, &lv = *(dp=new (buf) GG1133223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1133223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1133223)");
+ check_base_class_offset(lv, (AA1*)(EE113*), ABISELECT(32,16), "GG1133223");
+ check_base_class_offset(lv, (BB1*)(EE113*), ABISELECT(48,24), "GG1133223");
+ check_base_class_offset(lv, (EE113*), ABISELECT(16,8), "GG1133223");
+ check_base_class_offset(lv, (AA3*)(FF322*), ABISELECT(80,40), "GG1133223");
+ check_base_class_offset(lv, (BB2*)(FF322*), ABISELECT(96,48), "GG1133223");
+ check_base_class_offset(lv, (FF322*), ABISELECT(64,32), "GG1133223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1133223.pg");
+ test_class_info(&lv, &cd_GG1133223);
+ dp->~GG1133223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1133223(Test_GG1133223, "GG1133223", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1133223C1Ev();
+extern void _ZN9GG1133223D1Ev();
+Name_Map name_map_GG1133223[] = {
+ NSPAIR(_ZN9GG1133223C1Ev),
+ NSPAIR(_ZN9GG1133223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE113;
+extern VTBL_ENTRY _ZTI5EE113[];
+extern VTBL_ENTRY _ZTV5EE113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE113[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF322;
+extern VTBL_ENTRY _ZTI5FF322[];
+extern VTBL_ENTRY _ZTV5FF322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF322[];
+static Base_Class bases_GG1133223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE113, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF322, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1133223[];
+extern void _ZN9GG11332233fooEv();
+extern void _ZN9GG11332233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11332233fooEv,_ZTv0_n20_N9GG11332233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11332233fooEv,_ZThn8_N9GG11332233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11332233barEv,_ZTv0_n24_N9GG11332233barEv)();
+extern void ABISELECT(_ZThn16_N9GG11332233barEv,_ZThn8_N9GG11332233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11332233fooEv,_ZTv0_n12_N9GG11332233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11332233fooEv,_ZThn16_N9GG11332233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11332233fooEv,_ZTv0_n12_N9GG11332233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11332233fooEv,_ZThn24_N9GG11332233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11332233barEv,_ZTv0_n20_N9GG11332233barEv)();
+extern void ABISELECT(_ZThn64_N9GG11332233barEv,_ZThn32_N9GG11332233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11332233fooEv,_ZTv0_n12_N9GG11332233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG11332233fooEv,_ZThn40_N9GG11332233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11332233barEv,_ZTv0_n16_N9GG11332233barEv)();
+extern void ABISELECT(_ZThn80_N9GG11332233barEv,_ZThn40_N9GG11332233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11332233barEv,_ZTv0_n12_N9GG11332233barEv)();
+extern void ABISELECT(_ZThn96_N9GG11332233barEv,_ZThn48_N9GG11332233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1133223[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1133223[0]),
+ (VTBL_ENTRY)&_ZN9GG11332233fooEv,
+ (VTBL_ENTRY)&_ZN9GG11332233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1133223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11332233fooEv,_ZTv0_n20_N9GG11332233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11332233barEv,_ZTv0_n24_N9GG11332233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1133223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11332233fooEv,_ZTv0_n12_N9GG11332233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1133223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11332233fooEv,_ZTv0_n12_N9GG11332233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1133223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11332233barEv,_ZTv0_n20_N9GG11332233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1133223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11332233fooEv,_ZTv0_n12_N9GG11332233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11332233barEv,_ZTv0_n16_N9GG11332233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1133223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11332233barEv,_ZTv0_n12_N9GG11332233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1133223[];
+extern void _ZN5EE1133fooEv();
+extern void _ZN5EE1133barEv();
+static VTBL_ENTRY _tg__ZTV5EE113__9GG1133223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&_ZN5EE1133fooEv,
+ (VTBL_ENTRY)&_ZN5EE1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE113__9GG1133223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE113__9GG1133223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void _ZN5FF3223barEv();
+static VTBL_ENTRY _tg__ZTV5FF322__9GG1133223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN5FF3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv)();
+extern void ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF322__9GG1133223[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv)();
+extern void ABISELECT(_ZThn32_N5FF3223barEv,_ZThn16_N5FF3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF322__9GG1133223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv),
+};
+static VTT_ENTRY vtt_GG1133223[] = {
+ {&(_ZTV9GG1133223[8]), 8,42},
+ {&(_ZTV9GG1133223[16]), 16,42},
+ {&(_ZTV9GG1133223[21]), 21,42},
+ {&(_ZTV9GG1133223[25]), 25,42},
+ {&(_ZTV9GG1133223[31]), 31,42},
+ {&(_ZTV9GG1133223[36]), 36,42},
+ {&(_ZTV9GG1133223[41]), 41,42},
+ {&(_tg__ZTV5EE113__9GG1133223[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE113__9GG1133223[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE113__9GG1133223[3]), 3,4},
+ {&(_tg__ZTV5FF322__9GG1133223[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF322__9GG1133223[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF322__9GG1133223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1133223[];
+extern VTBL_ENTRY _ZTV9GG1133223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1133223[];
+static VTBL_ENTRY alt_thunk_names288[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3223barEv,_ZThn16_N5FF3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11332233barEv,_ZTv0_n12_N9GG11332233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11332233barEv,_ZThn48_N9GG11332233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG11332233barEv,_ZTv0_n16_N9GG11332233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11332233barEv,_ZThn40_N9GG11332233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11332233barEv,_ZTv0_n20_N9GG11332233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11332233barEv,_ZThn32_N9GG11332233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11332233fooEv,_ZTv0_n12_N9GG11332233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11332233fooEv,_ZThn40_N9GG11332233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11332233fooEv,_ZThn24_N9GG11332233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11332233fooEv,_ZThn16_N9GG11332233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG11332233barEv,_ZTv0_n24_N9GG11332233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11332233barEv,_ZThn8_N9GG11332233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11332233fooEv,_ZTv0_n20_N9GG11332233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11332233fooEv,_ZThn8_N9GG11332233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1133223 = { "GG1133223", // class name
+ bases_GG1133223, 6,
+ &(vtc_GG1133223[0]), // expected_vtbl_contents
+ &(vtt_GG1133223[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1133223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1133223),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1133223),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names288,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1133233 : virtual EE113 , virtual FF323 {
+ int pg;
+ virtual void foo(); // _ZN9GG11332333fooEv
+ virtual void bar(); // _ZN9GG11332333barEv
+ ~GG1133233(); // tgen
+ GG1133233(); // tgen
+};
+//SIG(1 GG1133233) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1133233 ::foo(){vfunc_called(this, "_ZN9GG11332333fooEv");}
+void GG1133233 ::bar(){vfunc_called(this, "_ZN9GG11332333barEv");}
+GG1133233 ::~GG1133233(){ note_dtor("GG1133233", this);} // tgen
+GG1133233 ::GG1133233(){ note_ctor("GG1133233", this);} // tgen
+
+static void Test_GG1133233()
+{
+ extern Class_Descriptor cd_GG1133233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1133233, buf);
+ GG1133233 *dp, &lv = *(dp=new (buf) GG1133233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1133233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1133233)");
+ check_base_class_offset(lv, (AA1*)(EE113*), ABISELECT(32,16), "GG1133233");
+ check_base_class_offset(lv, (BB1*)(EE113*), ABISELECT(48,24), "GG1133233");
+ check_base_class_offset(lv, (EE113*), ABISELECT(16,8), "GG1133233");
+ check_base_class_offset(lv, (AA3*)(FF323*), ABISELECT(80,40), "GG1133233");
+ check_base_class_offset(lv, (BB2*)(FF323*), ABISELECT(96,48), "GG1133233");
+ check_base_class_offset(lv, (FF323*), ABISELECT(64,32), "GG1133233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1133233.pg");
+ test_class_info(&lv, &cd_GG1133233);
+ dp->~GG1133233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1133233(Test_GG1133233, "GG1133233", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1133233C1Ev();
+extern void _ZN9GG1133233D1Ev();
+Name_Map name_map_GG1133233[] = {
+ NSPAIR(_ZN9GG1133233C1Ev),
+ NSPAIR(_ZN9GG1133233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE113;
+extern VTBL_ENTRY _ZTI5EE113[];
+extern VTBL_ENTRY _ZTV5EE113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE113[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF323;
+extern VTBL_ENTRY _ZTI5FF323[];
+extern VTBL_ENTRY _ZTV5FF323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF323[];
+static Base_Class bases_GG1133233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE113, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 40, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF323, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1133233[];
+extern void _ZN9GG11332333fooEv();
+extern void _ZN9GG11332333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11332333fooEv,_ZTv0_n20_N9GG11332333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11332333fooEv,_ZThn8_N9GG11332333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11332333barEv,_ZTv0_n24_N9GG11332333barEv)();
+extern void ABISELECT(_ZThn16_N9GG11332333barEv,_ZThn8_N9GG11332333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11332333fooEv,_ZTv0_n12_N9GG11332333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11332333fooEv,_ZThn16_N9GG11332333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11332333fooEv,_ZTv0_n12_N9GG11332333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11332333fooEv,_ZThn24_N9GG11332333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11332333fooEv,_ZTv0_n20_N9GG11332333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11332333fooEv,_ZThn32_N9GG11332333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11332333barEv,_ZTv0_n24_N9GG11332333barEv)();
+extern void ABISELECT(_ZThn64_N9GG11332333barEv,_ZThn32_N9GG11332333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11332333fooEv,_ZTv0_n12_N9GG11332333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG11332333fooEv,_ZThn40_N9GG11332333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11332333barEv,_ZTv0_n16_N9GG11332333barEv)();
+extern void ABISELECT(_ZThn80_N9GG11332333barEv,_ZThn40_N9GG11332333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11332333barEv,_ZTv0_n12_N9GG11332333barEv)();
+extern void ABISELECT(_ZThn96_N9GG11332333barEv,_ZThn48_N9GG11332333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1133233[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1133233[0]),
+ (VTBL_ENTRY)&_ZN9GG11332333fooEv,
+ (VTBL_ENTRY)&_ZN9GG11332333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1133233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11332333fooEv,_ZTv0_n20_N9GG11332333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11332333barEv,_ZTv0_n24_N9GG11332333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1133233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11332333fooEv,_ZTv0_n12_N9GG11332333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1133233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11332333fooEv,_ZTv0_n12_N9GG11332333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1133233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11332333fooEv,_ZTv0_n20_N9GG11332333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11332333barEv,_ZTv0_n24_N9GG11332333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1133233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11332333fooEv,_ZTv0_n12_N9GG11332333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11332333barEv,_ZTv0_n16_N9GG11332333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1133233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11332333barEv,_ZTv0_n12_N9GG11332333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1133233[];
+extern void _ZN5EE1133fooEv();
+extern void _ZN5EE1133barEv();
+static VTBL_ENTRY _tg__ZTV5EE113__9GG1133233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&_ZN5EE1133fooEv,
+ (VTBL_ENTRY)&_ZN5EE1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE113__9GG1133233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE113__9GG1133233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void _ZN5FF3233fooEv();
+extern void _ZN5FF3233barEv();
+static VTBL_ENTRY _tg__ZTV5FF323__9GG1133233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&_ZN5FF3233fooEv,
+ (VTBL_ENTRY)&_ZN5FF3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3233fooEv,_ZThn8_N5FF3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv)();
+extern void ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF323__9GG1133233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv)();
+extern void ABISELECT(_ZThn32_N5FF3233barEv,_ZThn16_N5FF3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF323__9GG1133233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv),
+};
+static VTT_ENTRY vtt_GG1133233[] = {
+ {&(_ZTV9GG1133233[8]), 8,44},
+ {&(_ZTV9GG1133233[16]), 16,44},
+ {&(_ZTV9GG1133233[21]), 21,44},
+ {&(_ZTV9GG1133233[25]), 25,44},
+ {&(_ZTV9GG1133233[32]), 32,44},
+ {&(_ZTV9GG1133233[38]), 38,44},
+ {&(_ZTV9GG1133233[43]), 43,44},
+ {&(_tg__ZTV5EE113__9GG1133233[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE113__9GG1133233[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE113__9GG1133233[3]), 3,4},
+ {&(_tg__ZTV5FF323__9GG1133233[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF323__9GG1133233[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF323__9GG1133233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1133233[];
+extern VTBL_ENTRY _ZTV9GG1133233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1133233[];
+static VTBL_ENTRY alt_thunk_names289[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3233barEv,_ZThn16_N5FF3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3233fooEv,_ZThn8_N5FF3233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11332333barEv,_ZTv0_n12_N9GG11332333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11332333barEv,_ZThn48_N9GG11332333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG11332333barEv,_ZTv0_n16_N9GG11332333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11332333barEv,_ZThn40_N9GG11332333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11332333fooEv,_ZTv0_n12_N9GG11332333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11332333fooEv,_ZThn40_N9GG11332333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11332333fooEv,_ZThn24_N9GG11332333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11332333fooEv,_ZThn16_N9GG11332333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG11332333barEv,_ZTv0_n24_N9GG11332333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11332333barEv,_ZThn32_N9GG11332333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11332333barEv,_ZThn8_N9GG11332333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11332333fooEv,_ZTv0_n20_N9GG11332333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11332333fooEv,_ZThn32_N9GG11332333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11332333fooEv,_ZThn8_N9GG11332333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1133233 = { "GG1133233", // class name
+ bases_GG1133233, 6,
+ &(vtc_GG1133233[0]), // expected_vtbl_contents
+ &(vtt_GG1133233[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1133233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1133233),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1133233),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names289,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1133313 : virtual EE113 , virtual FF331 {
+ int pg;
+ virtual void foo(); // _ZN9GG11333133fooEv
+ virtual void bar(); // _ZN9GG11333133barEv
+ ~GG1133313(); // tgen
+ GG1133313(); // tgen
+};
+//SIG(1 GG1133313) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1133313 ::foo(){vfunc_called(this, "_ZN9GG11333133fooEv");}
+void GG1133313 ::bar(){vfunc_called(this, "_ZN9GG11333133barEv");}
+GG1133313 ::~GG1133313(){ note_dtor("GG1133313", this);} // tgen
+GG1133313 ::GG1133313(){ note_ctor("GG1133313", this);} // tgen
+
+static void Test_GG1133313()
+{
+ extern Class_Descriptor cd_GG1133313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1133313, buf);
+ GG1133313 *dp, &lv = *(dp=new (buf) GG1133313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1133313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1133313)");
+ check_base_class_offset(lv, (AA1*)(EE113*), ABISELECT(32,16), "GG1133313");
+ check_base_class_offset(lv, (BB1*)(EE113*), ABISELECT(48,24), "GG1133313");
+ check_base_class_offset(lv, (EE113*), ABISELECT(16,8), "GG1133313");
+ check_base_class_offset(lv, (AA3*)(FF331*), ABISELECT(80,40), "GG1133313");
+ check_base_class_offset(lv, (BB3*)(FF331*), ABISELECT(96,48), "GG1133313");
+ check_base_class_offset(lv, (FF331*), ABISELECT(64,32), "GG1133313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1133313.pg");
+ test_class_info(&lv, &cd_GG1133313);
+ dp->~GG1133313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1133313(Test_GG1133313, "GG1133313", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1133313C1Ev();
+extern void _ZN9GG1133313D1Ev();
+Name_Map name_map_GG1133313[] = {
+ NSPAIR(_ZN9GG1133313C1Ev),
+ NSPAIR(_ZN9GG1133313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE113;
+extern VTBL_ENTRY _ZTI5EE113[];
+extern VTBL_ENTRY _ZTV5EE113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE113[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF331;
+extern VTBL_ENTRY _ZTI5FF331[];
+extern VTBL_ENTRY _ZTV5FF331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF331[];
+static Base_Class bases_GG1133313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE113, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF331, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1133313[];
+extern void _ZN9GG11333133fooEv();
+extern void _ZN9GG11333133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11333133fooEv,_ZTv0_n20_N9GG11333133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11333133fooEv,_ZThn8_N9GG11333133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11333133barEv,_ZTv0_n24_N9GG11333133barEv)();
+extern void ABISELECT(_ZThn16_N9GG11333133barEv,_ZThn8_N9GG11333133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11333133fooEv,_ZTv0_n12_N9GG11333133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11333133fooEv,_ZThn16_N9GG11333133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11333133fooEv,_ZTv0_n12_N9GG11333133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11333133fooEv,_ZThn24_N9GG11333133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11333133fooEv,_ZTv0_n20_N9GG11333133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11333133fooEv,_ZThn32_N9GG11333133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11333133fooEv,_ZTv0_n12_N9GG11333133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG11333133fooEv,_ZThn40_N9GG11333133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11333133barEv,_ZTv0_n16_N9GG11333133barEv)();
+extern void ABISELECT(_ZThn80_N9GG11333133barEv,_ZThn40_N9GG11333133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11333133fooEv,_ZTv0_n12_N9GG11333133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG11333133fooEv,_ZThn48_N9GG11333133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11333133barEv,_ZTv0_n16_N9GG11333133barEv)();
+extern void ABISELECT(_ZThn96_N9GG11333133barEv,_ZThn48_N9GG11333133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1133313[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1133313[0]),
+ (VTBL_ENTRY)&_ZN9GG11333133fooEv,
+ (VTBL_ENTRY)&_ZN9GG11333133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1133313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11333133fooEv,_ZTv0_n20_N9GG11333133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11333133barEv,_ZTv0_n24_N9GG11333133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1133313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11333133fooEv,_ZTv0_n12_N9GG11333133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1133313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11333133fooEv,_ZTv0_n12_N9GG11333133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1133313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11333133fooEv,_ZTv0_n20_N9GG11333133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1133313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11333133fooEv,_ZTv0_n12_N9GG11333133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11333133barEv,_ZTv0_n16_N9GG11333133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1133313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11333133fooEv,_ZTv0_n12_N9GG11333133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11333133barEv,_ZTv0_n16_N9GG11333133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1133313[];
+extern void _ZN5EE1133fooEv();
+extern void _ZN5EE1133barEv();
+static VTBL_ENTRY _tg__ZTV5EE113__9GG1133313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&_ZN5EE1133fooEv,
+ (VTBL_ENTRY)&_ZN5EE1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE113__9GG1133313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE113__9GG1133313[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void _ZN5FF3313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF331__9GG1133313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&_ZN5FF3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF331__9GG1133313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3313fooEv,_ZThn16_N5FF3313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF331__9GG1133313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG1133313[] = {
+ {&(_ZTV9GG1133313[8]), 8,44},
+ {&(_ZTV9GG1133313[16]), 16,44},
+ {&(_ZTV9GG1133313[21]), 21,44},
+ {&(_ZTV9GG1133313[25]), 25,44},
+ {&(_ZTV9GG1133313[31]), 31,44},
+ {&(_ZTV9GG1133313[36]), 36,44},
+ {&(_ZTV9GG1133313[42]), 42,44},
+ {&(_tg__ZTV5EE113__9GG1133313[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE113__9GG1133313[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE113__9GG1133313[3]), 3,4},
+ {&(_tg__ZTV5FF331__9GG1133313[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF331__9GG1133313[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF331__9GG1133313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1133313[];
+extern VTBL_ENTRY _ZTV9GG1133313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1133313[];
+static VTBL_ENTRY alt_thunk_names290[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3313fooEv,_ZThn16_N5FF3313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG11333133barEv,_ZTv0_n16_N9GG11333133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11333133barEv,_ZThn48_N9GG11333133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11333133barEv,_ZThn40_N9GG11333133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11333133fooEv,_ZTv0_n12_N9GG11333133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11333133fooEv,_ZThn48_N9GG11333133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11333133fooEv,_ZThn40_N9GG11333133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11333133fooEv,_ZThn24_N9GG11333133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11333133fooEv,_ZThn16_N9GG11333133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG11333133barEv,_ZTv0_n24_N9GG11333133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11333133barEv,_ZThn8_N9GG11333133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11333133fooEv,_ZTv0_n20_N9GG11333133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11333133fooEv,_ZThn32_N9GG11333133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11333133fooEv,_ZThn8_N9GG11333133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1133313 = { "GG1133313", // class name
+ bases_GG1133313, 6,
+ &(vtc_GG1133313[0]), // expected_vtbl_contents
+ &(vtt_GG1133313[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1133313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1133313),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1133313),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names290,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1133323 : virtual EE113 , virtual FF332 {
+ int pg;
+ virtual void foo(); // _ZN9GG11333233fooEv
+ virtual void bar(); // _ZN9GG11333233barEv
+ ~GG1133323(); // tgen
+ GG1133323(); // tgen
+};
+//SIG(1 GG1133323) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1133323 ::foo(){vfunc_called(this, "_ZN9GG11333233fooEv");}
+void GG1133323 ::bar(){vfunc_called(this, "_ZN9GG11333233barEv");}
+GG1133323 ::~GG1133323(){ note_dtor("GG1133323", this);} // tgen
+GG1133323 ::GG1133323(){ note_ctor("GG1133323", this);} // tgen
+
+static void Test_GG1133323()
+{
+ extern Class_Descriptor cd_GG1133323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1133323, buf);
+ GG1133323 *dp, &lv = *(dp=new (buf) GG1133323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1133323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1133323)");
+ check_base_class_offset(lv, (AA1*)(EE113*), ABISELECT(32,16), "GG1133323");
+ check_base_class_offset(lv, (BB1*)(EE113*), ABISELECT(48,24), "GG1133323");
+ check_base_class_offset(lv, (EE113*), ABISELECT(16,8), "GG1133323");
+ check_base_class_offset(lv, (AA3*)(FF332*), ABISELECT(80,40), "GG1133323");
+ check_base_class_offset(lv, (BB3*)(FF332*), ABISELECT(96,48), "GG1133323");
+ check_base_class_offset(lv, (FF332*), ABISELECT(64,32), "GG1133323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1133323.pg");
+ test_class_info(&lv, &cd_GG1133323);
+ dp->~GG1133323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1133323(Test_GG1133323, "GG1133323", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1133323C1Ev();
+extern void _ZN9GG1133323D1Ev();
+Name_Map name_map_GG1133323[] = {
+ NSPAIR(_ZN9GG1133323C1Ev),
+ NSPAIR(_ZN9GG1133323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE113;
+extern VTBL_ENTRY _ZTI5EE113[];
+extern VTBL_ENTRY _ZTV5EE113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE113[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF332;
+extern VTBL_ENTRY _ZTI5FF332[];
+extern VTBL_ENTRY _ZTV5FF332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF332[];
+static Base_Class bases_GG1133323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE113, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF332, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1133323[];
+extern void _ZN9GG11333233fooEv();
+extern void _ZN9GG11333233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11333233fooEv,_ZTv0_n20_N9GG11333233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11333233fooEv,_ZThn8_N9GG11333233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11333233barEv,_ZTv0_n24_N9GG11333233barEv)();
+extern void ABISELECT(_ZThn16_N9GG11333233barEv,_ZThn8_N9GG11333233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11333233fooEv,_ZTv0_n12_N9GG11333233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11333233fooEv,_ZThn16_N9GG11333233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11333233fooEv,_ZTv0_n12_N9GG11333233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11333233fooEv,_ZThn24_N9GG11333233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11333233barEv,_ZTv0_n20_N9GG11333233barEv)();
+extern void ABISELECT(_ZThn64_N9GG11333233barEv,_ZThn32_N9GG11333233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11333233fooEv,_ZTv0_n12_N9GG11333233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG11333233fooEv,_ZThn40_N9GG11333233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11333233barEv,_ZTv0_n16_N9GG11333233barEv)();
+extern void ABISELECT(_ZThn80_N9GG11333233barEv,_ZThn40_N9GG11333233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11333233fooEv,_ZTv0_n12_N9GG11333233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG11333233fooEv,_ZThn48_N9GG11333233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11333233barEv,_ZTv0_n16_N9GG11333233barEv)();
+extern void ABISELECT(_ZThn96_N9GG11333233barEv,_ZThn48_N9GG11333233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1133323[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1133323[0]),
+ (VTBL_ENTRY)&_ZN9GG11333233fooEv,
+ (VTBL_ENTRY)&_ZN9GG11333233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1133323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11333233fooEv,_ZTv0_n20_N9GG11333233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11333233barEv,_ZTv0_n24_N9GG11333233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1133323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11333233fooEv,_ZTv0_n12_N9GG11333233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1133323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11333233fooEv,_ZTv0_n12_N9GG11333233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1133323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11333233barEv,_ZTv0_n20_N9GG11333233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1133323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11333233fooEv,_ZTv0_n12_N9GG11333233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11333233barEv,_ZTv0_n16_N9GG11333233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1133323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11333233fooEv,_ZTv0_n12_N9GG11333233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11333233barEv,_ZTv0_n16_N9GG11333233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1133323[];
+extern void _ZN5EE1133fooEv();
+extern void _ZN5EE1133barEv();
+static VTBL_ENTRY _tg__ZTV5EE113__9GG1133323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&_ZN5EE1133fooEv,
+ (VTBL_ENTRY)&_ZN5EE1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE113__9GG1133323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE113__9GG1133323[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void _ZN5FF3323barEv();
+static VTBL_ENTRY _tg__ZTV5FF332__9GG1133323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN5FF3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+extern void ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF332__9GG1133323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+extern void ABISELECT(_ZThn32_N5FF3323barEv,_ZThn16_N5FF3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF332__9GG1133323[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+static VTT_ENTRY vtt_GG1133323[] = {
+ {&(_ZTV9GG1133323[8]), 8,44},
+ {&(_ZTV9GG1133323[16]), 16,44},
+ {&(_ZTV9GG1133323[21]), 21,44},
+ {&(_ZTV9GG1133323[25]), 25,44},
+ {&(_ZTV9GG1133323[31]), 31,44},
+ {&(_ZTV9GG1133323[36]), 36,44},
+ {&(_ZTV9GG1133323[42]), 42,44},
+ {&(_tg__ZTV5EE113__9GG1133323[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE113__9GG1133323[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE113__9GG1133323[3]), 3,4},
+ {&(_tg__ZTV5FF332__9GG1133323[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF332__9GG1133323[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF332__9GG1133323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1133323[];
+extern VTBL_ENTRY _ZTV9GG1133323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1133323[];
+static VTBL_ENTRY alt_thunk_names291[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3323barEv,_ZThn16_N5FF3323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG11333233barEv,_ZTv0_n16_N9GG11333233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11333233barEv,_ZThn48_N9GG11333233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11333233barEv,_ZThn40_N9GG11333233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11333233barEv,_ZTv0_n20_N9GG11333233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11333233barEv,_ZThn32_N9GG11333233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11333233fooEv,_ZTv0_n12_N9GG11333233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11333233fooEv,_ZThn48_N9GG11333233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11333233fooEv,_ZThn40_N9GG11333233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11333233fooEv,_ZThn24_N9GG11333233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11333233fooEv,_ZThn16_N9GG11333233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG11333233barEv,_ZTv0_n24_N9GG11333233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11333233barEv,_ZThn8_N9GG11333233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11333233fooEv,_ZTv0_n20_N9GG11333233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11333233fooEv,_ZThn8_N9GG11333233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1133323 = { "GG1133323", // class name
+ bases_GG1133323, 6,
+ &(vtc_GG1133323[0]), // expected_vtbl_contents
+ &(vtt_GG1133323[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1133323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1133323),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1133323),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names291,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1133333 : virtual EE113 , virtual FF333 {
+ int pg;
+ virtual void foo(); // _ZN9GG11333333fooEv
+ virtual void bar(); // _ZN9GG11333333barEv
+ ~GG1133333(); // tgen
+ GG1133333(); // tgen
+};
+//SIG(1 GG1133333) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1133333 ::foo(){vfunc_called(this, "_ZN9GG11333333fooEv");}
+void GG1133333 ::bar(){vfunc_called(this, "_ZN9GG11333333barEv");}
+GG1133333 ::~GG1133333(){ note_dtor("GG1133333", this);} // tgen
+GG1133333 ::GG1133333(){ note_ctor("GG1133333", this);} // tgen
+
+static void Test_GG1133333()
+{
+ extern Class_Descriptor cd_GG1133333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1133333, buf);
+ GG1133333 *dp, &lv = *(dp=new (buf) GG1133333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1133333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1133333)");
+ check_base_class_offset(lv, (AA1*)(EE113*), ABISELECT(32,16), "GG1133333");
+ check_base_class_offset(lv, (BB1*)(EE113*), ABISELECT(48,24), "GG1133333");
+ check_base_class_offset(lv, (EE113*), ABISELECT(16,8), "GG1133333");
+ check_base_class_offset(lv, (AA3*)(FF333*), ABISELECT(80,40), "GG1133333");
+ check_base_class_offset(lv, (BB3*)(FF333*), ABISELECT(96,48), "GG1133333");
+ check_base_class_offset(lv, (FF333*), ABISELECT(64,32), "GG1133333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1133333.pg");
+ test_class_info(&lv, &cd_GG1133333);
+ dp->~GG1133333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1133333(Test_GG1133333, "GG1133333", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1133333C1Ev();
+extern void _ZN9GG1133333D1Ev();
+Name_Map name_map_GG1133333[] = {
+ NSPAIR(_ZN9GG1133333C1Ev),
+ NSPAIR(_ZN9GG1133333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE113;
+extern VTBL_ENTRY _ZTI5EE113[];
+extern VTBL_ENTRY _ZTV5EE113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE113[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF333;
+extern VTBL_ENTRY _ZTI5FF333[];
+extern VTBL_ENTRY _ZTV5FF333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF333[];
+static Base_Class bases_GG1133333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE113, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 40, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF333, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1133333[];
+extern void _ZN9GG11333333fooEv();
+extern void _ZN9GG11333333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG11333333fooEv,_ZTv0_n20_N9GG11333333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG11333333fooEv,_ZThn8_N9GG11333333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11333333barEv,_ZTv0_n24_N9GG11333333barEv)();
+extern void ABISELECT(_ZThn16_N9GG11333333barEv,_ZThn8_N9GG11333333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11333333fooEv,_ZTv0_n12_N9GG11333333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG11333333fooEv,_ZThn16_N9GG11333333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11333333fooEv,_ZTv0_n12_N9GG11333333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG11333333fooEv,_ZThn24_N9GG11333333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG11333333fooEv,_ZTv0_n20_N9GG11333333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG11333333fooEv,_ZThn32_N9GG11333333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG11333333barEv,_ZTv0_n24_N9GG11333333barEv)();
+extern void ABISELECT(_ZThn64_N9GG11333333barEv,_ZThn32_N9GG11333333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11333333fooEv,_ZTv0_n12_N9GG11333333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG11333333fooEv,_ZThn40_N9GG11333333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11333333barEv,_ZTv0_n16_N9GG11333333barEv)();
+extern void ABISELECT(_ZThn80_N9GG11333333barEv,_ZThn40_N9GG11333333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG11333333fooEv,_ZTv0_n12_N9GG11333333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG11333333fooEv,_ZThn48_N9GG11333333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG11333333barEv,_ZTv0_n16_N9GG11333333barEv)();
+extern void ABISELECT(_ZThn96_N9GG11333333barEv,_ZThn48_N9GG11333333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1133333[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1133333[0]),
+ (VTBL_ENTRY)&_ZN9GG11333333fooEv,
+ (VTBL_ENTRY)&_ZN9GG11333333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1133333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11333333fooEv,_ZTv0_n20_N9GG11333333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11333333barEv,_ZTv0_n24_N9GG11333333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1133333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11333333fooEv,_ZTv0_n12_N9GG11333333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1133333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11333333fooEv,_ZTv0_n12_N9GG11333333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1133333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG11333333fooEv,_ZTv0_n20_N9GG11333333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG11333333barEv,_ZTv0_n24_N9GG11333333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1133333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11333333fooEv,_ZTv0_n12_N9GG11333333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11333333barEv,_ZTv0_n16_N9GG11333333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1133333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG11333333fooEv,_ZTv0_n12_N9GG11333333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG11333333barEv,_ZTv0_n16_N9GG11333333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1133333[];
+extern void _ZN5EE1133fooEv();
+extern void _ZN5EE1133barEv();
+static VTBL_ENTRY _tg__ZTV5EE113__9GG1133333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&_ZN5EE1133fooEv,
+ (VTBL_ENTRY)&_ZN5EE1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE113__9GG1133333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE113__9GG1133333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv),
+};
+extern void _ZN5FF3333fooEv();
+extern void _ZN5FF3333barEv();
+static VTBL_ENTRY _tg__ZTV5FF333__9GG1133333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&_ZN5FF3333fooEv,
+ (VTBL_ENTRY)&_ZN5FF3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+extern void ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF333__9GG1133333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3333fooEv,_ZThn16_N5FF3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+extern void ABISELECT(_ZThn32_N5FF3333barEv,_ZThn16_N5FF3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF333__9GG1133333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+static VTT_ENTRY vtt_GG1133333[] = {
+ {&(_ZTV9GG1133333[8]), 8,46},
+ {&(_ZTV9GG1133333[16]), 16,46},
+ {&(_ZTV9GG1133333[21]), 21,46},
+ {&(_ZTV9GG1133333[25]), 25,46},
+ {&(_ZTV9GG1133333[32]), 32,46},
+ {&(_ZTV9GG1133333[38]), 38,46},
+ {&(_ZTV9GG1133333[44]), 44,46},
+ {&(_tg__ZTV5EE113__9GG1133333[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE113__9GG1133333[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE113__9GG1133333[3]), 3,4},
+ {&(_tg__ZTV5FF333__9GG1133333[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF333__9GG1133333[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF333__9GG1133333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1133333[];
+extern VTBL_ENTRY _ZTV9GG1133333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1133333[];
+static VTBL_ENTRY alt_thunk_names292[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3333barEv,_ZThn16_N5FF3333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3333fooEv,_ZThn16_N5FF3333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1133fooEv,_ZTv0_n12_N5EE1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1133fooEv,_ZThn16_N5EE1133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1133fooEv,_ZThn8_N5EE1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG11333333barEv,_ZTv0_n16_N9GG11333333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11333333barEv,_ZThn48_N9GG11333333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11333333barEv,_ZThn40_N9GG11333333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG11333333fooEv,_ZTv0_n12_N9GG11333333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG11333333fooEv,_ZThn48_N9GG11333333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG11333333fooEv,_ZThn40_N9GG11333333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG11333333fooEv,_ZThn24_N9GG11333333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG11333333fooEv,_ZThn16_N9GG11333333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG11333333barEv,_ZTv0_n24_N9GG11333333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11333333barEv,_ZThn32_N9GG11333333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11333333barEv,_ZThn8_N9GG11333333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG11333333fooEv,_ZTv0_n20_N9GG11333333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG11333333fooEv,_ZThn32_N9GG11333333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG11333333fooEv,_ZThn8_N9GG11333333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1133333 = { "GG1133333", // class name
+ bases_GG1133333, 6,
+ &(vtc_GG1133333[0]), // expected_vtbl_contents
+ &(vtt_GG1133333[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1133333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1133333),46, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1133333),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names292,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1211111 : virtual EE121 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG12111113fooEv
+ ~GG1211111(); // tgen
+ GG1211111(); // tgen
+};
+//SIG(1 GG1211111) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v1 Fi} v1 Fi}
+
+
+void GG1211111 ::foo(){vfunc_called(this, "_ZN9GG12111113fooEv");}
+GG1211111 ::~GG1211111(){ note_dtor("GG1211111", this);} // tgen
+GG1211111 ::GG1211111(){ note_ctor("GG1211111", this);} // tgen
+
+static void Test_GG1211111()
+{
+ extern Class_Descriptor cd_GG1211111;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1211111, buf);
+ GG1211111 *dp, &lv = *(dp=new (buf) GG1211111());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1211111)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1211111)");
+ check_base_class_offset(lv, (AA1*)(EE121*), ABISELECT(32,16), "GG1211111");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(32,16), "GG1211111");
+ check_base_class_offset(lv, (BB2*)(EE121*), ABISELECT(48,24), "GG1211111");
+ check_base_class_offset(lv, (EE121*), ABISELECT(16,8), "GG1211111");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(80,40), "GG1211111");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG1211111");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1211111.pg");
+ test_class_info(&lv, &cd_GG1211111);
+ dp->~GG1211111();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1211111(Test_GG1211111, "GG1211111", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1211111C1Ev();
+extern void _ZN9GG1211111D1Ev();
+Name_Map name_map_GG1211111[] = {
+ NSPAIR(_ZN9GG1211111C1Ev),
+ NSPAIR(_ZN9GG1211111D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE121;
+extern VTBL_ENTRY _ZTI5EE121[];
+extern VTBL_ENTRY _ZTV5EE121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE121[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG1211111[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE121, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1211111[];
+extern void _ZN9GG12111113fooEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12111113fooEv,_ZTv0_n20_N9GG12111113fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12111113fooEv,_ZThn8_N9GG12111113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12111113fooEv,_ZTv0_n12_N9GG12111113fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12111113fooEv,_ZThn16_N9GG12111113fooEv)() __attribute__((weak));
+extern void _ZN3BB23barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12111113fooEv,_ZTv0_n20_N9GG12111113fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12111113fooEv,_ZThn32_N9GG12111113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12111113fooEv,_ZTv0_n12_N9GG12111113fooEv)();
+extern void ABISELECT(_ZThn80_N9GG12111113fooEv,_ZThn40_N9GG12111113fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1211111[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1211111[0]),
+ (VTBL_ENTRY)&_ZN9GG12111113fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1211111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12111113fooEv,_ZTv0_n20_N9GG12111113fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1211111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12111113fooEv,_ZTv0_n12_N9GG12111113fooEv),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1211111[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1211111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12111113fooEv,_ZTv0_n20_N9GG12111113fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1211111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12111113fooEv,_ZTv0_n12_N9GG12111113fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1211111[];
+extern void _ZN5EE1213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE121__9GG1211111[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN5EE1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE121__9GG1211111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE121__9GG1211111[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG1211111[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG1211111[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG1211111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG1211111[] = {
+ {&(_ZTV9GG1211111[7]), 7,32},
+ {&(_ZTV9GG1211111[13]), 13,32},
+ {&(_ZTV9GG1211111[17]), 17,32},
+ {&(_ZTV9GG1211111[21]), 21,32},
+ {&(_ZTV9GG1211111[27]), 27,32},
+ {&(_ZTV9GG1211111[31]), 31,32},
+ {&(_tg__ZTV5EE121__9GG1211111[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE121__9GG1211111[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE121__9GG1211111[3]), 3,4},
+ {&(_tg__ZTV5FF111__9GG1211111[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG1211111[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG1211111[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1211111[];
+extern VTBL_ENTRY _ZTV9GG1211111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1211111[];
+static VTBL_ENTRY alt_thunk_names293[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12111113fooEv,_ZTv0_n12_N9GG12111113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12111113fooEv,_ZThn40_N9GG12111113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12111113fooEv,_ZThn16_N9GG12111113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12111113fooEv,_ZTv0_n20_N9GG12111113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12111113fooEv,_ZThn32_N9GG12111113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12111113fooEv,_ZThn8_N9GG12111113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1211111 = { "GG1211111", // class name
+ bases_GG1211111, 5,
+ &(vtc_GG1211111[0]), // expected_vtbl_contents
+ &(vtt_GG1211111[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1211111),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1211111),32, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1211111),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names293,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1211113 : virtual EE121 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG12111133fooEv
+ virtual void bar(); // _ZN9GG12111133barEv
+ ~GG1211113(); // tgen
+ GG1211113(); // tgen
+};
+//SIG(1 GG1211113) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1211113 ::foo(){vfunc_called(this, "_ZN9GG12111133fooEv");}
+void GG1211113 ::bar(){vfunc_called(this, "_ZN9GG12111133barEv");}
+GG1211113 ::~GG1211113(){ note_dtor("GG1211113", this);} // tgen
+GG1211113 ::GG1211113(){ note_ctor("GG1211113", this);} // tgen
+
+static void Test_GG1211113()
+{
+ extern Class_Descriptor cd_GG1211113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1211113, buf);
+ GG1211113 *dp, &lv = *(dp=new (buf) GG1211113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1211113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1211113)");
+ check_base_class_offset(lv, (AA1*)(EE121*), ABISELECT(32,16), "GG1211113");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(32,16), "GG1211113");
+ check_base_class_offset(lv, (BB2*)(EE121*), ABISELECT(48,24), "GG1211113");
+ check_base_class_offset(lv, (EE121*), ABISELECT(16,8), "GG1211113");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(80,40), "GG1211113");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG1211113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1211113.pg");
+ test_class_info(&lv, &cd_GG1211113);
+ dp->~GG1211113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1211113(Test_GG1211113, "GG1211113", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1211113C1Ev();
+extern void _ZN9GG1211113D1Ev();
+Name_Map name_map_GG1211113[] = {
+ NSPAIR(_ZN9GG1211113C1Ev),
+ NSPAIR(_ZN9GG1211113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE121;
+extern VTBL_ENTRY _ZTI5EE121[];
+extern VTBL_ENTRY _ZTV5EE121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE121[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG1211113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE121, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1211113[];
+extern void _ZN9GG12111133fooEv();
+extern void _ZN9GG12111133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12111133fooEv,_ZTv0_n20_N9GG12111133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12111133fooEv,_ZThn8_N9GG12111133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12111133fooEv,_ZTv0_n12_N9GG12111133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12111133fooEv,_ZThn16_N9GG12111133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12111133barEv,_ZTv0_n12_N9GG12111133barEv)();
+extern void ABISELECT(_ZThn48_N9GG12111133barEv,_ZThn24_N9GG12111133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12111133fooEv,_ZTv0_n20_N9GG12111133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12111133fooEv,_ZThn32_N9GG12111133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12111133fooEv,_ZTv0_n12_N9GG12111133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG12111133fooEv,_ZThn40_N9GG12111133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1211113[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1211113[0]),
+ (VTBL_ENTRY)&_ZN9GG12111133fooEv,
+ (VTBL_ENTRY)&_ZN9GG12111133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1211113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12111133fooEv,_ZTv0_n20_N9GG12111133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1211113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12111133fooEv,_ZTv0_n12_N9GG12111133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1211113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12111133barEv,_ZTv0_n12_N9GG12111133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1211113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12111133fooEv,_ZTv0_n20_N9GG12111133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1211113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12111133fooEv,_ZTv0_n12_N9GG12111133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1211113[];
+extern void _ZN5EE1213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE121__9GG1211113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN5EE1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE121__9GG1211113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE121__9GG1211113[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG1211113[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG1211113[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG1211113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG1211113[] = {
+ {&(_ZTV9GG1211113[7]), 7,33},
+ {&(_ZTV9GG1211113[14]), 14,33},
+ {&(_ZTV9GG1211113[18]), 18,33},
+ {&(_ZTV9GG1211113[22]), 22,33},
+ {&(_ZTV9GG1211113[28]), 28,33},
+ {&(_ZTV9GG1211113[32]), 32,33},
+ {&(_tg__ZTV5EE121__9GG1211113[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE121__9GG1211113[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE121__9GG1211113[3]), 3,4},
+ {&(_tg__ZTV5FF111__9GG1211113[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG1211113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG1211113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1211113[];
+extern VTBL_ENTRY _ZTV9GG1211113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1211113[];
+static VTBL_ENTRY alt_thunk_names294[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12111133barEv,_ZTv0_n12_N9GG12111133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12111133barEv,_ZThn24_N9GG12111133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12111133fooEv,_ZTv0_n12_N9GG12111133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12111133fooEv,_ZThn40_N9GG12111133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12111133fooEv,_ZThn16_N9GG12111133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12111133fooEv,_ZTv0_n20_N9GG12111133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12111133fooEv,_ZThn32_N9GG12111133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12111133fooEv,_ZThn8_N9GG12111133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1211113 = { "GG1211113", // class name
+ bases_GG1211113, 5,
+ &(vtc_GG1211113[0]), // expected_vtbl_contents
+ &(vtt_GG1211113[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1211113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1211113),33, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1211113),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names294,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1211123 : virtual EE121 , virtual FF112 {
+ int pg;
+ virtual void foo(); // _ZN9GG12111233fooEv
+ virtual void bar(); // _ZN9GG12111233barEv
+ ~GG1211123(); // tgen
+ GG1211123(); // tgen
+};
+//SIG(1 GG1211123) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1211123 ::foo(){vfunc_called(this, "_ZN9GG12111233fooEv");}
+void GG1211123 ::bar(){vfunc_called(this, "_ZN9GG12111233barEv");}
+GG1211123 ::~GG1211123(){ note_dtor("GG1211123", this);} // tgen
+GG1211123 ::GG1211123(){ note_ctor("GG1211123", this);} // tgen
+
+static void Test_GG1211123()
+{
+ extern Class_Descriptor cd_GG1211123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1211123, buf);
+ GG1211123 *dp, &lv = *(dp=new (buf) GG1211123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1211123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1211123)");
+ check_base_class_offset(lv, (AA1*)(EE121*), ABISELECT(32,16), "GG1211123");
+ check_base_class_offset(lv, (AA1*)(FF112*), ABISELECT(32,16), "GG1211123");
+ check_base_class_offset(lv, (BB2*)(EE121*), ABISELECT(48,24), "GG1211123");
+ check_base_class_offset(lv, (EE121*), ABISELECT(16,8), "GG1211123");
+ check_base_class_offset(lv, (BB1*)(FF112*), ABISELECT(80,40), "GG1211123");
+ check_base_class_offset(lv, (FF112*), ABISELECT(64,32), "GG1211123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1211123.pg");
+ test_class_info(&lv, &cd_GG1211123);
+ dp->~GG1211123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1211123(Test_GG1211123, "GG1211123", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1211123C1Ev();
+extern void _ZN9GG1211123D1Ev();
+Name_Map name_map_GG1211123[] = {
+ NSPAIR(_ZN9GG1211123C1Ev),
+ NSPAIR(_ZN9GG1211123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE121;
+extern VTBL_ENTRY _ZTI5EE121[];
+extern VTBL_ENTRY _ZTV5EE121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE121[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF112;
+extern VTBL_ENTRY _ZTI5FF112[];
+extern VTBL_ENTRY _ZTV5FF112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF112[];
+static Base_Class bases_GG1211123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE121, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF112, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1211123[];
+extern void _ZN9GG12111233fooEv();
+extern void _ZN9GG12111233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12111233fooEv,_ZTv0_n20_N9GG12111233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12111233fooEv,_ZThn8_N9GG12111233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12111233fooEv,_ZTv0_n12_N9GG12111233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12111233fooEv,_ZThn16_N9GG12111233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12111233barEv,_ZTv0_n12_N9GG12111233barEv)();
+extern void ABISELECT(_ZThn48_N9GG12111233barEv,_ZThn24_N9GG12111233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12111233barEv,_ZTv0_n20_N9GG12111233barEv)();
+extern void ABISELECT(_ZThn64_N9GG12111233barEv,_ZThn32_N9GG12111233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12111233fooEv,_ZTv0_n12_N9GG12111233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG12111233fooEv,_ZThn40_N9GG12111233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1211123[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1211123[0]),
+ (VTBL_ENTRY)&_ZN9GG12111233fooEv,
+ (VTBL_ENTRY)&_ZN9GG12111233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1211123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12111233fooEv,_ZTv0_n20_N9GG12111233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1211123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12111233fooEv,_ZTv0_n12_N9GG12111233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1211123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12111233barEv,_ZTv0_n12_N9GG12111233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1211123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12111233barEv,_ZTv0_n20_N9GG12111233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1211123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12111233fooEv,_ZTv0_n12_N9GG12111233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1211123[];
+extern void _ZN5EE1213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE121__9GG1211123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN5EE1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE121__9GG1211123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE121__9GG1211123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF1123barEv();
+static VTBL_ENTRY _tg__ZTV5FF112__9GG1211123[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN5FF1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF112__9GG1211123[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF112__9GG1211123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG1211123[] = {
+ {&(_ZTV9GG1211123[7]), 7,33},
+ {&(_ZTV9GG1211123[14]), 14,33},
+ {&(_ZTV9GG1211123[18]), 18,33},
+ {&(_ZTV9GG1211123[22]), 22,33},
+ {&(_ZTV9GG1211123[28]), 28,33},
+ {&(_ZTV9GG1211123[32]), 32,33},
+ {&(_tg__ZTV5EE121__9GG1211123[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE121__9GG1211123[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE121__9GG1211123[3]), 3,4},
+ {&(_tg__ZTV5FF112__9GG1211123[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF112__9GG1211123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF112__9GG1211123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1211123[];
+extern VTBL_ENTRY _ZTV9GG1211123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1211123[];
+static VTBL_ENTRY alt_thunk_names295[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12111233barEv,_ZTv0_n20_N9GG12111233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12111233barEv,_ZThn32_N9GG12111233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12111233barEv,_ZTv0_n12_N9GG12111233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12111233barEv,_ZThn24_N9GG12111233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12111233fooEv,_ZTv0_n12_N9GG12111233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12111233fooEv,_ZThn40_N9GG12111233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12111233fooEv,_ZThn16_N9GG12111233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12111233fooEv,_ZTv0_n20_N9GG12111233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12111233fooEv,_ZThn8_N9GG12111233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1211123 = { "GG1211123", // class name
+ bases_GG1211123, 5,
+ &(vtc_GG1211123[0]), // expected_vtbl_contents
+ &(vtt_GG1211123[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1211123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1211123),33, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1211123),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names295,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1211133 : virtual EE121 , virtual FF113 {
+ int pg;
+ virtual void foo(); // _ZN9GG12111333fooEv
+ virtual void bar(); // _ZN9GG12111333barEv
+ ~GG1211133(); // tgen
+ GG1211133(); // tgen
+};
+//SIG(1 GG1211133) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1211133 ::foo(){vfunc_called(this, "_ZN9GG12111333fooEv");}
+void GG1211133 ::bar(){vfunc_called(this, "_ZN9GG12111333barEv");}
+GG1211133 ::~GG1211133(){ note_dtor("GG1211133", this);} // tgen
+GG1211133 ::GG1211133(){ note_ctor("GG1211133", this);} // tgen
+
+static void Test_GG1211133()
+{
+ extern Class_Descriptor cd_GG1211133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1211133, buf);
+ GG1211133 *dp, &lv = *(dp=new (buf) GG1211133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1211133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1211133)");
+ check_base_class_offset(lv, (AA1*)(EE121*), ABISELECT(32,16), "GG1211133");
+ check_base_class_offset(lv, (AA1*)(FF113*), ABISELECT(32,16), "GG1211133");
+ check_base_class_offset(lv, (BB2*)(EE121*), ABISELECT(48,24), "GG1211133");
+ check_base_class_offset(lv, (EE121*), ABISELECT(16,8), "GG1211133");
+ check_base_class_offset(lv, (BB1*)(FF113*), ABISELECT(80,40), "GG1211133");
+ check_base_class_offset(lv, (FF113*), ABISELECT(64,32), "GG1211133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1211133.pg");
+ test_class_info(&lv, &cd_GG1211133);
+ dp->~GG1211133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1211133(Test_GG1211133, "GG1211133", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1211133C1Ev();
+extern void _ZN9GG1211133D1Ev();
+Name_Map name_map_GG1211133[] = {
+ NSPAIR(_ZN9GG1211133C1Ev),
+ NSPAIR(_ZN9GG1211133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE121;
+extern VTBL_ENTRY _ZTI5EE121[];
+extern VTBL_ENTRY _ZTV5EE121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE121[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF113;
+extern VTBL_ENTRY _ZTI5FF113[];
+extern VTBL_ENTRY _ZTV5FF113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF113[];
+static Base_Class bases_GG1211133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE121, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF113, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1211133[];
+extern void _ZN9GG12111333fooEv();
+extern void _ZN9GG12111333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12111333fooEv,_ZTv0_n20_N9GG12111333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12111333fooEv,_ZThn8_N9GG12111333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12111333fooEv,_ZTv0_n12_N9GG12111333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12111333fooEv,_ZThn16_N9GG12111333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12111333barEv,_ZTv0_n12_N9GG12111333barEv)();
+extern void ABISELECT(_ZThn48_N9GG12111333barEv,_ZThn24_N9GG12111333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12111333fooEv,_ZTv0_n20_N9GG12111333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12111333fooEv,_ZThn32_N9GG12111333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12111333barEv,_ZTv0_n24_N9GG12111333barEv)();
+extern void ABISELECT(_ZThn64_N9GG12111333barEv,_ZThn32_N9GG12111333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12111333fooEv,_ZTv0_n12_N9GG12111333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG12111333fooEv,_ZThn40_N9GG12111333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1211133[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1211133[0]),
+ (VTBL_ENTRY)&_ZN9GG12111333fooEv,
+ (VTBL_ENTRY)&_ZN9GG12111333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1211133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12111333fooEv,_ZTv0_n20_N9GG12111333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1211133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12111333fooEv,_ZTv0_n12_N9GG12111333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1211133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12111333barEv,_ZTv0_n12_N9GG12111333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1211133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12111333fooEv,_ZTv0_n20_N9GG12111333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12111333barEv,_ZTv0_n24_N9GG12111333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1211133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12111333fooEv,_ZTv0_n12_N9GG12111333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1211133[];
+extern void _ZN5EE1213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE121__9GG1211133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN5EE1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE121__9GG1211133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE121__9GG1211133[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF1133fooEv();
+extern void _ZN5FF1133barEv();
+static VTBL_ENTRY _tg__ZTV5FF113__9GG1211133[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&_ZN5FF1133fooEv,
+ (VTBL_ENTRY)&_ZN5FF1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF113__9GG1211133[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF113__9GG1211133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+static VTT_ENTRY vtt_GG1211133[] = {
+ {&(_ZTV9GG1211133[7]), 7,35},
+ {&(_ZTV9GG1211133[14]), 14,35},
+ {&(_ZTV9GG1211133[18]), 18,35},
+ {&(_ZTV9GG1211133[22]), 22,35},
+ {&(_ZTV9GG1211133[29]), 29,35},
+ {&(_ZTV9GG1211133[34]), 34,35},
+ {&(_tg__ZTV5EE121__9GG1211133[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE121__9GG1211133[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE121__9GG1211133[3]), 3,4},
+ {&(_tg__ZTV5FF113__9GG1211133[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF113__9GG1211133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF113__9GG1211133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1211133[];
+extern VTBL_ENTRY _ZTV9GG1211133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1211133[];
+static VTBL_ENTRY alt_thunk_names296[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG12111333barEv,_ZTv0_n24_N9GG12111333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12111333barEv,_ZThn32_N9GG12111333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12111333barEv,_ZTv0_n12_N9GG12111333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12111333barEv,_ZThn24_N9GG12111333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12111333fooEv,_ZTv0_n12_N9GG12111333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12111333fooEv,_ZThn40_N9GG12111333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12111333fooEv,_ZThn16_N9GG12111333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12111333fooEv,_ZTv0_n20_N9GG12111333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12111333fooEv,_ZThn32_N9GG12111333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12111333fooEv,_ZThn8_N9GG12111333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1211133 = { "GG1211133", // class name
+ bases_GG1211133, 5,
+ &(vtc_GG1211133[0]), // expected_vtbl_contents
+ &(vtt_GG1211133[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1211133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1211133),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1211133),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names296,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1211213 : virtual EE121 , virtual FF121 {
+ int pg;
+ virtual void foo(); // _ZN9GG12112133fooEv
+ virtual void bar(); // _ZN9GG12112133barEv
+ ~GG1211213(); // tgen
+ GG1211213(); // tgen
+};
+//SIG(1 GG1211213) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC3 VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG1211213 ::foo(){vfunc_called(this, "_ZN9GG12112133fooEv");}
+void GG1211213 ::bar(){vfunc_called(this, "_ZN9GG12112133barEv");}
+GG1211213 ::~GG1211213(){ note_dtor("GG1211213", this);} // tgen
+GG1211213 ::GG1211213(){ note_ctor("GG1211213", this);} // tgen
+
+static void Test_GG1211213()
+{
+ extern Class_Descriptor cd_GG1211213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG1211213, buf);
+ GG1211213 *dp, &lv = *(dp=new (buf) GG1211213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG1211213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1211213)");
+ check_base_class_offset(lv, (AA1*)(EE121*), ABISELECT(32,16), "GG1211213");
+ check_base_class_offset(lv, (AA1*)(FF121*), ABISELECT(32,16), "GG1211213");
+ check_base_class_offset(lv, (BB2*)(EE121*), ABISELECT(48,24), "GG1211213");
+ check_base_class_offset(lv, (BB2*)(FF121*), ABISELECT(48,24), "GG1211213");
+ check_base_class_offset(lv, (EE121*), ABISELECT(16,8), "GG1211213");
+ check_base_class_offset(lv, (FF121*), ABISELECT(64,32), "GG1211213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1211213.pg");
+ test_class_info(&lv, &cd_GG1211213);
+ dp->~GG1211213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1211213(Test_GG1211213, "GG1211213", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG1211213C1Ev();
+extern void _ZN9GG1211213D1Ev();
+Name_Map name_map_GG1211213[] = {
+ NSPAIR(_ZN9GG1211213C1Ev),
+ NSPAIR(_ZN9GG1211213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE121;
+extern VTBL_ENTRY _ZTI5EE121[];
+extern VTBL_ENTRY _ZTV5EE121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE121[];
+extern Class_Descriptor cd_FF121;
+extern VTBL_ENTRY _ZTI5FF121[];
+extern VTBL_ENTRY _ZTV5FF121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF121[];
+static Base_Class bases_GG1211213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE121, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF121, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1211213[];
+extern void _ZN9GG12112133fooEv();
+extern void _ZN9GG12112133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12112133fooEv,_ZTv0_n20_N9GG12112133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12112133fooEv,_ZThn8_N9GG12112133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12112133fooEv,_ZTv0_n12_N9GG12112133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12112133fooEv,_ZThn16_N9GG12112133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12112133barEv,_ZTv0_n12_N9GG12112133barEv)();
+extern void ABISELECT(_ZThn48_N9GG12112133barEv,_ZThn24_N9GG12112133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12112133fooEv,_ZTv0_n20_N9GG12112133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12112133fooEv,_ZThn32_N9GG12112133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1211213[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1211213[0]),
+ (VTBL_ENTRY)&_ZN9GG12112133fooEv,
+ (VTBL_ENTRY)&_ZN9GG12112133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1211213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12112133fooEv,_ZTv0_n20_N9GG12112133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1211213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12112133fooEv,_ZTv0_n12_N9GG12112133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1211213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12112133barEv,_ZTv0_n12_N9GG12112133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1211213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12112133fooEv,_ZTv0_n20_N9GG12112133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1211213[];
+extern void _ZN5EE1213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE121__9GG1211213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN5EE1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE121__9GG1211213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE121__9GG1211213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF1213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF121__9GG1211213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN5FF1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF121__9GG1211213[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF121__9GG1211213[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG1211213[] = {
+ {&(_ZTV9GG1211213[6]), 6,28},
+ {&(_ZTV9GG1211213[13]), 13,28},
+ {&(_ZTV9GG1211213[17]), 17,28},
+ {&(_ZTV9GG1211213[21]), 21,28},
+ {&(_ZTV9GG1211213[27]), 27,28},
+ {&(_tg__ZTV5EE121__9GG1211213[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE121__9GG1211213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE121__9GG1211213[3]), 3,4},
+ {&(_tg__ZTV5FF121__9GG1211213[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF121__9GG1211213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF121__9GG1211213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1211213[];
+extern VTBL_ENTRY _ZTV9GG1211213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1211213[];
+static VTBL_ENTRY alt_thunk_names297[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12112133barEv,_ZTv0_n12_N9GG12112133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12112133barEv,_ZThn24_N9GG12112133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12112133fooEv,_ZTv0_n12_N9GG12112133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12112133fooEv,_ZThn16_N9GG12112133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12112133fooEv,_ZTv0_n20_N9GG12112133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12112133fooEv,_ZThn32_N9GG12112133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12112133fooEv,_ZThn8_N9GG12112133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1211213 = { "GG1211213", // class name
+ bases_GG1211213, 4,
+ &(vtc_GG1211213[0]), // expected_vtbl_contents
+ &(vtt_GG1211213[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG1211213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1211213),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1211213),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names297,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1211223 : virtual EE121 , virtual FF122 {
+ int pg;
+ virtual void foo(); // _ZN9GG12112233fooEv
+ virtual void bar(); // _ZN9GG12112233barEv
+ ~GG1211223(); // tgen
+ GG1211223(); // tgen
+};
+//SIG(1 GG1211223) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC3 VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG1211223 ::foo(){vfunc_called(this, "_ZN9GG12112233fooEv");}
+void GG1211223 ::bar(){vfunc_called(this, "_ZN9GG12112233barEv");}
+GG1211223 ::~GG1211223(){ note_dtor("GG1211223", this);} // tgen
+GG1211223 ::GG1211223(){ note_ctor("GG1211223", this);} // tgen
+
+static void Test_GG1211223()
+{
+ extern Class_Descriptor cd_GG1211223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG1211223, buf);
+ GG1211223 *dp, &lv = *(dp=new (buf) GG1211223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG1211223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1211223)");
+ check_base_class_offset(lv, (AA1*)(EE121*), ABISELECT(32,16), "GG1211223");
+ check_base_class_offset(lv, (AA1*)(FF122*), ABISELECT(32,16), "GG1211223");
+ check_base_class_offset(lv, (BB2*)(EE121*), ABISELECT(48,24), "GG1211223");
+ check_base_class_offset(lv, (BB2*)(FF122*), ABISELECT(48,24), "GG1211223");
+ check_base_class_offset(lv, (EE121*), ABISELECT(16,8), "GG1211223");
+ check_base_class_offset(lv, (FF122*), ABISELECT(64,32), "GG1211223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1211223.pg");
+ test_class_info(&lv, &cd_GG1211223);
+ dp->~GG1211223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1211223(Test_GG1211223, "GG1211223", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG1211223C1Ev();
+extern void _ZN9GG1211223D1Ev();
+Name_Map name_map_GG1211223[] = {
+ NSPAIR(_ZN9GG1211223C1Ev),
+ NSPAIR(_ZN9GG1211223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE121;
+extern VTBL_ENTRY _ZTI5EE121[];
+extern VTBL_ENTRY _ZTV5EE121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE121[];
+extern Class_Descriptor cd_FF122;
+extern VTBL_ENTRY _ZTI5FF122[];
+extern VTBL_ENTRY _ZTV5FF122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF122[];
+static Base_Class bases_GG1211223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE121, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF122, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1211223[];
+extern void _ZN9GG12112233fooEv();
+extern void _ZN9GG12112233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12112233fooEv,_ZTv0_n20_N9GG12112233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12112233fooEv,_ZThn8_N9GG12112233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12112233fooEv,_ZTv0_n12_N9GG12112233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12112233fooEv,_ZThn16_N9GG12112233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12112233barEv,_ZTv0_n12_N9GG12112233barEv)();
+extern void ABISELECT(_ZThn48_N9GG12112233barEv,_ZThn24_N9GG12112233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12112233barEv,_ZTv0_n20_N9GG12112233barEv)();
+extern void ABISELECT(_ZThn64_N9GG12112233barEv,_ZThn32_N9GG12112233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1211223[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1211223[0]),
+ (VTBL_ENTRY)&_ZN9GG12112233fooEv,
+ (VTBL_ENTRY)&_ZN9GG12112233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1211223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12112233fooEv,_ZTv0_n20_N9GG12112233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1211223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12112233fooEv,_ZTv0_n12_N9GG12112233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1211223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12112233barEv,_ZTv0_n12_N9GG12112233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1211223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12112233barEv,_ZTv0_n20_N9GG12112233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1211223[];
+extern void _ZN5EE1213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE121__9GG1211223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN5EE1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE121__9GG1211223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE121__9GG1211223[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF1223barEv();
+static VTBL_ENTRY _tg__ZTV5FF122__9GG1211223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN5FF1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF122__9GG1211223[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF122__9GG1211223[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv),
+};
+static VTT_ENTRY vtt_GG1211223[] = {
+ {&(_ZTV9GG1211223[6]), 6,28},
+ {&(_ZTV9GG1211223[13]), 13,28},
+ {&(_ZTV9GG1211223[17]), 17,28},
+ {&(_ZTV9GG1211223[21]), 21,28},
+ {&(_ZTV9GG1211223[27]), 27,28},
+ {&(_tg__ZTV5EE121__9GG1211223[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE121__9GG1211223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE121__9GG1211223[3]), 3,4},
+ {&(_tg__ZTV5FF122__9GG1211223[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF122__9GG1211223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF122__9GG1211223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1211223[];
+extern VTBL_ENTRY _ZTV9GG1211223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1211223[];
+static VTBL_ENTRY alt_thunk_names298[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12112233barEv,_ZTv0_n20_N9GG12112233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12112233barEv,_ZThn32_N9GG12112233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12112233barEv,_ZTv0_n12_N9GG12112233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12112233barEv,_ZThn24_N9GG12112233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12112233fooEv,_ZTv0_n12_N9GG12112233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12112233fooEv,_ZThn16_N9GG12112233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12112233fooEv,_ZTv0_n20_N9GG12112233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12112233fooEv,_ZThn8_N9GG12112233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1211223 = { "GG1211223", // class name
+ bases_GG1211223, 4,
+ &(vtc_GG1211223[0]), // expected_vtbl_contents
+ &(vtt_GG1211223[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG1211223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1211223),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1211223),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names298,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1211233 : virtual EE121 , virtual FF123 {
+ int pg;
+ virtual void foo(); // _ZN9GG12112333fooEv
+ virtual void bar(); // _ZN9GG12112333barEv
+ ~GG1211233(); // tgen
+ GG1211233(); // tgen
+};
+//SIG(1 GG1211233) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC3 VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1211233 ::foo(){vfunc_called(this, "_ZN9GG12112333fooEv");}
+void GG1211233 ::bar(){vfunc_called(this, "_ZN9GG12112333barEv");}
+GG1211233 ::~GG1211233(){ note_dtor("GG1211233", this);} // tgen
+GG1211233 ::GG1211233(){ note_ctor("GG1211233", this);} // tgen
+
+static void Test_GG1211233()
+{
+ extern Class_Descriptor cd_GG1211233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG1211233, buf);
+ GG1211233 *dp, &lv = *(dp=new (buf) GG1211233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG1211233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1211233)");
+ check_base_class_offset(lv, (AA1*)(EE121*), ABISELECT(32,16), "GG1211233");
+ check_base_class_offset(lv, (AA1*)(FF123*), ABISELECT(32,16), "GG1211233");
+ check_base_class_offset(lv, (BB2*)(EE121*), ABISELECT(48,24), "GG1211233");
+ check_base_class_offset(lv, (BB2*)(FF123*), ABISELECT(48,24), "GG1211233");
+ check_base_class_offset(lv, (EE121*), ABISELECT(16,8), "GG1211233");
+ check_base_class_offset(lv, (FF123*), ABISELECT(64,32), "GG1211233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1211233.pg");
+ test_class_info(&lv, &cd_GG1211233);
+ dp->~GG1211233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1211233(Test_GG1211233, "GG1211233", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG1211233C1Ev();
+extern void _ZN9GG1211233D1Ev();
+Name_Map name_map_GG1211233[] = {
+ NSPAIR(_ZN9GG1211233C1Ev),
+ NSPAIR(_ZN9GG1211233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE121;
+extern VTBL_ENTRY _ZTI5EE121[];
+extern VTBL_ENTRY _ZTV5EE121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE121[];
+extern Class_Descriptor cd_FF123;
+extern VTBL_ENTRY _ZTI5FF123[];
+extern VTBL_ENTRY _ZTV5FF123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF123[];
+static Base_Class bases_GG1211233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE121, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF123, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1211233[];
+extern void _ZN9GG12112333fooEv();
+extern void _ZN9GG12112333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12112333fooEv,_ZTv0_n20_N9GG12112333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12112333fooEv,_ZThn8_N9GG12112333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12112333fooEv,_ZTv0_n12_N9GG12112333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12112333fooEv,_ZThn16_N9GG12112333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12112333barEv,_ZTv0_n12_N9GG12112333barEv)();
+extern void ABISELECT(_ZThn48_N9GG12112333barEv,_ZThn24_N9GG12112333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12112333fooEv,_ZTv0_n20_N9GG12112333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12112333fooEv,_ZThn32_N9GG12112333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12112333barEv,_ZTv0_n24_N9GG12112333barEv)();
+extern void ABISELECT(_ZThn64_N9GG12112333barEv,_ZThn32_N9GG12112333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1211233[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1211233[0]),
+ (VTBL_ENTRY)&_ZN9GG12112333fooEv,
+ (VTBL_ENTRY)&_ZN9GG12112333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1211233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12112333fooEv,_ZTv0_n20_N9GG12112333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1211233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12112333fooEv,_ZTv0_n12_N9GG12112333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1211233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12112333barEv,_ZTv0_n12_N9GG12112333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1211233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12112333fooEv,_ZTv0_n20_N9GG12112333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12112333barEv,_ZTv0_n24_N9GG12112333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1211233[];
+extern void _ZN5EE1213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE121__9GG1211233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN5EE1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE121__9GG1211233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE121__9GG1211233[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF1233fooEv();
+extern void _ZN5FF1233barEv();
+static VTBL_ENTRY _tg__ZTV5FF123__9GG1211233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&_ZN5FF1233fooEv,
+ (VTBL_ENTRY)&_ZN5FF1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF123__9GG1211233[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF123__9GG1211233[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv),
+};
+static VTT_ENTRY vtt_GG1211233[] = {
+ {&(_ZTV9GG1211233[6]), 6,30},
+ {&(_ZTV9GG1211233[13]), 13,30},
+ {&(_ZTV9GG1211233[17]), 17,30},
+ {&(_ZTV9GG1211233[21]), 21,30},
+ {&(_ZTV9GG1211233[28]), 28,30},
+ {&(_tg__ZTV5EE121__9GG1211233[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE121__9GG1211233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE121__9GG1211233[3]), 3,4},
+ {&(_tg__ZTV5FF123__9GG1211233[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF123__9GG1211233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF123__9GG1211233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1211233[];
+extern VTBL_ENTRY _ZTV9GG1211233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1211233[];
+static VTBL_ENTRY alt_thunk_names299[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG12112333barEv,_ZTv0_n24_N9GG12112333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12112333barEv,_ZThn32_N9GG12112333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12112333barEv,_ZTv0_n12_N9GG12112333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12112333barEv,_ZThn24_N9GG12112333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12112333fooEv,_ZTv0_n12_N9GG12112333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12112333fooEv,_ZThn16_N9GG12112333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12112333fooEv,_ZTv0_n20_N9GG12112333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12112333fooEv,_ZThn32_N9GG12112333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12112333fooEv,_ZThn8_N9GG12112333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1211233 = { "GG1211233", // class name
+ bases_GG1211233, 4,
+ &(vtc_GG1211233[0]), // expected_vtbl_contents
+ &(vtt_GG1211233[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG1211233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1211233),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1211233),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names299,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1211313 : virtual EE121 , virtual FF131 {
+ int pg;
+ virtual void foo(); // _ZN9GG12113133fooEv
+ virtual void bar(); // _ZN9GG12113133barEv
+ ~GG1211313(); // tgen
+ GG1211313(); // tgen
+};
+//SIG(1 GG1211313) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1211313 ::foo(){vfunc_called(this, "_ZN9GG12113133fooEv");}
+void GG1211313 ::bar(){vfunc_called(this, "_ZN9GG12113133barEv");}
+GG1211313 ::~GG1211313(){ note_dtor("GG1211313", this);} // tgen
+GG1211313 ::GG1211313(){ note_ctor("GG1211313", this);} // tgen
+
+static void Test_GG1211313()
+{
+ extern Class_Descriptor cd_GG1211313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1211313, buf);
+ GG1211313 *dp, &lv = *(dp=new (buf) GG1211313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1211313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1211313)");
+ check_base_class_offset(lv, (AA1*)(EE121*), ABISELECT(32,16), "GG1211313");
+ check_base_class_offset(lv, (AA1*)(FF131*), ABISELECT(32,16), "GG1211313");
+ check_base_class_offset(lv, (BB2*)(EE121*), ABISELECT(48,24), "GG1211313");
+ check_base_class_offset(lv, (EE121*), ABISELECT(16,8), "GG1211313");
+ check_base_class_offset(lv, (BB3*)(FF131*), ABISELECT(80,40), "GG1211313");
+ check_base_class_offset(lv, (FF131*), ABISELECT(64,32), "GG1211313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1211313.pg");
+ test_class_info(&lv, &cd_GG1211313);
+ dp->~GG1211313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1211313(Test_GG1211313, "GG1211313", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1211313C1Ev();
+extern void _ZN9GG1211313D1Ev();
+Name_Map name_map_GG1211313[] = {
+ NSPAIR(_ZN9GG1211313C1Ev),
+ NSPAIR(_ZN9GG1211313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE121;
+extern VTBL_ENTRY _ZTI5EE121[];
+extern VTBL_ENTRY _ZTV5EE121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE121[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF131;
+extern VTBL_ENTRY _ZTI5FF131[];
+extern VTBL_ENTRY _ZTV5FF131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF131[];
+static Base_Class bases_GG1211313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE121, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF131, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1211313[];
+extern void _ZN9GG12113133fooEv();
+extern void _ZN9GG12113133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12113133fooEv,_ZTv0_n20_N9GG12113133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12113133fooEv,_ZThn8_N9GG12113133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12113133fooEv,_ZTv0_n12_N9GG12113133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12113133fooEv,_ZThn16_N9GG12113133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12113133barEv,_ZTv0_n12_N9GG12113133barEv)();
+extern void ABISELECT(_ZThn48_N9GG12113133barEv,_ZThn24_N9GG12113133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12113133fooEv,_ZTv0_n20_N9GG12113133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12113133fooEv,_ZThn32_N9GG12113133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12113133fooEv,_ZTv0_n12_N9GG12113133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG12113133fooEv,_ZThn40_N9GG12113133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12113133barEv,_ZTv0_n16_N9GG12113133barEv)();
+extern void ABISELECT(_ZThn80_N9GG12113133barEv,_ZThn40_N9GG12113133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1211313[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1211313[0]),
+ (VTBL_ENTRY)&_ZN9GG12113133fooEv,
+ (VTBL_ENTRY)&_ZN9GG12113133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1211313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12113133fooEv,_ZTv0_n20_N9GG12113133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1211313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12113133fooEv,_ZTv0_n12_N9GG12113133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1211313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12113133barEv,_ZTv0_n12_N9GG12113133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1211313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12113133fooEv,_ZTv0_n20_N9GG12113133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1211313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12113133fooEv,_ZTv0_n12_N9GG12113133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12113133barEv,_ZTv0_n16_N9GG12113133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1211313[];
+extern void _ZN5EE1213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE121__9GG1211313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN5EE1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE121__9GG1211313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE121__9GG1211313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF1313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF131__9GG1211313[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&_ZN5FF1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF131__9GG1211313[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF131__9GG1211313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG1211313[] = {
+ {&(_ZTV9GG1211313[7]), 7,35},
+ {&(_ZTV9GG1211313[14]), 14,35},
+ {&(_ZTV9GG1211313[18]), 18,35},
+ {&(_ZTV9GG1211313[22]), 22,35},
+ {&(_ZTV9GG1211313[28]), 28,35},
+ {&(_ZTV9GG1211313[33]), 33,35},
+ {&(_tg__ZTV5EE121__9GG1211313[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE121__9GG1211313[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE121__9GG1211313[3]), 3,4},
+ {&(_tg__ZTV5FF131__9GG1211313[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF131__9GG1211313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF131__9GG1211313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1211313[];
+extern VTBL_ENTRY _ZTV9GG1211313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1211313[];
+static VTBL_ENTRY alt_thunk_names300[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG12113133barEv,_ZTv0_n16_N9GG12113133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12113133barEv,_ZThn40_N9GG12113133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12113133barEv,_ZTv0_n12_N9GG12113133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12113133barEv,_ZThn24_N9GG12113133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12113133fooEv,_ZTv0_n12_N9GG12113133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12113133fooEv,_ZThn40_N9GG12113133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12113133fooEv,_ZThn16_N9GG12113133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12113133fooEv,_ZTv0_n20_N9GG12113133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12113133fooEv,_ZThn32_N9GG12113133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12113133fooEv,_ZThn8_N9GG12113133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1211313 = { "GG1211313", // class name
+ bases_GG1211313, 5,
+ &(vtc_GG1211313[0]), // expected_vtbl_contents
+ &(vtt_GG1211313[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1211313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1211313),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1211313),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names300,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1211323 : virtual EE121 , virtual FF132 {
+ int pg;
+ virtual void foo(); // _ZN9GG12113233fooEv
+ virtual void bar(); // _ZN9GG12113233barEv
+ ~GG1211323(); // tgen
+ GG1211323(); // tgen
+};
+//SIG(1 GG1211323) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1211323 ::foo(){vfunc_called(this, "_ZN9GG12113233fooEv");}
+void GG1211323 ::bar(){vfunc_called(this, "_ZN9GG12113233barEv");}
+GG1211323 ::~GG1211323(){ note_dtor("GG1211323", this);} // tgen
+GG1211323 ::GG1211323(){ note_ctor("GG1211323", this);} // tgen
+
+static void Test_GG1211323()
+{
+ extern Class_Descriptor cd_GG1211323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1211323, buf);
+ GG1211323 *dp, &lv = *(dp=new (buf) GG1211323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1211323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1211323)");
+ check_base_class_offset(lv, (AA1*)(EE121*), ABISELECT(32,16), "GG1211323");
+ check_base_class_offset(lv, (AA1*)(FF132*), ABISELECT(32,16), "GG1211323");
+ check_base_class_offset(lv, (BB2*)(EE121*), ABISELECT(48,24), "GG1211323");
+ check_base_class_offset(lv, (EE121*), ABISELECT(16,8), "GG1211323");
+ check_base_class_offset(lv, (BB3*)(FF132*), ABISELECT(80,40), "GG1211323");
+ check_base_class_offset(lv, (FF132*), ABISELECT(64,32), "GG1211323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1211323.pg");
+ test_class_info(&lv, &cd_GG1211323);
+ dp->~GG1211323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1211323(Test_GG1211323, "GG1211323", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1211323C1Ev();
+extern void _ZN9GG1211323D1Ev();
+Name_Map name_map_GG1211323[] = {
+ NSPAIR(_ZN9GG1211323C1Ev),
+ NSPAIR(_ZN9GG1211323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE121;
+extern VTBL_ENTRY _ZTI5EE121[];
+extern VTBL_ENTRY _ZTV5EE121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE121[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF132;
+extern VTBL_ENTRY _ZTI5FF132[];
+extern VTBL_ENTRY _ZTV5FF132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF132[];
+static Base_Class bases_GG1211323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE121, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF132, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1211323[];
+extern void _ZN9GG12113233fooEv();
+extern void _ZN9GG12113233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12113233fooEv,_ZTv0_n20_N9GG12113233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12113233fooEv,_ZThn8_N9GG12113233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12113233fooEv,_ZTv0_n12_N9GG12113233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12113233fooEv,_ZThn16_N9GG12113233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12113233barEv,_ZTv0_n12_N9GG12113233barEv)();
+extern void ABISELECT(_ZThn48_N9GG12113233barEv,_ZThn24_N9GG12113233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12113233barEv,_ZTv0_n20_N9GG12113233barEv)();
+extern void ABISELECT(_ZThn64_N9GG12113233barEv,_ZThn32_N9GG12113233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12113233fooEv,_ZTv0_n12_N9GG12113233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG12113233fooEv,_ZThn40_N9GG12113233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12113233barEv,_ZTv0_n16_N9GG12113233barEv)();
+extern void ABISELECT(_ZThn80_N9GG12113233barEv,_ZThn40_N9GG12113233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1211323[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1211323[0]),
+ (VTBL_ENTRY)&_ZN9GG12113233fooEv,
+ (VTBL_ENTRY)&_ZN9GG12113233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1211323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12113233fooEv,_ZTv0_n20_N9GG12113233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1211323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12113233fooEv,_ZTv0_n12_N9GG12113233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1211323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12113233barEv,_ZTv0_n12_N9GG12113233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1211323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12113233barEv,_ZTv0_n20_N9GG12113233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1211323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12113233fooEv,_ZTv0_n12_N9GG12113233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12113233barEv,_ZTv0_n16_N9GG12113233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1211323[];
+extern void _ZN5EE1213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE121__9GG1211323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN5EE1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE121__9GG1211323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE121__9GG1211323[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF1323barEv();
+static VTBL_ENTRY _tg__ZTV5FF132__9GG1211323[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN5FF1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF132__9GG1211323[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv)();
+extern void ABISELECT(_ZThn16_N5FF1323barEv,_ZThn8_N5FF1323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF132__9GG1211323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv),
+};
+static VTT_ENTRY vtt_GG1211323[] = {
+ {&(_ZTV9GG1211323[7]), 7,35},
+ {&(_ZTV9GG1211323[14]), 14,35},
+ {&(_ZTV9GG1211323[18]), 18,35},
+ {&(_ZTV9GG1211323[22]), 22,35},
+ {&(_ZTV9GG1211323[28]), 28,35},
+ {&(_ZTV9GG1211323[33]), 33,35},
+ {&(_tg__ZTV5EE121__9GG1211323[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE121__9GG1211323[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE121__9GG1211323[3]), 3,4},
+ {&(_tg__ZTV5FF132__9GG1211323[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF132__9GG1211323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF132__9GG1211323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1211323[];
+extern VTBL_ENTRY _ZTV9GG1211323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1211323[];
+static VTBL_ENTRY alt_thunk_names301[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1323barEv,_ZThn8_N5FF1323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG12113233barEv,_ZTv0_n16_N9GG12113233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12113233barEv,_ZThn40_N9GG12113233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12113233barEv,_ZTv0_n20_N9GG12113233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12113233barEv,_ZThn32_N9GG12113233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12113233barEv,_ZTv0_n12_N9GG12113233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12113233barEv,_ZThn24_N9GG12113233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12113233fooEv,_ZTv0_n12_N9GG12113233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12113233fooEv,_ZThn40_N9GG12113233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12113233fooEv,_ZThn16_N9GG12113233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12113233fooEv,_ZTv0_n20_N9GG12113233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12113233fooEv,_ZThn8_N9GG12113233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1211323 = { "GG1211323", // class name
+ bases_GG1211323, 5,
+ &(vtc_GG1211323[0]), // expected_vtbl_contents
+ &(vtt_GG1211323[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1211323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1211323),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1211323),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names301,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1211333 : virtual EE121 , virtual FF133 {
+ int pg;
+ virtual void foo(); // _ZN9GG12113333fooEv
+ virtual void bar(); // _ZN9GG12113333barEv
+ ~GG1211333(); // tgen
+ GG1211333(); // tgen
+};
+//SIG(1 GG1211333) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1211333 ::foo(){vfunc_called(this, "_ZN9GG12113333fooEv");}
+void GG1211333 ::bar(){vfunc_called(this, "_ZN9GG12113333barEv");}
+GG1211333 ::~GG1211333(){ note_dtor("GG1211333", this);} // tgen
+GG1211333 ::GG1211333(){ note_ctor("GG1211333", this);} // tgen
+
+static void Test_GG1211333()
+{
+ extern Class_Descriptor cd_GG1211333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1211333, buf);
+ GG1211333 *dp, &lv = *(dp=new (buf) GG1211333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1211333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1211333)");
+ check_base_class_offset(lv, (AA1*)(EE121*), ABISELECT(32,16), "GG1211333");
+ check_base_class_offset(lv, (AA1*)(FF133*), ABISELECT(32,16), "GG1211333");
+ check_base_class_offset(lv, (BB2*)(EE121*), ABISELECT(48,24), "GG1211333");
+ check_base_class_offset(lv, (EE121*), ABISELECT(16,8), "GG1211333");
+ check_base_class_offset(lv, (BB3*)(FF133*), ABISELECT(80,40), "GG1211333");
+ check_base_class_offset(lv, (FF133*), ABISELECT(64,32), "GG1211333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1211333.pg");
+ test_class_info(&lv, &cd_GG1211333);
+ dp->~GG1211333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1211333(Test_GG1211333, "GG1211333", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1211333C1Ev();
+extern void _ZN9GG1211333D1Ev();
+Name_Map name_map_GG1211333[] = {
+ NSPAIR(_ZN9GG1211333C1Ev),
+ NSPAIR(_ZN9GG1211333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE121;
+extern VTBL_ENTRY _ZTI5EE121[];
+extern VTBL_ENTRY _ZTV5EE121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE121[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF133;
+extern VTBL_ENTRY _ZTI5FF133[];
+extern VTBL_ENTRY _ZTV5FF133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF133[];
+static Base_Class bases_GG1211333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE121, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF133, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1211333[];
+extern void _ZN9GG12113333fooEv();
+extern void _ZN9GG12113333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12113333fooEv,_ZTv0_n20_N9GG12113333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12113333fooEv,_ZThn8_N9GG12113333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12113333fooEv,_ZTv0_n12_N9GG12113333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12113333fooEv,_ZThn16_N9GG12113333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12113333barEv,_ZTv0_n12_N9GG12113333barEv)();
+extern void ABISELECT(_ZThn48_N9GG12113333barEv,_ZThn24_N9GG12113333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12113333fooEv,_ZTv0_n20_N9GG12113333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12113333fooEv,_ZThn32_N9GG12113333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12113333barEv,_ZTv0_n24_N9GG12113333barEv)();
+extern void ABISELECT(_ZThn64_N9GG12113333barEv,_ZThn32_N9GG12113333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12113333fooEv,_ZTv0_n12_N9GG12113333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG12113333fooEv,_ZThn40_N9GG12113333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12113333barEv,_ZTv0_n16_N9GG12113333barEv)();
+extern void ABISELECT(_ZThn80_N9GG12113333barEv,_ZThn40_N9GG12113333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1211333[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1211333[0]),
+ (VTBL_ENTRY)&_ZN9GG12113333fooEv,
+ (VTBL_ENTRY)&_ZN9GG12113333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1211333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12113333fooEv,_ZTv0_n20_N9GG12113333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1211333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12113333fooEv,_ZTv0_n12_N9GG12113333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1211333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12113333barEv,_ZTv0_n12_N9GG12113333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1211333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12113333fooEv,_ZTv0_n20_N9GG12113333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12113333barEv,_ZTv0_n24_N9GG12113333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1211333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12113333fooEv,_ZTv0_n12_N9GG12113333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12113333barEv,_ZTv0_n16_N9GG12113333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1211333[];
+extern void _ZN5EE1213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE121__9GG1211333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN5EE1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE121__9GG1211333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE121__9GG1211333[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF1333fooEv();
+extern void _ZN5FF1333barEv();
+static VTBL_ENTRY _tg__ZTV5FF133__9GG1211333[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&_ZN5FF1333fooEv,
+ (VTBL_ENTRY)&_ZN5FF1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF133__9GG1211333[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv)();
+extern void ABISELECT(_ZThn16_N5FF1333barEv,_ZThn8_N5FF1333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF133__9GG1211333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv),
+};
+static VTT_ENTRY vtt_GG1211333[] = {
+ {&(_ZTV9GG1211333[7]), 7,37},
+ {&(_ZTV9GG1211333[14]), 14,37},
+ {&(_ZTV9GG1211333[18]), 18,37},
+ {&(_ZTV9GG1211333[22]), 22,37},
+ {&(_ZTV9GG1211333[29]), 29,37},
+ {&(_ZTV9GG1211333[35]), 35,37},
+ {&(_tg__ZTV5EE121__9GG1211333[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE121__9GG1211333[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE121__9GG1211333[3]), 3,4},
+ {&(_tg__ZTV5FF133__9GG1211333[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF133__9GG1211333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF133__9GG1211333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1211333[];
+extern VTBL_ENTRY _ZTV9GG1211333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1211333[];
+static VTBL_ENTRY alt_thunk_names302[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1333barEv,_ZThn8_N5FF1333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG12113333barEv,_ZTv0_n16_N9GG12113333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12113333barEv,_ZThn40_N9GG12113333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG12113333barEv,_ZTv0_n24_N9GG12113333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12113333barEv,_ZThn32_N9GG12113333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12113333barEv,_ZTv0_n12_N9GG12113333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12113333barEv,_ZThn24_N9GG12113333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12113333fooEv,_ZTv0_n12_N9GG12113333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12113333fooEv,_ZThn40_N9GG12113333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12113333fooEv,_ZThn16_N9GG12113333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12113333fooEv,_ZTv0_n20_N9GG12113333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12113333fooEv,_ZThn32_N9GG12113333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12113333fooEv,_ZThn8_N9GG12113333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1211333 = { "GG1211333", // class name
+ bases_GG1211333, 5,
+ &(vtc_GG1211333[0]), // expected_vtbl_contents
+ &(vtt_GG1211333[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1211333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1211333),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1211333),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names302,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1212113 : virtual EE121 , virtual FF211 {
+ int pg;
+ virtual void foo(); // _ZN9GG12121133fooEv
+ virtual void bar(); // _ZN9GG12121133barEv
+ ~GG1212113(); // tgen
+ GG1212113(); // tgen
+};
+//SIG(1 GG1212113) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1212113 ::foo(){vfunc_called(this, "_ZN9GG12121133fooEv");}
+void GG1212113 ::bar(){vfunc_called(this, "_ZN9GG12121133barEv");}
+GG1212113 ::~GG1212113(){ note_dtor("GG1212113", this);} // tgen
+GG1212113 ::GG1212113(){ note_ctor("GG1212113", this);} // tgen
+
+static void Test_GG1212113()
+{
+ extern Class_Descriptor cd_GG1212113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1212113, buf);
+ GG1212113 *dp, &lv = *(dp=new (buf) GG1212113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1212113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1212113)");
+ check_base_class_offset(lv, (AA1*)(EE121*), ABISELECT(32,16), "GG1212113");
+ check_base_class_offset(lv, (BB2*)(EE121*), ABISELECT(48,24), "GG1212113");
+ check_base_class_offset(lv, (EE121*), ABISELECT(16,8), "GG1212113");
+ check_base_class_offset(lv, (AA2*)(FF211*), ABISELECT(80,40), "GG1212113");
+ check_base_class_offset(lv, (BB1*)(FF211*), ABISELECT(96,48), "GG1212113");
+ check_base_class_offset(lv, (FF211*), ABISELECT(64,32), "GG1212113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1212113.pg");
+ test_class_info(&lv, &cd_GG1212113);
+ dp->~GG1212113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1212113(Test_GG1212113, "GG1212113", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1212113C1Ev();
+extern void _ZN9GG1212113D1Ev();
+Name_Map name_map_GG1212113[] = {
+ NSPAIR(_ZN9GG1212113C1Ev),
+ NSPAIR(_ZN9GG1212113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE121;
+extern VTBL_ENTRY _ZTI5EE121[];
+extern VTBL_ENTRY _ZTV5EE121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE121[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF211;
+extern VTBL_ENTRY _ZTI5FF211[];
+extern VTBL_ENTRY _ZTV5FF211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF211[];
+static Base_Class bases_GG1212113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE121, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF211, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1212113[];
+extern void _ZN9GG12121133fooEv();
+extern void _ZN9GG12121133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12121133fooEv,_ZTv0_n20_N9GG12121133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12121133fooEv,_ZThn8_N9GG12121133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12121133fooEv,_ZTv0_n12_N9GG12121133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12121133fooEv,_ZThn16_N9GG12121133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12121133barEv,_ZTv0_n12_N9GG12121133barEv)();
+extern void ABISELECT(_ZThn48_N9GG12121133barEv,_ZThn24_N9GG12121133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12121133fooEv,_ZTv0_n20_N9GG12121133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12121133fooEv,_ZThn32_N9GG12121133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12121133barEv,_ZTv0_n12_N9GG12121133barEv)();
+extern void ABISELECT(_ZThn80_N9GG12121133barEv,_ZThn40_N9GG12121133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12121133fooEv,_ZTv0_n12_N9GG12121133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG12121133fooEv,_ZThn48_N9GG12121133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1212113[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1212113[0]),
+ (VTBL_ENTRY)&_ZN9GG12121133fooEv,
+ (VTBL_ENTRY)&_ZN9GG12121133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1212113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12121133fooEv,_ZTv0_n20_N9GG12121133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1212113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12121133fooEv,_ZTv0_n12_N9GG12121133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1212113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12121133barEv,_ZTv0_n12_N9GG12121133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1212113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12121133fooEv,_ZTv0_n20_N9GG12121133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1212113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12121133barEv,_ZTv0_n12_N9GG12121133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1212113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12121133fooEv,_ZTv0_n12_N9GG12121133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1212113[];
+extern void _ZN5EE1213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE121__9GG1212113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN5EE1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE121__9GG1212113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE121__9GG1212113[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF2113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF211__9GG1212113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN5FF2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF211__9GG1212113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2113fooEv,_ZThn16_N5FF2113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF211__9GG1212113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv),
+};
+static VTT_ENTRY vtt_GG1212113[] = {
+ {&(_ZTV9GG1212113[8]), 8,38},
+ {&(_ZTV9GG1212113[15]), 15,38},
+ {&(_ZTV9GG1212113[19]), 19,38},
+ {&(_ZTV9GG1212113[23]), 23,38},
+ {&(_ZTV9GG1212113[29]), 29,38},
+ {&(_ZTV9GG1212113[33]), 33,38},
+ {&(_ZTV9GG1212113[37]), 37,38},
+ {&(_tg__ZTV5EE121__9GG1212113[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE121__9GG1212113[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE121__9GG1212113[3]), 3,4},
+ {&(_tg__ZTV5FF211__9GG1212113[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF211__9GG1212113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF211__9GG1212113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1212113[];
+extern VTBL_ENTRY _ZTV9GG1212113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1212113[];
+static VTBL_ENTRY alt_thunk_names303[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2113fooEv,_ZThn16_N5FF2113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12121133barEv,_ZTv0_n12_N9GG12121133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12121133barEv,_ZThn40_N9GG12121133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12121133barEv,_ZThn24_N9GG12121133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12121133fooEv,_ZTv0_n12_N9GG12121133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12121133fooEv,_ZThn48_N9GG12121133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12121133fooEv,_ZThn16_N9GG12121133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12121133fooEv,_ZTv0_n20_N9GG12121133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12121133fooEv,_ZThn32_N9GG12121133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12121133fooEv,_ZThn8_N9GG12121133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1212113 = { "GG1212113", // class name
+ bases_GG1212113, 6,
+ &(vtc_GG1212113[0]), // expected_vtbl_contents
+ &(vtt_GG1212113[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1212113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1212113),38, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1212113),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names303,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1212123 : virtual EE121 , virtual FF212 {
+ int pg;
+ virtual void foo(); // _ZN9GG12121233fooEv
+ virtual void bar(); // _ZN9GG12121233barEv
+ ~GG1212123(); // tgen
+ GG1212123(); // tgen
+};
+//SIG(1 GG1212123) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1212123 ::foo(){vfunc_called(this, "_ZN9GG12121233fooEv");}
+void GG1212123 ::bar(){vfunc_called(this, "_ZN9GG12121233barEv");}
+GG1212123 ::~GG1212123(){ note_dtor("GG1212123", this);} // tgen
+GG1212123 ::GG1212123(){ note_ctor("GG1212123", this);} // tgen
+
+static void Test_GG1212123()
+{
+ extern Class_Descriptor cd_GG1212123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1212123, buf);
+ GG1212123 *dp, &lv = *(dp=new (buf) GG1212123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1212123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1212123)");
+ check_base_class_offset(lv, (AA1*)(EE121*), ABISELECT(32,16), "GG1212123");
+ check_base_class_offset(lv, (BB2*)(EE121*), ABISELECT(48,24), "GG1212123");
+ check_base_class_offset(lv, (EE121*), ABISELECT(16,8), "GG1212123");
+ check_base_class_offset(lv, (AA2*)(FF212*), ABISELECT(80,40), "GG1212123");
+ check_base_class_offset(lv, (BB1*)(FF212*), ABISELECT(96,48), "GG1212123");
+ check_base_class_offset(lv, (FF212*), ABISELECT(64,32), "GG1212123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1212123.pg");
+ test_class_info(&lv, &cd_GG1212123);
+ dp->~GG1212123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1212123(Test_GG1212123, "GG1212123", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1212123C1Ev();
+extern void _ZN9GG1212123D1Ev();
+Name_Map name_map_GG1212123[] = {
+ NSPAIR(_ZN9GG1212123C1Ev),
+ NSPAIR(_ZN9GG1212123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE121;
+extern VTBL_ENTRY _ZTI5EE121[];
+extern VTBL_ENTRY _ZTV5EE121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE121[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF212;
+extern VTBL_ENTRY _ZTI5FF212[];
+extern VTBL_ENTRY _ZTV5FF212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF212[];
+static Base_Class bases_GG1212123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE121, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF212, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1212123[];
+extern void _ZN9GG12121233fooEv();
+extern void _ZN9GG12121233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12121233fooEv,_ZTv0_n20_N9GG12121233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12121233fooEv,_ZThn8_N9GG12121233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12121233fooEv,_ZTv0_n12_N9GG12121233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12121233fooEv,_ZThn16_N9GG12121233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12121233barEv,_ZTv0_n12_N9GG12121233barEv)();
+extern void ABISELECT(_ZThn48_N9GG12121233barEv,_ZThn24_N9GG12121233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12121233barEv,_ZTv0_n20_N9GG12121233barEv)();
+extern void ABISELECT(_ZThn64_N9GG12121233barEv,_ZThn32_N9GG12121233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12121233barEv,_ZTv0_n12_N9GG12121233barEv)();
+extern void ABISELECT(_ZThn80_N9GG12121233barEv,_ZThn40_N9GG12121233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12121233fooEv,_ZTv0_n12_N9GG12121233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG12121233fooEv,_ZThn48_N9GG12121233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1212123[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1212123[0]),
+ (VTBL_ENTRY)&_ZN9GG12121233fooEv,
+ (VTBL_ENTRY)&_ZN9GG12121233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1212123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12121233fooEv,_ZTv0_n20_N9GG12121233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1212123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12121233fooEv,_ZTv0_n12_N9GG12121233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1212123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12121233barEv,_ZTv0_n12_N9GG12121233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1212123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12121233barEv,_ZTv0_n20_N9GG12121233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1212123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12121233barEv,_ZTv0_n12_N9GG12121233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1212123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12121233fooEv,_ZTv0_n12_N9GG12121233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1212123[];
+extern void _ZN5EE1213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE121__9GG1212123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN5EE1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE121__9GG1212123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE121__9GG1212123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF2123barEv();
+static VTBL_ENTRY _tg__ZTV5FF212__9GG1212123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN5FF2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv)();
+extern void ABISELECT(_ZThn16_N5FF2123barEv,_ZThn8_N5FF2123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF212__9GG1212123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF212__9GG1212123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG1212123[] = {
+ {&(_ZTV9GG1212123[8]), 8,38},
+ {&(_ZTV9GG1212123[15]), 15,38},
+ {&(_ZTV9GG1212123[19]), 19,38},
+ {&(_ZTV9GG1212123[23]), 23,38},
+ {&(_ZTV9GG1212123[29]), 29,38},
+ {&(_ZTV9GG1212123[33]), 33,38},
+ {&(_ZTV9GG1212123[37]), 37,38},
+ {&(_tg__ZTV5EE121__9GG1212123[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE121__9GG1212123[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE121__9GG1212123[3]), 3,4},
+ {&(_tg__ZTV5FF212__9GG1212123[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF212__9GG1212123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF212__9GG1212123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1212123[];
+extern VTBL_ENTRY _ZTV9GG1212123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1212123[];
+static VTBL_ENTRY alt_thunk_names304[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2123barEv,_ZThn8_N5FF2123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12121233barEv,_ZTv0_n20_N9GG12121233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12121233barEv,_ZThn32_N9GG12121233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12121233barEv,_ZTv0_n12_N9GG12121233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12121233barEv,_ZThn40_N9GG12121233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12121233barEv,_ZThn24_N9GG12121233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12121233fooEv,_ZTv0_n12_N9GG12121233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12121233fooEv,_ZThn48_N9GG12121233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12121233fooEv,_ZThn16_N9GG12121233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12121233fooEv,_ZTv0_n20_N9GG12121233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12121233fooEv,_ZThn8_N9GG12121233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1212123 = { "GG1212123", // class name
+ bases_GG1212123, 6,
+ &(vtc_GG1212123[0]), // expected_vtbl_contents
+ &(vtt_GG1212123[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1212123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1212123),38, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1212123),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names304,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1212133 : virtual EE121 , virtual FF213 {
+ int pg;
+ virtual void foo(); // _ZN9GG12121333fooEv
+ virtual void bar(); // _ZN9GG12121333barEv
+ ~GG1212133(); // tgen
+ GG1212133(); // tgen
+};
+//SIG(1 GG1212133) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1212133 ::foo(){vfunc_called(this, "_ZN9GG12121333fooEv");}
+void GG1212133 ::bar(){vfunc_called(this, "_ZN9GG12121333barEv");}
+GG1212133 ::~GG1212133(){ note_dtor("GG1212133", this);} // tgen
+GG1212133 ::GG1212133(){ note_ctor("GG1212133", this);} // tgen
+
+static void Test_GG1212133()
+{
+ extern Class_Descriptor cd_GG1212133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1212133, buf);
+ GG1212133 *dp, &lv = *(dp=new (buf) GG1212133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1212133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1212133)");
+ check_base_class_offset(lv, (AA1*)(EE121*), ABISELECT(32,16), "GG1212133");
+ check_base_class_offset(lv, (BB2*)(EE121*), ABISELECT(48,24), "GG1212133");
+ check_base_class_offset(lv, (EE121*), ABISELECT(16,8), "GG1212133");
+ check_base_class_offset(lv, (AA2*)(FF213*), ABISELECT(80,40), "GG1212133");
+ check_base_class_offset(lv, (BB1*)(FF213*), ABISELECT(96,48), "GG1212133");
+ check_base_class_offset(lv, (FF213*), ABISELECT(64,32), "GG1212133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1212133.pg");
+ test_class_info(&lv, &cd_GG1212133);
+ dp->~GG1212133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1212133(Test_GG1212133, "GG1212133", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1212133C1Ev();
+extern void _ZN9GG1212133D1Ev();
+Name_Map name_map_GG1212133[] = {
+ NSPAIR(_ZN9GG1212133C1Ev),
+ NSPAIR(_ZN9GG1212133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE121;
+extern VTBL_ENTRY _ZTI5EE121[];
+extern VTBL_ENTRY _ZTV5EE121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE121[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF213;
+extern VTBL_ENTRY _ZTI5FF213[];
+extern VTBL_ENTRY _ZTV5FF213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF213[];
+static Base_Class bases_GG1212133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE121, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF213, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1212133[];
+extern void _ZN9GG12121333fooEv();
+extern void _ZN9GG12121333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12121333fooEv,_ZTv0_n20_N9GG12121333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12121333fooEv,_ZThn8_N9GG12121333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12121333fooEv,_ZTv0_n12_N9GG12121333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12121333fooEv,_ZThn16_N9GG12121333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12121333barEv,_ZTv0_n12_N9GG12121333barEv)();
+extern void ABISELECT(_ZThn48_N9GG12121333barEv,_ZThn24_N9GG12121333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12121333fooEv,_ZTv0_n20_N9GG12121333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12121333fooEv,_ZThn32_N9GG12121333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12121333barEv,_ZTv0_n24_N9GG12121333barEv)();
+extern void ABISELECT(_ZThn64_N9GG12121333barEv,_ZThn32_N9GG12121333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12121333barEv,_ZTv0_n12_N9GG12121333barEv)();
+extern void ABISELECT(_ZThn80_N9GG12121333barEv,_ZThn40_N9GG12121333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12121333fooEv,_ZTv0_n12_N9GG12121333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG12121333fooEv,_ZThn48_N9GG12121333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1212133[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1212133[0]),
+ (VTBL_ENTRY)&_ZN9GG12121333fooEv,
+ (VTBL_ENTRY)&_ZN9GG12121333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1212133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12121333fooEv,_ZTv0_n20_N9GG12121333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1212133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12121333fooEv,_ZTv0_n12_N9GG12121333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1212133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12121333barEv,_ZTv0_n12_N9GG12121333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1212133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12121333fooEv,_ZTv0_n20_N9GG12121333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12121333barEv,_ZTv0_n24_N9GG12121333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1212133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12121333barEv,_ZTv0_n12_N9GG12121333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1212133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12121333fooEv,_ZTv0_n12_N9GG12121333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1212133[];
+extern void _ZN5EE1213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE121__9GG1212133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN5EE1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE121__9GG1212133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE121__9GG1212133[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF2133fooEv();
+extern void _ZN5FF2133barEv();
+static VTBL_ENTRY _tg__ZTV5FF213__9GG1212133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&_ZN5FF2133fooEv,
+ (VTBL_ENTRY)&_ZN5FF2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv)();
+extern void ABISELECT(_ZThn16_N5FF2133barEv,_ZThn8_N5FF2133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF213__9GG1212133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2133fooEv,_ZThn16_N5FF2133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF213__9GG1212133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv),
+};
+static VTT_ENTRY vtt_GG1212133[] = {
+ {&(_ZTV9GG1212133[8]), 8,40},
+ {&(_ZTV9GG1212133[15]), 15,40},
+ {&(_ZTV9GG1212133[19]), 19,40},
+ {&(_ZTV9GG1212133[23]), 23,40},
+ {&(_ZTV9GG1212133[30]), 30,40},
+ {&(_ZTV9GG1212133[35]), 35,40},
+ {&(_ZTV9GG1212133[39]), 39,40},
+ {&(_tg__ZTV5EE121__9GG1212133[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE121__9GG1212133[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE121__9GG1212133[3]), 3,4},
+ {&(_tg__ZTV5FF213__9GG1212133[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF213__9GG1212133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF213__9GG1212133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1212133[];
+extern VTBL_ENTRY _ZTV9GG1212133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1212133[];
+static VTBL_ENTRY alt_thunk_names305[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2133fooEv,_ZThn16_N5FF2133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2133barEv,_ZThn8_N5FF2133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG12121333barEv,_ZTv0_n24_N9GG12121333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12121333barEv,_ZThn32_N9GG12121333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12121333barEv,_ZTv0_n12_N9GG12121333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12121333barEv,_ZThn40_N9GG12121333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12121333barEv,_ZThn24_N9GG12121333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12121333fooEv,_ZTv0_n12_N9GG12121333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12121333fooEv,_ZThn48_N9GG12121333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12121333fooEv,_ZThn16_N9GG12121333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12121333fooEv,_ZTv0_n20_N9GG12121333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12121333fooEv,_ZThn32_N9GG12121333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12121333fooEv,_ZThn8_N9GG12121333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1212133 = { "GG1212133", // class name
+ bases_GG1212133, 6,
+ &(vtc_GG1212133[0]), // expected_vtbl_contents
+ &(vtt_GG1212133[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1212133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1212133),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1212133),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names305,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1212213 : virtual EE121 , virtual FF221 {
+ int pg;
+ virtual void foo(); // _ZN9GG12122133fooEv
+ virtual void bar(); // _ZN9GG12122133barEv
+ ~GG1212213(); // tgen
+ GG1212213(); // tgen
+};
+//SIG(1 GG1212213) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG1212213 ::foo(){vfunc_called(this, "_ZN9GG12122133fooEv");}
+void GG1212213 ::bar(){vfunc_called(this, "_ZN9GG12122133barEv");}
+GG1212213 ::~GG1212213(){ note_dtor("GG1212213", this);} // tgen
+GG1212213 ::GG1212213(){ note_ctor("GG1212213", this);} // tgen
+
+static void Test_GG1212213()
+{
+ extern Class_Descriptor cd_GG1212213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1212213, buf);
+ GG1212213 *dp, &lv = *(dp=new (buf) GG1212213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1212213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1212213)");
+ check_base_class_offset(lv, (AA1*)(EE121*), ABISELECT(32,16), "GG1212213");
+ check_base_class_offset(lv, (BB2*)(EE121*), ABISELECT(48,24), "GG1212213");
+ check_base_class_offset(lv, (BB2*)(FF221*), ABISELECT(48,24), "GG1212213");
+ check_base_class_offset(lv, (EE121*), ABISELECT(16,8), "GG1212213");
+ check_base_class_offset(lv, (AA2*)(FF221*), ABISELECT(80,40), "GG1212213");
+ check_base_class_offset(lv, (FF221*), ABISELECT(64,32), "GG1212213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1212213.pg");
+ test_class_info(&lv, &cd_GG1212213);
+ dp->~GG1212213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1212213(Test_GG1212213, "GG1212213", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1212213C1Ev();
+extern void _ZN9GG1212213D1Ev();
+Name_Map name_map_GG1212213[] = {
+ NSPAIR(_ZN9GG1212213C1Ev),
+ NSPAIR(_ZN9GG1212213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE121;
+extern VTBL_ENTRY _ZTI5EE121[];
+extern VTBL_ENTRY _ZTV5EE121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE121[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF221;
+extern VTBL_ENTRY _ZTI5FF221[];
+extern VTBL_ENTRY _ZTV5FF221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF221[];
+static Base_Class bases_GG1212213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE121, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF221, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1212213[];
+extern void _ZN9GG12122133fooEv();
+extern void _ZN9GG12122133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12122133fooEv,_ZTv0_n20_N9GG12122133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12122133fooEv,_ZThn8_N9GG12122133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12122133fooEv,_ZTv0_n12_N9GG12122133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12122133fooEv,_ZThn16_N9GG12122133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12122133barEv,_ZTv0_n12_N9GG12122133barEv)();
+extern void ABISELECT(_ZThn48_N9GG12122133barEv,_ZThn24_N9GG12122133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12122133fooEv,_ZTv0_n20_N9GG12122133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12122133fooEv,_ZThn32_N9GG12122133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12122133barEv,_ZTv0_n12_N9GG12122133barEv)();
+extern void ABISELECT(_ZThn80_N9GG12122133barEv,_ZThn40_N9GG12122133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1212213[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1212213[0]),
+ (VTBL_ENTRY)&_ZN9GG12122133fooEv,
+ (VTBL_ENTRY)&_ZN9GG12122133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1212213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12122133fooEv,_ZTv0_n20_N9GG12122133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1212213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12122133fooEv,_ZTv0_n12_N9GG12122133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1212213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12122133barEv,_ZTv0_n12_N9GG12122133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1212213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12122133fooEv,_ZTv0_n20_N9GG12122133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1212213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12122133barEv,_ZTv0_n12_N9GG12122133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1212213[];
+extern void _ZN5EE1213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE121__9GG1212213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN5EE1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE121__9GG1212213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE121__9GG1212213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF2213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF221__9GG1212213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN5FF2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF221__9GG1212213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF221__9GG1212213[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG1212213[] = {
+ {&(_ZTV9GG1212213[7]), 7,33},
+ {&(_ZTV9GG1212213[14]), 14,33},
+ {&(_ZTV9GG1212213[18]), 18,33},
+ {&(_ZTV9GG1212213[22]), 22,33},
+ {&(_ZTV9GG1212213[28]), 28,33},
+ {&(_ZTV9GG1212213[32]), 32,33},
+ {&(_tg__ZTV5EE121__9GG1212213[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE121__9GG1212213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE121__9GG1212213[3]), 3,4},
+ {&(_tg__ZTV5FF221__9GG1212213[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF221__9GG1212213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF221__9GG1212213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1212213[];
+extern VTBL_ENTRY _ZTV9GG1212213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1212213[];
+static VTBL_ENTRY alt_thunk_names306[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12122133barEv,_ZTv0_n12_N9GG12122133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12122133barEv,_ZThn40_N9GG12122133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12122133barEv,_ZThn24_N9GG12122133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12122133fooEv,_ZTv0_n12_N9GG12122133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12122133fooEv,_ZThn16_N9GG12122133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12122133fooEv,_ZTv0_n20_N9GG12122133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12122133fooEv,_ZThn32_N9GG12122133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12122133fooEv,_ZThn8_N9GG12122133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1212213 = { "GG1212213", // class name
+ bases_GG1212213, 5,
+ &(vtc_GG1212213[0]), // expected_vtbl_contents
+ &(vtt_GG1212213[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1212213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1212213),33, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1212213),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names306,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1212222 : virtual EE121 , virtual FF222 {
+ int pg;
+ virtual void bar(); // _ZN9GG12122223barEv
+ ~GG1212222(); // tgen
+ GG1212222(); // tgen
+};
+//SIG(1 GG1212222) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v1 Fi} v1 Fi}
+
+
+void GG1212222 ::bar(){vfunc_called(this, "_ZN9GG12122223barEv");}
+GG1212222 ::~GG1212222(){ note_dtor("GG1212222", this);} // tgen
+GG1212222 ::GG1212222(){ note_ctor("GG1212222", this);} // tgen
+
+static void Test_GG1212222()
+{
+ extern Class_Descriptor cd_GG1212222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1212222, buf);
+ GG1212222 *dp, &lv = *(dp=new (buf) GG1212222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1212222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1212222)");
+ check_base_class_offset(lv, (AA1*)(EE121*), ABISELECT(32,16), "GG1212222");
+ check_base_class_offset(lv, (BB2*)(EE121*), ABISELECT(48,24), "GG1212222");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(48,24), "GG1212222");
+ check_base_class_offset(lv, (EE121*), ABISELECT(16,8), "GG1212222");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(80,40), "GG1212222");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG1212222");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1212222.pg");
+ test_class_info(&lv, &cd_GG1212222);
+ dp->~GG1212222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1212222(Test_GG1212222, "GG1212222", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1212222C1Ev();
+extern void _ZN9GG1212222D1Ev();
+Name_Map name_map_GG1212222[] = {
+ NSPAIR(_ZN9GG1212222C1Ev),
+ NSPAIR(_ZN9GG1212222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE121;
+extern VTBL_ENTRY _ZTI5EE121[];
+extern VTBL_ENTRY _ZTV5EE121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE121[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG1212222[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE121, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1212222[];
+extern void _ZN9GG12122223barEv();
+extern void _ZN5EE1213fooEv();
+extern void ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12122223barEv,_ZTv0_n12_N9GG12122223barEv)();
+extern void ABISELECT(_ZThn48_N9GG12122223barEv,_ZThn24_N9GG12122223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12122223barEv,_ZTv0_n20_N9GG12122223barEv)();
+extern void ABISELECT(_ZThn64_N9GG12122223barEv,_ZThn32_N9GG12122223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12122223barEv,_ZTv0_n12_N9GG12122223barEv)();
+extern void ABISELECT(_ZThn80_N9GG12122223barEv,_ZThn40_N9GG12122223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1212222[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1212222[0]),
+ (VTBL_ENTRY)&_ZN9GG12122223barEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1212222[0]),
+ (VTBL_ENTRY)&_ZN5EE1213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1212222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1212222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12122223barEv,_ZTv0_n12_N9GG12122223barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1212222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12122223barEv,_ZTv0_n20_N9GG12122223barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1212222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12122223barEv,_ZTv0_n12_N9GG12122223barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1212222[];
+extern void _ZN5EE1213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE121__9GG1212222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN5EE1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE121__9GG1212222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE121__9GG1212222[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG1212222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG1212222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG1212222[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG1212222[] = {
+ {&(_ZTV9GG1212222[7]), 7,32},
+ {&(_ZTV9GG1212222[13]), 13,32},
+ {&(_ZTV9GG1212222[17]), 17,32},
+ {&(_ZTV9GG1212222[21]), 21,32},
+ {&(_ZTV9GG1212222[27]), 27,32},
+ {&(_ZTV9GG1212222[31]), 31,32},
+ {&(_tg__ZTV5EE121__9GG1212222[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE121__9GG1212222[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE121__9GG1212222[3]), 3,4},
+ {&(_tg__ZTV5FF222__9GG1212222[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG1212222[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG1212222[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1212222[];
+extern VTBL_ENTRY _ZTV9GG1212222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1212222[];
+static VTBL_ENTRY alt_thunk_names307[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12122223barEv,_ZTv0_n20_N9GG12122223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12122223barEv,_ZThn32_N9GG12122223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12122223barEv,_ZTv0_n12_N9GG12122223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12122223barEv,_ZThn40_N9GG12122223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12122223barEv,_ZThn24_N9GG12122223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1212222 = { "GG1212222", // class name
+ bases_GG1212222, 5,
+ &(vtc_GG1212222[0]), // expected_vtbl_contents
+ &(vtt_GG1212222[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1212222),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1212222),32, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1212222),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names307,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1212223 : virtual EE121 , virtual FF222 {
+ int pg;
+ virtual void foo(); // _ZN9GG12122233fooEv
+ virtual void bar(); // _ZN9GG12122233barEv
+ ~GG1212223(); // tgen
+ GG1212223(); // tgen
+};
+//SIG(1 GG1212223) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG1212223 ::foo(){vfunc_called(this, "_ZN9GG12122233fooEv");}
+void GG1212223 ::bar(){vfunc_called(this, "_ZN9GG12122233barEv");}
+GG1212223 ::~GG1212223(){ note_dtor("GG1212223", this);} // tgen
+GG1212223 ::GG1212223(){ note_ctor("GG1212223", this);} // tgen
+
+static void Test_GG1212223()
+{
+ extern Class_Descriptor cd_GG1212223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1212223, buf);
+ GG1212223 *dp, &lv = *(dp=new (buf) GG1212223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1212223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1212223)");
+ check_base_class_offset(lv, (AA1*)(EE121*), ABISELECT(32,16), "GG1212223");
+ check_base_class_offset(lv, (BB2*)(EE121*), ABISELECT(48,24), "GG1212223");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(48,24), "GG1212223");
+ check_base_class_offset(lv, (EE121*), ABISELECT(16,8), "GG1212223");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(80,40), "GG1212223");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG1212223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1212223.pg");
+ test_class_info(&lv, &cd_GG1212223);
+ dp->~GG1212223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1212223(Test_GG1212223, "GG1212223", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1212223C1Ev();
+extern void _ZN9GG1212223D1Ev();
+Name_Map name_map_GG1212223[] = {
+ NSPAIR(_ZN9GG1212223C1Ev),
+ NSPAIR(_ZN9GG1212223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE121;
+extern VTBL_ENTRY _ZTI5EE121[];
+extern VTBL_ENTRY _ZTV5EE121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE121[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG1212223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE121, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1212223[];
+extern void _ZN9GG12122233fooEv();
+extern void _ZN9GG12122233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12122233fooEv,_ZTv0_n20_N9GG12122233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12122233fooEv,_ZThn8_N9GG12122233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12122233fooEv,_ZTv0_n12_N9GG12122233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12122233fooEv,_ZThn16_N9GG12122233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12122233barEv,_ZTv0_n12_N9GG12122233barEv)();
+extern void ABISELECT(_ZThn48_N9GG12122233barEv,_ZThn24_N9GG12122233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12122233barEv,_ZTv0_n20_N9GG12122233barEv)();
+extern void ABISELECT(_ZThn64_N9GG12122233barEv,_ZThn32_N9GG12122233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12122233barEv,_ZTv0_n12_N9GG12122233barEv)();
+extern void ABISELECT(_ZThn80_N9GG12122233barEv,_ZThn40_N9GG12122233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1212223[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1212223[0]),
+ (VTBL_ENTRY)&_ZN9GG12122233fooEv,
+ (VTBL_ENTRY)&_ZN9GG12122233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1212223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12122233fooEv,_ZTv0_n20_N9GG12122233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1212223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12122233fooEv,_ZTv0_n12_N9GG12122233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1212223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12122233barEv,_ZTv0_n12_N9GG12122233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1212223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12122233barEv,_ZTv0_n20_N9GG12122233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1212223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12122233barEv,_ZTv0_n12_N9GG12122233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1212223[];
+extern void _ZN5EE1213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE121__9GG1212223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN5EE1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE121__9GG1212223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE121__9GG1212223[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG1212223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG1212223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG1212223[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG1212223[] = {
+ {&(_ZTV9GG1212223[7]), 7,33},
+ {&(_ZTV9GG1212223[14]), 14,33},
+ {&(_ZTV9GG1212223[18]), 18,33},
+ {&(_ZTV9GG1212223[22]), 22,33},
+ {&(_ZTV9GG1212223[28]), 28,33},
+ {&(_ZTV9GG1212223[32]), 32,33},
+ {&(_tg__ZTV5EE121__9GG1212223[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE121__9GG1212223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE121__9GG1212223[3]), 3,4},
+ {&(_tg__ZTV5FF222__9GG1212223[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG1212223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG1212223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1212223[];
+extern VTBL_ENTRY _ZTV9GG1212223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1212223[];
+static VTBL_ENTRY alt_thunk_names308[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12122233barEv,_ZTv0_n20_N9GG12122233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12122233barEv,_ZThn32_N9GG12122233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12122233barEv,_ZTv0_n12_N9GG12122233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12122233barEv,_ZThn40_N9GG12122233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12122233barEv,_ZThn24_N9GG12122233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12122233fooEv,_ZTv0_n12_N9GG12122233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12122233fooEv,_ZThn16_N9GG12122233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12122233fooEv,_ZTv0_n20_N9GG12122233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12122233fooEv,_ZThn8_N9GG12122233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1212223 = { "GG1212223", // class name
+ bases_GG1212223, 5,
+ &(vtc_GG1212223[0]), // expected_vtbl_contents
+ &(vtt_GG1212223[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1212223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1212223),33, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1212223),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names308,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1212233 : virtual EE121 , virtual FF223 {
+ int pg;
+ virtual void foo(); // _ZN9GG12122333fooEv
+ virtual void bar(); // _ZN9GG12122333barEv
+ ~GG1212233(); // tgen
+ GG1212233(); // tgen
+};
+//SIG(1 GG1212233) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1212233 ::foo(){vfunc_called(this, "_ZN9GG12122333fooEv");}
+void GG1212233 ::bar(){vfunc_called(this, "_ZN9GG12122333barEv");}
+GG1212233 ::~GG1212233(){ note_dtor("GG1212233", this);} // tgen
+GG1212233 ::GG1212233(){ note_ctor("GG1212233", this);} // tgen
+
+static void Test_GG1212233()
+{
+ extern Class_Descriptor cd_GG1212233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1212233, buf);
+ GG1212233 *dp, &lv = *(dp=new (buf) GG1212233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1212233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1212233)");
+ check_base_class_offset(lv, (AA1*)(EE121*), ABISELECT(32,16), "GG1212233");
+ check_base_class_offset(lv, (BB2*)(EE121*), ABISELECT(48,24), "GG1212233");
+ check_base_class_offset(lv, (BB2*)(FF223*), ABISELECT(48,24), "GG1212233");
+ check_base_class_offset(lv, (EE121*), ABISELECT(16,8), "GG1212233");
+ check_base_class_offset(lv, (AA2*)(FF223*), ABISELECT(80,40), "GG1212233");
+ check_base_class_offset(lv, (FF223*), ABISELECT(64,32), "GG1212233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1212233.pg");
+ test_class_info(&lv, &cd_GG1212233);
+ dp->~GG1212233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1212233(Test_GG1212233, "GG1212233", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1212233C1Ev();
+extern void _ZN9GG1212233D1Ev();
+Name_Map name_map_GG1212233[] = {
+ NSPAIR(_ZN9GG1212233C1Ev),
+ NSPAIR(_ZN9GG1212233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE121;
+extern VTBL_ENTRY _ZTI5EE121[];
+extern VTBL_ENTRY _ZTV5EE121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE121[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF223;
+extern VTBL_ENTRY _ZTI5FF223[];
+extern VTBL_ENTRY _ZTV5FF223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF223[];
+static Base_Class bases_GG1212233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE121, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF223, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1212233[];
+extern void _ZN9GG12122333fooEv();
+extern void _ZN9GG12122333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12122333fooEv,_ZTv0_n20_N9GG12122333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12122333fooEv,_ZThn8_N9GG12122333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12122333fooEv,_ZTv0_n12_N9GG12122333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12122333fooEv,_ZThn16_N9GG12122333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12122333barEv,_ZTv0_n12_N9GG12122333barEv)();
+extern void ABISELECT(_ZThn48_N9GG12122333barEv,_ZThn24_N9GG12122333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12122333fooEv,_ZTv0_n20_N9GG12122333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12122333fooEv,_ZThn32_N9GG12122333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12122333barEv,_ZTv0_n24_N9GG12122333barEv)();
+extern void ABISELECT(_ZThn64_N9GG12122333barEv,_ZThn32_N9GG12122333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12122333barEv,_ZTv0_n12_N9GG12122333barEv)();
+extern void ABISELECT(_ZThn80_N9GG12122333barEv,_ZThn40_N9GG12122333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1212233[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1212233[0]),
+ (VTBL_ENTRY)&_ZN9GG12122333fooEv,
+ (VTBL_ENTRY)&_ZN9GG12122333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1212233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12122333fooEv,_ZTv0_n20_N9GG12122333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1212233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12122333fooEv,_ZTv0_n12_N9GG12122333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1212233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12122333barEv,_ZTv0_n12_N9GG12122333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1212233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12122333fooEv,_ZTv0_n20_N9GG12122333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12122333barEv,_ZTv0_n24_N9GG12122333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1212233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12122333barEv,_ZTv0_n12_N9GG12122333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1212233[];
+extern void _ZN5EE1213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE121__9GG1212233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN5EE1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE121__9GG1212233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE121__9GG1212233[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF2233fooEv();
+extern void _ZN5FF2233barEv();
+static VTBL_ENTRY _tg__ZTV5FF223__9GG1212233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&_ZN5FF2233fooEv,
+ (VTBL_ENTRY)&_ZN5FF2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+extern void ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF223__9GG1212233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF223__9GG1212233[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+static VTT_ENTRY vtt_GG1212233[] = {
+ {&(_ZTV9GG1212233[7]), 7,35},
+ {&(_ZTV9GG1212233[14]), 14,35},
+ {&(_ZTV9GG1212233[18]), 18,35},
+ {&(_ZTV9GG1212233[22]), 22,35},
+ {&(_ZTV9GG1212233[29]), 29,35},
+ {&(_ZTV9GG1212233[34]), 34,35},
+ {&(_tg__ZTV5EE121__9GG1212233[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE121__9GG1212233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE121__9GG1212233[3]), 3,4},
+ {&(_tg__ZTV5FF223__9GG1212233[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF223__9GG1212233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF223__9GG1212233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1212233[];
+extern VTBL_ENTRY _ZTV9GG1212233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1212233[];
+static VTBL_ENTRY alt_thunk_names309[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG12122333barEv,_ZTv0_n24_N9GG12122333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12122333barEv,_ZThn32_N9GG12122333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12122333barEv,_ZTv0_n12_N9GG12122333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12122333barEv,_ZThn40_N9GG12122333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12122333barEv,_ZThn24_N9GG12122333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12122333fooEv,_ZTv0_n12_N9GG12122333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12122333fooEv,_ZThn16_N9GG12122333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12122333fooEv,_ZTv0_n20_N9GG12122333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12122333fooEv,_ZThn32_N9GG12122333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12122333fooEv,_ZThn8_N9GG12122333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1212233 = { "GG1212233", // class name
+ bases_GG1212233, 5,
+ &(vtc_GG1212233[0]), // expected_vtbl_contents
+ &(vtt_GG1212233[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1212233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1212233),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1212233),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names309,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1212313 : virtual EE121 , virtual FF231 {
+ int pg;
+ virtual void foo(); // _ZN9GG12123133fooEv
+ virtual void bar(); // _ZN9GG12123133barEv
+ ~GG1212313(); // tgen
+ GG1212313(); // tgen
+};
+//SIG(1 GG1212313) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1212313 ::foo(){vfunc_called(this, "_ZN9GG12123133fooEv");}
+void GG1212313 ::bar(){vfunc_called(this, "_ZN9GG12123133barEv");}
+GG1212313 ::~GG1212313(){ note_dtor("GG1212313", this);} // tgen
+GG1212313 ::GG1212313(){ note_ctor("GG1212313", this);} // tgen
+
+static void Test_GG1212313()
+{
+ extern Class_Descriptor cd_GG1212313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1212313, buf);
+ GG1212313 *dp, &lv = *(dp=new (buf) GG1212313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1212313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1212313)");
+ check_base_class_offset(lv, (AA1*)(EE121*), ABISELECT(32,16), "GG1212313");
+ check_base_class_offset(lv, (BB2*)(EE121*), ABISELECT(48,24), "GG1212313");
+ check_base_class_offset(lv, (EE121*), ABISELECT(16,8), "GG1212313");
+ check_base_class_offset(lv, (AA2*)(FF231*), ABISELECT(80,40), "GG1212313");
+ check_base_class_offset(lv, (BB3*)(FF231*), ABISELECT(96,48), "GG1212313");
+ check_base_class_offset(lv, (FF231*), ABISELECT(64,32), "GG1212313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1212313.pg");
+ test_class_info(&lv, &cd_GG1212313);
+ dp->~GG1212313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1212313(Test_GG1212313, "GG1212313", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1212313C1Ev();
+extern void _ZN9GG1212313D1Ev();
+Name_Map name_map_GG1212313[] = {
+ NSPAIR(_ZN9GG1212313C1Ev),
+ NSPAIR(_ZN9GG1212313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE121;
+extern VTBL_ENTRY _ZTI5EE121[];
+extern VTBL_ENTRY _ZTV5EE121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE121[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF231;
+extern VTBL_ENTRY _ZTI5FF231[];
+extern VTBL_ENTRY _ZTV5FF231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF231[];
+static Base_Class bases_GG1212313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE121, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF231, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1212313[];
+extern void _ZN9GG12123133fooEv();
+extern void _ZN9GG12123133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12123133fooEv,_ZTv0_n20_N9GG12123133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12123133fooEv,_ZThn8_N9GG12123133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12123133fooEv,_ZTv0_n12_N9GG12123133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12123133fooEv,_ZThn16_N9GG12123133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12123133barEv,_ZTv0_n12_N9GG12123133barEv)();
+extern void ABISELECT(_ZThn48_N9GG12123133barEv,_ZThn24_N9GG12123133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12123133fooEv,_ZTv0_n20_N9GG12123133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12123133fooEv,_ZThn32_N9GG12123133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12123133barEv,_ZTv0_n12_N9GG12123133barEv)();
+extern void ABISELECT(_ZThn80_N9GG12123133barEv,_ZThn40_N9GG12123133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12123133fooEv,_ZTv0_n12_N9GG12123133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG12123133fooEv,_ZThn48_N9GG12123133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12123133barEv,_ZTv0_n16_N9GG12123133barEv)();
+extern void ABISELECT(_ZThn96_N9GG12123133barEv,_ZThn48_N9GG12123133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1212313[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1212313[0]),
+ (VTBL_ENTRY)&_ZN9GG12123133fooEv,
+ (VTBL_ENTRY)&_ZN9GG12123133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1212313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12123133fooEv,_ZTv0_n20_N9GG12123133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1212313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12123133fooEv,_ZTv0_n12_N9GG12123133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1212313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12123133barEv,_ZTv0_n12_N9GG12123133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1212313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12123133fooEv,_ZTv0_n20_N9GG12123133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1212313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12123133barEv,_ZTv0_n12_N9GG12123133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1212313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12123133fooEv,_ZTv0_n12_N9GG12123133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12123133barEv,_ZTv0_n16_N9GG12123133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1212313[];
+extern void _ZN5EE1213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE121__9GG1212313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN5EE1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE121__9GG1212313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE121__9GG1212313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF2313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF231__9GG1212313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN5FF2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF231__9GG1212313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2313fooEv,_ZThn16_N5FF2313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF231__9GG1212313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG1212313[] = {
+ {&(_ZTV9GG1212313[8]), 8,40},
+ {&(_ZTV9GG1212313[15]), 15,40},
+ {&(_ZTV9GG1212313[19]), 19,40},
+ {&(_ZTV9GG1212313[23]), 23,40},
+ {&(_ZTV9GG1212313[29]), 29,40},
+ {&(_ZTV9GG1212313[33]), 33,40},
+ {&(_ZTV9GG1212313[38]), 38,40},
+ {&(_tg__ZTV5EE121__9GG1212313[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE121__9GG1212313[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE121__9GG1212313[3]), 3,4},
+ {&(_tg__ZTV5FF231__9GG1212313[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF231__9GG1212313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF231__9GG1212313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1212313[];
+extern VTBL_ENTRY _ZTV9GG1212313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1212313[];
+static VTBL_ENTRY alt_thunk_names310[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2313fooEv,_ZThn16_N5FF2313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG12123133barEv,_ZTv0_n16_N9GG12123133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12123133barEv,_ZThn48_N9GG12123133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12123133barEv,_ZTv0_n12_N9GG12123133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12123133barEv,_ZThn40_N9GG12123133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12123133barEv,_ZThn24_N9GG12123133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12123133fooEv,_ZTv0_n12_N9GG12123133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12123133fooEv,_ZThn48_N9GG12123133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12123133fooEv,_ZThn16_N9GG12123133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12123133fooEv,_ZTv0_n20_N9GG12123133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12123133fooEv,_ZThn32_N9GG12123133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12123133fooEv,_ZThn8_N9GG12123133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1212313 = { "GG1212313", // class name
+ bases_GG1212313, 6,
+ &(vtc_GG1212313[0]), // expected_vtbl_contents
+ &(vtt_GG1212313[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1212313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1212313),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1212313),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names310,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1212323 : virtual EE121 , virtual FF232 {
+ int pg;
+ virtual void foo(); // _ZN9GG12123233fooEv
+ virtual void bar(); // _ZN9GG12123233barEv
+ ~GG1212323(); // tgen
+ GG1212323(); // tgen
+};
+//SIG(1 GG1212323) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1212323 ::foo(){vfunc_called(this, "_ZN9GG12123233fooEv");}
+void GG1212323 ::bar(){vfunc_called(this, "_ZN9GG12123233barEv");}
+GG1212323 ::~GG1212323(){ note_dtor("GG1212323", this);} // tgen
+GG1212323 ::GG1212323(){ note_ctor("GG1212323", this);} // tgen
+
+static void Test_GG1212323()
+{
+ extern Class_Descriptor cd_GG1212323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1212323, buf);
+ GG1212323 *dp, &lv = *(dp=new (buf) GG1212323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1212323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1212323)");
+ check_base_class_offset(lv, (AA1*)(EE121*), ABISELECT(32,16), "GG1212323");
+ check_base_class_offset(lv, (BB2*)(EE121*), ABISELECT(48,24), "GG1212323");
+ check_base_class_offset(lv, (EE121*), ABISELECT(16,8), "GG1212323");
+ check_base_class_offset(lv, (AA2*)(FF232*), ABISELECT(80,40), "GG1212323");
+ check_base_class_offset(lv, (BB3*)(FF232*), ABISELECT(96,48), "GG1212323");
+ check_base_class_offset(lv, (FF232*), ABISELECT(64,32), "GG1212323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1212323.pg");
+ test_class_info(&lv, &cd_GG1212323);
+ dp->~GG1212323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1212323(Test_GG1212323, "GG1212323", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1212323C1Ev();
+extern void _ZN9GG1212323D1Ev();
+Name_Map name_map_GG1212323[] = {
+ NSPAIR(_ZN9GG1212323C1Ev),
+ NSPAIR(_ZN9GG1212323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE121;
+extern VTBL_ENTRY _ZTI5EE121[];
+extern VTBL_ENTRY _ZTV5EE121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE121[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF232;
+extern VTBL_ENTRY _ZTI5FF232[];
+extern VTBL_ENTRY _ZTV5FF232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF232[];
+static Base_Class bases_GG1212323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE121, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF232, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1212323[];
+extern void _ZN9GG12123233fooEv();
+extern void _ZN9GG12123233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12123233fooEv,_ZTv0_n20_N9GG12123233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12123233fooEv,_ZThn8_N9GG12123233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12123233fooEv,_ZTv0_n12_N9GG12123233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12123233fooEv,_ZThn16_N9GG12123233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12123233barEv,_ZTv0_n12_N9GG12123233barEv)();
+extern void ABISELECT(_ZThn48_N9GG12123233barEv,_ZThn24_N9GG12123233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12123233barEv,_ZTv0_n20_N9GG12123233barEv)();
+extern void ABISELECT(_ZThn64_N9GG12123233barEv,_ZThn32_N9GG12123233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12123233barEv,_ZTv0_n12_N9GG12123233barEv)();
+extern void ABISELECT(_ZThn80_N9GG12123233barEv,_ZThn40_N9GG12123233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12123233fooEv,_ZTv0_n12_N9GG12123233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG12123233fooEv,_ZThn48_N9GG12123233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12123233barEv,_ZTv0_n16_N9GG12123233barEv)();
+extern void ABISELECT(_ZThn96_N9GG12123233barEv,_ZThn48_N9GG12123233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1212323[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1212323[0]),
+ (VTBL_ENTRY)&_ZN9GG12123233fooEv,
+ (VTBL_ENTRY)&_ZN9GG12123233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1212323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12123233fooEv,_ZTv0_n20_N9GG12123233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1212323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12123233fooEv,_ZTv0_n12_N9GG12123233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1212323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12123233barEv,_ZTv0_n12_N9GG12123233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1212323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12123233barEv,_ZTv0_n20_N9GG12123233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1212323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12123233barEv,_ZTv0_n12_N9GG12123233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1212323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12123233fooEv,_ZTv0_n12_N9GG12123233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12123233barEv,_ZTv0_n16_N9GG12123233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1212323[];
+extern void _ZN5EE1213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE121__9GG1212323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN5EE1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE121__9GG1212323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE121__9GG1212323[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF2323barEv();
+static VTBL_ENTRY _tg__ZTV5FF232__9GG1212323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN5FF2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv)();
+extern void ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF232__9GG1212323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv)();
+extern void ABISELECT(_ZThn32_N5FF2323barEv,_ZThn16_N5FF2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF232__9GG1212323[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv),
+};
+static VTT_ENTRY vtt_GG1212323[] = {
+ {&(_ZTV9GG1212323[8]), 8,40},
+ {&(_ZTV9GG1212323[15]), 15,40},
+ {&(_ZTV9GG1212323[19]), 19,40},
+ {&(_ZTV9GG1212323[23]), 23,40},
+ {&(_ZTV9GG1212323[29]), 29,40},
+ {&(_ZTV9GG1212323[33]), 33,40},
+ {&(_ZTV9GG1212323[38]), 38,40},
+ {&(_tg__ZTV5EE121__9GG1212323[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE121__9GG1212323[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE121__9GG1212323[3]), 3,4},
+ {&(_tg__ZTV5FF232__9GG1212323[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF232__9GG1212323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF232__9GG1212323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1212323[];
+extern VTBL_ENTRY _ZTV9GG1212323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1212323[];
+static VTBL_ENTRY alt_thunk_names311[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2323barEv,_ZThn16_N5FF2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG12123233barEv,_ZTv0_n16_N9GG12123233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12123233barEv,_ZThn48_N9GG12123233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12123233barEv,_ZTv0_n20_N9GG12123233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12123233barEv,_ZThn32_N9GG12123233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12123233barEv,_ZTv0_n12_N9GG12123233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12123233barEv,_ZThn40_N9GG12123233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12123233barEv,_ZThn24_N9GG12123233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12123233fooEv,_ZTv0_n12_N9GG12123233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12123233fooEv,_ZThn48_N9GG12123233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12123233fooEv,_ZThn16_N9GG12123233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12123233fooEv,_ZTv0_n20_N9GG12123233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12123233fooEv,_ZThn8_N9GG12123233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1212323 = { "GG1212323", // class name
+ bases_GG1212323, 6,
+ &(vtc_GG1212323[0]), // expected_vtbl_contents
+ &(vtt_GG1212323[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1212323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1212323),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1212323),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names311,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1212333 : virtual EE121 , virtual FF233 {
+ int pg;
+ virtual void foo(); // _ZN9GG12123333fooEv
+ virtual void bar(); // _ZN9GG12123333barEv
+ ~GG1212333(); // tgen
+ GG1212333(); // tgen
+};
+//SIG(1 GG1212333) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1212333 ::foo(){vfunc_called(this, "_ZN9GG12123333fooEv");}
+void GG1212333 ::bar(){vfunc_called(this, "_ZN9GG12123333barEv");}
+GG1212333 ::~GG1212333(){ note_dtor("GG1212333", this);} // tgen
+GG1212333 ::GG1212333(){ note_ctor("GG1212333", this);} // tgen
+
+static void Test_GG1212333()
+{
+ extern Class_Descriptor cd_GG1212333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1212333, buf);
+ GG1212333 *dp, &lv = *(dp=new (buf) GG1212333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1212333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1212333)");
+ check_base_class_offset(lv, (AA1*)(EE121*), ABISELECT(32,16), "GG1212333");
+ check_base_class_offset(lv, (BB2*)(EE121*), ABISELECT(48,24), "GG1212333");
+ check_base_class_offset(lv, (EE121*), ABISELECT(16,8), "GG1212333");
+ check_base_class_offset(lv, (AA2*)(FF233*), ABISELECT(80,40), "GG1212333");
+ check_base_class_offset(lv, (BB3*)(FF233*), ABISELECT(96,48), "GG1212333");
+ check_base_class_offset(lv, (FF233*), ABISELECT(64,32), "GG1212333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1212333.pg");
+ test_class_info(&lv, &cd_GG1212333);
+ dp->~GG1212333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1212333(Test_GG1212333, "GG1212333", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1212333C1Ev();
+extern void _ZN9GG1212333D1Ev();
+Name_Map name_map_GG1212333[] = {
+ NSPAIR(_ZN9GG1212333C1Ev),
+ NSPAIR(_ZN9GG1212333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE121;
+extern VTBL_ENTRY _ZTI5EE121[];
+extern VTBL_ENTRY _ZTV5EE121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE121[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF233;
+extern VTBL_ENTRY _ZTI5FF233[];
+extern VTBL_ENTRY _ZTV5FF233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF233[];
+static Base_Class bases_GG1212333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE121, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF233, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1212333[];
+extern void _ZN9GG12123333fooEv();
+extern void _ZN9GG12123333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12123333fooEv,_ZTv0_n20_N9GG12123333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12123333fooEv,_ZThn8_N9GG12123333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12123333fooEv,_ZTv0_n12_N9GG12123333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12123333fooEv,_ZThn16_N9GG12123333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12123333barEv,_ZTv0_n12_N9GG12123333barEv)();
+extern void ABISELECT(_ZThn48_N9GG12123333barEv,_ZThn24_N9GG12123333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12123333fooEv,_ZTv0_n20_N9GG12123333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12123333fooEv,_ZThn32_N9GG12123333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12123333barEv,_ZTv0_n24_N9GG12123333barEv)();
+extern void ABISELECT(_ZThn64_N9GG12123333barEv,_ZThn32_N9GG12123333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12123333barEv,_ZTv0_n12_N9GG12123333barEv)();
+extern void ABISELECT(_ZThn80_N9GG12123333barEv,_ZThn40_N9GG12123333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12123333fooEv,_ZTv0_n12_N9GG12123333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG12123333fooEv,_ZThn48_N9GG12123333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12123333barEv,_ZTv0_n16_N9GG12123333barEv)();
+extern void ABISELECT(_ZThn96_N9GG12123333barEv,_ZThn48_N9GG12123333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1212333[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1212333[0]),
+ (VTBL_ENTRY)&_ZN9GG12123333fooEv,
+ (VTBL_ENTRY)&_ZN9GG12123333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1212333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12123333fooEv,_ZTv0_n20_N9GG12123333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1212333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12123333fooEv,_ZTv0_n12_N9GG12123333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1212333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12123333barEv,_ZTv0_n12_N9GG12123333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1212333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12123333fooEv,_ZTv0_n20_N9GG12123333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12123333barEv,_ZTv0_n24_N9GG12123333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1212333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12123333barEv,_ZTv0_n12_N9GG12123333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1212333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12123333fooEv,_ZTv0_n12_N9GG12123333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12123333barEv,_ZTv0_n16_N9GG12123333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1212333[];
+extern void _ZN5EE1213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE121__9GG1212333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN5EE1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE121__9GG1212333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE121__9GG1212333[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF2333fooEv();
+extern void _ZN5FF2333barEv();
+static VTBL_ENTRY _tg__ZTV5FF233__9GG1212333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&_ZN5FF2333fooEv,
+ (VTBL_ENTRY)&_ZN5FF2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv)();
+extern void ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF233__9GG1212333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2333fooEv,_ZThn16_N5FF2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv)();
+extern void ABISELECT(_ZThn32_N5FF2333barEv,_ZThn16_N5FF2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF233__9GG1212333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv),
+};
+static VTT_ENTRY vtt_GG1212333[] = {
+ {&(_ZTV9GG1212333[8]), 8,42},
+ {&(_ZTV9GG1212333[15]), 15,42},
+ {&(_ZTV9GG1212333[19]), 19,42},
+ {&(_ZTV9GG1212333[23]), 23,42},
+ {&(_ZTV9GG1212333[30]), 30,42},
+ {&(_ZTV9GG1212333[35]), 35,42},
+ {&(_ZTV9GG1212333[40]), 40,42},
+ {&(_tg__ZTV5EE121__9GG1212333[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE121__9GG1212333[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE121__9GG1212333[3]), 3,4},
+ {&(_tg__ZTV5FF233__9GG1212333[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF233__9GG1212333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF233__9GG1212333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1212333[];
+extern VTBL_ENTRY _ZTV9GG1212333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1212333[];
+static VTBL_ENTRY alt_thunk_names312[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2333barEv,_ZThn16_N5FF2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2333fooEv,_ZThn16_N5FF2333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG12123333barEv,_ZTv0_n16_N9GG12123333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12123333barEv,_ZThn48_N9GG12123333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG12123333barEv,_ZTv0_n24_N9GG12123333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12123333barEv,_ZThn32_N9GG12123333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12123333barEv,_ZTv0_n12_N9GG12123333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12123333barEv,_ZThn40_N9GG12123333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12123333barEv,_ZThn24_N9GG12123333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12123333fooEv,_ZTv0_n12_N9GG12123333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12123333fooEv,_ZThn48_N9GG12123333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12123333fooEv,_ZThn16_N9GG12123333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12123333fooEv,_ZTv0_n20_N9GG12123333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12123333fooEv,_ZThn32_N9GG12123333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12123333fooEv,_ZThn8_N9GG12123333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1212333 = { "GG1212333", // class name
+ bases_GG1212333, 6,
+ &(vtc_GG1212333[0]), // expected_vtbl_contents
+ &(vtt_GG1212333[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1212333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1212333),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1212333),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names312,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1213113 : virtual EE121 , virtual FF311 {
+ int pg;
+ virtual void foo(); // _ZN9GG12131133fooEv
+ virtual void bar(); // _ZN9GG12131133barEv
+ ~GG1213113(); // tgen
+ GG1213113(); // tgen
+};
+//SIG(1 GG1213113) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1213113 ::foo(){vfunc_called(this, "_ZN9GG12131133fooEv");}
+void GG1213113 ::bar(){vfunc_called(this, "_ZN9GG12131133barEv");}
+GG1213113 ::~GG1213113(){ note_dtor("GG1213113", this);} // tgen
+GG1213113 ::GG1213113(){ note_ctor("GG1213113", this);} // tgen
+
+static void Test_GG1213113()
+{
+ extern Class_Descriptor cd_GG1213113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1213113, buf);
+ GG1213113 *dp, &lv = *(dp=new (buf) GG1213113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1213113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1213113)");
+ check_base_class_offset(lv, (AA1*)(EE121*), ABISELECT(32,16), "GG1213113");
+ check_base_class_offset(lv, (BB2*)(EE121*), ABISELECT(48,24), "GG1213113");
+ check_base_class_offset(lv, (EE121*), ABISELECT(16,8), "GG1213113");
+ check_base_class_offset(lv, (AA3*)(FF311*), ABISELECT(80,40), "GG1213113");
+ check_base_class_offset(lv, (BB1*)(FF311*), ABISELECT(96,48), "GG1213113");
+ check_base_class_offset(lv, (FF311*), ABISELECT(64,32), "GG1213113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1213113.pg");
+ test_class_info(&lv, &cd_GG1213113);
+ dp->~GG1213113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1213113(Test_GG1213113, "GG1213113", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1213113C1Ev();
+extern void _ZN9GG1213113D1Ev();
+Name_Map name_map_GG1213113[] = {
+ NSPAIR(_ZN9GG1213113C1Ev),
+ NSPAIR(_ZN9GG1213113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE121;
+extern VTBL_ENTRY _ZTI5EE121[];
+extern VTBL_ENTRY _ZTV5EE121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE121[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF311;
+extern VTBL_ENTRY _ZTI5FF311[];
+extern VTBL_ENTRY _ZTV5FF311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF311[];
+static Base_Class bases_GG1213113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE121, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF311, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1213113[];
+extern void _ZN9GG12131133fooEv();
+extern void _ZN9GG12131133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12131133fooEv,_ZTv0_n20_N9GG12131133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12131133fooEv,_ZThn8_N9GG12131133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12131133fooEv,_ZTv0_n12_N9GG12131133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12131133fooEv,_ZThn16_N9GG12131133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12131133barEv,_ZTv0_n12_N9GG12131133barEv)();
+extern void ABISELECT(_ZThn48_N9GG12131133barEv,_ZThn24_N9GG12131133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12131133fooEv,_ZTv0_n20_N9GG12131133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12131133fooEv,_ZThn32_N9GG12131133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12131133fooEv,_ZTv0_n12_N9GG12131133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG12131133fooEv,_ZThn40_N9GG12131133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12131133barEv,_ZTv0_n16_N9GG12131133barEv)();
+extern void ABISELECT(_ZThn80_N9GG12131133barEv,_ZThn40_N9GG12131133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12131133fooEv,_ZTv0_n12_N9GG12131133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG12131133fooEv,_ZThn48_N9GG12131133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1213113[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1213113[0]),
+ (VTBL_ENTRY)&_ZN9GG12131133fooEv,
+ (VTBL_ENTRY)&_ZN9GG12131133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1213113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12131133fooEv,_ZTv0_n20_N9GG12131133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1213113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12131133fooEv,_ZTv0_n12_N9GG12131133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1213113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12131133barEv,_ZTv0_n12_N9GG12131133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1213113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12131133fooEv,_ZTv0_n20_N9GG12131133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1213113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12131133fooEv,_ZTv0_n12_N9GG12131133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12131133barEv,_ZTv0_n16_N9GG12131133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1213113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12131133fooEv,_ZTv0_n12_N9GG12131133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1213113[];
+extern void _ZN5EE1213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE121__9GG1213113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN5EE1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE121__9GG1213113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE121__9GG1213113[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF3113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF311__9GG1213113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&_ZN5FF3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF311__9GG1213113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3113fooEv,_ZThn16_N5FF3113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF311__9GG1213113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+};
+static VTT_ENTRY vtt_GG1213113[] = {
+ {&(_ZTV9GG1213113[8]), 8,40},
+ {&(_ZTV9GG1213113[15]), 15,40},
+ {&(_ZTV9GG1213113[19]), 19,40},
+ {&(_ZTV9GG1213113[23]), 23,40},
+ {&(_ZTV9GG1213113[29]), 29,40},
+ {&(_ZTV9GG1213113[34]), 34,40},
+ {&(_ZTV9GG1213113[39]), 39,40},
+ {&(_tg__ZTV5EE121__9GG1213113[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE121__9GG1213113[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE121__9GG1213113[3]), 3,4},
+ {&(_tg__ZTV5FF311__9GG1213113[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF311__9GG1213113[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF311__9GG1213113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1213113[];
+extern VTBL_ENTRY _ZTV9GG1213113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1213113[];
+static VTBL_ENTRY alt_thunk_names313[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3113fooEv,_ZThn16_N5FF3113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG12131133barEv,_ZTv0_n16_N9GG12131133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12131133barEv,_ZThn40_N9GG12131133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12131133barEv,_ZTv0_n12_N9GG12131133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12131133barEv,_ZThn24_N9GG12131133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12131133fooEv,_ZTv0_n12_N9GG12131133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12131133fooEv,_ZThn48_N9GG12131133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12131133fooEv,_ZThn40_N9GG12131133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12131133fooEv,_ZThn16_N9GG12131133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12131133fooEv,_ZTv0_n20_N9GG12131133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12131133fooEv,_ZThn32_N9GG12131133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12131133fooEv,_ZThn8_N9GG12131133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1213113 = { "GG1213113", // class name
+ bases_GG1213113, 6,
+ &(vtc_GG1213113[0]), // expected_vtbl_contents
+ &(vtt_GG1213113[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1213113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1213113),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1213113),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names313,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1213123 : virtual EE121 , virtual FF312 {
+ int pg;
+ virtual void foo(); // _ZN9GG12131233fooEv
+ virtual void bar(); // _ZN9GG12131233barEv
+ ~GG1213123(); // tgen
+ GG1213123(); // tgen
+};
+//SIG(1 GG1213123) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1213123 ::foo(){vfunc_called(this, "_ZN9GG12131233fooEv");}
+void GG1213123 ::bar(){vfunc_called(this, "_ZN9GG12131233barEv");}
+GG1213123 ::~GG1213123(){ note_dtor("GG1213123", this);} // tgen
+GG1213123 ::GG1213123(){ note_ctor("GG1213123", this);} // tgen
+
+static void Test_GG1213123()
+{
+ extern Class_Descriptor cd_GG1213123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1213123, buf);
+ GG1213123 *dp, &lv = *(dp=new (buf) GG1213123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1213123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1213123)");
+ check_base_class_offset(lv, (AA1*)(EE121*), ABISELECT(32,16), "GG1213123");
+ check_base_class_offset(lv, (BB2*)(EE121*), ABISELECT(48,24), "GG1213123");
+ check_base_class_offset(lv, (EE121*), ABISELECT(16,8), "GG1213123");
+ check_base_class_offset(lv, (AA3*)(FF312*), ABISELECT(80,40), "GG1213123");
+ check_base_class_offset(lv, (BB1*)(FF312*), ABISELECT(96,48), "GG1213123");
+ check_base_class_offset(lv, (FF312*), ABISELECT(64,32), "GG1213123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1213123.pg");
+ test_class_info(&lv, &cd_GG1213123);
+ dp->~GG1213123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1213123(Test_GG1213123, "GG1213123", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1213123C1Ev();
+extern void _ZN9GG1213123D1Ev();
+Name_Map name_map_GG1213123[] = {
+ NSPAIR(_ZN9GG1213123C1Ev),
+ NSPAIR(_ZN9GG1213123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE121;
+extern VTBL_ENTRY _ZTI5EE121[];
+extern VTBL_ENTRY _ZTV5EE121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE121[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF312;
+extern VTBL_ENTRY _ZTI5FF312[];
+extern VTBL_ENTRY _ZTV5FF312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF312[];
+static Base_Class bases_GG1213123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE121, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF312, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1213123[];
+extern void _ZN9GG12131233fooEv();
+extern void _ZN9GG12131233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12131233fooEv,_ZTv0_n20_N9GG12131233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12131233fooEv,_ZThn8_N9GG12131233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12131233fooEv,_ZTv0_n12_N9GG12131233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12131233fooEv,_ZThn16_N9GG12131233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12131233barEv,_ZTv0_n12_N9GG12131233barEv)();
+extern void ABISELECT(_ZThn48_N9GG12131233barEv,_ZThn24_N9GG12131233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12131233barEv,_ZTv0_n20_N9GG12131233barEv)();
+extern void ABISELECT(_ZThn64_N9GG12131233barEv,_ZThn32_N9GG12131233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12131233fooEv,_ZTv0_n12_N9GG12131233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG12131233fooEv,_ZThn40_N9GG12131233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12131233barEv,_ZTv0_n16_N9GG12131233barEv)();
+extern void ABISELECT(_ZThn80_N9GG12131233barEv,_ZThn40_N9GG12131233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12131233fooEv,_ZTv0_n12_N9GG12131233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG12131233fooEv,_ZThn48_N9GG12131233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1213123[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1213123[0]),
+ (VTBL_ENTRY)&_ZN9GG12131233fooEv,
+ (VTBL_ENTRY)&_ZN9GG12131233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1213123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12131233fooEv,_ZTv0_n20_N9GG12131233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1213123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12131233fooEv,_ZTv0_n12_N9GG12131233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1213123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12131233barEv,_ZTv0_n12_N9GG12131233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1213123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12131233barEv,_ZTv0_n20_N9GG12131233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1213123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12131233fooEv,_ZTv0_n12_N9GG12131233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12131233barEv,_ZTv0_n16_N9GG12131233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1213123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12131233fooEv,_ZTv0_n12_N9GG12131233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1213123[];
+extern void _ZN5EE1213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE121__9GG1213123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN5EE1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE121__9GG1213123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE121__9GG1213123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF3123barEv();
+static VTBL_ENTRY _tg__ZTV5FF312__9GG1213123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN5FF3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv)();
+extern void ABISELECT(_ZThn16_N5FF3123barEv,_ZThn8_N5FF3123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF312__9GG1213123[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF312__9GG1213123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG1213123[] = {
+ {&(_ZTV9GG1213123[8]), 8,40},
+ {&(_ZTV9GG1213123[15]), 15,40},
+ {&(_ZTV9GG1213123[19]), 19,40},
+ {&(_ZTV9GG1213123[23]), 23,40},
+ {&(_ZTV9GG1213123[29]), 29,40},
+ {&(_ZTV9GG1213123[34]), 34,40},
+ {&(_ZTV9GG1213123[39]), 39,40},
+ {&(_tg__ZTV5EE121__9GG1213123[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE121__9GG1213123[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE121__9GG1213123[3]), 3,4},
+ {&(_tg__ZTV5FF312__9GG1213123[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF312__9GG1213123[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF312__9GG1213123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1213123[];
+extern VTBL_ENTRY _ZTV9GG1213123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1213123[];
+static VTBL_ENTRY alt_thunk_names314[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3123barEv,_ZThn8_N5FF3123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG12131233barEv,_ZTv0_n16_N9GG12131233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12131233barEv,_ZThn40_N9GG12131233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12131233barEv,_ZTv0_n20_N9GG12131233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12131233barEv,_ZThn32_N9GG12131233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12131233barEv,_ZTv0_n12_N9GG12131233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12131233barEv,_ZThn24_N9GG12131233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12131233fooEv,_ZTv0_n12_N9GG12131233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12131233fooEv,_ZThn48_N9GG12131233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12131233fooEv,_ZThn40_N9GG12131233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12131233fooEv,_ZThn16_N9GG12131233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12131233fooEv,_ZTv0_n20_N9GG12131233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12131233fooEv,_ZThn8_N9GG12131233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1213123 = { "GG1213123", // class name
+ bases_GG1213123, 6,
+ &(vtc_GG1213123[0]), // expected_vtbl_contents
+ &(vtt_GG1213123[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1213123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1213123),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1213123),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names314,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1213133 : virtual EE121 , virtual FF313 {
+ int pg;
+ virtual void foo(); // _ZN9GG12131333fooEv
+ virtual void bar(); // _ZN9GG12131333barEv
+ ~GG1213133(); // tgen
+ GG1213133(); // tgen
+};
+//SIG(1 GG1213133) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1213133 ::foo(){vfunc_called(this, "_ZN9GG12131333fooEv");}
+void GG1213133 ::bar(){vfunc_called(this, "_ZN9GG12131333barEv");}
+GG1213133 ::~GG1213133(){ note_dtor("GG1213133", this);} // tgen
+GG1213133 ::GG1213133(){ note_ctor("GG1213133", this);} // tgen
+
+static void Test_GG1213133()
+{
+ extern Class_Descriptor cd_GG1213133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1213133, buf);
+ GG1213133 *dp, &lv = *(dp=new (buf) GG1213133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1213133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1213133)");
+ check_base_class_offset(lv, (AA1*)(EE121*), ABISELECT(32,16), "GG1213133");
+ check_base_class_offset(lv, (BB2*)(EE121*), ABISELECT(48,24), "GG1213133");
+ check_base_class_offset(lv, (EE121*), ABISELECT(16,8), "GG1213133");
+ check_base_class_offset(lv, (AA3*)(FF313*), ABISELECT(80,40), "GG1213133");
+ check_base_class_offset(lv, (BB1*)(FF313*), ABISELECT(96,48), "GG1213133");
+ check_base_class_offset(lv, (FF313*), ABISELECT(64,32), "GG1213133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1213133.pg");
+ test_class_info(&lv, &cd_GG1213133);
+ dp->~GG1213133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1213133(Test_GG1213133, "GG1213133", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1213133C1Ev();
+extern void _ZN9GG1213133D1Ev();
+Name_Map name_map_GG1213133[] = {
+ NSPAIR(_ZN9GG1213133C1Ev),
+ NSPAIR(_ZN9GG1213133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE121;
+extern VTBL_ENTRY _ZTI5EE121[];
+extern VTBL_ENTRY _ZTV5EE121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE121[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF313;
+extern VTBL_ENTRY _ZTI5FF313[];
+extern VTBL_ENTRY _ZTV5FF313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF313[];
+static Base_Class bases_GG1213133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE121, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF313, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1213133[];
+extern void _ZN9GG12131333fooEv();
+extern void _ZN9GG12131333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12131333fooEv,_ZTv0_n20_N9GG12131333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12131333fooEv,_ZThn8_N9GG12131333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12131333fooEv,_ZTv0_n12_N9GG12131333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12131333fooEv,_ZThn16_N9GG12131333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12131333barEv,_ZTv0_n12_N9GG12131333barEv)();
+extern void ABISELECT(_ZThn48_N9GG12131333barEv,_ZThn24_N9GG12131333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12131333fooEv,_ZTv0_n20_N9GG12131333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12131333fooEv,_ZThn32_N9GG12131333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12131333barEv,_ZTv0_n24_N9GG12131333barEv)();
+extern void ABISELECT(_ZThn64_N9GG12131333barEv,_ZThn32_N9GG12131333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12131333fooEv,_ZTv0_n12_N9GG12131333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG12131333fooEv,_ZThn40_N9GG12131333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12131333barEv,_ZTv0_n16_N9GG12131333barEv)();
+extern void ABISELECT(_ZThn80_N9GG12131333barEv,_ZThn40_N9GG12131333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12131333fooEv,_ZTv0_n12_N9GG12131333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG12131333fooEv,_ZThn48_N9GG12131333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1213133[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1213133[0]),
+ (VTBL_ENTRY)&_ZN9GG12131333fooEv,
+ (VTBL_ENTRY)&_ZN9GG12131333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1213133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12131333fooEv,_ZTv0_n20_N9GG12131333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1213133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12131333fooEv,_ZTv0_n12_N9GG12131333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1213133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12131333barEv,_ZTv0_n12_N9GG12131333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1213133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12131333fooEv,_ZTv0_n20_N9GG12131333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12131333barEv,_ZTv0_n24_N9GG12131333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1213133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12131333fooEv,_ZTv0_n12_N9GG12131333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12131333barEv,_ZTv0_n16_N9GG12131333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1213133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12131333fooEv,_ZTv0_n12_N9GG12131333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1213133[];
+extern void _ZN5EE1213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE121__9GG1213133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN5EE1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE121__9GG1213133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE121__9GG1213133[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF3133fooEv();
+extern void _ZN5FF3133barEv();
+static VTBL_ENTRY _tg__ZTV5FF313__9GG1213133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&_ZN5FF3133fooEv,
+ (VTBL_ENTRY)&_ZN5FF3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv)();
+extern void ABISELECT(_ZThn16_N5FF3133barEv,_ZThn8_N5FF3133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF313__9GG1213133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3133fooEv,_ZThn16_N5FF3133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF313__9GG1213133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+};
+static VTT_ENTRY vtt_GG1213133[] = {
+ {&(_ZTV9GG1213133[8]), 8,42},
+ {&(_ZTV9GG1213133[15]), 15,42},
+ {&(_ZTV9GG1213133[19]), 19,42},
+ {&(_ZTV9GG1213133[23]), 23,42},
+ {&(_ZTV9GG1213133[30]), 30,42},
+ {&(_ZTV9GG1213133[36]), 36,42},
+ {&(_ZTV9GG1213133[41]), 41,42},
+ {&(_tg__ZTV5EE121__9GG1213133[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE121__9GG1213133[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE121__9GG1213133[3]), 3,4},
+ {&(_tg__ZTV5FF313__9GG1213133[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF313__9GG1213133[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF313__9GG1213133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1213133[];
+extern VTBL_ENTRY _ZTV9GG1213133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1213133[];
+static VTBL_ENTRY alt_thunk_names315[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3133barEv,_ZThn8_N5FF3133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3133fooEv,_ZThn16_N5FF3133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG12131333barEv,_ZTv0_n16_N9GG12131333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12131333barEv,_ZThn40_N9GG12131333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG12131333barEv,_ZTv0_n24_N9GG12131333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12131333barEv,_ZThn32_N9GG12131333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12131333barEv,_ZTv0_n12_N9GG12131333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12131333barEv,_ZThn24_N9GG12131333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12131333fooEv,_ZTv0_n12_N9GG12131333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12131333fooEv,_ZThn48_N9GG12131333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12131333fooEv,_ZThn40_N9GG12131333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12131333fooEv,_ZThn16_N9GG12131333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12131333fooEv,_ZTv0_n20_N9GG12131333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12131333fooEv,_ZThn32_N9GG12131333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12131333fooEv,_ZThn8_N9GG12131333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1213133 = { "GG1213133", // class name
+ bases_GG1213133, 6,
+ &(vtc_GG1213133[0]), // expected_vtbl_contents
+ &(vtt_GG1213133[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1213133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1213133),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1213133),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names315,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1213213 : virtual EE121 , virtual FF321 {
+ int pg;
+ virtual void foo(); // _ZN9GG12132133fooEv
+ virtual void bar(); // _ZN9GG12132133barEv
+ ~GG1213213(); // tgen
+ GG1213213(); // tgen
+};
+//SIG(1 GG1213213) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG1213213 ::foo(){vfunc_called(this, "_ZN9GG12132133fooEv");}
+void GG1213213 ::bar(){vfunc_called(this, "_ZN9GG12132133barEv");}
+GG1213213 ::~GG1213213(){ note_dtor("GG1213213", this);} // tgen
+GG1213213 ::GG1213213(){ note_ctor("GG1213213", this);} // tgen
+
+static void Test_GG1213213()
+{
+ extern Class_Descriptor cd_GG1213213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1213213, buf);
+ GG1213213 *dp, &lv = *(dp=new (buf) GG1213213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1213213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1213213)");
+ check_base_class_offset(lv, (AA1*)(EE121*), ABISELECT(32,16), "GG1213213");
+ check_base_class_offset(lv, (BB2*)(EE121*), ABISELECT(48,24), "GG1213213");
+ check_base_class_offset(lv, (BB2*)(FF321*), ABISELECT(48,24), "GG1213213");
+ check_base_class_offset(lv, (EE121*), ABISELECT(16,8), "GG1213213");
+ check_base_class_offset(lv, (AA3*)(FF321*), ABISELECT(80,40), "GG1213213");
+ check_base_class_offset(lv, (FF321*), ABISELECT(64,32), "GG1213213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1213213.pg");
+ test_class_info(&lv, &cd_GG1213213);
+ dp->~GG1213213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1213213(Test_GG1213213, "GG1213213", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1213213C1Ev();
+extern void _ZN9GG1213213D1Ev();
+Name_Map name_map_GG1213213[] = {
+ NSPAIR(_ZN9GG1213213C1Ev),
+ NSPAIR(_ZN9GG1213213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE121;
+extern VTBL_ENTRY _ZTI5EE121[];
+extern VTBL_ENTRY _ZTV5EE121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE121[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF321;
+extern VTBL_ENTRY _ZTI5FF321[];
+extern VTBL_ENTRY _ZTV5FF321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF321[];
+static Base_Class bases_GG1213213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE121, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF321, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1213213[];
+extern void _ZN9GG12132133fooEv();
+extern void _ZN9GG12132133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12132133fooEv,_ZTv0_n20_N9GG12132133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12132133fooEv,_ZThn8_N9GG12132133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12132133fooEv,_ZTv0_n12_N9GG12132133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12132133fooEv,_ZThn16_N9GG12132133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12132133barEv,_ZTv0_n12_N9GG12132133barEv)();
+extern void ABISELECT(_ZThn48_N9GG12132133barEv,_ZThn24_N9GG12132133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12132133fooEv,_ZTv0_n20_N9GG12132133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12132133fooEv,_ZThn32_N9GG12132133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12132133fooEv,_ZTv0_n12_N9GG12132133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG12132133fooEv,_ZThn40_N9GG12132133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12132133barEv,_ZTv0_n16_N9GG12132133barEv)();
+extern void ABISELECT(_ZThn80_N9GG12132133barEv,_ZThn40_N9GG12132133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1213213[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1213213[0]),
+ (VTBL_ENTRY)&_ZN9GG12132133fooEv,
+ (VTBL_ENTRY)&_ZN9GG12132133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1213213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12132133fooEv,_ZTv0_n20_N9GG12132133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1213213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12132133fooEv,_ZTv0_n12_N9GG12132133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1213213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12132133barEv,_ZTv0_n12_N9GG12132133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1213213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12132133fooEv,_ZTv0_n20_N9GG12132133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1213213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12132133fooEv,_ZTv0_n12_N9GG12132133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12132133barEv,_ZTv0_n16_N9GG12132133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1213213[];
+extern void _ZN5EE1213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE121__9GG1213213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN5EE1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE121__9GG1213213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE121__9GG1213213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF3213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF321__9GG1213213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN5FF3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3213fooEv,_ZThn8_N5FF3213fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF321__9GG1213213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF321__9GG1213213[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG1213213[] = {
+ {&(_ZTV9GG1213213[7]), 7,35},
+ {&(_ZTV9GG1213213[14]), 14,35},
+ {&(_ZTV9GG1213213[18]), 18,35},
+ {&(_ZTV9GG1213213[22]), 22,35},
+ {&(_ZTV9GG1213213[28]), 28,35},
+ {&(_ZTV9GG1213213[33]), 33,35},
+ {&(_tg__ZTV5EE121__9GG1213213[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE121__9GG1213213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE121__9GG1213213[3]), 3,4},
+ {&(_tg__ZTV5FF321__9GG1213213[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF321__9GG1213213[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF321__9GG1213213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1213213[];
+extern VTBL_ENTRY _ZTV9GG1213213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1213213[];
+static VTBL_ENTRY alt_thunk_names316[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3213fooEv,_ZThn8_N5FF3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG12132133barEv,_ZTv0_n16_N9GG12132133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12132133barEv,_ZThn40_N9GG12132133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12132133barEv,_ZTv0_n12_N9GG12132133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12132133barEv,_ZThn24_N9GG12132133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12132133fooEv,_ZTv0_n12_N9GG12132133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12132133fooEv,_ZThn40_N9GG12132133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12132133fooEv,_ZThn16_N9GG12132133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12132133fooEv,_ZTv0_n20_N9GG12132133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12132133fooEv,_ZThn32_N9GG12132133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12132133fooEv,_ZThn8_N9GG12132133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1213213 = { "GG1213213", // class name
+ bases_GG1213213, 5,
+ &(vtc_GG1213213[0]), // expected_vtbl_contents
+ &(vtt_GG1213213[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1213213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1213213),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1213213),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names316,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1213223 : virtual EE121 , virtual FF322 {
+ int pg;
+ virtual void foo(); // _ZN9GG12132233fooEv
+ virtual void bar(); // _ZN9GG12132233barEv
+ ~GG1213223(); // tgen
+ GG1213223(); // tgen
+};
+//SIG(1 GG1213223) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG1213223 ::foo(){vfunc_called(this, "_ZN9GG12132233fooEv");}
+void GG1213223 ::bar(){vfunc_called(this, "_ZN9GG12132233barEv");}
+GG1213223 ::~GG1213223(){ note_dtor("GG1213223", this);} // tgen
+GG1213223 ::GG1213223(){ note_ctor("GG1213223", this);} // tgen
+
+static void Test_GG1213223()
+{
+ extern Class_Descriptor cd_GG1213223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1213223, buf);
+ GG1213223 *dp, &lv = *(dp=new (buf) GG1213223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1213223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1213223)");
+ check_base_class_offset(lv, (AA1*)(EE121*), ABISELECT(32,16), "GG1213223");
+ check_base_class_offset(lv, (BB2*)(EE121*), ABISELECT(48,24), "GG1213223");
+ check_base_class_offset(lv, (BB2*)(FF322*), ABISELECT(48,24), "GG1213223");
+ check_base_class_offset(lv, (EE121*), ABISELECT(16,8), "GG1213223");
+ check_base_class_offset(lv, (AA3*)(FF322*), ABISELECT(80,40), "GG1213223");
+ check_base_class_offset(lv, (FF322*), ABISELECT(64,32), "GG1213223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1213223.pg");
+ test_class_info(&lv, &cd_GG1213223);
+ dp->~GG1213223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1213223(Test_GG1213223, "GG1213223", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1213223C1Ev();
+extern void _ZN9GG1213223D1Ev();
+Name_Map name_map_GG1213223[] = {
+ NSPAIR(_ZN9GG1213223C1Ev),
+ NSPAIR(_ZN9GG1213223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE121;
+extern VTBL_ENTRY _ZTI5EE121[];
+extern VTBL_ENTRY _ZTV5EE121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE121[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF322;
+extern VTBL_ENTRY _ZTI5FF322[];
+extern VTBL_ENTRY _ZTV5FF322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF322[];
+static Base_Class bases_GG1213223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE121, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF322, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1213223[];
+extern void _ZN9GG12132233fooEv();
+extern void _ZN9GG12132233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12132233fooEv,_ZTv0_n20_N9GG12132233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12132233fooEv,_ZThn8_N9GG12132233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12132233fooEv,_ZTv0_n12_N9GG12132233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12132233fooEv,_ZThn16_N9GG12132233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12132233barEv,_ZTv0_n12_N9GG12132233barEv)();
+extern void ABISELECT(_ZThn48_N9GG12132233barEv,_ZThn24_N9GG12132233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12132233barEv,_ZTv0_n20_N9GG12132233barEv)();
+extern void ABISELECT(_ZThn64_N9GG12132233barEv,_ZThn32_N9GG12132233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12132233fooEv,_ZTv0_n12_N9GG12132233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG12132233fooEv,_ZThn40_N9GG12132233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12132233barEv,_ZTv0_n16_N9GG12132233barEv)();
+extern void ABISELECT(_ZThn80_N9GG12132233barEv,_ZThn40_N9GG12132233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1213223[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1213223[0]),
+ (VTBL_ENTRY)&_ZN9GG12132233fooEv,
+ (VTBL_ENTRY)&_ZN9GG12132233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1213223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12132233fooEv,_ZTv0_n20_N9GG12132233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1213223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12132233fooEv,_ZTv0_n12_N9GG12132233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1213223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12132233barEv,_ZTv0_n12_N9GG12132233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1213223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12132233barEv,_ZTv0_n20_N9GG12132233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1213223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12132233fooEv,_ZTv0_n12_N9GG12132233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12132233barEv,_ZTv0_n16_N9GG12132233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1213223[];
+extern void _ZN5EE1213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE121__9GG1213223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN5EE1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE121__9GG1213223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE121__9GG1213223[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF3223barEv();
+static VTBL_ENTRY _tg__ZTV5FF322__9GG1213223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN5FF3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv)();
+extern void ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF322__9GG1213223[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF322__9GG1213223[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv),
+};
+static VTT_ENTRY vtt_GG1213223[] = {
+ {&(_ZTV9GG1213223[7]), 7,35},
+ {&(_ZTV9GG1213223[14]), 14,35},
+ {&(_ZTV9GG1213223[18]), 18,35},
+ {&(_ZTV9GG1213223[22]), 22,35},
+ {&(_ZTV9GG1213223[28]), 28,35},
+ {&(_ZTV9GG1213223[33]), 33,35},
+ {&(_tg__ZTV5EE121__9GG1213223[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE121__9GG1213223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE121__9GG1213223[3]), 3,4},
+ {&(_tg__ZTV5FF322__9GG1213223[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF322__9GG1213223[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF322__9GG1213223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1213223[];
+extern VTBL_ENTRY _ZTV9GG1213223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1213223[];
+static VTBL_ENTRY alt_thunk_names317[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG12132233barEv,_ZTv0_n16_N9GG12132233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12132233barEv,_ZThn40_N9GG12132233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12132233barEv,_ZTv0_n20_N9GG12132233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12132233barEv,_ZThn32_N9GG12132233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12132233barEv,_ZTv0_n12_N9GG12132233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12132233barEv,_ZThn24_N9GG12132233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12132233fooEv,_ZTv0_n12_N9GG12132233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12132233fooEv,_ZThn40_N9GG12132233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12132233fooEv,_ZThn16_N9GG12132233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12132233fooEv,_ZTv0_n20_N9GG12132233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12132233fooEv,_ZThn8_N9GG12132233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1213223 = { "GG1213223", // class name
+ bases_GG1213223, 5,
+ &(vtc_GG1213223[0]), // expected_vtbl_contents
+ &(vtt_GG1213223[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1213223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1213223),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1213223),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names317,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1213233 : virtual EE121 , virtual FF323 {
+ int pg;
+ virtual void foo(); // _ZN9GG12132333fooEv
+ virtual void bar(); // _ZN9GG12132333barEv
+ ~GG1213233(); // tgen
+ GG1213233(); // tgen
+};
+//SIG(1 GG1213233) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1213233 ::foo(){vfunc_called(this, "_ZN9GG12132333fooEv");}
+void GG1213233 ::bar(){vfunc_called(this, "_ZN9GG12132333barEv");}
+GG1213233 ::~GG1213233(){ note_dtor("GG1213233", this);} // tgen
+GG1213233 ::GG1213233(){ note_ctor("GG1213233", this);} // tgen
+
+static void Test_GG1213233()
+{
+ extern Class_Descriptor cd_GG1213233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1213233, buf);
+ GG1213233 *dp, &lv = *(dp=new (buf) GG1213233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1213233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1213233)");
+ check_base_class_offset(lv, (AA1*)(EE121*), ABISELECT(32,16), "GG1213233");
+ check_base_class_offset(lv, (BB2*)(EE121*), ABISELECT(48,24), "GG1213233");
+ check_base_class_offset(lv, (BB2*)(FF323*), ABISELECT(48,24), "GG1213233");
+ check_base_class_offset(lv, (EE121*), ABISELECT(16,8), "GG1213233");
+ check_base_class_offset(lv, (AA3*)(FF323*), ABISELECT(80,40), "GG1213233");
+ check_base_class_offset(lv, (FF323*), ABISELECT(64,32), "GG1213233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1213233.pg");
+ test_class_info(&lv, &cd_GG1213233);
+ dp->~GG1213233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1213233(Test_GG1213233, "GG1213233", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1213233C1Ev();
+extern void _ZN9GG1213233D1Ev();
+Name_Map name_map_GG1213233[] = {
+ NSPAIR(_ZN9GG1213233C1Ev),
+ NSPAIR(_ZN9GG1213233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE121;
+extern VTBL_ENTRY _ZTI5EE121[];
+extern VTBL_ENTRY _ZTV5EE121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE121[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF323;
+extern VTBL_ENTRY _ZTI5FF323[];
+extern VTBL_ENTRY _ZTV5FF323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF323[];
+static Base_Class bases_GG1213233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE121, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF323, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1213233[];
+extern void _ZN9GG12132333fooEv();
+extern void _ZN9GG12132333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12132333fooEv,_ZTv0_n20_N9GG12132333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12132333fooEv,_ZThn8_N9GG12132333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12132333fooEv,_ZTv0_n12_N9GG12132333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12132333fooEv,_ZThn16_N9GG12132333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12132333barEv,_ZTv0_n12_N9GG12132333barEv)();
+extern void ABISELECT(_ZThn48_N9GG12132333barEv,_ZThn24_N9GG12132333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12132333fooEv,_ZTv0_n20_N9GG12132333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12132333fooEv,_ZThn32_N9GG12132333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12132333barEv,_ZTv0_n24_N9GG12132333barEv)();
+extern void ABISELECT(_ZThn64_N9GG12132333barEv,_ZThn32_N9GG12132333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12132333fooEv,_ZTv0_n12_N9GG12132333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG12132333fooEv,_ZThn40_N9GG12132333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12132333barEv,_ZTv0_n16_N9GG12132333barEv)();
+extern void ABISELECT(_ZThn80_N9GG12132333barEv,_ZThn40_N9GG12132333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1213233[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1213233[0]),
+ (VTBL_ENTRY)&_ZN9GG12132333fooEv,
+ (VTBL_ENTRY)&_ZN9GG12132333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1213233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12132333fooEv,_ZTv0_n20_N9GG12132333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1213233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12132333fooEv,_ZTv0_n12_N9GG12132333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1213233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12132333barEv,_ZTv0_n12_N9GG12132333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1213233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12132333fooEv,_ZTv0_n20_N9GG12132333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12132333barEv,_ZTv0_n24_N9GG12132333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1213233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12132333fooEv,_ZTv0_n12_N9GG12132333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12132333barEv,_ZTv0_n16_N9GG12132333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1213233[];
+extern void _ZN5EE1213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE121__9GG1213233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN5EE1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE121__9GG1213233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE121__9GG1213233[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF3233fooEv();
+extern void _ZN5FF3233barEv();
+static VTBL_ENTRY _tg__ZTV5FF323__9GG1213233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&_ZN5FF3233fooEv,
+ (VTBL_ENTRY)&_ZN5FF3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3233fooEv,_ZThn8_N5FF3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv)();
+extern void ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF323__9GG1213233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF323__9GG1213233[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv),
+};
+static VTT_ENTRY vtt_GG1213233[] = {
+ {&(_ZTV9GG1213233[7]), 7,37},
+ {&(_ZTV9GG1213233[14]), 14,37},
+ {&(_ZTV9GG1213233[18]), 18,37},
+ {&(_ZTV9GG1213233[22]), 22,37},
+ {&(_ZTV9GG1213233[29]), 29,37},
+ {&(_ZTV9GG1213233[35]), 35,37},
+ {&(_tg__ZTV5EE121__9GG1213233[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE121__9GG1213233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE121__9GG1213233[3]), 3,4},
+ {&(_tg__ZTV5FF323__9GG1213233[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF323__9GG1213233[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF323__9GG1213233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1213233[];
+extern VTBL_ENTRY _ZTV9GG1213233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1213233[];
+static VTBL_ENTRY alt_thunk_names318[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3233fooEv,_ZThn8_N5FF3233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG12132333barEv,_ZTv0_n16_N9GG12132333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12132333barEv,_ZThn40_N9GG12132333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG12132333barEv,_ZTv0_n24_N9GG12132333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12132333barEv,_ZThn32_N9GG12132333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12132333barEv,_ZTv0_n12_N9GG12132333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12132333barEv,_ZThn24_N9GG12132333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12132333fooEv,_ZTv0_n12_N9GG12132333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12132333fooEv,_ZThn40_N9GG12132333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12132333fooEv,_ZThn16_N9GG12132333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12132333fooEv,_ZTv0_n20_N9GG12132333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12132333fooEv,_ZThn32_N9GG12132333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12132333fooEv,_ZThn8_N9GG12132333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1213233 = { "GG1213233", // class name
+ bases_GG1213233, 5,
+ &(vtc_GG1213233[0]), // expected_vtbl_contents
+ &(vtt_GG1213233[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1213233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1213233),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1213233),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names318,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1213313 : virtual EE121 , virtual FF331 {
+ int pg;
+ virtual void foo(); // _ZN9GG12133133fooEv
+ virtual void bar(); // _ZN9GG12133133barEv
+ ~GG1213313(); // tgen
+ GG1213313(); // tgen
+};
+//SIG(1 GG1213313) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1213313 ::foo(){vfunc_called(this, "_ZN9GG12133133fooEv");}
+void GG1213313 ::bar(){vfunc_called(this, "_ZN9GG12133133barEv");}
+GG1213313 ::~GG1213313(){ note_dtor("GG1213313", this);} // tgen
+GG1213313 ::GG1213313(){ note_ctor("GG1213313", this);} // tgen
+
+static void Test_GG1213313()
+{
+ extern Class_Descriptor cd_GG1213313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1213313, buf);
+ GG1213313 *dp, &lv = *(dp=new (buf) GG1213313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1213313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1213313)");
+ check_base_class_offset(lv, (AA1*)(EE121*), ABISELECT(32,16), "GG1213313");
+ check_base_class_offset(lv, (BB2*)(EE121*), ABISELECT(48,24), "GG1213313");
+ check_base_class_offset(lv, (EE121*), ABISELECT(16,8), "GG1213313");
+ check_base_class_offset(lv, (AA3*)(FF331*), ABISELECT(80,40), "GG1213313");
+ check_base_class_offset(lv, (BB3*)(FF331*), ABISELECT(96,48), "GG1213313");
+ check_base_class_offset(lv, (FF331*), ABISELECT(64,32), "GG1213313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1213313.pg");
+ test_class_info(&lv, &cd_GG1213313);
+ dp->~GG1213313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1213313(Test_GG1213313, "GG1213313", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1213313C1Ev();
+extern void _ZN9GG1213313D1Ev();
+Name_Map name_map_GG1213313[] = {
+ NSPAIR(_ZN9GG1213313C1Ev),
+ NSPAIR(_ZN9GG1213313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE121;
+extern VTBL_ENTRY _ZTI5EE121[];
+extern VTBL_ENTRY _ZTV5EE121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE121[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF331;
+extern VTBL_ENTRY _ZTI5FF331[];
+extern VTBL_ENTRY _ZTV5FF331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF331[];
+static Base_Class bases_GG1213313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE121, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF331, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1213313[];
+extern void _ZN9GG12133133fooEv();
+extern void _ZN9GG12133133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12133133fooEv,_ZTv0_n20_N9GG12133133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12133133fooEv,_ZThn8_N9GG12133133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12133133fooEv,_ZTv0_n12_N9GG12133133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12133133fooEv,_ZThn16_N9GG12133133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12133133barEv,_ZTv0_n12_N9GG12133133barEv)();
+extern void ABISELECT(_ZThn48_N9GG12133133barEv,_ZThn24_N9GG12133133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12133133fooEv,_ZTv0_n20_N9GG12133133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12133133fooEv,_ZThn32_N9GG12133133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12133133fooEv,_ZTv0_n12_N9GG12133133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG12133133fooEv,_ZThn40_N9GG12133133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12133133barEv,_ZTv0_n16_N9GG12133133barEv)();
+extern void ABISELECT(_ZThn80_N9GG12133133barEv,_ZThn40_N9GG12133133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12133133fooEv,_ZTv0_n12_N9GG12133133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG12133133fooEv,_ZThn48_N9GG12133133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12133133barEv,_ZTv0_n16_N9GG12133133barEv)();
+extern void ABISELECT(_ZThn96_N9GG12133133barEv,_ZThn48_N9GG12133133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1213313[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1213313[0]),
+ (VTBL_ENTRY)&_ZN9GG12133133fooEv,
+ (VTBL_ENTRY)&_ZN9GG12133133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1213313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12133133fooEv,_ZTv0_n20_N9GG12133133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1213313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12133133fooEv,_ZTv0_n12_N9GG12133133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1213313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12133133barEv,_ZTv0_n12_N9GG12133133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1213313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12133133fooEv,_ZTv0_n20_N9GG12133133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1213313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12133133fooEv,_ZTv0_n12_N9GG12133133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12133133barEv,_ZTv0_n16_N9GG12133133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1213313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12133133fooEv,_ZTv0_n12_N9GG12133133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12133133barEv,_ZTv0_n16_N9GG12133133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1213313[];
+extern void _ZN5EE1213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE121__9GG1213313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN5EE1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE121__9GG1213313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE121__9GG1213313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF3313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF331__9GG1213313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&_ZN5FF3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF331__9GG1213313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3313fooEv,_ZThn16_N5FF3313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF331__9GG1213313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG1213313[] = {
+ {&(_ZTV9GG1213313[8]), 8,42},
+ {&(_ZTV9GG1213313[15]), 15,42},
+ {&(_ZTV9GG1213313[19]), 19,42},
+ {&(_ZTV9GG1213313[23]), 23,42},
+ {&(_ZTV9GG1213313[29]), 29,42},
+ {&(_ZTV9GG1213313[34]), 34,42},
+ {&(_ZTV9GG1213313[40]), 40,42},
+ {&(_tg__ZTV5EE121__9GG1213313[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE121__9GG1213313[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE121__9GG1213313[3]), 3,4},
+ {&(_tg__ZTV5FF331__9GG1213313[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF331__9GG1213313[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF331__9GG1213313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1213313[];
+extern VTBL_ENTRY _ZTV9GG1213313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1213313[];
+static VTBL_ENTRY alt_thunk_names319[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3313fooEv,_ZThn16_N5FF3313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG12133133barEv,_ZTv0_n16_N9GG12133133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12133133barEv,_ZThn48_N9GG12133133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12133133barEv,_ZThn40_N9GG12133133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12133133barEv,_ZTv0_n12_N9GG12133133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12133133barEv,_ZThn24_N9GG12133133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12133133fooEv,_ZTv0_n12_N9GG12133133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12133133fooEv,_ZThn48_N9GG12133133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12133133fooEv,_ZThn40_N9GG12133133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12133133fooEv,_ZThn16_N9GG12133133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12133133fooEv,_ZTv0_n20_N9GG12133133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12133133fooEv,_ZThn32_N9GG12133133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12133133fooEv,_ZThn8_N9GG12133133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1213313 = { "GG1213313", // class name
+ bases_GG1213313, 6,
+ &(vtc_GG1213313[0]), // expected_vtbl_contents
+ &(vtt_GG1213313[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1213313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1213313),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1213313),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names319,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1213323 : virtual EE121 , virtual FF332 {
+ int pg;
+ virtual void foo(); // _ZN9GG12133233fooEv
+ virtual void bar(); // _ZN9GG12133233barEv
+ ~GG1213323(); // tgen
+ GG1213323(); // tgen
+};
+//SIG(1 GG1213323) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1213323 ::foo(){vfunc_called(this, "_ZN9GG12133233fooEv");}
+void GG1213323 ::bar(){vfunc_called(this, "_ZN9GG12133233barEv");}
+GG1213323 ::~GG1213323(){ note_dtor("GG1213323", this);} // tgen
+GG1213323 ::GG1213323(){ note_ctor("GG1213323", this);} // tgen
+
+static void Test_GG1213323()
+{
+ extern Class_Descriptor cd_GG1213323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1213323, buf);
+ GG1213323 *dp, &lv = *(dp=new (buf) GG1213323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1213323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1213323)");
+ check_base_class_offset(lv, (AA1*)(EE121*), ABISELECT(32,16), "GG1213323");
+ check_base_class_offset(lv, (BB2*)(EE121*), ABISELECT(48,24), "GG1213323");
+ check_base_class_offset(lv, (EE121*), ABISELECT(16,8), "GG1213323");
+ check_base_class_offset(lv, (AA3*)(FF332*), ABISELECT(80,40), "GG1213323");
+ check_base_class_offset(lv, (BB3*)(FF332*), ABISELECT(96,48), "GG1213323");
+ check_base_class_offset(lv, (FF332*), ABISELECT(64,32), "GG1213323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1213323.pg");
+ test_class_info(&lv, &cd_GG1213323);
+ dp->~GG1213323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1213323(Test_GG1213323, "GG1213323", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1213323C1Ev();
+extern void _ZN9GG1213323D1Ev();
+Name_Map name_map_GG1213323[] = {
+ NSPAIR(_ZN9GG1213323C1Ev),
+ NSPAIR(_ZN9GG1213323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE121;
+extern VTBL_ENTRY _ZTI5EE121[];
+extern VTBL_ENTRY _ZTV5EE121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE121[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF332;
+extern VTBL_ENTRY _ZTI5FF332[];
+extern VTBL_ENTRY _ZTV5FF332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF332[];
+static Base_Class bases_GG1213323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE121, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF332, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1213323[];
+extern void _ZN9GG12133233fooEv();
+extern void _ZN9GG12133233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12133233fooEv,_ZTv0_n20_N9GG12133233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12133233fooEv,_ZThn8_N9GG12133233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12133233fooEv,_ZTv0_n12_N9GG12133233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12133233fooEv,_ZThn16_N9GG12133233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12133233barEv,_ZTv0_n12_N9GG12133233barEv)();
+extern void ABISELECT(_ZThn48_N9GG12133233barEv,_ZThn24_N9GG12133233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12133233barEv,_ZTv0_n20_N9GG12133233barEv)();
+extern void ABISELECT(_ZThn64_N9GG12133233barEv,_ZThn32_N9GG12133233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12133233fooEv,_ZTv0_n12_N9GG12133233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG12133233fooEv,_ZThn40_N9GG12133233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12133233barEv,_ZTv0_n16_N9GG12133233barEv)();
+extern void ABISELECT(_ZThn80_N9GG12133233barEv,_ZThn40_N9GG12133233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12133233fooEv,_ZTv0_n12_N9GG12133233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG12133233fooEv,_ZThn48_N9GG12133233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12133233barEv,_ZTv0_n16_N9GG12133233barEv)();
+extern void ABISELECT(_ZThn96_N9GG12133233barEv,_ZThn48_N9GG12133233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1213323[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1213323[0]),
+ (VTBL_ENTRY)&_ZN9GG12133233fooEv,
+ (VTBL_ENTRY)&_ZN9GG12133233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1213323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12133233fooEv,_ZTv0_n20_N9GG12133233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1213323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12133233fooEv,_ZTv0_n12_N9GG12133233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1213323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12133233barEv,_ZTv0_n12_N9GG12133233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1213323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12133233barEv,_ZTv0_n20_N9GG12133233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1213323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12133233fooEv,_ZTv0_n12_N9GG12133233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12133233barEv,_ZTv0_n16_N9GG12133233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1213323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12133233fooEv,_ZTv0_n12_N9GG12133233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12133233barEv,_ZTv0_n16_N9GG12133233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1213323[];
+extern void _ZN5EE1213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE121__9GG1213323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN5EE1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE121__9GG1213323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE121__9GG1213323[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF3323barEv();
+static VTBL_ENTRY _tg__ZTV5FF332__9GG1213323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN5FF3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+extern void ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF332__9GG1213323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+extern void ABISELECT(_ZThn32_N5FF3323barEv,_ZThn16_N5FF3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF332__9GG1213323[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+static VTT_ENTRY vtt_GG1213323[] = {
+ {&(_ZTV9GG1213323[8]), 8,42},
+ {&(_ZTV9GG1213323[15]), 15,42},
+ {&(_ZTV9GG1213323[19]), 19,42},
+ {&(_ZTV9GG1213323[23]), 23,42},
+ {&(_ZTV9GG1213323[29]), 29,42},
+ {&(_ZTV9GG1213323[34]), 34,42},
+ {&(_ZTV9GG1213323[40]), 40,42},
+ {&(_tg__ZTV5EE121__9GG1213323[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE121__9GG1213323[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE121__9GG1213323[3]), 3,4},
+ {&(_tg__ZTV5FF332__9GG1213323[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF332__9GG1213323[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF332__9GG1213323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1213323[];
+extern VTBL_ENTRY _ZTV9GG1213323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1213323[];
+static VTBL_ENTRY alt_thunk_names320[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3323barEv,_ZThn16_N5FF3323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG12133233barEv,_ZTv0_n16_N9GG12133233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12133233barEv,_ZThn48_N9GG12133233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12133233barEv,_ZThn40_N9GG12133233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12133233barEv,_ZTv0_n20_N9GG12133233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12133233barEv,_ZThn32_N9GG12133233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12133233barEv,_ZTv0_n12_N9GG12133233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12133233barEv,_ZThn24_N9GG12133233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12133233fooEv,_ZTv0_n12_N9GG12133233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12133233fooEv,_ZThn48_N9GG12133233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12133233fooEv,_ZThn40_N9GG12133233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12133233fooEv,_ZThn16_N9GG12133233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12133233fooEv,_ZTv0_n20_N9GG12133233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12133233fooEv,_ZThn8_N9GG12133233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1213323 = { "GG1213323", // class name
+ bases_GG1213323, 6,
+ &(vtc_GG1213323[0]), // expected_vtbl_contents
+ &(vtt_GG1213323[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1213323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1213323),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1213323),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names320,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1213333 : virtual EE121 , virtual FF333 {
+ int pg;
+ virtual void foo(); // _ZN9GG12133333fooEv
+ virtual void bar(); // _ZN9GG12133333barEv
+ ~GG1213333(); // tgen
+ GG1213333(); // tgen
+};
+//SIG(1 GG1213333) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1213333 ::foo(){vfunc_called(this, "_ZN9GG12133333fooEv");}
+void GG1213333 ::bar(){vfunc_called(this, "_ZN9GG12133333barEv");}
+GG1213333 ::~GG1213333(){ note_dtor("GG1213333", this);} // tgen
+GG1213333 ::GG1213333(){ note_ctor("GG1213333", this);} // tgen
+
+static void Test_GG1213333()
+{
+ extern Class_Descriptor cd_GG1213333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1213333, buf);
+ GG1213333 *dp, &lv = *(dp=new (buf) GG1213333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1213333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1213333)");
+ check_base_class_offset(lv, (AA1*)(EE121*), ABISELECT(32,16), "GG1213333");
+ check_base_class_offset(lv, (BB2*)(EE121*), ABISELECT(48,24), "GG1213333");
+ check_base_class_offset(lv, (EE121*), ABISELECT(16,8), "GG1213333");
+ check_base_class_offset(lv, (AA3*)(FF333*), ABISELECT(80,40), "GG1213333");
+ check_base_class_offset(lv, (BB3*)(FF333*), ABISELECT(96,48), "GG1213333");
+ check_base_class_offset(lv, (FF333*), ABISELECT(64,32), "GG1213333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1213333.pg");
+ test_class_info(&lv, &cd_GG1213333);
+ dp->~GG1213333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1213333(Test_GG1213333, "GG1213333", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1213333C1Ev();
+extern void _ZN9GG1213333D1Ev();
+Name_Map name_map_GG1213333[] = {
+ NSPAIR(_ZN9GG1213333C1Ev),
+ NSPAIR(_ZN9GG1213333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE121;
+extern VTBL_ENTRY _ZTI5EE121[];
+extern VTBL_ENTRY _ZTV5EE121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE121[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF333;
+extern VTBL_ENTRY _ZTI5FF333[];
+extern VTBL_ENTRY _ZTV5FF333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF333[];
+static Base_Class bases_GG1213333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE121, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF333, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1213333[];
+extern void _ZN9GG12133333fooEv();
+extern void _ZN9GG12133333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12133333fooEv,_ZTv0_n20_N9GG12133333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12133333fooEv,_ZThn8_N9GG12133333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12133333fooEv,_ZTv0_n12_N9GG12133333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12133333fooEv,_ZThn16_N9GG12133333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12133333barEv,_ZTv0_n12_N9GG12133333barEv)();
+extern void ABISELECT(_ZThn48_N9GG12133333barEv,_ZThn24_N9GG12133333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12133333fooEv,_ZTv0_n20_N9GG12133333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12133333fooEv,_ZThn32_N9GG12133333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12133333barEv,_ZTv0_n24_N9GG12133333barEv)();
+extern void ABISELECT(_ZThn64_N9GG12133333barEv,_ZThn32_N9GG12133333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12133333fooEv,_ZTv0_n12_N9GG12133333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG12133333fooEv,_ZThn40_N9GG12133333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12133333barEv,_ZTv0_n16_N9GG12133333barEv)();
+extern void ABISELECT(_ZThn80_N9GG12133333barEv,_ZThn40_N9GG12133333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12133333fooEv,_ZTv0_n12_N9GG12133333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG12133333fooEv,_ZThn48_N9GG12133333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12133333barEv,_ZTv0_n16_N9GG12133333barEv)();
+extern void ABISELECT(_ZThn96_N9GG12133333barEv,_ZThn48_N9GG12133333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1213333[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1213333[0]),
+ (VTBL_ENTRY)&_ZN9GG12133333fooEv,
+ (VTBL_ENTRY)&_ZN9GG12133333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1213333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12133333fooEv,_ZTv0_n20_N9GG12133333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1213333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12133333fooEv,_ZTv0_n12_N9GG12133333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1213333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12133333barEv,_ZTv0_n12_N9GG12133333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1213333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12133333fooEv,_ZTv0_n20_N9GG12133333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12133333barEv,_ZTv0_n24_N9GG12133333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1213333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12133333fooEv,_ZTv0_n12_N9GG12133333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12133333barEv,_ZTv0_n16_N9GG12133333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1213333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12133333fooEv,_ZTv0_n12_N9GG12133333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12133333barEv,_ZTv0_n16_N9GG12133333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1213333[];
+extern void _ZN5EE1213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE121__9GG1213333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN5EE1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE121__9GG1213333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE121__9GG1213333[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF3333fooEv();
+extern void _ZN5FF3333barEv();
+static VTBL_ENTRY _tg__ZTV5FF333__9GG1213333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&_ZN5FF3333fooEv,
+ (VTBL_ENTRY)&_ZN5FF3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+extern void ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF333__9GG1213333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3333fooEv,_ZThn16_N5FF3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+extern void ABISELECT(_ZThn32_N5FF3333barEv,_ZThn16_N5FF3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF333__9GG1213333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+static VTT_ENTRY vtt_GG1213333[] = {
+ {&(_ZTV9GG1213333[8]), 8,44},
+ {&(_ZTV9GG1213333[15]), 15,44},
+ {&(_ZTV9GG1213333[19]), 19,44},
+ {&(_ZTV9GG1213333[23]), 23,44},
+ {&(_ZTV9GG1213333[30]), 30,44},
+ {&(_ZTV9GG1213333[36]), 36,44},
+ {&(_ZTV9GG1213333[42]), 42,44},
+ {&(_tg__ZTV5EE121__9GG1213333[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE121__9GG1213333[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE121__9GG1213333[3]), 3,4},
+ {&(_tg__ZTV5FF333__9GG1213333[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF333__9GG1213333[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF333__9GG1213333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1213333[];
+extern VTBL_ENTRY _ZTV9GG1213333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1213333[];
+static VTBL_ENTRY alt_thunk_names321[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3333barEv,_ZThn16_N5FF3333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3333fooEv,_ZThn16_N5FF3333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1213fooEv,_ZTv0_n12_N5EE1213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1213fooEv,_ZThn8_N5EE1213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG12133333barEv,_ZTv0_n16_N9GG12133333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12133333barEv,_ZThn48_N9GG12133333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12133333barEv,_ZThn40_N9GG12133333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG12133333barEv,_ZTv0_n24_N9GG12133333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12133333barEv,_ZThn32_N9GG12133333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12133333barEv,_ZTv0_n12_N9GG12133333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12133333barEv,_ZThn24_N9GG12133333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12133333fooEv,_ZTv0_n12_N9GG12133333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12133333fooEv,_ZThn48_N9GG12133333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12133333fooEv,_ZThn40_N9GG12133333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12133333fooEv,_ZThn16_N9GG12133333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12133333fooEv,_ZTv0_n20_N9GG12133333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12133333fooEv,_ZThn32_N9GG12133333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12133333fooEv,_ZThn8_N9GG12133333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1213333 = { "GG1213333", // class name
+ bases_GG1213333, 6,
+ &(vtc_GG1213333[0]), // expected_vtbl_contents
+ &(vtt_GG1213333[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1213333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1213333),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1213333),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names321,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1221111 : virtual EE122 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG12211113fooEv
+ ~GG1221111(); // tgen
+ GG1221111(); // tgen
+};
+//SIG(1 GG1221111) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v1 Fi} v1 Fi}
+
+
+void GG1221111 ::foo(){vfunc_called(this, "_ZN9GG12211113fooEv");}
+GG1221111 ::~GG1221111(){ note_dtor("GG1221111", this);} // tgen
+GG1221111 ::GG1221111(){ note_ctor("GG1221111", this);} // tgen
+
+static void Test_GG1221111()
+{
+ extern Class_Descriptor cd_GG1221111;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1221111, buf);
+ GG1221111 *dp, &lv = *(dp=new (buf) GG1221111());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1221111)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1221111)");
+ check_base_class_offset(lv, (AA1*)(EE122*), ABISELECT(32,16), "GG1221111");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(32,16), "GG1221111");
+ check_base_class_offset(lv, (BB2*)(EE122*), ABISELECT(48,24), "GG1221111");
+ check_base_class_offset(lv, (EE122*), ABISELECT(16,8), "GG1221111");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(80,40), "GG1221111");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG1221111");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1221111.pg");
+ test_class_info(&lv, &cd_GG1221111);
+ dp->~GG1221111();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1221111(Test_GG1221111, "GG1221111", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1221111C1Ev();
+extern void _ZN9GG1221111D1Ev();
+Name_Map name_map_GG1221111[] = {
+ NSPAIR(_ZN9GG1221111C1Ev),
+ NSPAIR(_ZN9GG1221111D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE122;
+extern VTBL_ENTRY _ZTI5EE122[];
+extern VTBL_ENTRY _ZTV5EE122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE122[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG1221111[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE122, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1221111[];
+extern void _ZN9GG12211113fooEv();
+extern void _ZN5EE1223barEv();
+extern void ABISELECT(_ZTv0_n24_N9GG12211113fooEv,_ZTv0_n12_N9GG12211113fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12211113fooEv,_ZThn16_N9GG12211113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv)();
+extern void ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12211113fooEv,_ZTv0_n20_N9GG12211113fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12211113fooEv,_ZThn32_N9GG12211113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12211113fooEv,_ZTv0_n12_N9GG12211113fooEv)();
+extern void ABISELECT(_ZThn80_N9GG12211113fooEv,_ZThn40_N9GG12211113fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1221111[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1221111[0]),
+ (VTBL_ENTRY)&_ZN9GG12211113fooEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1221111[0]),
+ (VTBL_ENTRY)&_ZN5EE1223barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1221111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12211113fooEv,_ZTv0_n12_N9GG12211113fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1221111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1221111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12211113fooEv,_ZTv0_n20_N9GG12211113fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1221111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12211113fooEv,_ZTv0_n12_N9GG12211113fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1221111[];
+extern void _ZN5EE1223barEv();
+static VTBL_ENTRY _tg__ZTV5EE122__9GG1221111[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN5EE1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE122__9GG1221111[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv)();
+extern void ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE122__9GG1221111[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv),
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG1221111[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG1221111[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG1221111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG1221111[] = {
+ {&(_ZTV9GG1221111[7]), 7,32},
+ {&(_ZTV9GG1221111[13]), 13,32},
+ {&(_ZTV9GG1221111[17]), 17,32},
+ {&(_ZTV9GG1221111[21]), 21,32},
+ {&(_ZTV9GG1221111[27]), 27,32},
+ {&(_ZTV9GG1221111[31]), 31,32},
+ {&(_tg__ZTV5EE122__9GG1221111[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE122__9GG1221111[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE122__9GG1221111[3]), 3,4},
+ {&(_tg__ZTV5FF111__9GG1221111[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG1221111[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG1221111[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1221111[];
+extern VTBL_ENTRY _ZTV9GG1221111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1221111[];
+static VTBL_ENTRY alt_thunk_names322[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12211113fooEv,_ZTv0_n20_N9GG12211113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12211113fooEv,_ZThn32_N9GG12211113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12211113fooEv,_ZTv0_n12_N9GG12211113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12211113fooEv,_ZThn40_N9GG12211113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12211113fooEv,_ZThn16_N9GG12211113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1221111 = { "GG1221111", // class name
+ bases_GG1221111, 5,
+ &(vtc_GG1221111[0]), // expected_vtbl_contents
+ &(vtt_GG1221111[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1221111),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1221111),32, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1221111),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names322,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1221113 : virtual EE122 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG12211133fooEv
+ virtual void bar(); // _ZN9GG12211133barEv
+ ~GG1221113(); // tgen
+ GG1221113(); // tgen
+};
+//SIG(1 GG1221113) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1221113 ::foo(){vfunc_called(this, "_ZN9GG12211133fooEv");}
+void GG1221113 ::bar(){vfunc_called(this, "_ZN9GG12211133barEv");}
+GG1221113 ::~GG1221113(){ note_dtor("GG1221113", this);} // tgen
+GG1221113 ::GG1221113(){ note_ctor("GG1221113", this);} // tgen
+
+static void Test_GG1221113()
+{
+ extern Class_Descriptor cd_GG1221113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1221113, buf);
+ GG1221113 *dp, &lv = *(dp=new (buf) GG1221113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1221113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1221113)");
+ check_base_class_offset(lv, (AA1*)(EE122*), ABISELECT(32,16), "GG1221113");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(32,16), "GG1221113");
+ check_base_class_offset(lv, (BB2*)(EE122*), ABISELECT(48,24), "GG1221113");
+ check_base_class_offset(lv, (EE122*), ABISELECT(16,8), "GG1221113");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(80,40), "GG1221113");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG1221113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1221113.pg");
+ test_class_info(&lv, &cd_GG1221113);
+ dp->~GG1221113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1221113(Test_GG1221113, "GG1221113", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1221113C1Ev();
+extern void _ZN9GG1221113D1Ev();
+Name_Map name_map_GG1221113[] = {
+ NSPAIR(_ZN9GG1221113C1Ev),
+ NSPAIR(_ZN9GG1221113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE122;
+extern VTBL_ENTRY _ZTI5EE122[];
+extern VTBL_ENTRY _ZTV5EE122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE122[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG1221113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE122, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1221113[];
+extern void _ZN9GG12211133fooEv();
+extern void _ZN9GG12211133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12211133barEv,_ZTv0_n20_N9GG12211133barEv)();
+extern void ABISELECT(_ZThn16_N9GG12211133barEv,_ZThn8_N9GG12211133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12211133fooEv,_ZTv0_n12_N9GG12211133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12211133fooEv,_ZThn16_N9GG12211133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12211133barEv,_ZTv0_n12_N9GG12211133barEv)();
+extern void ABISELECT(_ZThn48_N9GG12211133barEv,_ZThn24_N9GG12211133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12211133fooEv,_ZTv0_n20_N9GG12211133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12211133fooEv,_ZThn32_N9GG12211133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12211133fooEv,_ZTv0_n12_N9GG12211133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG12211133fooEv,_ZThn40_N9GG12211133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1221113[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1221113[0]),
+ (VTBL_ENTRY)&_ZN9GG12211133fooEv,
+ (VTBL_ENTRY)&_ZN9GG12211133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1221113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12211133barEv,_ZTv0_n20_N9GG12211133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1221113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12211133fooEv,_ZTv0_n12_N9GG12211133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1221113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12211133barEv,_ZTv0_n12_N9GG12211133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1221113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12211133fooEv,_ZTv0_n20_N9GG12211133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1221113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12211133fooEv,_ZTv0_n12_N9GG12211133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1221113[];
+extern void _ZN5EE1223barEv();
+static VTBL_ENTRY _tg__ZTV5EE122__9GG1221113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN5EE1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE122__9GG1221113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv)();
+extern void ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE122__9GG1221113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv),
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG1221113[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG1221113[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG1221113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG1221113[] = {
+ {&(_ZTV9GG1221113[7]), 7,33},
+ {&(_ZTV9GG1221113[14]), 14,33},
+ {&(_ZTV9GG1221113[18]), 18,33},
+ {&(_ZTV9GG1221113[22]), 22,33},
+ {&(_ZTV9GG1221113[28]), 28,33},
+ {&(_ZTV9GG1221113[32]), 32,33},
+ {&(_tg__ZTV5EE122__9GG1221113[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE122__9GG1221113[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE122__9GG1221113[3]), 3,4},
+ {&(_tg__ZTV5FF111__9GG1221113[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG1221113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG1221113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1221113[];
+extern VTBL_ENTRY _ZTV9GG1221113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1221113[];
+static VTBL_ENTRY alt_thunk_names323[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12211133fooEv,_ZTv0_n20_N9GG12211133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12211133fooEv,_ZThn32_N9GG12211133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12211133barEv,_ZTv0_n12_N9GG12211133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12211133barEv,_ZThn24_N9GG12211133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12211133fooEv,_ZTv0_n12_N9GG12211133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12211133fooEv,_ZThn40_N9GG12211133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12211133fooEv,_ZThn16_N9GG12211133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12211133barEv,_ZTv0_n20_N9GG12211133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12211133barEv,_ZThn8_N9GG12211133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1221113 = { "GG1221113", // class name
+ bases_GG1221113, 5,
+ &(vtc_GG1221113[0]), // expected_vtbl_contents
+ &(vtt_GG1221113[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1221113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1221113),33, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1221113),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names323,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1221123 : virtual EE122 , virtual FF112 {
+ int pg;
+ virtual void foo(); // _ZN9GG12211233fooEv
+ virtual void bar(); // _ZN9GG12211233barEv
+ ~GG1221123(); // tgen
+ GG1221123(); // tgen
+};
+//SIG(1 GG1221123) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1221123 ::foo(){vfunc_called(this, "_ZN9GG12211233fooEv");}
+void GG1221123 ::bar(){vfunc_called(this, "_ZN9GG12211233barEv");}
+GG1221123 ::~GG1221123(){ note_dtor("GG1221123", this);} // tgen
+GG1221123 ::GG1221123(){ note_ctor("GG1221123", this);} // tgen
+
+static void Test_GG1221123()
+{
+ extern Class_Descriptor cd_GG1221123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1221123, buf);
+ GG1221123 *dp, &lv = *(dp=new (buf) GG1221123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1221123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1221123)");
+ check_base_class_offset(lv, (AA1*)(EE122*), ABISELECT(32,16), "GG1221123");
+ check_base_class_offset(lv, (AA1*)(FF112*), ABISELECT(32,16), "GG1221123");
+ check_base_class_offset(lv, (BB2*)(EE122*), ABISELECT(48,24), "GG1221123");
+ check_base_class_offset(lv, (EE122*), ABISELECT(16,8), "GG1221123");
+ check_base_class_offset(lv, (BB1*)(FF112*), ABISELECT(80,40), "GG1221123");
+ check_base_class_offset(lv, (FF112*), ABISELECT(64,32), "GG1221123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1221123.pg");
+ test_class_info(&lv, &cd_GG1221123);
+ dp->~GG1221123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1221123(Test_GG1221123, "GG1221123", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1221123C1Ev();
+extern void _ZN9GG1221123D1Ev();
+Name_Map name_map_GG1221123[] = {
+ NSPAIR(_ZN9GG1221123C1Ev),
+ NSPAIR(_ZN9GG1221123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE122;
+extern VTBL_ENTRY _ZTI5EE122[];
+extern VTBL_ENTRY _ZTV5EE122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE122[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF112;
+extern VTBL_ENTRY _ZTI5FF112[];
+extern VTBL_ENTRY _ZTV5FF112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF112[];
+static Base_Class bases_GG1221123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE122, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF112, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1221123[];
+extern void _ZN9GG12211233fooEv();
+extern void _ZN9GG12211233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12211233barEv,_ZTv0_n20_N9GG12211233barEv)();
+extern void ABISELECT(_ZThn16_N9GG12211233barEv,_ZThn8_N9GG12211233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12211233fooEv,_ZTv0_n12_N9GG12211233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12211233fooEv,_ZThn16_N9GG12211233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12211233barEv,_ZTv0_n12_N9GG12211233barEv)();
+extern void ABISELECT(_ZThn48_N9GG12211233barEv,_ZThn24_N9GG12211233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12211233barEv,_ZTv0_n20_N9GG12211233barEv)();
+extern void ABISELECT(_ZThn64_N9GG12211233barEv,_ZThn32_N9GG12211233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12211233fooEv,_ZTv0_n12_N9GG12211233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG12211233fooEv,_ZThn40_N9GG12211233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1221123[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1221123[0]),
+ (VTBL_ENTRY)&_ZN9GG12211233fooEv,
+ (VTBL_ENTRY)&_ZN9GG12211233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1221123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12211233barEv,_ZTv0_n20_N9GG12211233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1221123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12211233fooEv,_ZTv0_n12_N9GG12211233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1221123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12211233barEv,_ZTv0_n12_N9GG12211233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1221123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12211233barEv,_ZTv0_n20_N9GG12211233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1221123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12211233fooEv,_ZTv0_n12_N9GG12211233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1221123[];
+extern void _ZN5EE1223barEv();
+static VTBL_ENTRY _tg__ZTV5EE122__9GG1221123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN5EE1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE122__9GG1221123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv)();
+extern void ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE122__9GG1221123[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv),
+};
+extern void _ZN5FF1123barEv();
+static VTBL_ENTRY _tg__ZTV5FF112__9GG1221123[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN5FF1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF112__9GG1221123[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF112__9GG1221123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG1221123[] = {
+ {&(_ZTV9GG1221123[7]), 7,33},
+ {&(_ZTV9GG1221123[14]), 14,33},
+ {&(_ZTV9GG1221123[18]), 18,33},
+ {&(_ZTV9GG1221123[22]), 22,33},
+ {&(_ZTV9GG1221123[28]), 28,33},
+ {&(_ZTV9GG1221123[32]), 32,33},
+ {&(_tg__ZTV5EE122__9GG1221123[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE122__9GG1221123[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE122__9GG1221123[3]), 3,4},
+ {&(_tg__ZTV5FF112__9GG1221123[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF112__9GG1221123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF112__9GG1221123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1221123[];
+extern VTBL_ENTRY _ZTV9GG1221123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1221123[];
+static VTBL_ENTRY alt_thunk_names324[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12211233barEv,_ZTv0_n12_N9GG12211233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12211233barEv,_ZThn24_N9GG12211233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12211233fooEv,_ZTv0_n12_N9GG12211233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12211233fooEv,_ZThn40_N9GG12211233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12211233fooEv,_ZThn16_N9GG12211233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12211233barEv,_ZTv0_n20_N9GG12211233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12211233barEv,_ZThn32_N9GG12211233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12211233barEv,_ZThn8_N9GG12211233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1221123 = { "GG1221123", // class name
+ bases_GG1221123, 5,
+ &(vtc_GG1221123[0]), // expected_vtbl_contents
+ &(vtt_GG1221123[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1221123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1221123),33, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1221123),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names324,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1221133 : virtual EE122 , virtual FF113 {
+ int pg;
+ virtual void foo(); // _ZN9GG12211333fooEv
+ virtual void bar(); // _ZN9GG12211333barEv
+ ~GG1221133(); // tgen
+ GG1221133(); // tgen
+};
+//SIG(1 GG1221133) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1221133 ::foo(){vfunc_called(this, "_ZN9GG12211333fooEv");}
+void GG1221133 ::bar(){vfunc_called(this, "_ZN9GG12211333barEv");}
+GG1221133 ::~GG1221133(){ note_dtor("GG1221133", this);} // tgen
+GG1221133 ::GG1221133(){ note_ctor("GG1221133", this);} // tgen
+
+static void Test_GG1221133()
+{
+ extern Class_Descriptor cd_GG1221133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1221133, buf);
+ GG1221133 *dp, &lv = *(dp=new (buf) GG1221133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1221133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1221133)");
+ check_base_class_offset(lv, (AA1*)(EE122*), ABISELECT(32,16), "GG1221133");
+ check_base_class_offset(lv, (AA1*)(FF113*), ABISELECT(32,16), "GG1221133");
+ check_base_class_offset(lv, (BB2*)(EE122*), ABISELECT(48,24), "GG1221133");
+ check_base_class_offset(lv, (EE122*), ABISELECT(16,8), "GG1221133");
+ check_base_class_offset(lv, (BB1*)(FF113*), ABISELECT(80,40), "GG1221133");
+ check_base_class_offset(lv, (FF113*), ABISELECT(64,32), "GG1221133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1221133.pg");
+ test_class_info(&lv, &cd_GG1221133);
+ dp->~GG1221133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1221133(Test_GG1221133, "GG1221133", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1221133C1Ev();
+extern void _ZN9GG1221133D1Ev();
+Name_Map name_map_GG1221133[] = {
+ NSPAIR(_ZN9GG1221133C1Ev),
+ NSPAIR(_ZN9GG1221133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE122;
+extern VTBL_ENTRY _ZTI5EE122[];
+extern VTBL_ENTRY _ZTV5EE122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE122[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF113;
+extern VTBL_ENTRY _ZTI5FF113[];
+extern VTBL_ENTRY _ZTV5FF113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF113[];
+static Base_Class bases_GG1221133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE122, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF113, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1221133[];
+extern void _ZN9GG12211333fooEv();
+extern void _ZN9GG12211333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12211333barEv,_ZTv0_n20_N9GG12211333barEv)();
+extern void ABISELECT(_ZThn16_N9GG12211333barEv,_ZThn8_N9GG12211333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12211333fooEv,_ZTv0_n12_N9GG12211333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12211333fooEv,_ZThn16_N9GG12211333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12211333barEv,_ZTv0_n12_N9GG12211333barEv)();
+extern void ABISELECT(_ZThn48_N9GG12211333barEv,_ZThn24_N9GG12211333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12211333fooEv,_ZTv0_n20_N9GG12211333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12211333fooEv,_ZThn32_N9GG12211333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12211333barEv,_ZTv0_n24_N9GG12211333barEv)();
+extern void ABISELECT(_ZThn64_N9GG12211333barEv,_ZThn32_N9GG12211333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12211333fooEv,_ZTv0_n12_N9GG12211333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG12211333fooEv,_ZThn40_N9GG12211333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1221133[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1221133[0]),
+ (VTBL_ENTRY)&_ZN9GG12211333fooEv,
+ (VTBL_ENTRY)&_ZN9GG12211333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1221133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12211333barEv,_ZTv0_n20_N9GG12211333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1221133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12211333fooEv,_ZTv0_n12_N9GG12211333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1221133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12211333barEv,_ZTv0_n12_N9GG12211333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1221133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12211333fooEv,_ZTv0_n20_N9GG12211333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12211333barEv,_ZTv0_n24_N9GG12211333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1221133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12211333fooEv,_ZTv0_n12_N9GG12211333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1221133[];
+extern void _ZN5EE1223barEv();
+static VTBL_ENTRY _tg__ZTV5EE122__9GG1221133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN5EE1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE122__9GG1221133[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv)();
+extern void ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE122__9GG1221133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv),
+};
+extern void _ZN5FF1133fooEv();
+extern void _ZN5FF1133barEv();
+static VTBL_ENTRY _tg__ZTV5FF113__9GG1221133[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&_ZN5FF1133fooEv,
+ (VTBL_ENTRY)&_ZN5FF1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF113__9GG1221133[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF113__9GG1221133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+static VTT_ENTRY vtt_GG1221133[] = {
+ {&(_ZTV9GG1221133[7]), 7,35},
+ {&(_ZTV9GG1221133[14]), 14,35},
+ {&(_ZTV9GG1221133[18]), 18,35},
+ {&(_ZTV9GG1221133[22]), 22,35},
+ {&(_ZTV9GG1221133[29]), 29,35},
+ {&(_ZTV9GG1221133[34]), 34,35},
+ {&(_tg__ZTV5EE122__9GG1221133[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE122__9GG1221133[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE122__9GG1221133[3]), 3,4},
+ {&(_tg__ZTV5FF113__9GG1221133[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF113__9GG1221133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF113__9GG1221133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1221133[];
+extern VTBL_ENTRY _ZTV9GG1221133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1221133[];
+static VTBL_ENTRY alt_thunk_names325[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG12211333barEv,_ZTv0_n24_N9GG12211333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12211333barEv,_ZThn32_N9GG12211333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12211333fooEv,_ZTv0_n20_N9GG12211333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12211333fooEv,_ZThn32_N9GG12211333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12211333barEv,_ZTv0_n12_N9GG12211333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12211333barEv,_ZThn24_N9GG12211333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12211333fooEv,_ZTv0_n12_N9GG12211333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12211333fooEv,_ZThn40_N9GG12211333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12211333fooEv,_ZThn16_N9GG12211333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12211333barEv,_ZTv0_n20_N9GG12211333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12211333barEv,_ZThn8_N9GG12211333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1221133 = { "GG1221133", // class name
+ bases_GG1221133, 5,
+ &(vtc_GG1221133[0]), // expected_vtbl_contents
+ &(vtt_GG1221133[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1221133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1221133),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1221133),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names325,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1221213 : virtual EE122 , virtual FF121 {
+ int pg;
+ virtual void foo(); // _ZN9GG12212133fooEv
+ virtual void bar(); // _ZN9GG12212133barEv
+ ~GG1221213(); // tgen
+ GG1221213(); // tgen
+};
+//SIG(1 GG1221213) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC3 VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG1221213 ::foo(){vfunc_called(this, "_ZN9GG12212133fooEv");}
+void GG1221213 ::bar(){vfunc_called(this, "_ZN9GG12212133barEv");}
+GG1221213 ::~GG1221213(){ note_dtor("GG1221213", this);} // tgen
+GG1221213 ::GG1221213(){ note_ctor("GG1221213", this);} // tgen
+
+static void Test_GG1221213()
+{
+ extern Class_Descriptor cd_GG1221213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG1221213, buf);
+ GG1221213 *dp, &lv = *(dp=new (buf) GG1221213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG1221213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1221213)");
+ check_base_class_offset(lv, (AA1*)(EE122*), ABISELECT(32,16), "GG1221213");
+ check_base_class_offset(lv, (AA1*)(FF121*), ABISELECT(32,16), "GG1221213");
+ check_base_class_offset(lv, (BB2*)(EE122*), ABISELECT(48,24), "GG1221213");
+ check_base_class_offset(lv, (BB2*)(FF121*), ABISELECT(48,24), "GG1221213");
+ check_base_class_offset(lv, (EE122*), ABISELECT(16,8), "GG1221213");
+ check_base_class_offset(lv, (FF121*), ABISELECT(64,32), "GG1221213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1221213.pg");
+ test_class_info(&lv, &cd_GG1221213);
+ dp->~GG1221213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1221213(Test_GG1221213, "GG1221213", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG1221213C1Ev();
+extern void _ZN9GG1221213D1Ev();
+Name_Map name_map_GG1221213[] = {
+ NSPAIR(_ZN9GG1221213C1Ev),
+ NSPAIR(_ZN9GG1221213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE122;
+extern VTBL_ENTRY _ZTI5EE122[];
+extern VTBL_ENTRY _ZTV5EE122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE122[];
+extern Class_Descriptor cd_FF121;
+extern VTBL_ENTRY _ZTI5FF121[];
+extern VTBL_ENTRY _ZTV5FF121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF121[];
+static Base_Class bases_GG1221213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE122, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF121, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1221213[];
+extern void _ZN9GG12212133fooEv();
+extern void _ZN9GG12212133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12212133barEv,_ZTv0_n20_N9GG12212133barEv)();
+extern void ABISELECT(_ZThn16_N9GG12212133barEv,_ZThn8_N9GG12212133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12212133fooEv,_ZTv0_n12_N9GG12212133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12212133fooEv,_ZThn16_N9GG12212133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12212133barEv,_ZTv0_n12_N9GG12212133barEv)();
+extern void ABISELECT(_ZThn48_N9GG12212133barEv,_ZThn24_N9GG12212133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12212133fooEv,_ZTv0_n20_N9GG12212133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12212133fooEv,_ZThn32_N9GG12212133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1221213[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1221213[0]),
+ (VTBL_ENTRY)&_ZN9GG12212133fooEv,
+ (VTBL_ENTRY)&_ZN9GG12212133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1221213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12212133barEv,_ZTv0_n20_N9GG12212133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1221213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12212133fooEv,_ZTv0_n12_N9GG12212133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1221213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12212133barEv,_ZTv0_n12_N9GG12212133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1221213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12212133fooEv,_ZTv0_n20_N9GG12212133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1221213[];
+extern void _ZN5EE1223barEv();
+static VTBL_ENTRY _tg__ZTV5EE122__9GG1221213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN5EE1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE122__9GG1221213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv)();
+extern void ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE122__9GG1221213[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv),
+};
+extern void _ZN5FF1213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF121__9GG1221213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN5FF1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF121__9GG1221213[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF121__9GG1221213[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG1221213[] = {
+ {&(_ZTV9GG1221213[6]), 6,28},
+ {&(_ZTV9GG1221213[13]), 13,28},
+ {&(_ZTV9GG1221213[17]), 17,28},
+ {&(_ZTV9GG1221213[21]), 21,28},
+ {&(_ZTV9GG1221213[27]), 27,28},
+ {&(_tg__ZTV5EE122__9GG1221213[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE122__9GG1221213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE122__9GG1221213[3]), 3,4},
+ {&(_tg__ZTV5FF121__9GG1221213[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF121__9GG1221213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF121__9GG1221213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1221213[];
+extern VTBL_ENTRY _ZTV9GG1221213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1221213[];
+static VTBL_ENTRY alt_thunk_names326[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12212133fooEv,_ZTv0_n20_N9GG12212133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12212133fooEv,_ZThn32_N9GG12212133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12212133barEv,_ZTv0_n12_N9GG12212133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12212133barEv,_ZThn24_N9GG12212133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12212133fooEv,_ZTv0_n12_N9GG12212133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12212133fooEv,_ZThn16_N9GG12212133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12212133barEv,_ZTv0_n20_N9GG12212133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12212133barEv,_ZThn8_N9GG12212133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1221213 = { "GG1221213", // class name
+ bases_GG1221213, 4,
+ &(vtc_GG1221213[0]), // expected_vtbl_contents
+ &(vtt_GG1221213[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG1221213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1221213),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1221213),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names326,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1221223 : virtual EE122 , virtual FF122 {
+ int pg;
+ virtual void foo(); // _ZN9GG12212233fooEv
+ virtual void bar(); // _ZN9GG12212233barEv
+ ~GG1221223(); // tgen
+ GG1221223(); // tgen
+};
+//SIG(1 GG1221223) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC3 VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG1221223 ::foo(){vfunc_called(this, "_ZN9GG12212233fooEv");}
+void GG1221223 ::bar(){vfunc_called(this, "_ZN9GG12212233barEv");}
+GG1221223 ::~GG1221223(){ note_dtor("GG1221223", this);} // tgen
+GG1221223 ::GG1221223(){ note_ctor("GG1221223", this);} // tgen
+
+static void Test_GG1221223()
+{
+ extern Class_Descriptor cd_GG1221223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG1221223, buf);
+ GG1221223 *dp, &lv = *(dp=new (buf) GG1221223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG1221223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1221223)");
+ check_base_class_offset(lv, (AA1*)(EE122*), ABISELECT(32,16), "GG1221223");
+ check_base_class_offset(lv, (AA1*)(FF122*), ABISELECT(32,16), "GG1221223");
+ check_base_class_offset(lv, (BB2*)(EE122*), ABISELECT(48,24), "GG1221223");
+ check_base_class_offset(lv, (BB2*)(FF122*), ABISELECT(48,24), "GG1221223");
+ check_base_class_offset(lv, (EE122*), ABISELECT(16,8), "GG1221223");
+ check_base_class_offset(lv, (FF122*), ABISELECT(64,32), "GG1221223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1221223.pg");
+ test_class_info(&lv, &cd_GG1221223);
+ dp->~GG1221223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1221223(Test_GG1221223, "GG1221223", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG1221223C1Ev();
+extern void _ZN9GG1221223D1Ev();
+Name_Map name_map_GG1221223[] = {
+ NSPAIR(_ZN9GG1221223C1Ev),
+ NSPAIR(_ZN9GG1221223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE122;
+extern VTBL_ENTRY _ZTI5EE122[];
+extern VTBL_ENTRY _ZTV5EE122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE122[];
+extern Class_Descriptor cd_FF122;
+extern VTBL_ENTRY _ZTI5FF122[];
+extern VTBL_ENTRY _ZTV5FF122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF122[];
+static Base_Class bases_GG1221223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE122, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF122, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1221223[];
+extern void _ZN9GG12212233fooEv();
+extern void _ZN9GG12212233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12212233barEv,_ZTv0_n20_N9GG12212233barEv)();
+extern void ABISELECT(_ZThn16_N9GG12212233barEv,_ZThn8_N9GG12212233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12212233fooEv,_ZTv0_n12_N9GG12212233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12212233fooEv,_ZThn16_N9GG12212233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12212233barEv,_ZTv0_n12_N9GG12212233barEv)();
+extern void ABISELECT(_ZThn48_N9GG12212233barEv,_ZThn24_N9GG12212233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12212233barEv,_ZTv0_n20_N9GG12212233barEv)();
+extern void ABISELECT(_ZThn64_N9GG12212233barEv,_ZThn32_N9GG12212233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1221223[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1221223[0]),
+ (VTBL_ENTRY)&_ZN9GG12212233fooEv,
+ (VTBL_ENTRY)&_ZN9GG12212233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1221223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12212233barEv,_ZTv0_n20_N9GG12212233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1221223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12212233fooEv,_ZTv0_n12_N9GG12212233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1221223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12212233barEv,_ZTv0_n12_N9GG12212233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1221223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12212233barEv,_ZTv0_n20_N9GG12212233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1221223[];
+extern void _ZN5EE1223barEv();
+static VTBL_ENTRY _tg__ZTV5EE122__9GG1221223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN5EE1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE122__9GG1221223[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv)();
+extern void ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE122__9GG1221223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv),
+};
+extern void _ZN5FF1223barEv();
+static VTBL_ENTRY _tg__ZTV5FF122__9GG1221223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN5FF1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF122__9GG1221223[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF122__9GG1221223[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv),
+};
+static VTT_ENTRY vtt_GG1221223[] = {
+ {&(_ZTV9GG1221223[6]), 6,28},
+ {&(_ZTV9GG1221223[13]), 13,28},
+ {&(_ZTV9GG1221223[17]), 17,28},
+ {&(_ZTV9GG1221223[21]), 21,28},
+ {&(_ZTV9GG1221223[27]), 27,28},
+ {&(_tg__ZTV5EE122__9GG1221223[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE122__9GG1221223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE122__9GG1221223[3]), 3,4},
+ {&(_tg__ZTV5FF122__9GG1221223[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF122__9GG1221223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF122__9GG1221223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1221223[];
+extern VTBL_ENTRY _ZTV9GG1221223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1221223[];
+static VTBL_ENTRY alt_thunk_names327[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12212233barEv,_ZTv0_n12_N9GG12212233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12212233barEv,_ZThn24_N9GG12212233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12212233fooEv,_ZTv0_n12_N9GG12212233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12212233fooEv,_ZThn16_N9GG12212233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12212233barEv,_ZTv0_n20_N9GG12212233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12212233barEv,_ZThn32_N9GG12212233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12212233barEv,_ZThn8_N9GG12212233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1221223 = { "GG1221223", // class name
+ bases_GG1221223, 4,
+ &(vtc_GG1221223[0]), // expected_vtbl_contents
+ &(vtt_GG1221223[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG1221223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1221223),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1221223),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names327,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1221233 : virtual EE122 , virtual FF123 {
+ int pg;
+ virtual void foo(); // _ZN9GG12212333fooEv
+ virtual void bar(); // _ZN9GG12212333barEv
+ ~GG1221233(); // tgen
+ GG1221233(); // tgen
+};
+//SIG(1 GG1221233) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC3 VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1221233 ::foo(){vfunc_called(this, "_ZN9GG12212333fooEv");}
+void GG1221233 ::bar(){vfunc_called(this, "_ZN9GG12212333barEv");}
+GG1221233 ::~GG1221233(){ note_dtor("GG1221233", this);} // tgen
+GG1221233 ::GG1221233(){ note_ctor("GG1221233", this);} // tgen
+
+static void Test_GG1221233()
+{
+ extern Class_Descriptor cd_GG1221233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG1221233, buf);
+ GG1221233 *dp, &lv = *(dp=new (buf) GG1221233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG1221233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1221233)");
+ check_base_class_offset(lv, (AA1*)(EE122*), ABISELECT(32,16), "GG1221233");
+ check_base_class_offset(lv, (AA1*)(FF123*), ABISELECT(32,16), "GG1221233");
+ check_base_class_offset(lv, (BB2*)(EE122*), ABISELECT(48,24), "GG1221233");
+ check_base_class_offset(lv, (BB2*)(FF123*), ABISELECT(48,24), "GG1221233");
+ check_base_class_offset(lv, (EE122*), ABISELECT(16,8), "GG1221233");
+ check_base_class_offset(lv, (FF123*), ABISELECT(64,32), "GG1221233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1221233.pg");
+ test_class_info(&lv, &cd_GG1221233);
+ dp->~GG1221233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1221233(Test_GG1221233, "GG1221233", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG1221233C1Ev();
+extern void _ZN9GG1221233D1Ev();
+Name_Map name_map_GG1221233[] = {
+ NSPAIR(_ZN9GG1221233C1Ev),
+ NSPAIR(_ZN9GG1221233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE122;
+extern VTBL_ENTRY _ZTI5EE122[];
+extern VTBL_ENTRY _ZTV5EE122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE122[];
+extern Class_Descriptor cd_FF123;
+extern VTBL_ENTRY _ZTI5FF123[];
+extern VTBL_ENTRY _ZTV5FF123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF123[];
+static Base_Class bases_GG1221233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE122, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF123, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1221233[];
+extern void _ZN9GG12212333fooEv();
+extern void _ZN9GG12212333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12212333barEv,_ZTv0_n20_N9GG12212333barEv)();
+extern void ABISELECT(_ZThn16_N9GG12212333barEv,_ZThn8_N9GG12212333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12212333fooEv,_ZTv0_n12_N9GG12212333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12212333fooEv,_ZThn16_N9GG12212333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12212333barEv,_ZTv0_n12_N9GG12212333barEv)();
+extern void ABISELECT(_ZThn48_N9GG12212333barEv,_ZThn24_N9GG12212333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12212333fooEv,_ZTv0_n20_N9GG12212333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12212333fooEv,_ZThn32_N9GG12212333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12212333barEv,_ZTv0_n24_N9GG12212333barEv)();
+extern void ABISELECT(_ZThn64_N9GG12212333barEv,_ZThn32_N9GG12212333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1221233[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1221233[0]),
+ (VTBL_ENTRY)&_ZN9GG12212333fooEv,
+ (VTBL_ENTRY)&_ZN9GG12212333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1221233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12212333barEv,_ZTv0_n20_N9GG12212333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1221233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12212333fooEv,_ZTv0_n12_N9GG12212333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1221233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12212333barEv,_ZTv0_n12_N9GG12212333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1221233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12212333fooEv,_ZTv0_n20_N9GG12212333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12212333barEv,_ZTv0_n24_N9GG12212333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1221233[];
+extern void _ZN5EE1223barEv();
+static VTBL_ENTRY _tg__ZTV5EE122__9GG1221233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN5EE1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE122__9GG1221233[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv)();
+extern void ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE122__9GG1221233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv),
+};
+extern void _ZN5FF1233fooEv();
+extern void _ZN5FF1233barEv();
+static VTBL_ENTRY _tg__ZTV5FF123__9GG1221233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&_ZN5FF1233fooEv,
+ (VTBL_ENTRY)&_ZN5FF1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF123__9GG1221233[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF123__9GG1221233[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv),
+};
+static VTT_ENTRY vtt_GG1221233[] = {
+ {&(_ZTV9GG1221233[6]), 6,30},
+ {&(_ZTV9GG1221233[13]), 13,30},
+ {&(_ZTV9GG1221233[17]), 17,30},
+ {&(_ZTV9GG1221233[21]), 21,30},
+ {&(_ZTV9GG1221233[28]), 28,30},
+ {&(_tg__ZTV5EE122__9GG1221233[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE122__9GG1221233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE122__9GG1221233[3]), 3,4},
+ {&(_tg__ZTV5FF123__9GG1221233[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF123__9GG1221233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF123__9GG1221233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1221233[];
+extern VTBL_ENTRY _ZTV9GG1221233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1221233[];
+static VTBL_ENTRY alt_thunk_names328[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG12212333barEv,_ZTv0_n24_N9GG12212333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12212333barEv,_ZThn32_N9GG12212333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12212333fooEv,_ZTv0_n20_N9GG12212333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12212333fooEv,_ZThn32_N9GG12212333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12212333barEv,_ZTv0_n12_N9GG12212333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12212333barEv,_ZThn24_N9GG12212333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12212333fooEv,_ZTv0_n12_N9GG12212333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12212333fooEv,_ZThn16_N9GG12212333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12212333barEv,_ZTv0_n20_N9GG12212333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12212333barEv,_ZThn8_N9GG12212333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1221233 = { "GG1221233", // class name
+ bases_GG1221233, 4,
+ &(vtc_GG1221233[0]), // expected_vtbl_contents
+ &(vtt_GG1221233[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG1221233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1221233),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1221233),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names328,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1221313 : virtual EE122 , virtual FF131 {
+ int pg;
+ virtual void foo(); // _ZN9GG12213133fooEv
+ virtual void bar(); // _ZN9GG12213133barEv
+ ~GG1221313(); // tgen
+ GG1221313(); // tgen
+};
+//SIG(1 GG1221313) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1221313 ::foo(){vfunc_called(this, "_ZN9GG12213133fooEv");}
+void GG1221313 ::bar(){vfunc_called(this, "_ZN9GG12213133barEv");}
+GG1221313 ::~GG1221313(){ note_dtor("GG1221313", this);} // tgen
+GG1221313 ::GG1221313(){ note_ctor("GG1221313", this);} // tgen
+
+static void Test_GG1221313()
+{
+ extern Class_Descriptor cd_GG1221313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1221313, buf);
+ GG1221313 *dp, &lv = *(dp=new (buf) GG1221313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1221313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1221313)");
+ check_base_class_offset(lv, (AA1*)(EE122*), ABISELECT(32,16), "GG1221313");
+ check_base_class_offset(lv, (AA1*)(FF131*), ABISELECT(32,16), "GG1221313");
+ check_base_class_offset(lv, (BB2*)(EE122*), ABISELECT(48,24), "GG1221313");
+ check_base_class_offset(lv, (EE122*), ABISELECT(16,8), "GG1221313");
+ check_base_class_offset(lv, (BB3*)(FF131*), ABISELECT(80,40), "GG1221313");
+ check_base_class_offset(lv, (FF131*), ABISELECT(64,32), "GG1221313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1221313.pg");
+ test_class_info(&lv, &cd_GG1221313);
+ dp->~GG1221313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1221313(Test_GG1221313, "GG1221313", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1221313C1Ev();
+extern void _ZN9GG1221313D1Ev();
+Name_Map name_map_GG1221313[] = {
+ NSPAIR(_ZN9GG1221313C1Ev),
+ NSPAIR(_ZN9GG1221313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE122;
+extern VTBL_ENTRY _ZTI5EE122[];
+extern VTBL_ENTRY _ZTV5EE122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE122[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF131;
+extern VTBL_ENTRY _ZTI5FF131[];
+extern VTBL_ENTRY _ZTV5FF131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF131[];
+static Base_Class bases_GG1221313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE122, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF131, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1221313[];
+extern void _ZN9GG12213133fooEv();
+extern void _ZN9GG12213133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12213133barEv,_ZTv0_n20_N9GG12213133barEv)();
+extern void ABISELECT(_ZThn16_N9GG12213133barEv,_ZThn8_N9GG12213133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12213133fooEv,_ZTv0_n12_N9GG12213133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12213133fooEv,_ZThn16_N9GG12213133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12213133barEv,_ZTv0_n12_N9GG12213133barEv)();
+extern void ABISELECT(_ZThn48_N9GG12213133barEv,_ZThn24_N9GG12213133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12213133fooEv,_ZTv0_n20_N9GG12213133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12213133fooEv,_ZThn32_N9GG12213133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12213133fooEv,_ZTv0_n12_N9GG12213133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG12213133fooEv,_ZThn40_N9GG12213133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12213133barEv,_ZTv0_n16_N9GG12213133barEv)();
+extern void ABISELECT(_ZThn80_N9GG12213133barEv,_ZThn40_N9GG12213133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1221313[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1221313[0]),
+ (VTBL_ENTRY)&_ZN9GG12213133fooEv,
+ (VTBL_ENTRY)&_ZN9GG12213133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1221313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12213133barEv,_ZTv0_n20_N9GG12213133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1221313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12213133fooEv,_ZTv0_n12_N9GG12213133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1221313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12213133barEv,_ZTv0_n12_N9GG12213133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1221313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12213133fooEv,_ZTv0_n20_N9GG12213133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1221313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12213133fooEv,_ZTv0_n12_N9GG12213133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12213133barEv,_ZTv0_n16_N9GG12213133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1221313[];
+extern void _ZN5EE1223barEv();
+static VTBL_ENTRY _tg__ZTV5EE122__9GG1221313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN5EE1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE122__9GG1221313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv)();
+extern void ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE122__9GG1221313[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv),
+};
+extern void _ZN5FF1313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF131__9GG1221313[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&_ZN5FF1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF131__9GG1221313[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF131__9GG1221313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG1221313[] = {
+ {&(_ZTV9GG1221313[7]), 7,35},
+ {&(_ZTV9GG1221313[14]), 14,35},
+ {&(_ZTV9GG1221313[18]), 18,35},
+ {&(_ZTV9GG1221313[22]), 22,35},
+ {&(_ZTV9GG1221313[28]), 28,35},
+ {&(_ZTV9GG1221313[33]), 33,35},
+ {&(_tg__ZTV5EE122__9GG1221313[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE122__9GG1221313[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE122__9GG1221313[3]), 3,4},
+ {&(_tg__ZTV5FF131__9GG1221313[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF131__9GG1221313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF131__9GG1221313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1221313[];
+extern VTBL_ENTRY _ZTV9GG1221313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1221313[];
+static VTBL_ENTRY alt_thunk_names329[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG12213133barEv,_ZTv0_n16_N9GG12213133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12213133barEv,_ZThn40_N9GG12213133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12213133fooEv,_ZTv0_n20_N9GG12213133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12213133fooEv,_ZThn32_N9GG12213133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12213133barEv,_ZTv0_n12_N9GG12213133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12213133barEv,_ZThn24_N9GG12213133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12213133fooEv,_ZTv0_n12_N9GG12213133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12213133fooEv,_ZThn40_N9GG12213133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12213133fooEv,_ZThn16_N9GG12213133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12213133barEv,_ZTv0_n20_N9GG12213133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12213133barEv,_ZThn8_N9GG12213133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1221313 = { "GG1221313", // class name
+ bases_GG1221313, 5,
+ &(vtc_GG1221313[0]), // expected_vtbl_contents
+ &(vtt_GG1221313[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1221313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1221313),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1221313),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names329,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1221323 : virtual EE122 , virtual FF132 {
+ int pg;
+ virtual void foo(); // _ZN9GG12213233fooEv
+ virtual void bar(); // _ZN9GG12213233barEv
+ ~GG1221323(); // tgen
+ GG1221323(); // tgen
+};
+//SIG(1 GG1221323) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1221323 ::foo(){vfunc_called(this, "_ZN9GG12213233fooEv");}
+void GG1221323 ::bar(){vfunc_called(this, "_ZN9GG12213233barEv");}
+GG1221323 ::~GG1221323(){ note_dtor("GG1221323", this);} // tgen
+GG1221323 ::GG1221323(){ note_ctor("GG1221323", this);} // tgen
+
+static void Test_GG1221323()
+{
+ extern Class_Descriptor cd_GG1221323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1221323, buf);
+ GG1221323 *dp, &lv = *(dp=new (buf) GG1221323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1221323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1221323)");
+ check_base_class_offset(lv, (AA1*)(EE122*), ABISELECT(32,16), "GG1221323");
+ check_base_class_offset(lv, (AA1*)(FF132*), ABISELECT(32,16), "GG1221323");
+ check_base_class_offset(lv, (BB2*)(EE122*), ABISELECT(48,24), "GG1221323");
+ check_base_class_offset(lv, (EE122*), ABISELECT(16,8), "GG1221323");
+ check_base_class_offset(lv, (BB3*)(FF132*), ABISELECT(80,40), "GG1221323");
+ check_base_class_offset(lv, (FF132*), ABISELECT(64,32), "GG1221323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1221323.pg");
+ test_class_info(&lv, &cd_GG1221323);
+ dp->~GG1221323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1221323(Test_GG1221323, "GG1221323", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1221323C1Ev();
+extern void _ZN9GG1221323D1Ev();
+Name_Map name_map_GG1221323[] = {
+ NSPAIR(_ZN9GG1221323C1Ev),
+ NSPAIR(_ZN9GG1221323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE122;
+extern VTBL_ENTRY _ZTI5EE122[];
+extern VTBL_ENTRY _ZTV5EE122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE122[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF132;
+extern VTBL_ENTRY _ZTI5FF132[];
+extern VTBL_ENTRY _ZTV5FF132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF132[];
+static Base_Class bases_GG1221323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE122, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF132, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1221323[];
+extern void _ZN9GG12213233fooEv();
+extern void _ZN9GG12213233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12213233barEv,_ZTv0_n20_N9GG12213233barEv)();
+extern void ABISELECT(_ZThn16_N9GG12213233barEv,_ZThn8_N9GG12213233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12213233fooEv,_ZTv0_n12_N9GG12213233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12213233fooEv,_ZThn16_N9GG12213233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12213233barEv,_ZTv0_n12_N9GG12213233barEv)();
+extern void ABISELECT(_ZThn48_N9GG12213233barEv,_ZThn24_N9GG12213233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12213233barEv,_ZTv0_n20_N9GG12213233barEv)();
+extern void ABISELECT(_ZThn64_N9GG12213233barEv,_ZThn32_N9GG12213233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12213233fooEv,_ZTv0_n12_N9GG12213233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG12213233fooEv,_ZThn40_N9GG12213233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12213233barEv,_ZTv0_n16_N9GG12213233barEv)();
+extern void ABISELECT(_ZThn80_N9GG12213233barEv,_ZThn40_N9GG12213233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1221323[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1221323[0]),
+ (VTBL_ENTRY)&_ZN9GG12213233fooEv,
+ (VTBL_ENTRY)&_ZN9GG12213233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1221323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12213233barEv,_ZTv0_n20_N9GG12213233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1221323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12213233fooEv,_ZTv0_n12_N9GG12213233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1221323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12213233barEv,_ZTv0_n12_N9GG12213233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1221323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12213233barEv,_ZTv0_n20_N9GG12213233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1221323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12213233fooEv,_ZTv0_n12_N9GG12213233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12213233barEv,_ZTv0_n16_N9GG12213233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1221323[];
+extern void _ZN5EE1223barEv();
+static VTBL_ENTRY _tg__ZTV5EE122__9GG1221323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN5EE1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE122__9GG1221323[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv)();
+extern void ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE122__9GG1221323[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv),
+};
+extern void _ZN5FF1323barEv();
+static VTBL_ENTRY _tg__ZTV5FF132__9GG1221323[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN5FF1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF132__9GG1221323[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv)();
+extern void ABISELECT(_ZThn16_N5FF1323barEv,_ZThn8_N5FF1323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF132__9GG1221323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv),
+};
+static VTT_ENTRY vtt_GG1221323[] = {
+ {&(_ZTV9GG1221323[7]), 7,35},
+ {&(_ZTV9GG1221323[14]), 14,35},
+ {&(_ZTV9GG1221323[18]), 18,35},
+ {&(_ZTV9GG1221323[22]), 22,35},
+ {&(_ZTV9GG1221323[28]), 28,35},
+ {&(_ZTV9GG1221323[33]), 33,35},
+ {&(_tg__ZTV5EE122__9GG1221323[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE122__9GG1221323[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE122__9GG1221323[3]), 3,4},
+ {&(_tg__ZTV5FF132__9GG1221323[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF132__9GG1221323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF132__9GG1221323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1221323[];
+extern VTBL_ENTRY _ZTV9GG1221323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1221323[];
+static VTBL_ENTRY alt_thunk_names330[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1323barEv,_ZThn8_N5FF1323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG12213233barEv,_ZTv0_n16_N9GG12213233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12213233barEv,_ZThn40_N9GG12213233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12213233barEv,_ZTv0_n12_N9GG12213233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12213233barEv,_ZThn24_N9GG12213233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12213233fooEv,_ZTv0_n12_N9GG12213233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12213233fooEv,_ZThn40_N9GG12213233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12213233fooEv,_ZThn16_N9GG12213233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12213233barEv,_ZTv0_n20_N9GG12213233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12213233barEv,_ZThn32_N9GG12213233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12213233barEv,_ZThn8_N9GG12213233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1221323 = { "GG1221323", // class name
+ bases_GG1221323, 5,
+ &(vtc_GG1221323[0]), // expected_vtbl_contents
+ &(vtt_GG1221323[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1221323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1221323),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1221323),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names330,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1221333 : virtual EE122 , virtual FF133 {
+ int pg;
+ virtual void foo(); // _ZN9GG12213333fooEv
+ virtual void bar(); // _ZN9GG12213333barEv
+ ~GG1221333(); // tgen
+ GG1221333(); // tgen
+};
+//SIG(1 GG1221333) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1221333 ::foo(){vfunc_called(this, "_ZN9GG12213333fooEv");}
+void GG1221333 ::bar(){vfunc_called(this, "_ZN9GG12213333barEv");}
+GG1221333 ::~GG1221333(){ note_dtor("GG1221333", this);} // tgen
+GG1221333 ::GG1221333(){ note_ctor("GG1221333", this);} // tgen
+
+static void Test_GG1221333()
+{
+ extern Class_Descriptor cd_GG1221333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1221333, buf);
+ GG1221333 *dp, &lv = *(dp=new (buf) GG1221333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1221333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1221333)");
+ check_base_class_offset(lv, (AA1*)(EE122*), ABISELECT(32,16), "GG1221333");
+ check_base_class_offset(lv, (AA1*)(FF133*), ABISELECT(32,16), "GG1221333");
+ check_base_class_offset(lv, (BB2*)(EE122*), ABISELECT(48,24), "GG1221333");
+ check_base_class_offset(lv, (EE122*), ABISELECT(16,8), "GG1221333");
+ check_base_class_offset(lv, (BB3*)(FF133*), ABISELECT(80,40), "GG1221333");
+ check_base_class_offset(lv, (FF133*), ABISELECT(64,32), "GG1221333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1221333.pg");
+ test_class_info(&lv, &cd_GG1221333);
+ dp->~GG1221333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1221333(Test_GG1221333, "GG1221333", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1221333C1Ev();
+extern void _ZN9GG1221333D1Ev();
+Name_Map name_map_GG1221333[] = {
+ NSPAIR(_ZN9GG1221333C1Ev),
+ NSPAIR(_ZN9GG1221333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE122;
+extern VTBL_ENTRY _ZTI5EE122[];
+extern VTBL_ENTRY _ZTV5EE122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE122[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF133;
+extern VTBL_ENTRY _ZTI5FF133[];
+extern VTBL_ENTRY _ZTV5FF133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF133[];
+static Base_Class bases_GG1221333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE122, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF133, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1221333[];
+extern void _ZN9GG12213333fooEv();
+extern void _ZN9GG12213333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12213333barEv,_ZTv0_n20_N9GG12213333barEv)();
+extern void ABISELECT(_ZThn16_N9GG12213333barEv,_ZThn8_N9GG12213333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12213333fooEv,_ZTv0_n12_N9GG12213333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12213333fooEv,_ZThn16_N9GG12213333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12213333barEv,_ZTv0_n12_N9GG12213333barEv)();
+extern void ABISELECT(_ZThn48_N9GG12213333barEv,_ZThn24_N9GG12213333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12213333fooEv,_ZTv0_n20_N9GG12213333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12213333fooEv,_ZThn32_N9GG12213333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12213333barEv,_ZTv0_n24_N9GG12213333barEv)();
+extern void ABISELECT(_ZThn64_N9GG12213333barEv,_ZThn32_N9GG12213333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12213333fooEv,_ZTv0_n12_N9GG12213333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG12213333fooEv,_ZThn40_N9GG12213333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12213333barEv,_ZTv0_n16_N9GG12213333barEv)();
+extern void ABISELECT(_ZThn80_N9GG12213333barEv,_ZThn40_N9GG12213333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1221333[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1221333[0]),
+ (VTBL_ENTRY)&_ZN9GG12213333fooEv,
+ (VTBL_ENTRY)&_ZN9GG12213333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1221333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12213333barEv,_ZTv0_n20_N9GG12213333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1221333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12213333fooEv,_ZTv0_n12_N9GG12213333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1221333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12213333barEv,_ZTv0_n12_N9GG12213333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1221333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12213333fooEv,_ZTv0_n20_N9GG12213333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12213333barEv,_ZTv0_n24_N9GG12213333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1221333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12213333fooEv,_ZTv0_n12_N9GG12213333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12213333barEv,_ZTv0_n16_N9GG12213333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1221333[];
+extern void _ZN5EE1223barEv();
+static VTBL_ENTRY _tg__ZTV5EE122__9GG1221333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN5EE1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE122__9GG1221333[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv)();
+extern void ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE122__9GG1221333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv),
+};
+extern void _ZN5FF1333fooEv();
+extern void _ZN5FF1333barEv();
+static VTBL_ENTRY _tg__ZTV5FF133__9GG1221333[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&_ZN5FF1333fooEv,
+ (VTBL_ENTRY)&_ZN5FF1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF133__9GG1221333[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv)();
+extern void ABISELECT(_ZThn16_N5FF1333barEv,_ZThn8_N5FF1333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF133__9GG1221333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv),
+};
+static VTT_ENTRY vtt_GG1221333[] = {
+ {&(_ZTV9GG1221333[7]), 7,37},
+ {&(_ZTV9GG1221333[14]), 14,37},
+ {&(_ZTV9GG1221333[18]), 18,37},
+ {&(_ZTV9GG1221333[22]), 22,37},
+ {&(_ZTV9GG1221333[29]), 29,37},
+ {&(_ZTV9GG1221333[35]), 35,37},
+ {&(_tg__ZTV5EE122__9GG1221333[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE122__9GG1221333[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE122__9GG1221333[3]), 3,4},
+ {&(_tg__ZTV5FF133__9GG1221333[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF133__9GG1221333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF133__9GG1221333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1221333[];
+extern VTBL_ENTRY _ZTV9GG1221333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1221333[];
+static VTBL_ENTRY alt_thunk_names331[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1333barEv,_ZThn8_N5FF1333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG12213333barEv,_ZTv0_n16_N9GG12213333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12213333barEv,_ZThn40_N9GG12213333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG12213333barEv,_ZTv0_n24_N9GG12213333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12213333barEv,_ZThn32_N9GG12213333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12213333fooEv,_ZTv0_n20_N9GG12213333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12213333fooEv,_ZThn32_N9GG12213333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12213333barEv,_ZTv0_n12_N9GG12213333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12213333barEv,_ZThn24_N9GG12213333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12213333fooEv,_ZTv0_n12_N9GG12213333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12213333fooEv,_ZThn40_N9GG12213333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12213333fooEv,_ZThn16_N9GG12213333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12213333barEv,_ZTv0_n20_N9GG12213333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12213333barEv,_ZThn8_N9GG12213333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1221333 = { "GG1221333", // class name
+ bases_GG1221333, 5,
+ &(vtc_GG1221333[0]), // expected_vtbl_contents
+ &(vtt_GG1221333[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1221333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1221333),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1221333),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names331,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1222113 : virtual EE122 , virtual FF211 {
+ int pg;
+ virtual void foo(); // _ZN9GG12221133fooEv
+ virtual void bar(); // _ZN9GG12221133barEv
+ ~GG1222113(); // tgen
+ GG1222113(); // tgen
+};
+//SIG(1 GG1222113) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1222113 ::foo(){vfunc_called(this, "_ZN9GG12221133fooEv");}
+void GG1222113 ::bar(){vfunc_called(this, "_ZN9GG12221133barEv");}
+GG1222113 ::~GG1222113(){ note_dtor("GG1222113", this);} // tgen
+GG1222113 ::GG1222113(){ note_ctor("GG1222113", this);} // tgen
+
+static void Test_GG1222113()
+{
+ extern Class_Descriptor cd_GG1222113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1222113, buf);
+ GG1222113 *dp, &lv = *(dp=new (buf) GG1222113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1222113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1222113)");
+ check_base_class_offset(lv, (AA1*)(EE122*), ABISELECT(32,16), "GG1222113");
+ check_base_class_offset(lv, (BB2*)(EE122*), ABISELECT(48,24), "GG1222113");
+ check_base_class_offset(lv, (EE122*), ABISELECT(16,8), "GG1222113");
+ check_base_class_offset(lv, (AA2*)(FF211*), ABISELECT(80,40), "GG1222113");
+ check_base_class_offset(lv, (BB1*)(FF211*), ABISELECT(96,48), "GG1222113");
+ check_base_class_offset(lv, (FF211*), ABISELECT(64,32), "GG1222113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1222113.pg");
+ test_class_info(&lv, &cd_GG1222113);
+ dp->~GG1222113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1222113(Test_GG1222113, "GG1222113", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1222113C1Ev();
+extern void _ZN9GG1222113D1Ev();
+Name_Map name_map_GG1222113[] = {
+ NSPAIR(_ZN9GG1222113C1Ev),
+ NSPAIR(_ZN9GG1222113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE122;
+extern VTBL_ENTRY _ZTI5EE122[];
+extern VTBL_ENTRY _ZTV5EE122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE122[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF211;
+extern VTBL_ENTRY _ZTI5FF211[];
+extern VTBL_ENTRY _ZTV5FF211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF211[];
+static Base_Class bases_GG1222113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE122, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF211, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1222113[];
+extern void _ZN9GG12221133fooEv();
+extern void _ZN9GG12221133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12221133barEv,_ZTv0_n20_N9GG12221133barEv)();
+extern void ABISELECT(_ZThn16_N9GG12221133barEv,_ZThn8_N9GG12221133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12221133fooEv,_ZTv0_n12_N9GG12221133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12221133fooEv,_ZThn16_N9GG12221133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12221133barEv,_ZTv0_n12_N9GG12221133barEv)();
+extern void ABISELECT(_ZThn48_N9GG12221133barEv,_ZThn24_N9GG12221133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12221133fooEv,_ZTv0_n20_N9GG12221133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12221133fooEv,_ZThn32_N9GG12221133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12221133barEv,_ZTv0_n12_N9GG12221133barEv)();
+extern void ABISELECT(_ZThn80_N9GG12221133barEv,_ZThn40_N9GG12221133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12221133fooEv,_ZTv0_n12_N9GG12221133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG12221133fooEv,_ZThn48_N9GG12221133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1222113[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1222113[0]),
+ (VTBL_ENTRY)&_ZN9GG12221133fooEv,
+ (VTBL_ENTRY)&_ZN9GG12221133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1222113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12221133barEv,_ZTv0_n20_N9GG12221133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1222113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12221133fooEv,_ZTv0_n12_N9GG12221133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1222113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12221133barEv,_ZTv0_n12_N9GG12221133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1222113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12221133fooEv,_ZTv0_n20_N9GG12221133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1222113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12221133barEv,_ZTv0_n12_N9GG12221133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1222113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12221133fooEv,_ZTv0_n12_N9GG12221133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1222113[];
+extern void _ZN5EE1223barEv();
+static VTBL_ENTRY _tg__ZTV5EE122__9GG1222113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN5EE1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE122__9GG1222113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv)();
+extern void ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE122__9GG1222113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv),
+};
+extern void _ZN5FF2113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF211__9GG1222113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN5FF2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF211__9GG1222113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2113fooEv,_ZThn16_N5FF2113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF211__9GG1222113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv),
+};
+static VTT_ENTRY vtt_GG1222113[] = {
+ {&(_ZTV9GG1222113[8]), 8,38},
+ {&(_ZTV9GG1222113[15]), 15,38},
+ {&(_ZTV9GG1222113[19]), 19,38},
+ {&(_ZTV9GG1222113[23]), 23,38},
+ {&(_ZTV9GG1222113[29]), 29,38},
+ {&(_ZTV9GG1222113[33]), 33,38},
+ {&(_ZTV9GG1222113[37]), 37,38},
+ {&(_tg__ZTV5EE122__9GG1222113[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE122__9GG1222113[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE122__9GG1222113[3]), 3,4},
+ {&(_tg__ZTV5FF211__9GG1222113[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF211__9GG1222113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF211__9GG1222113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1222113[];
+extern VTBL_ENTRY _ZTV9GG1222113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1222113[];
+static VTBL_ENTRY alt_thunk_names332[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2113fooEv,_ZThn16_N5FF2113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12221133fooEv,_ZTv0_n20_N9GG12221133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12221133fooEv,_ZThn32_N9GG12221133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12221133barEv,_ZTv0_n12_N9GG12221133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12221133barEv,_ZThn40_N9GG12221133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12221133barEv,_ZThn24_N9GG12221133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12221133fooEv,_ZTv0_n12_N9GG12221133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12221133fooEv,_ZThn48_N9GG12221133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12221133fooEv,_ZThn16_N9GG12221133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12221133barEv,_ZTv0_n20_N9GG12221133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12221133barEv,_ZThn8_N9GG12221133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1222113 = { "GG1222113", // class name
+ bases_GG1222113, 6,
+ &(vtc_GG1222113[0]), // expected_vtbl_contents
+ &(vtt_GG1222113[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1222113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1222113),38, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1222113),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names332,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1222123 : virtual EE122 , virtual FF212 {
+ int pg;
+ virtual void foo(); // _ZN9GG12221233fooEv
+ virtual void bar(); // _ZN9GG12221233barEv
+ ~GG1222123(); // tgen
+ GG1222123(); // tgen
+};
+//SIG(1 GG1222123) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1222123 ::foo(){vfunc_called(this, "_ZN9GG12221233fooEv");}
+void GG1222123 ::bar(){vfunc_called(this, "_ZN9GG12221233barEv");}
+GG1222123 ::~GG1222123(){ note_dtor("GG1222123", this);} // tgen
+GG1222123 ::GG1222123(){ note_ctor("GG1222123", this);} // tgen
+
+static void Test_GG1222123()
+{
+ extern Class_Descriptor cd_GG1222123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1222123, buf);
+ GG1222123 *dp, &lv = *(dp=new (buf) GG1222123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1222123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1222123)");
+ check_base_class_offset(lv, (AA1*)(EE122*), ABISELECT(32,16), "GG1222123");
+ check_base_class_offset(lv, (BB2*)(EE122*), ABISELECT(48,24), "GG1222123");
+ check_base_class_offset(lv, (EE122*), ABISELECT(16,8), "GG1222123");
+ check_base_class_offset(lv, (AA2*)(FF212*), ABISELECT(80,40), "GG1222123");
+ check_base_class_offset(lv, (BB1*)(FF212*), ABISELECT(96,48), "GG1222123");
+ check_base_class_offset(lv, (FF212*), ABISELECT(64,32), "GG1222123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1222123.pg");
+ test_class_info(&lv, &cd_GG1222123);
+ dp->~GG1222123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1222123(Test_GG1222123, "GG1222123", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1222123C1Ev();
+extern void _ZN9GG1222123D1Ev();
+Name_Map name_map_GG1222123[] = {
+ NSPAIR(_ZN9GG1222123C1Ev),
+ NSPAIR(_ZN9GG1222123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE122;
+extern VTBL_ENTRY _ZTI5EE122[];
+extern VTBL_ENTRY _ZTV5EE122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE122[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF212;
+extern VTBL_ENTRY _ZTI5FF212[];
+extern VTBL_ENTRY _ZTV5FF212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF212[];
+static Base_Class bases_GG1222123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE122, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF212, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1222123[];
+extern void _ZN9GG12221233fooEv();
+extern void _ZN9GG12221233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12221233barEv,_ZTv0_n20_N9GG12221233barEv)();
+extern void ABISELECT(_ZThn16_N9GG12221233barEv,_ZThn8_N9GG12221233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12221233fooEv,_ZTv0_n12_N9GG12221233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12221233fooEv,_ZThn16_N9GG12221233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12221233barEv,_ZTv0_n12_N9GG12221233barEv)();
+extern void ABISELECT(_ZThn48_N9GG12221233barEv,_ZThn24_N9GG12221233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12221233barEv,_ZTv0_n20_N9GG12221233barEv)();
+extern void ABISELECT(_ZThn64_N9GG12221233barEv,_ZThn32_N9GG12221233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12221233barEv,_ZTv0_n12_N9GG12221233barEv)();
+extern void ABISELECT(_ZThn80_N9GG12221233barEv,_ZThn40_N9GG12221233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12221233fooEv,_ZTv0_n12_N9GG12221233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG12221233fooEv,_ZThn48_N9GG12221233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1222123[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1222123[0]),
+ (VTBL_ENTRY)&_ZN9GG12221233fooEv,
+ (VTBL_ENTRY)&_ZN9GG12221233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1222123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12221233barEv,_ZTv0_n20_N9GG12221233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1222123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12221233fooEv,_ZTv0_n12_N9GG12221233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1222123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12221233barEv,_ZTv0_n12_N9GG12221233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1222123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12221233barEv,_ZTv0_n20_N9GG12221233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1222123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12221233barEv,_ZTv0_n12_N9GG12221233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1222123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12221233fooEv,_ZTv0_n12_N9GG12221233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1222123[];
+extern void _ZN5EE1223barEv();
+static VTBL_ENTRY _tg__ZTV5EE122__9GG1222123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN5EE1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE122__9GG1222123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv)();
+extern void ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE122__9GG1222123[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv),
+};
+extern void _ZN5FF2123barEv();
+static VTBL_ENTRY _tg__ZTV5FF212__9GG1222123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN5FF2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv)();
+extern void ABISELECT(_ZThn16_N5FF2123barEv,_ZThn8_N5FF2123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF212__9GG1222123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF212__9GG1222123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG1222123[] = {
+ {&(_ZTV9GG1222123[8]), 8,38},
+ {&(_ZTV9GG1222123[15]), 15,38},
+ {&(_ZTV9GG1222123[19]), 19,38},
+ {&(_ZTV9GG1222123[23]), 23,38},
+ {&(_ZTV9GG1222123[29]), 29,38},
+ {&(_ZTV9GG1222123[33]), 33,38},
+ {&(_ZTV9GG1222123[37]), 37,38},
+ {&(_tg__ZTV5EE122__9GG1222123[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE122__9GG1222123[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE122__9GG1222123[3]), 3,4},
+ {&(_tg__ZTV5FF212__9GG1222123[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF212__9GG1222123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF212__9GG1222123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1222123[];
+extern VTBL_ENTRY _ZTV9GG1222123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1222123[];
+static VTBL_ENTRY alt_thunk_names333[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2123barEv,_ZThn8_N5FF2123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12221233barEv,_ZTv0_n12_N9GG12221233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12221233barEv,_ZThn40_N9GG12221233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12221233barEv,_ZThn24_N9GG12221233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12221233fooEv,_ZTv0_n12_N9GG12221233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12221233fooEv,_ZThn48_N9GG12221233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12221233fooEv,_ZThn16_N9GG12221233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12221233barEv,_ZTv0_n20_N9GG12221233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12221233barEv,_ZThn32_N9GG12221233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12221233barEv,_ZThn8_N9GG12221233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1222123 = { "GG1222123", // class name
+ bases_GG1222123, 6,
+ &(vtc_GG1222123[0]), // expected_vtbl_contents
+ &(vtt_GG1222123[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1222123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1222123),38, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1222123),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names333,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1222133 : virtual EE122 , virtual FF213 {
+ int pg;
+ virtual void foo(); // _ZN9GG12221333fooEv
+ virtual void bar(); // _ZN9GG12221333barEv
+ ~GG1222133(); // tgen
+ GG1222133(); // tgen
+};
+//SIG(1 GG1222133) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1222133 ::foo(){vfunc_called(this, "_ZN9GG12221333fooEv");}
+void GG1222133 ::bar(){vfunc_called(this, "_ZN9GG12221333barEv");}
+GG1222133 ::~GG1222133(){ note_dtor("GG1222133", this);} // tgen
+GG1222133 ::GG1222133(){ note_ctor("GG1222133", this);} // tgen
+
+static void Test_GG1222133()
+{
+ extern Class_Descriptor cd_GG1222133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1222133, buf);
+ GG1222133 *dp, &lv = *(dp=new (buf) GG1222133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1222133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1222133)");
+ check_base_class_offset(lv, (AA1*)(EE122*), ABISELECT(32,16), "GG1222133");
+ check_base_class_offset(lv, (BB2*)(EE122*), ABISELECT(48,24), "GG1222133");
+ check_base_class_offset(lv, (EE122*), ABISELECT(16,8), "GG1222133");
+ check_base_class_offset(lv, (AA2*)(FF213*), ABISELECT(80,40), "GG1222133");
+ check_base_class_offset(lv, (BB1*)(FF213*), ABISELECT(96,48), "GG1222133");
+ check_base_class_offset(lv, (FF213*), ABISELECT(64,32), "GG1222133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1222133.pg");
+ test_class_info(&lv, &cd_GG1222133);
+ dp->~GG1222133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1222133(Test_GG1222133, "GG1222133", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1222133C1Ev();
+extern void _ZN9GG1222133D1Ev();
+Name_Map name_map_GG1222133[] = {
+ NSPAIR(_ZN9GG1222133C1Ev),
+ NSPAIR(_ZN9GG1222133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE122;
+extern VTBL_ENTRY _ZTI5EE122[];
+extern VTBL_ENTRY _ZTV5EE122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE122[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF213;
+extern VTBL_ENTRY _ZTI5FF213[];
+extern VTBL_ENTRY _ZTV5FF213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF213[];
+static Base_Class bases_GG1222133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE122, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF213, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1222133[];
+extern void _ZN9GG12221333fooEv();
+extern void _ZN9GG12221333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12221333barEv,_ZTv0_n20_N9GG12221333barEv)();
+extern void ABISELECT(_ZThn16_N9GG12221333barEv,_ZThn8_N9GG12221333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12221333fooEv,_ZTv0_n12_N9GG12221333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12221333fooEv,_ZThn16_N9GG12221333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12221333barEv,_ZTv0_n12_N9GG12221333barEv)();
+extern void ABISELECT(_ZThn48_N9GG12221333barEv,_ZThn24_N9GG12221333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12221333fooEv,_ZTv0_n20_N9GG12221333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12221333fooEv,_ZThn32_N9GG12221333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12221333barEv,_ZTv0_n24_N9GG12221333barEv)();
+extern void ABISELECT(_ZThn64_N9GG12221333barEv,_ZThn32_N9GG12221333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12221333barEv,_ZTv0_n12_N9GG12221333barEv)();
+extern void ABISELECT(_ZThn80_N9GG12221333barEv,_ZThn40_N9GG12221333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12221333fooEv,_ZTv0_n12_N9GG12221333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG12221333fooEv,_ZThn48_N9GG12221333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1222133[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1222133[0]),
+ (VTBL_ENTRY)&_ZN9GG12221333fooEv,
+ (VTBL_ENTRY)&_ZN9GG12221333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1222133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12221333barEv,_ZTv0_n20_N9GG12221333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1222133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12221333fooEv,_ZTv0_n12_N9GG12221333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1222133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12221333barEv,_ZTv0_n12_N9GG12221333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1222133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12221333fooEv,_ZTv0_n20_N9GG12221333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12221333barEv,_ZTv0_n24_N9GG12221333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1222133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12221333barEv,_ZTv0_n12_N9GG12221333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1222133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12221333fooEv,_ZTv0_n12_N9GG12221333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1222133[];
+extern void _ZN5EE1223barEv();
+static VTBL_ENTRY _tg__ZTV5EE122__9GG1222133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN5EE1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE122__9GG1222133[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv)();
+extern void ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE122__9GG1222133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv),
+};
+extern void _ZN5FF2133fooEv();
+extern void _ZN5FF2133barEv();
+static VTBL_ENTRY _tg__ZTV5FF213__9GG1222133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&_ZN5FF2133fooEv,
+ (VTBL_ENTRY)&_ZN5FF2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv)();
+extern void ABISELECT(_ZThn16_N5FF2133barEv,_ZThn8_N5FF2133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF213__9GG1222133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2133fooEv,_ZThn16_N5FF2133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF213__9GG1222133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv),
+};
+static VTT_ENTRY vtt_GG1222133[] = {
+ {&(_ZTV9GG1222133[8]), 8,40},
+ {&(_ZTV9GG1222133[15]), 15,40},
+ {&(_ZTV9GG1222133[19]), 19,40},
+ {&(_ZTV9GG1222133[23]), 23,40},
+ {&(_ZTV9GG1222133[30]), 30,40},
+ {&(_ZTV9GG1222133[35]), 35,40},
+ {&(_ZTV9GG1222133[39]), 39,40},
+ {&(_tg__ZTV5EE122__9GG1222133[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE122__9GG1222133[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE122__9GG1222133[3]), 3,4},
+ {&(_tg__ZTV5FF213__9GG1222133[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF213__9GG1222133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF213__9GG1222133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1222133[];
+extern VTBL_ENTRY _ZTV9GG1222133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1222133[];
+static VTBL_ENTRY alt_thunk_names334[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2133fooEv,_ZThn16_N5FF2133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2133barEv,_ZThn8_N5FF2133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG12221333barEv,_ZTv0_n24_N9GG12221333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12221333barEv,_ZThn32_N9GG12221333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12221333fooEv,_ZTv0_n20_N9GG12221333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12221333fooEv,_ZThn32_N9GG12221333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12221333barEv,_ZTv0_n12_N9GG12221333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12221333barEv,_ZThn40_N9GG12221333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12221333barEv,_ZThn24_N9GG12221333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12221333fooEv,_ZTv0_n12_N9GG12221333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12221333fooEv,_ZThn48_N9GG12221333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12221333fooEv,_ZThn16_N9GG12221333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12221333barEv,_ZTv0_n20_N9GG12221333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12221333barEv,_ZThn8_N9GG12221333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1222133 = { "GG1222133", // class name
+ bases_GG1222133, 6,
+ &(vtc_GG1222133[0]), // expected_vtbl_contents
+ &(vtt_GG1222133[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1222133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1222133),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1222133),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names334,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1222213 : virtual EE122 , virtual FF221 {
+ int pg;
+ virtual void foo(); // _ZN9GG12222133fooEv
+ virtual void bar(); // _ZN9GG12222133barEv
+ ~GG1222213(); // tgen
+ GG1222213(); // tgen
+};
+//SIG(1 GG1222213) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG1222213 ::foo(){vfunc_called(this, "_ZN9GG12222133fooEv");}
+void GG1222213 ::bar(){vfunc_called(this, "_ZN9GG12222133barEv");}
+GG1222213 ::~GG1222213(){ note_dtor("GG1222213", this);} // tgen
+GG1222213 ::GG1222213(){ note_ctor("GG1222213", this);} // tgen
+
+static void Test_GG1222213()
+{
+ extern Class_Descriptor cd_GG1222213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1222213, buf);
+ GG1222213 *dp, &lv = *(dp=new (buf) GG1222213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1222213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1222213)");
+ check_base_class_offset(lv, (AA1*)(EE122*), ABISELECT(32,16), "GG1222213");
+ check_base_class_offset(lv, (BB2*)(EE122*), ABISELECT(48,24), "GG1222213");
+ check_base_class_offset(lv, (BB2*)(FF221*), ABISELECT(48,24), "GG1222213");
+ check_base_class_offset(lv, (EE122*), ABISELECT(16,8), "GG1222213");
+ check_base_class_offset(lv, (AA2*)(FF221*), ABISELECT(80,40), "GG1222213");
+ check_base_class_offset(lv, (FF221*), ABISELECT(64,32), "GG1222213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1222213.pg");
+ test_class_info(&lv, &cd_GG1222213);
+ dp->~GG1222213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1222213(Test_GG1222213, "GG1222213", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1222213C1Ev();
+extern void _ZN9GG1222213D1Ev();
+Name_Map name_map_GG1222213[] = {
+ NSPAIR(_ZN9GG1222213C1Ev),
+ NSPAIR(_ZN9GG1222213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE122;
+extern VTBL_ENTRY _ZTI5EE122[];
+extern VTBL_ENTRY _ZTV5EE122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE122[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF221;
+extern VTBL_ENTRY _ZTI5FF221[];
+extern VTBL_ENTRY _ZTV5FF221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF221[];
+static Base_Class bases_GG1222213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE122, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF221, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1222213[];
+extern void _ZN9GG12222133fooEv();
+extern void _ZN9GG12222133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12222133barEv,_ZTv0_n20_N9GG12222133barEv)();
+extern void ABISELECT(_ZThn16_N9GG12222133barEv,_ZThn8_N9GG12222133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12222133fooEv,_ZTv0_n12_N9GG12222133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12222133fooEv,_ZThn16_N9GG12222133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12222133barEv,_ZTv0_n12_N9GG12222133barEv)();
+extern void ABISELECT(_ZThn48_N9GG12222133barEv,_ZThn24_N9GG12222133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12222133fooEv,_ZTv0_n20_N9GG12222133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12222133fooEv,_ZThn32_N9GG12222133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12222133barEv,_ZTv0_n12_N9GG12222133barEv)();
+extern void ABISELECT(_ZThn80_N9GG12222133barEv,_ZThn40_N9GG12222133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1222213[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1222213[0]),
+ (VTBL_ENTRY)&_ZN9GG12222133fooEv,
+ (VTBL_ENTRY)&_ZN9GG12222133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1222213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12222133barEv,_ZTv0_n20_N9GG12222133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1222213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12222133fooEv,_ZTv0_n12_N9GG12222133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1222213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12222133barEv,_ZTv0_n12_N9GG12222133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1222213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12222133fooEv,_ZTv0_n20_N9GG12222133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1222213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12222133barEv,_ZTv0_n12_N9GG12222133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1222213[];
+extern void _ZN5EE1223barEv();
+static VTBL_ENTRY _tg__ZTV5EE122__9GG1222213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN5EE1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE122__9GG1222213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv)();
+extern void ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE122__9GG1222213[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv),
+};
+extern void _ZN5FF2213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF221__9GG1222213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN5FF2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF221__9GG1222213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF221__9GG1222213[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG1222213[] = {
+ {&(_ZTV9GG1222213[7]), 7,33},
+ {&(_ZTV9GG1222213[14]), 14,33},
+ {&(_ZTV9GG1222213[18]), 18,33},
+ {&(_ZTV9GG1222213[22]), 22,33},
+ {&(_ZTV9GG1222213[28]), 28,33},
+ {&(_ZTV9GG1222213[32]), 32,33},
+ {&(_tg__ZTV5EE122__9GG1222213[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE122__9GG1222213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE122__9GG1222213[3]), 3,4},
+ {&(_tg__ZTV5FF221__9GG1222213[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF221__9GG1222213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF221__9GG1222213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1222213[];
+extern VTBL_ENTRY _ZTV9GG1222213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1222213[];
+static VTBL_ENTRY alt_thunk_names335[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12222133fooEv,_ZTv0_n20_N9GG12222133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12222133fooEv,_ZThn32_N9GG12222133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12222133barEv,_ZTv0_n12_N9GG12222133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12222133barEv,_ZThn40_N9GG12222133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12222133barEv,_ZThn24_N9GG12222133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12222133fooEv,_ZTv0_n12_N9GG12222133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12222133fooEv,_ZThn16_N9GG12222133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12222133barEv,_ZTv0_n20_N9GG12222133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12222133barEv,_ZThn8_N9GG12222133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1222213 = { "GG1222213", // class name
+ bases_GG1222213, 5,
+ &(vtc_GG1222213[0]), // expected_vtbl_contents
+ &(vtt_GG1222213[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1222213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1222213),33, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1222213),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names335,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1222222 : virtual EE122 , virtual FF222 {
+ int pg;
+ virtual void bar(); // _ZN9GG12222223barEv
+ ~GG1222222(); // tgen
+ GG1222222(); // tgen
+};
+//SIG(1 GG1222222) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v1 Fi} v1 Fi}
+
+
+void GG1222222 ::bar(){vfunc_called(this, "_ZN9GG12222223barEv");}
+GG1222222 ::~GG1222222(){ note_dtor("GG1222222", this);} // tgen
+GG1222222 ::GG1222222(){ note_ctor("GG1222222", this);} // tgen
+
+static void Test_GG1222222()
+{
+ extern Class_Descriptor cd_GG1222222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1222222, buf);
+ GG1222222 *dp, &lv = *(dp=new (buf) GG1222222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1222222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1222222)");
+ check_base_class_offset(lv, (AA1*)(EE122*), ABISELECT(32,16), "GG1222222");
+ check_base_class_offset(lv, (BB2*)(EE122*), ABISELECT(48,24), "GG1222222");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(48,24), "GG1222222");
+ check_base_class_offset(lv, (EE122*), ABISELECT(16,8), "GG1222222");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(80,40), "GG1222222");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG1222222");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1222222.pg");
+ test_class_info(&lv, &cd_GG1222222);
+ dp->~GG1222222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1222222(Test_GG1222222, "GG1222222", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1222222C1Ev();
+extern void _ZN9GG1222222D1Ev();
+Name_Map name_map_GG1222222[] = {
+ NSPAIR(_ZN9GG1222222C1Ev),
+ NSPAIR(_ZN9GG1222222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE122;
+extern VTBL_ENTRY _ZTI5EE122[];
+extern VTBL_ENTRY _ZTV5EE122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE122[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG1222222[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE122, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1222222[];
+extern void _ZN9GG12222223barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12222223barEv,_ZTv0_n20_N9GG12222223barEv)();
+extern void ABISELECT(_ZThn16_N9GG12222223barEv,_ZThn8_N9GG12222223barEv)() __attribute__((weak));
+extern void _ZN3AA13fooEv();
+extern void ABISELECT(_ZTv0_n24_N9GG12222223barEv,_ZTv0_n12_N9GG12222223barEv)();
+extern void ABISELECT(_ZThn48_N9GG12222223barEv,_ZThn24_N9GG12222223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12222223barEv,_ZTv0_n20_N9GG12222223barEv)();
+extern void ABISELECT(_ZThn64_N9GG12222223barEv,_ZThn32_N9GG12222223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12222223barEv,_ZTv0_n12_N9GG12222223barEv)();
+extern void ABISELECT(_ZThn80_N9GG12222223barEv,_ZThn40_N9GG12222223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1222222[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1222222[0]),
+ (VTBL_ENTRY)&_ZN9GG12222223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1222222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12222223barEv,_ZTv0_n20_N9GG12222223barEv),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1222222[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1222222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12222223barEv,_ZTv0_n12_N9GG12222223barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1222222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12222223barEv,_ZTv0_n20_N9GG12222223barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1222222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12222223barEv,_ZTv0_n12_N9GG12222223barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1222222[];
+extern void _ZN5EE1223barEv();
+static VTBL_ENTRY _tg__ZTV5EE122__9GG1222222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN5EE1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE122__9GG1222222[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv)();
+extern void ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE122__9GG1222222[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv),
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG1222222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG1222222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG1222222[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG1222222[] = {
+ {&(_ZTV9GG1222222[7]), 7,32},
+ {&(_ZTV9GG1222222[13]), 13,32},
+ {&(_ZTV9GG1222222[17]), 17,32},
+ {&(_ZTV9GG1222222[21]), 21,32},
+ {&(_ZTV9GG1222222[27]), 27,32},
+ {&(_ZTV9GG1222222[31]), 31,32},
+ {&(_tg__ZTV5EE122__9GG1222222[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE122__9GG1222222[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE122__9GG1222222[3]), 3,4},
+ {&(_tg__ZTV5FF222__9GG1222222[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG1222222[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG1222222[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1222222[];
+extern VTBL_ENTRY _ZTV9GG1222222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1222222[];
+static VTBL_ENTRY alt_thunk_names336[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12222223barEv,_ZTv0_n12_N9GG12222223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12222223barEv,_ZThn40_N9GG12222223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12222223barEv,_ZThn24_N9GG12222223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12222223barEv,_ZTv0_n20_N9GG12222223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12222223barEv,_ZThn32_N9GG12222223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12222223barEv,_ZThn8_N9GG12222223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1222222 = { "GG1222222", // class name
+ bases_GG1222222, 5,
+ &(vtc_GG1222222[0]), // expected_vtbl_contents
+ &(vtt_GG1222222[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1222222),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1222222),32, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1222222),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names336,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1222223 : virtual EE122 , virtual FF222 {
+ int pg;
+ virtual void foo(); // _ZN9GG12222233fooEv
+ virtual void bar(); // _ZN9GG12222233barEv
+ ~GG1222223(); // tgen
+ GG1222223(); // tgen
+};
+//SIG(1 GG1222223) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG1222223 ::foo(){vfunc_called(this, "_ZN9GG12222233fooEv");}
+void GG1222223 ::bar(){vfunc_called(this, "_ZN9GG12222233barEv");}
+GG1222223 ::~GG1222223(){ note_dtor("GG1222223", this);} // tgen
+GG1222223 ::GG1222223(){ note_ctor("GG1222223", this);} // tgen
+
+static void Test_GG1222223()
+{
+ extern Class_Descriptor cd_GG1222223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1222223, buf);
+ GG1222223 *dp, &lv = *(dp=new (buf) GG1222223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1222223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1222223)");
+ check_base_class_offset(lv, (AA1*)(EE122*), ABISELECT(32,16), "GG1222223");
+ check_base_class_offset(lv, (BB2*)(EE122*), ABISELECT(48,24), "GG1222223");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(48,24), "GG1222223");
+ check_base_class_offset(lv, (EE122*), ABISELECT(16,8), "GG1222223");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(80,40), "GG1222223");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG1222223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1222223.pg");
+ test_class_info(&lv, &cd_GG1222223);
+ dp->~GG1222223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1222223(Test_GG1222223, "GG1222223", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1222223C1Ev();
+extern void _ZN9GG1222223D1Ev();
+Name_Map name_map_GG1222223[] = {
+ NSPAIR(_ZN9GG1222223C1Ev),
+ NSPAIR(_ZN9GG1222223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE122;
+extern VTBL_ENTRY _ZTI5EE122[];
+extern VTBL_ENTRY _ZTV5EE122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE122[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG1222223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE122, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1222223[];
+extern void _ZN9GG12222233fooEv();
+extern void _ZN9GG12222233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12222233barEv,_ZTv0_n20_N9GG12222233barEv)();
+extern void ABISELECT(_ZThn16_N9GG12222233barEv,_ZThn8_N9GG12222233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12222233fooEv,_ZTv0_n12_N9GG12222233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12222233fooEv,_ZThn16_N9GG12222233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12222233barEv,_ZTv0_n12_N9GG12222233barEv)();
+extern void ABISELECT(_ZThn48_N9GG12222233barEv,_ZThn24_N9GG12222233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12222233barEv,_ZTv0_n20_N9GG12222233barEv)();
+extern void ABISELECT(_ZThn64_N9GG12222233barEv,_ZThn32_N9GG12222233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12222233barEv,_ZTv0_n12_N9GG12222233barEv)();
+extern void ABISELECT(_ZThn80_N9GG12222233barEv,_ZThn40_N9GG12222233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1222223[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1222223[0]),
+ (VTBL_ENTRY)&_ZN9GG12222233fooEv,
+ (VTBL_ENTRY)&_ZN9GG12222233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1222223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12222233barEv,_ZTv0_n20_N9GG12222233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1222223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12222233fooEv,_ZTv0_n12_N9GG12222233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1222223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12222233barEv,_ZTv0_n12_N9GG12222233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1222223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12222233barEv,_ZTv0_n20_N9GG12222233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1222223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12222233barEv,_ZTv0_n12_N9GG12222233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1222223[];
+extern void _ZN5EE1223barEv();
+static VTBL_ENTRY _tg__ZTV5EE122__9GG1222223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN5EE1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE122__9GG1222223[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv)();
+extern void ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE122__9GG1222223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv),
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG1222223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG1222223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG1222223[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG1222223[] = {
+ {&(_ZTV9GG1222223[7]), 7,33},
+ {&(_ZTV9GG1222223[14]), 14,33},
+ {&(_ZTV9GG1222223[18]), 18,33},
+ {&(_ZTV9GG1222223[22]), 22,33},
+ {&(_ZTV9GG1222223[28]), 28,33},
+ {&(_ZTV9GG1222223[32]), 32,33},
+ {&(_tg__ZTV5EE122__9GG1222223[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE122__9GG1222223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE122__9GG1222223[3]), 3,4},
+ {&(_tg__ZTV5FF222__9GG1222223[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG1222223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG1222223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1222223[];
+extern VTBL_ENTRY _ZTV9GG1222223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1222223[];
+static VTBL_ENTRY alt_thunk_names337[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12222233barEv,_ZTv0_n12_N9GG12222233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12222233barEv,_ZThn40_N9GG12222233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12222233barEv,_ZThn24_N9GG12222233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12222233fooEv,_ZTv0_n12_N9GG12222233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12222233fooEv,_ZThn16_N9GG12222233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12222233barEv,_ZTv0_n20_N9GG12222233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12222233barEv,_ZThn32_N9GG12222233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12222233barEv,_ZThn8_N9GG12222233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1222223 = { "GG1222223", // class name
+ bases_GG1222223, 5,
+ &(vtc_GG1222223[0]), // expected_vtbl_contents
+ &(vtt_GG1222223[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1222223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1222223),33, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1222223),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names337,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1222233 : virtual EE122 , virtual FF223 {
+ int pg;
+ virtual void foo(); // _ZN9GG12222333fooEv
+ virtual void bar(); // _ZN9GG12222333barEv
+ ~GG1222233(); // tgen
+ GG1222233(); // tgen
+};
+//SIG(1 GG1222233) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1222233 ::foo(){vfunc_called(this, "_ZN9GG12222333fooEv");}
+void GG1222233 ::bar(){vfunc_called(this, "_ZN9GG12222333barEv");}
+GG1222233 ::~GG1222233(){ note_dtor("GG1222233", this);} // tgen
+GG1222233 ::GG1222233(){ note_ctor("GG1222233", this);} // tgen
+
+static void Test_GG1222233()
+{
+ extern Class_Descriptor cd_GG1222233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1222233, buf);
+ GG1222233 *dp, &lv = *(dp=new (buf) GG1222233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1222233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1222233)");
+ check_base_class_offset(lv, (AA1*)(EE122*), ABISELECT(32,16), "GG1222233");
+ check_base_class_offset(lv, (BB2*)(EE122*), ABISELECT(48,24), "GG1222233");
+ check_base_class_offset(lv, (BB2*)(FF223*), ABISELECT(48,24), "GG1222233");
+ check_base_class_offset(lv, (EE122*), ABISELECT(16,8), "GG1222233");
+ check_base_class_offset(lv, (AA2*)(FF223*), ABISELECT(80,40), "GG1222233");
+ check_base_class_offset(lv, (FF223*), ABISELECT(64,32), "GG1222233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1222233.pg");
+ test_class_info(&lv, &cd_GG1222233);
+ dp->~GG1222233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1222233(Test_GG1222233, "GG1222233", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1222233C1Ev();
+extern void _ZN9GG1222233D1Ev();
+Name_Map name_map_GG1222233[] = {
+ NSPAIR(_ZN9GG1222233C1Ev),
+ NSPAIR(_ZN9GG1222233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE122;
+extern VTBL_ENTRY _ZTI5EE122[];
+extern VTBL_ENTRY _ZTV5EE122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE122[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF223;
+extern VTBL_ENTRY _ZTI5FF223[];
+extern VTBL_ENTRY _ZTV5FF223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF223[];
+static Base_Class bases_GG1222233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE122, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF223, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1222233[];
+extern void _ZN9GG12222333fooEv();
+extern void _ZN9GG12222333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12222333barEv,_ZTv0_n20_N9GG12222333barEv)();
+extern void ABISELECT(_ZThn16_N9GG12222333barEv,_ZThn8_N9GG12222333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12222333fooEv,_ZTv0_n12_N9GG12222333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12222333fooEv,_ZThn16_N9GG12222333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12222333barEv,_ZTv0_n12_N9GG12222333barEv)();
+extern void ABISELECT(_ZThn48_N9GG12222333barEv,_ZThn24_N9GG12222333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12222333fooEv,_ZTv0_n20_N9GG12222333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12222333fooEv,_ZThn32_N9GG12222333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12222333barEv,_ZTv0_n24_N9GG12222333barEv)();
+extern void ABISELECT(_ZThn64_N9GG12222333barEv,_ZThn32_N9GG12222333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12222333barEv,_ZTv0_n12_N9GG12222333barEv)();
+extern void ABISELECT(_ZThn80_N9GG12222333barEv,_ZThn40_N9GG12222333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1222233[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1222233[0]),
+ (VTBL_ENTRY)&_ZN9GG12222333fooEv,
+ (VTBL_ENTRY)&_ZN9GG12222333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1222233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12222333barEv,_ZTv0_n20_N9GG12222333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1222233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12222333fooEv,_ZTv0_n12_N9GG12222333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1222233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12222333barEv,_ZTv0_n12_N9GG12222333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1222233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12222333fooEv,_ZTv0_n20_N9GG12222333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12222333barEv,_ZTv0_n24_N9GG12222333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1222233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12222333barEv,_ZTv0_n12_N9GG12222333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1222233[];
+extern void _ZN5EE1223barEv();
+static VTBL_ENTRY _tg__ZTV5EE122__9GG1222233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN5EE1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE122__9GG1222233[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv)();
+extern void ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE122__9GG1222233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv),
+};
+extern void _ZN5FF2233fooEv();
+extern void _ZN5FF2233barEv();
+static VTBL_ENTRY _tg__ZTV5FF223__9GG1222233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&_ZN5FF2233fooEv,
+ (VTBL_ENTRY)&_ZN5FF2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+extern void ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF223__9GG1222233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF223__9GG1222233[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+static VTT_ENTRY vtt_GG1222233[] = {
+ {&(_ZTV9GG1222233[7]), 7,35},
+ {&(_ZTV9GG1222233[14]), 14,35},
+ {&(_ZTV9GG1222233[18]), 18,35},
+ {&(_ZTV9GG1222233[22]), 22,35},
+ {&(_ZTV9GG1222233[29]), 29,35},
+ {&(_ZTV9GG1222233[34]), 34,35},
+ {&(_tg__ZTV5EE122__9GG1222233[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE122__9GG1222233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE122__9GG1222233[3]), 3,4},
+ {&(_tg__ZTV5FF223__9GG1222233[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF223__9GG1222233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF223__9GG1222233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1222233[];
+extern VTBL_ENTRY _ZTV9GG1222233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1222233[];
+static VTBL_ENTRY alt_thunk_names338[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG12222333barEv,_ZTv0_n24_N9GG12222333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12222333barEv,_ZThn32_N9GG12222333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12222333fooEv,_ZTv0_n20_N9GG12222333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12222333fooEv,_ZThn32_N9GG12222333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12222333barEv,_ZTv0_n12_N9GG12222333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12222333barEv,_ZThn40_N9GG12222333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12222333barEv,_ZThn24_N9GG12222333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12222333fooEv,_ZTv0_n12_N9GG12222333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12222333fooEv,_ZThn16_N9GG12222333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12222333barEv,_ZTv0_n20_N9GG12222333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12222333barEv,_ZThn8_N9GG12222333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1222233 = { "GG1222233", // class name
+ bases_GG1222233, 5,
+ &(vtc_GG1222233[0]), // expected_vtbl_contents
+ &(vtt_GG1222233[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1222233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1222233),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1222233),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names338,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1222313 : virtual EE122 , virtual FF231 {
+ int pg;
+ virtual void foo(); // _ZN9GG12223133fooEv
+ virtual void bar(); // _ZN9GG12223133barEv
+ ~GG1222313(); // tgen
+ GG1222313(); // tgen
+};
+//SIG(1 GG1222313) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1222313 ::foo(){vfunc_called(this, "_ZN9GG12223133fooEv");}
+void GG1222313 ::bar(){vfunc_called(this, "_ZN9GG12223133barEv");}
+GG1222313 ::~GG1222313(){ note_dtor("GG1222313", this);} // tgen
+GG1222313 ::GG1222313(){ note_ctor("GG1222313", this);} // tgen
+
+static void Test_GG1222313()
+{
+ extern Class_Descriptor cd_GG1222313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1222313, buf);
+ GG1222313 *dp, &lv = *(dp=new (buf) GG1222313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1222313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1222313)");
+ check_base_class_offset(lv, (AA1*)(EE122*), ABISELECT(32,16), "GG1222313");
+ check_base_class_offset(lv, (BB2*)(EE122*), ABISELECT(48,24), "GG1222313");
+ check_base_class_offset(lv, (EE122*), ABISELECT(16,8), "GG1222313");
+ check_base_class_offset(lv, (AA2*)(FF231*), ABISELECT(80,40), "GG1222313");
+ check_base_class_offset(lv, (BB3*)(FF231*), ABISELECT(96,48), "GG1222313");
+ check_base_class_offset(lv, (FF231*), ABISELECT(64,32), "GG1222313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1222313.pg");
+ test_class_info(&lv, &cd_GG1222313);
+ dp->~GG1222313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1222313(Test_GG1222313, "GG1222313", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1222313C1Ev();
+extern void _ZN9GG1222313D1Ev();
+Name_Map name_map_GG1222313[] = {
+ NSPAIR(_ZN9GG1222313C1Ev),
+ NSPAIR(_ZN9GG1222313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE122;
+extern VTBL_ENTRY _ZTI5EE122[];
+extern VTBL_ENTRY _ZTV5EE122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE122[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF231;
+extern VTBL_ENTRY _ZTI5FF231[];
+extern VTBL_ENTRY _ZTV5FF231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF231[];
+static Base_Class bases_GG1222313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE122, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF231, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1222313[];
+extern void _ZN9GG12223133fooEv();
+extern void _ZN9GG12223133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12223133barEv,_ZTv0_n20_N9GG12223133barEv)();
+extern void ABISELECT(_ZThn16_N9GG12223133barEv,_ZThn8_N9GG12223133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12223133fooEv,_ZTv0_n12_N9GG12223133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12223133fooEv,_ZThn16_N9GG12223133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12223133barEv,_ZTv0_n12_N9GG12223133barEv)();
+extern void ABISELECT(_ZThn48_N9GG12223133barEv,_ZThn24_N9GG12223133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12223133fooEv,_ZTv0_n20_N9GG12223133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12223133fooEv,_ZThn32_N9GG12223133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12223133barEv,_ZTv0_n12_N9GG12223133barEv)();
+extern void ABISELECT(_ZThn80_N9GG12223133barEv,_ZThn40_N9GG12223133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12223133fooEv,_ZTv0_n12_N9GG12223133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG12223133fooEv,_ZThn48_N9GG12223133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12223133barEv,_ZTv0_n16_N9GG12223133barEv)();
+extern void ABISELECT(_ZThn96_N9GG12223133barEv,_ZThn48_N9GG12223133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1222313[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1222313[0]),
+ (VTBL_ENTRY)&_ZN9GG12223133fooEv,
+ (VTBL_ENTRY)&_ZN9GG12223133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1222313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12223133barEv,_ZTv0_n20_N9GG12223133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1222313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12223133fooEv,_ZTv0_n12_N9GG12223133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1222313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12223133barEv,_ZTv0_n12_N9GG12223133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1222313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12223133fooEv,_ZTv0_n20_N9GG12223133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1222313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12223133barEv,_ZTv0_n12_N9GG12223133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1222313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12223133fooEv,_ZTv0_n12_N9GG12223133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12223133barEv,_ZTv0_n16_N9GG12223133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1222313[];
+extern void _ZN5EE1223barEv();
+static VTBL_ENTRY _tg__ZTV5EE122__9GG1222313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN5EE1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE122__9GG1222313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv)();
+extern void ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE122__9GG1222313[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv),
+};
+extern void _ZN5FF2313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF231__9GG1222313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN5FF2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF231__9GG1222313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2313fooEv,_ZThn16_N5FF2313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF231__9GG1222313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG1222313[] = {
+ {&(_ZTV9GG1222313[8]), 8,40},
+ {&(_ZTV9GG1222313[15]), 15,40},
+ {&(_ZTV9GG1222313[19]), 19,40},
+ {&(_ZTV9GG1222313[23]), 23,40},
+ {&(_ZTV9GG1222313[29]), 29,40},
+ {&(_ZTV9GG1222313[33]), 33,40},
+ {&(_ZTV9GG1222313[38]), 38,40},
+ {&(_tg__ZTV5EE122__9GG1222313[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE122__9GG1222313[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE122__9GG1222313[3]), 3,4},
+ {&(_tg__ZTV5FF231__9GG1222313[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF231__9GG1222313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF231__9GG1222313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1222313[];
+extern VTBL_ENTRY _ZTV9GG1222313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1222313[];
+static VTBL_ENTRY alt_thunk_names339[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2313fooEv,_ZThn16_N5FF2313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG12223133barEv,_ZTv0_n16_N9GG12223133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12223133barEv,_ZThn48_N9GG12223133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12223133fooEv,_ZTv0_n20_N9GG12223133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12223133fooEv,_ZThn32_N9GG12223133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12223133barEv,_ZTv0_n12_N9GG12223133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12223133barEv,_ZThn40_N9GG12223133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12223133barEv,_ZThn24_N9GG12223133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12223133fooEv,_ZTv0_n12_N9GG12223133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12223133fooEv,_ZThn48_N9GG12223133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12223133fooEv,_ZThn16_N9GG12223133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12223133barEv,_ZTv0_n20_N9GG12223133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12223133barEv,_ZThn8_N9GG12223133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1222313 = { "GG1222313", // class name
+ bases_GG1222313, 6,
+ &(vtc_GG1222313[0]), // expected_vtbl_contents
+ &(vtt_GG1222313[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1222313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1222313),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1222313),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names339,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1222323 : virtual EE122 , virtual FF232 {
+ int pg;
+ virtual void foo(); // _ZN9GG12223233fooEv
+ virtual void bar(); // _ZN9GG12223233barEv
+ ~GG1222323(); // tgen
+ GG1222323(); // tgen
+};
+//SIG(1 GG1222323) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1222323 ::foo(){vfunc_called(this, "_ZN9GG12223233fooEv");}
+void GG1222323 ::bar(){vfunc_called(this, "_ZN9GG12223233barEv");}
+GG1222323 ::~GG1222323(){ note_dtor("GG1222323", this);} // tgen
+GG1222323 ::GG1222323(){ note_ctor("GG1222323", this);} // tgen
+
+static void Test_GG1222323()
+{
+ extern Class_Descriptor cd_GG1222323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1222323, buf);
+ GG1222323 *dp, &lv = *(dp=new (buf) GG1222323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1222323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1222323)");
+ check_base_class_offset(lv, (AA1*)(EE122*), ABISELECT(32,16), "GG1222323");
+ check_base_class_offset(lv, (BB2*)(EE122*), ABISELECT(48,24), "GG1222323");
+ check_base_class_offset(lv, (EE122*), ABISELECT(16,8), "GG1222323");
+ check_base_class_offset(lv, (AA2*)(FF232*), ABISELECT(80,40), "GG1222323");
+ check_base_class_offset(lv, (BB3*)(FF232*), ABISELECT(96,48), "GG1222323");
+ check_base_class_offset(lv, (FF232*), ABISELECT(64,32), "GG1222323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1222323.pg");
+ test_class_info(&lv, &cd_GG1222323);
+ dp->~GG1222323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1222323(Test_GG1222323, "GG1222323", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1222323C1Ev();
+extern void _ZN9GG1222323D1Ev();
+Name_Map name_map_GG1222323[] = {
+ NSPAIR(_ZN9GG1222323C1Ev),
+ NSPAIR(_ZN9GG1222323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE122;
+extern VTBL_ENTRY _ZTI5EE122[];
+extern VTBL_ENTRY _ZTV5EE122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE122[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF232;
+extern VTBL_ENTRY _ZTI5FF232[];
+extern VTBL_ENTRY _ZTV5FF232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF232[];
+static Base_Class bases_GG1222323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE122, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF232, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1222323[];
+extern void _ZN9GG12223233fooEv();
+extern void _ZN9GG12223233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12223233barEv,_ZTv0_n20_N9GG12223233barEv)();
+extern void ABISELECT(_ZThn16_N9GG12223233barEv,_ZThn8_N9GG12223233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12223233fooEv,_ZTv0_n12_N9GG12223233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12223233fooEv,_ZThn16_N9GG12223233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12223233barEv,_ZTv0_n12_N9GG12223233barEv)();
+extern void ABISELECT(_ZThn48_N9GG12223233barEv,_ZThn24_N9GG12223233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12223233barEv,_ZTv0_n20_N9GG12223233barEv)();
+extern void ABISELECT(_ZThn64_N9GG12223233barEv,_ZThn32_N9GG12223233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12223233barEv,_ZTv0_n12_N9GG12223233barEv)();
+extern void ABISELECT(_ZThn80_N9GG12223233barEv,_ZThn40_N9GG12223233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12223233fooEv,_ZTv0_n12_N9GG12223233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG12223233fooEv,_ZThn48_N9GG12223233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12223233barEv,_ZTv0_n16_N9GG12223233barEv)();
+extern void ABISELECT(_ZThn96_N9GG12223233barEv,_ZThn48_N9GG12223233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1222323[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1222323[0]),
+ (VTBL_ENTRY)&_ZN9GG12223233fooEv,
+ (VTBL_ENTRY)&_ZN9GG12223233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1222323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12223233barEv,_ZTv0_n20_N9GG12223233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1222323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12223233fooEv,_ZTv0_n12_N9GG12223233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1222323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12223233barEv,_ZTv0_n12_N9GG12223233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1222323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12223233barEv,_ZTv0_n20_N9GG12223233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1222323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12223233barEv,_ZTv0_n12_N9GG12223233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1222323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12223233fooEv,_ZTv0_n12_N9GG12223233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12223233barEv,_ZTv0_n16_N9GG12223233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1222323[];
+extern void _ZN5EE1223barEv();
+static VTBL_ENTRY _tg__ZTV5EE122__9GG1222323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN5EE1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE122__9GG1222323[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv)();
+extern void ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE122__9GG1222323[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv),
+};
+extern void _ZN5FF2323barEv();
+static VTBL_ENTRY _tg__ZTV5FF232__9GG1222323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN5FF2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv)();
+extern void ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF232__9GG1222323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv)();
+extern void ABISELECT(_ZThn32_N5FF2323barEv,_ZThn16_N5FF2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF232__9GG1222323[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv),
+};
+static VTT_ENTRY vtt_GG1222323[] = {
+ {&(_ZTV9GG1222323[8]), 8,40},
+ {&(_ZTV9GG1222323[15]), 15,40},
+ {&(_ZTV9GG1222323[19]), 19,40},
+ {&(_ZTV9GG1222323[23]), 23,40},
+ {&(_ZTV9GG1222323[29]), 29,40},
+ {&(_ZTV9GG1222323[33]), 33,40},
+ {&(_ZTV9GG1222323[38]), 38,40},
+ {&(_tg__ZTV5EE122__9GG1222323[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE122__9GG1222323[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE122__9GG1222323[3]), 3,4},
+ {&(_tg__ZTV5FF232__9GG1222323[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF232__9GG1222323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF232__9GG1222323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1222323[];
+extern VTBL_ENTRY _ZTV9GG1222323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1222323[];
+static VTBL_ENTRY alt_thunk_names340[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2323barEv,_ZThn16_N5FF2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG12223233barEv,_ZTv0_n16_N9GG12223233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12223233barEv,_ZThn48_N9GG12223233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12223233barEv,_ZTv0_n12_N9GG12223233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12223233barEv,_ZThn40_N9GG12223233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12223233barEv,_ZThn24_N9GG12223233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12223233fooEv,_ZTv0_n12_N9GG12223233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12223233fooEv,_ZThn48_N9GG12223233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12223233fooEv,_ZThn16_N9GG12223233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12223233barEv,_ZTv0_n20_N9GG12223233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12223233barEv,_ZThn32_N9GG12223233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12223233barEv,_ZThn8_N9GG12223233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1222323 = { "GG1222323", // class name
+ bases_GG1222323, 6,
+ &(vtc_GG1222323[0]), // expected_vtbl_contents
+ &(vtt_GG1222323[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1222323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1222323),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1222323),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names340,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1222333 : virtual EE122 , virtual FF233 {
+ int pg;
+ virtual void foo(); // _ZN9GG12223333fooEv
+ virtual void bar(); // _ZN9GG12223333barEv
+ ~GG1222333(); // tgen
+ GG1222333(); // tgen
+};
+//SIG(1 GG1222333) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1222333 ::foo(){vfunc_called(this, "_ZN9GG12223333fooEv");}
+void GG1222333 ::bar(){vfunc_called(this, "_ZN9GG12223333barEv");}
+GG1222333 ::~GG1222333(){ note_dtor("GG1222333", this);} // tgen
+GG1222333 ::GG1222333(){ note_ctor("GG1222333", this);} // tgen
+
+static void Test_GG1222333()
+{
+ extern Class_Descriptor cd_GG1222333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1222333, buf);
+ GG1222333 *dp, &lv = *(dp=new (buf) GG1222333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1222333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1222333)");
+ check_base_class_offset(lv, (AA1*)(EE122*), ABISELECT(32,16), "GG1222333");
+ check_base_class_offset(lv, (BB2*)(EE122*), ABISELECT(48,24), "GG1222333");
+ check_base_class_offset(lv, (EE122*), ABISELECT(16,8), "GG1222333");
+ check_base_class_offset(lv, (AA2*)(FF233*), ABISELECT(80,40), "GG1222333");
+ check_base_class_offset(lv, (BB3*)(FF233*), ABISELECT(96,48), "GG1222333");
+ check_base_class_offset(lv, (FF233*), ABISELECT(64,32), "GG1222333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1222333.pg");
+ test_class_info(&lv, &cd_GG1222333);
+ dp->~GG1222333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1222333(Test_GG1222333, "GG1222333", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1222333C1Ev();
+extern void _ZN9GG1222333D1Ev();
+Name_Map name_map_GG1222333[] = {
+ NSPAIR(_ZN9GG1222333C1Ev),
+ NSPAIR(_ZN9GG1222333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE122;
+extern VTBL_ENTRY _ZTI5EE122[];
+extern VTBL_ENTRY _ZTV5EE122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE122[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF233;
+extern VTBL_ENTRY _ZTI5FF233[];
+extern VTBL_ENTRY _ZTV5FF233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF233[];
+static Base_Class bases_GG1222333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE122, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF233, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1222333[];
+extern void _ZN9GG12223333fooEv();
+extern void _ZN9GG12223333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12223333barEv,_ZTv0_n20_N9GG12223333barEv)();
+extern void ABISELECT(_ZThn16_N9GG12223333barEv,_ZThn8_N9GG12223333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12223333fooEv,_ZTv0_n12_N9GG12223333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12223333fooEv,_ZThn16_N9GG12223333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12223333barEv,_ZTv0_n12_N9GG12223333barEv)();
+extern void ABISELECT(_ZThn48_N9GG12223333barEv,_ZThn24_N9GG12223333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12223333fooEv,_ZTv0_n20_N9GG12223333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12223333fooEv,_ZThn32_N9GG12223333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12223333barEv,_ZTv0_n24_N9GG12223333barEv)();
+extern void ABISELECT(_ZThn64_N9GG12223333barEv,_ZThn32_N9GG12223333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12223333barEv,_ZTv0_n12_N9GG12223333barEv)();
+extern void ABISELECT(_ZThn80_N9GG12223333barEv,_ZThn40_N9GG12223333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12223333fooEv,_ZTv0_n12_N9GG12223333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG12223333fooEv,_ZThn48_N9GG12223333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12223333barEv,_ZTv0_n16_N9GG12223333barEv)();
+extern void ABISELECT(_ZThn96_N9GG12223333barEv,_ZThn48_N9GG12223333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1222333[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1222333[0]),
+ (VTBL_ENTRY)&_ZN9GG12223333fooEv,
+ (VTBL_ENTRY)&_ZN9GG12223333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1222333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12223333barEv,_ZTv0_n20_N9GG12223333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1222333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12223333fooEv,_ZTv0_n12_N9GG12223333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1222333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12223333barEv,_ZTv0_n12_N9GG12223333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1222333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12223333fooEv,_ZTv0_n20_N9GG12223333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12223333barEv,_ZTv0_n24_N9GG12223333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1222333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12223333barEv,_ZTv0_n12_N9GG12223333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1222333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12223333fooEv,_ZTv0_n12_N9GG12223333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12223333barEv,_ZTv0_n16_N9GG12223333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1222333[];
+extern void _ZN5EE1223barEv();
+static VTBL_ENTRY _tg__ZTV5EE122__9GG1222333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN5EE1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE122__9GG1222333[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv)();
+extern void ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE122__9GG1222333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv),
+};
+extern void _ZN5FF2333fooEv();
+extern void _ZN5FF2333barEv();
+static VTBL_ENTRY _tg__ZTV5FF233__9GG1222333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&_ZN5FF2333fooEv,
+ (VTBL_ENTRY)&_ZN5FF2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv)();
+extern void ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF233__9GG1222333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2333fooEv,_ZThn16_N5FF2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv)();
+extern void ABISELECT(_ZThn32_N5FF2333barEv,_ZThn16_N5FF2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF233__9GG1222333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv),
+};
+static VTT_ENTRY vtt_GG1222333[] = {
+ {&(_ZTV9GG1222333[8]), 8,42},
+ {&(_ZTV9GG1222333[15]), 15,42},
+ {&(_ZTV9GG1222333[19]), 19,42},
+ {&(_ZTV9GG1222333[23]), 23,42},
+ {&(_ZTV9GG1222333[30]), 30,42},
+ {&(_ZTV9GG1222333[35]), 35,42},
+ {&(_ZTV9GG1222333[40]), 40,42},
+ {&(_tg__ZTV5EE122__9GG1222333[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE122__9GG1222333[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE122__9GG1222333[3]), 3,4},
+ {&(_tg__ZTV5FF233__9GG1222333[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF233__9GG1222333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF233__9GG1222333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1222333[];
+extern VTBL_ENTRY _ZTV9GG1222333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1222333[];
+static VTBL_ENTRY alt_thunk_names341[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2333barEv,_ZThn16_N5FF2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2333fooEv,_ZThn16_N5FF2333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG12223333barEv,_ZTv0_n16_N9GG12223333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12223333barEv,_ZThn48_N9GG12223333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG12223333barEv,_ZTv0_n24_N9GG12223333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12223333barEv,_ZThn32_N9GG12223333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12223333fooEv,_ZTv0_n20_N9GG12223333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12223333fooEv,_ZThn32_N9GG12223333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12223333barEv,_ZTv0_n12_N9GG12223333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12223333barEv,_ZThn40_N9GG12223333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12223333barEv,_ZThn24_N9GG12223333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12223333fooEv,_ZTv0_n12_N9GG12223333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12223333fooEv,_ZThn48_N9GG12223333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12223333fooEv,_ZThn16_N9GG12223333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12223333barEv,_ZTv0_n20_N9GG12223333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12223333barEv,_ZThn8_N9GG12223333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1222333 = { "GG1222333", // class name
+ bases_GG1222333, 6,
+ &(vtc_GG1222333[0]), // expected_vtbl_contents
+ &(vtt_GG1222333[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1222333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1222333),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1222333),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names341,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1223113 : virtual EE122 , virtual FF311 {
+ int pg;
+ virtual void foo(); // _ZN9GG12231133fooEv
+ virtual void bar(); // _ZN9GG12231133barEv
+ ~GG1223113(); // tgen
+ GG1223113(); // tgen
+};
+//SIG(1 GG1223113) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1223113 ::foo(){vfunc_called(this, "_ZN9GG12231133fooEv");}
+void GG1223113 ::bar(){vfunc_called(this, "_ZN9GG12231133barEv");}
+GG1223113 ::~GG1223113(){ note_dtor("GG1223113", this);} // tgen
+GG1223113 ::GG1223113(){ note_ctor("GG1223113", this);} // tgen
+
+static void Test_GG1223113()
+{
+ extern Class_Descriptor cd_GG1223113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1223113, buf);
+ GG1223113 *dp, &lv = *(dp=new (buf) GG1223113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1223113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1223113)");
+ check_base_class_offset(lv, (AA1*)(EE122*), ABISELECT(32,16), "GG1223113");
+ check_base_class_offset(lv, (BB2*)(EE122*), ABISELECT(48,24), "GG1223113");
+ check_base_class_offset(lv, (EE122*), ABISELECT(16,8), "GG1223113");
+ check_base_class_offset(lv, (AA3*)(FF311*), ABISELECT(80,40), "GG1223113");
+ check_base_class_offset(lv, (BB1*)(FF311*), ABISELECT(96,48), "GG1223113");
+ check_base_class_offset(lv, (FF311*), ABISELECT(64,32), "GG1223113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1223113.pg");
+ test_class_info(&lv, &cd_GG1223113);
+ dp->~GG1223113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1223113(Test_GG1223113, "GG1223113", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1223113C1Ev();
+extern void _ZN9GG1223113D1Ev();
+Name_Map name_map_GG1223113[] = {
+ NSPAIR(_ZN9GG1223113C1Ev),
+ NSPAIR(_ZN9GG1223113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE122;
+extern VTBL_ENTRY _ZTI5EE122[];
+extern VTBL_ENTRY _ZTV5EE122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE122[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF311;
+extern VTBL_ENTRY _ZTI5FF311[];
+extern VTBL_ENTRY _ZTV5FF311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF311[];
+static Base_Class bases_GG1223113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE122, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF311, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1223113[];
+extern void _ZN9GG12231133fooEv();
+extern void _ZN9GG12231133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12231133barEv,_ZTv0_n20_N9GG12231133barEv)();
+extern void ABISELECT(_ZThn16_N9GG12231133barEv,_ZThn8_N9GG12231133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12231133fooEv,_ZTv0_n12_N9GG12231133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12231133fooEv,_ZThn16_N9GG12231133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12231133barEv,_ZTv0_n12_N9GG12231133barEv)();
+extern void ABISELECT(_ZThn48_N9GG12231133barEv,_ZThn24_N9GG12231133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12231133fooEv,_ZTv0_n20_N9GG12231133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12231133fooEv,_ZThn32_N9GG12231133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12231133fooEv,_ZTv0_n12_N9GG12231133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG12231133fooEv,_ZThn40_N9GG12231133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12231133barEv,_ZTv0_n16_N9GG12231133barEv)();
+extern void ABISELECT(_ZThn80_N9GG12231133barEv,_ZThn40_N9GG12231133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12231133fooEv,_ZTv0_n12_N9GG12231133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG12231133fooEv,_ZThn48_N9GG12231133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1223113[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1223113[0]),
+ (VTBL_ENTRY)&_ZN9GG12231133fooEv,
+ (VTBL_ENTRY)&_ZN9GG12231133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1223113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12231133barEv,_ZTv0_n20_N9GG12231133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1223113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12231133fooEv,_ZTv0_n12_N9GG12231133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1223113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12231133barEv,_ZTv0_n12_N9GG12231133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1223113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12231133fooEv,_ZTv0_n20_N9GG12231133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1223113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12231133fooEv,_ZTv0_n12_N9GG12231133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12231133barEv,_ZTv0_n16_N9GG12231133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1223113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12231133fooEv,_ZTv0_n12_N9GG12231133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1223113[];
+extern void _ZN5EE1223barEv();
+static VTBL_ENTRY _tg__ZTV5EE122__9GG1223113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN5EE1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE122__9GG1223113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv)();
+extern void ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE122__9GG1223113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv),
+};
+extern void _ZN5FF3113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF311__9GG1223113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&_ZN5FF3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF311__9GG1223113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3113fooEv,_ZThn16_N5FF3113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF311__9GG1223113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+};
+static VTT_ENTRY vtt_GG1223113[] = {
+ {&(_ZTV9GG1223113[8]), 8,40},
+ {&(_ZTV9GG1223113[15]), 15,40},
+ {&(_ZTV9GG1223113[19]), 19,40},
+ {&(_ZTV9GG1223113[23]), 23,40},
+ {&(_ZTV9GG1223113[29]), 29,40},
+ {&(_ZTV9GG1223113[34]), 34,40},
+ {&(_ZTV9GG1223113[39]), 39,40},
+ {&(_tg__ZTV5EE122__9GG1223113[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE122__9GG1223113[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE122__9GG1223113[3]), 3,4},
+ {&(_tg__ZTV5FF311__9GG1223113[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF311__9GG1223113[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF311__9GG1223113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1223113[];
+extern VTBL_ENTRY _ZTV9GG1223113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1223113[];
+static VTBL_ENTRY alt_thunk_names342[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3113fooEv,_ZThn16_N5FF3113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG12231133barEv,_ZTv0_n16_N9GG12231133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12231133barEv,_ZThn40_N9GG12231133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12231133fooEv,_ZTv0_n20_N9GG12231133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12231133fooEv,_ZThn32_N9GG12231133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12231133barEv,_ZTv0_n12_N9GG12231133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12231133barEv,_ZThn24_N9GG12231133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12231133fooEv,_ZTv0_n12_N9GG12231133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12231133fooEv,_ZThn48_N9GG12231133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12231133fooEv,_ZThn40_N9GG12231133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12231133fooEv,_ZThn16_N9GG12231133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12231133barEv,_ZTv0_n20_N9GG12231133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12231133barEv,_ZThn8_N9GG12231133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1223113 = { "GG1223113", // class name
+ bases_GG1223113, 6,
+ &(vtc_GG1223113[0]), // expected_vtbl_contents
+ &(vtt_GG1223113[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1223113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1223113),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1223113),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names342,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1223123 : virtual EE122 , virtual FF312 {
+ int pg;
+ virtual void foo(); // _ZN9GG12231233fooEv
+ virtual void bar(); // _ZN9GG12231233barEv
+ ~GG1223123(); // tgen
+ GG1223123(); // tgen
+};
+//SIG(1 GG1223123) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1223123 ::foo(){vfunc_called(this, "_ZN9GG12231233fooEv");}
+void GG1223123 ::bar(){vfunc_called(this, "_ZN9GG12231233barEv");}
+GG1223123 ::~GG1223123(){ note_dtor("GG1223123", this);} // tgen
+GG1223123 ::GG1223123(){ note_ctor("GG1223123", this);} // tgen
+
+static void Test_GG1223123()
+{
+ extern Class_Descriptor cd_GG1223123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1223123, buf);
+ GG1223123 *dp, &lv = *(dp=new (buf) GG1223123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1223123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1223123)");
+ check_base_class_offset(lv, (AA1*)(EE122*), ABISELECT(32,16), "GG1223123");
+ check_base_class_offset(lv, (BB2*)(EE122*), ABISELECT(48,24), "GG1223123");
+ check_base_class_offset(lv, (EE122*), ABISELECT(16,8), "GG1223123");
+ check_base_class_offset(lv, (AA3*)(FF312*), ABISELECT(80,40), "GG1223123");
+ check_base_class_offset(lv, (BB1*)(FF312*), ABISELECT(96,48), "GG1223123");
+ check_base_class_offset(lv, (FF312*), ABISELECT(64,32), "GG1223123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1223123.pg");
+ test_class_info(&lv, &cd_GG1223123);
+ dp->~GG1223123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1223123(Test_GG1223123, "GG1223123", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1223123C1Ev();
+extern void _ZN9GG1223123D1Ev();
+Name_Map name_map_GG1223123[] = {
+ NSPAIR(_ZN9GG1223123C1Ev),
+ NSPAIR(_ZN9GG1223123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE122;
+extern VTBL_ENTRY _ZTI5EE122[];
+extern VTBL_ENTRY _ZTV5EE122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE122[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF312;
+extern VTBL_ENTRY _ZTI5FF312[];
+extern VTBL_ENTRY _ZTV5FF312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF312[];
+static Base_Class bases_GG1223123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE122, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF312, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1223123[];
+extern void _ZN9GG12231233fooEv();
+extern void _ZN9GG12231233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12231233barEv,_ZTv0_n20_N9GG12231233barEv)();
+extern void ABISELECT(_ZThn16_N9GG12231233barEv,_ZThn8_N9GG12231233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12231233fooEv,_ZTv0_n12_N9GG12231233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12231233fooEv,_ZThn16_N9GG12231233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12231233barEv,_ZTv0_n12_N9GG12231233barEv)();
+extern void ABISELECT(_ZThn48_N9GG12231233barEv,_ZThn24_N9GG12231233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12231233barEv,_ZTv0_n20_N9GG12231233barEv)();
+extern void ABISELECT(_ZThn64_N9GG12231233barEv,_ZThn32_N9GG12231233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12231233fooEv,_ZTv0_n12_N9GG12231233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG12231233fooEv,_ZThn40_N9GG12231233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12231233barEv,_ZTv0_n16_N9GG12231233barEv)();
+extern void ABISELECT(_ZThn80_N9GG12231233barEv,_ZThn40_N9GG12231233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12231233fooEv,_ZTv0_n12_N9GG12231233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG12231233fooEv,_ZThn48_N9GG12231233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1223123[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1223123[0]),
+ (VTBL_ENTRY)&_ZN9GG12231233fooEv,
+ (VTBL_ENTRY)&_ZN9GG12231233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1223123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12231233barEv,_ZTv0_n20_N9GG12231233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1223123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12231233fooEv,_ZTv0_n12_N9GG12231233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1223123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12231233barEv,_ZTv0_n12_N9GG12231233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1223123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12231233barEv,_ZTv0_n20_N9GG12231233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1223123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12231233fooEv,_ZTv0_n12_N9GG12231233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12231233barEv,_ZTv0_n16_N9GG12231233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1223123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12231233fooEv,_ZTv0_n12_N9GG12231233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1223123[];
+extern void _ZN5EE1223barEv();
+static VTBL_ENTRY _tg__ZTV5EE122__9GG1223123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN5EE1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE122__9GG1223123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv)();
+extern void ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE122__9GG1223123[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv),
+};
+extern void _ZN5FF3123barEv();
+static VTBL_ENTRY _tg__ZTV5FF312__9GG1223123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN5FF3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv)();
+extern void ABISELECT(_ZThn16_N5FF3123barEv,_ZThn8_N5FF3123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF312__9GG1223123[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF312__9GG1223123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG1223123[] = {
+ {&(_ZTV9GG1223123[8]), 8,40},
+ {&(_ZTV9GG1223123[15]), 15,40},
+ {&(_ZTV9GG1223123[19]), 19,40},
+ {&(_ZTV9GG1223123[23]), 23,40},
+ {&(_ZTV9GG1223123[29]), 29,40},
+ {&(_ZTV9GG1223123[34]), 34,40},
+ {&(_ZTV9GG1223123[39]), 39,40},
+ {&(_tg__ZTV5EE122__9GG1223123[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE122__9GG1223123[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE122__9GG1223123[3]), 3,4},
+ {&(_tg__ZTV5FF312__9GG1223123[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF312__9GG1223123[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF312__9GG1223123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1223123[];
+extern VTBL_ENTRY _ZTV9GG1223123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1223123[];
+static VTBL_ENTRY alt_thunk_names343[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3123barEv,_ZThn8_N5FF3123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG12231233barEv,_ZTv0_n16_N9GG12231233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12231233barEv,_ZThn40_N9GG12231233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12231233barEv,_ZTv0_n12_N9GG12231233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12231233barEv,_ZThn24_N9GG12231233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12231233fooEv,_ZTv0_n12_N9GG12231233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12231233fooEv,_ZThn48_N9GG12231233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12231233fooEv,_ZThn40_N9GG12231233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12231233fooEv,_ZThn16_N9GG12231233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12231233barEv,_ZTv0_n20_N9GG12231233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12231233barEv,_ZThn32_N9GG12231233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12231233barEv,_ZThn8_N9GG12231233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1223123 = { "GG1223123", // class name
+ bases_GG1223123, 6,
+ &(vtc_GG1223123[0]), // expected_vtbl_contents
+ &(vtt_GG1223123[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1223123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1223123),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1223123),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names343,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1223133 : virtual EE122 , virtual FF313 {
+ int pg;
+ virtual void foo(); // _ZN9GG12231333fooEv
+ virtual void bar(); // _ZN9GG12231333barEv
+ ~GG1223133(); // tgen
+ GG1223133(); // tgen
+};
+//SIG(1 GG1223133) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1223133 ::foo(){vfunc_called(this, "_ZN9GG12231333fooEv");}
+void GG1223133 ::bar(){vfunc_called(this, "_ZN9GG12231333barEv");}
+GG1223133 ::~GG1223133(){ note_dtor("GG1223133", this);} // tgen
+GG1223133 ::GG1223133(){ note_ctor("GG1223133", this);} // tgen
+
+static void Test_GG1223133()
+{
+ extern Class_Descriptor cd_GG1223133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1223133, buf);
+ GG1223133 *dp, &lv = *(dp=new (buf) GG1223133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1223133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1223133)");
+ check_base_class_offset(lv, (AA1*)(EE122*), ABISELECT(32,16), "GG1223133");
+ check_base_class_offset(lv, (BB2*)(EE122*), ABISELECT(48,24), "GG1223133");
+ check_base_class_offset(lv, (EE122*), ABISELECT(16,8), "GG1223133");
+ check_base_class_offset(lv, (AA3*)(FF313*), ABISELECT(80,40), "GG1223133");
+ check_base_class_offset(lv, (BB1*)(FF313*), ABISELECT(96,48), "GG1223133");
+ check_base_class_offset(lv, (FF313*), ABISELECT(64,32), "GG1223133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1223133.pg");
+ test_class_info(&lv, &cd_GG1223133);
+ dp->~GG1223133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1223133(Test_GG1223133, "GG1223133", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1223133C1Ev();
+extern void _ZN9GG1223133D1Ev();
+Name_Map name_map_GG1223133[] = {
+ NSPAIR(_ZN9GG1223133C1Ev),
+ NSPAIR(_ZN9GG1223133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE122;
+extern VTBL_ENTRY _ZTI5EE122[];
+extern VTBL_ENTRY _ZTV5EE122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE122[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF313;
+extern VTBL_ENTRY _ZTI5FF313[];
+extern VTBL_ENTRY _ZTV5FF313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF313[];
+static Base_Class bases_GG1223133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE122, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF313, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1223133[];
+extern void _ZN9GG12231333fooEv();
+extern void _ZN9GG12231333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12231333barEv,_ZTv0_n20_N9GG12231333barEv)();
+extern void ABISELECT(_ZThn16_N9GG12231333barEv,_ZThn8_N9GG12231333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12231333fooEv,_ZTv0_n12_N9GG12231333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12231333fooEv,_ZThn16_N9GG12231333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12231333barEv,_ZTv0_n12_N9GG12231333barEv)();
+extern void ABISELECT(_ZThn48_N9GG12231333barEv,_ZThn24_N9GG12231333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12231333fooEv,_ZTv0_n20_N9GG12231333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12231333fooEv,_ZThn32_N9GG12231333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12231333barEv,_ZTv0_n24_N9GG12231333barEv)();
+extern void ABISELECT(_ZThn64_N9GG12231333barEv,_ZThn32_N9GG12231333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12231333fooEv,_ZTv0_n12_N9GG12231333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG12231333fooEv,_ZThn40_N9GG12231333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12231333barEv,_ZTv0_n16_N9GG12231333barEv)();
+extern void ABISELECT(_ZThn80_N9GG12231333barEv,_ZThn40_N9GG12231333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12231333fooEv,_ZTv0_n12_N9GG12231333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG12231333fooEv,_ZThn48_N9GG12231333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1223133[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1223133[0]),
+ (VTBL_ENTRY)&_ZN9GG12231333fooEv,
+ (VTBL_ENTRY)&_ZN9GG12231333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1223133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12231333barEv,_ZTv0_n20_N9GG12231333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1223133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12231333fooEv,_ZTv0_n12_N9GG12231333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1223133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12231333barEv,_ZTv0_n12_N9GG12231333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1223133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12231333fooEv,_ZTv0_n20_N9GG12231333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12231333barEv,_ZTv0_n24_N9GG12231333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1223133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12231333fooEv,_ZTv0_n12_N9GG12231333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12231333barEv,_ZTv0_n16_N9GG12231333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1223133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12231333fooEv,_ZTv0_n12_N9GG12231333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1223133[];
+extern void _ZN5EE1223barEv();
+static VTBL_ENTRY _tg__ZTV5EE122__9GG1223133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN5EE1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE122__9GG1223133[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv)();
+extern void ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE122__9GG1223133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv),
+};
+extern void _ZN5FF3133fooEv();
+extern void _ZN5FF3133barEv();
+static VTBL_ENTRY _tg__ZTV5FF313__9GG1223133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&_ZN5FF3133fooEv,
+ (VTBL_ENTRY)&_ZN5FF3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv)();
+extern void ABISELECT(_ZThn16_N5FF3133barEv,_ZThn8_N5FF3133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF313__9GG1223133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3133fooEv,_ZThn16_N5FF3133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF313__9GG1223133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+};
+static VTT_ENTRY vtt_GG1223133[] = {
+ {&(_ZTV9GG1223133[8]), 8,42},
+ {&(_ZTV9GG1223133[15]), 15,42},
+ {&(_ZTV9GG1223133[19]), 19,42},
+ {&(_ZTV9GG1223133[23]), 23,42},
+ {&(_ZTV9GG1223133[30]), 30,42},
+ {&(_ZTV9GG1223133[36]), 36,42},
+ {&(_ZTV9GG1223133[41]), 41,42},
+ {&(_tg__ZTV5EE122__9GG1223133[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE122__9GG1223133[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE122__9GG1223133[3]), 3,4},
+ {&(_tg__ZTV5FF313__9GG1223133[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF313__9GG1223133[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF313__9GG1223133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1223133[];
+extern VTBL_ENTRY _ZTV9GG1223133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1223133[];
+static VTBL_ENTRY alt_thunk_names344[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3133barEv,_ZThn8_N5FF3133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3133fooEv,_ZThn16_N5FF3133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG12231333barEv,_ZTv0_n16_N9GG12231333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12231333barEv,_ZThn40_N9GG12231333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG12231333barEv,_ZTv0_n24_N9GG12231333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12231333barEv,_ZThn32_N9GG12231333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12231333fooEv,_ZTv0_n20_N9GG12231333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12231333fooEv,_ZThn32_N9GG12231333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12231333barEv,_ZTv0_n12_N9GG12231333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12231333barEv,_ZThn24_N9GG12231333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12231333fooEv,_ZTv0_n12_N9GG12231333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12231333fooEv,_ZThn48_N9GG12231333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12231333fooEv,_ZThn40_N9GG12231333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12231333fooEv,_ZThn16_N9GG12231333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12231333barEv,_ZTv0_n20_N9GG12231333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12231333barEv,_ZThn8_N9GG12231333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1223133 = { "GG1223133", // class name
+ bases_GG1223133, 6,
+ &(vtc_GG1223133[0]), // expected_vtbl_contents
+ &(vtt_GG1223133[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1223133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1223133),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1223133),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names344,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1223213 : virtual EE122 , virtual FF321 {
+ int pg;
+ virtual void foo(); // _ZN9GG12232133fooEv
+ virtual void bar(); // _ZN9GG12232133barEv
+ ~GG1223213(); // tgen
+ GG1223213(); // tgen
+};
+//SIG(1 GG1223213) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG1223213 ::foo(){vfunc_called(this, "_ZN9GG12232133fooEv");}
+void GG1223213 ::bar(){vfunc_called(this, "_ZN9GG12232133barEv");}
+GG1223213 ::~GG1223213(){ note_dtor("GG1223213", this);} // tgen
+GG1223213 ::GG1223213(){ note_ctor("GG1223213", this);} // tgen
+
+static void Test_GG1223213()
+{
+ extern Class_Descriptor cd_GG1223213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1223213, buf);
+ GG1223213 *dp, &lv = *(dp=new (buf) GG1223213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1223213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1223213)");
+ check_base_class_offset(lv, (AA1*)(EE122*), ABISELECT(32,16), "GG1223213");
+ check_base_class_offset(lv, (BB2*)(EE122*), ABISELECT(48,24), "GG1223213");
+ check_base_class_offset(lv, (BB2*)(FF321*), ABISELECT(48,24), "GG1223213");
+ check_base_class_offset(lv, (EE122*), ABISELECT(16,8), "GG1223213");
+ check_base_class_offset(lv, (AA3*)(FF321*), ABISELECT(80,40), "GG1223213");
+ check_base_class_offset(lv, (FF321*), ABISELECT(64,32), "GG1223213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1223213.pg");
+ test_class_info(&lv, &cd_GG1223213);
+ dp->~GG1223213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1223213(Test_GG1223213, "GG1223213", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1223213C1Ev();
+extern void _ZN9GG1223213D1Ev();
+Name_Map name_map_GG1223213[] = {
+ NSPAIR(_ZN9GG1223213C1Ev),
+ NSPAIR(_ZN9GG1223213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE122;
+extern VTBL_ENTRY _ZTI5EE122[];
+extern VTBL_ENTRY _ZTV5EE122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE122[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF321;
+extern VTBL_ENTRY _ZTI5FF321[];
+extern VTBL_ENTRY _ZTV5FF321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF321[];
+static Base_Class bases_GG1223213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE122, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF321, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1223213[];
+extern void _ZN9GG12232133fooEv();
+extern void _ZN9GG12232133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12232133barEv,_ZTv0_n20_N9GG12232133barEv)();
+extern void ABISELECT(_ZThn16_N9GG12232133barEv,_ZThn8_N9GG12232133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12232133fooEv,_ZTv0_n12_N9GG12232133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12232133fooEv,_ZThn16_N9GG12232133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12232133barEv,_ZTv0_n12_N9GG12232133barEv)();
+extern void ABISELECT(_ZThn48_N9GG12232133barEv,_ZThn24_N9GG12232133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12232133fooEv,_ZTv0_n20_N9GG12232133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12232133fooEv,_ZThn32_N9GG12232133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12232133fooEv,_ZTv0_n12_N9GG12232133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG12232133fooEv,_ZThn40_N9GG12232133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12232133barEv,_ZTv0_n16_N9GG12232133barEv)();
+extern void ABISELECT(_ZThn80_N9GG12232133barEv,_ZThn40_N9GG12232133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1223213[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1223213[0]),
+ (VTBL_ENTRY)&_ZN9GG12232133fooEv,
+ (VTBL_ENTRY)&_ZN9GG12232133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1223213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12232133barEv,_ZTv0_n20_N9GG12232133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1223213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12232133fooEv,_ZTv0_n12_N9GG12232133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1223213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12232133barEv,_ZTv0_n12_N9GG12232133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1223213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12232133fooEv,_ZTv0_n20_N9GG12232133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1223213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12232133fooEv,_ZTv0_n12_N9GG12232133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12232133barEv,_ZTv0_n16_N9GG12232133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1223213[];
+extern void _ZN5EE1223barEv();
+static VTBL_ENTRY _tg__ZTV5EE122__9GG1223213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN5EE1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE122__9GG1223213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv)();
+extern void ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE122__9GG1223213[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv),
+};
+extern void _ZN5FF3213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF321__9GG1223213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN5FF3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3213fooEv,_ZThn8_N5FF3213fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF321__9GG1223213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF321__9GG1223213[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG1223213[] = {
+ {&(_ZTV9GG1223213[7]), 7,35},
+ {&(_ZTV9GG1223213[14]), 14,35},
+ {&(_ZTV9GG1223213[18]), 18,35},
+ {&(_ZTV9GG1223213[22]), 22,35},
+ {&(_ZTV9GG1223213[28]), 28,35},
+ {&(_ZTV9GG1223213[33]), 33,35},
+ {&(_tg__ZTV5EE122__9GG1223213[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE122__9GG1223213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE122__9GG1223213[3]), 3,4},
+ {&(_tg__ZTV5FF321__9GG1223213[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF321__9GG1223213[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF321__9GG1223213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1223213[];
+extern VTBL_ENTRY _ZTV9GG1223213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1223213[];
+static VTBL_ENTRY alt_thunk_names345[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3213fooEv,_ZThn8_N5FF3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG12232133barEv,_ZTv0_n16_N9GG12232133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12232133barEv,_ZThn40_N9GG12232133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12232133fooEv,_ZTv0_n20_N9GG12232133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12232133fooEv,_ZThn32_N9GG12232133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12232133barEv,_ZTv0_n12_N9GG12232133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12232133barEv,_ZThn24_N9GG12232133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12232133fooEv,_ZTv0_n12_N9GG12232133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12232133fooEv,_ZThn40_N9GG12232133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12232133fooEv,_ZThn16_N9GG12232133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12232133barEv,_ZTv0_n20_N9GG12232133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12232133barEv,_ZThn8_N9GG12232133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1223213 = { "GG1223213", // class name
+ bases_GG1223213, 5,
+ &(vtc_GG1223213[0]), // expected_vtbl_contents
+ &(vtt_GG1223213[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1223213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1223213),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1223213),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names345,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1223223 : virtual EE122 , virtual FF322 {
+ int pg;
+ virtual void foo(); // _ZN9GG12232233fooEv
+ virtual void bar(); // _ZN9GG12232233barEv
+ ~GG1223223(); // tgen
+ GG1223223(); // tgen
+};
+//SIG(1 GG1223223) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG1223223 ::foo(){vfunc_called(this, "_ZN9GG12232233fooEv");}
+void GG1223223 ::bar(){vfunc_called(this, "_ZN9GG12232233barEv");}
+GG1223223 ::~GG1223223(){ note_dtor("GG1223223", this);} // tgen
+GG1223223 ::GG1223223(){ note_ctor("GG1223223", this);} // tgen
+
+static void Test_GG1223223()
+{
+ extern Class_Descriptor cd_GG1223223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1223223, buf);
+ GG1223223 *dp, &lv = *(dp=new (buf) GG1223223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1223223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1223223)");
+ check_base_class_offset(lv, (AA1*)(EE122*), ABISELECT(32,16), "GG1223223");
+ check_base_class_offset(lv, (BB2*)(EE122*), ABISELECT(48,24), "GG1223223");
+ check_base_class_offset(lv, (BB2*)(FF322*), ABISELECT(48,24), "GG1223223");
+ check_base_class_offset(lv, (EE122*), ABISELECT(16,8), "GG1223223");
+ check_base_class_offset(lv, (AA3*)(FF322*), ABISELECT(80,40), "GG1223223");
+ check_base_class_offset(lv, (FF322*), ABISELECT(64,32), "GG1223223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1223223.pg");
+ test_class_info(&lv, &cd_GG1223223);
+ dp->~GG1223223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1223223(Test_GG1223223, "GG1223223", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1223223C1Ev();
+extern void _ZN9GG1223223D1Ev();
+Name_Map name_map_GG1223223[] = {
+ NSPAIR(_ZN9GG1223223C1Ev),
+ NSPAIR(_ZN9GG1223223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE122;
+extern VTBL_ENTRY _ZTI5EE122[];
+extern VTBL_ENTRY _ZTV5EE122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE122[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF322;
+extern VTBL_ENTRY _ZTI5FF322[];
+extern VTBL_ENTRY _ZTV5FF322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF322[];
+static Base_Class bases_GG1223223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE122, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF322, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1223223[];
+extern void _ZN9GG12232233fooEv();
+extern void _ZN9GG12232233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12232233barEv,_ZTv0_n20_N9GG12232233barEv)();
+extern void ABISELECT(_ZThn16_N9GG12232233barEv,_ZThn8_N9GG12232233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12232233fooEv,_ZTv0_n12_N9GG12232233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12232233fooEv,_ZThn16_N9GG12232233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12232233barEv,_ZTv0_n12_N9GG12232233barEv)();
+extern void ABISELECT(_ZThn48_N9GG12232233barEv,_ZThn24_N9GG12232233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12232233barEv,_ZTv0_n20_N9GG12232233barEv)();
+extern void ABISELECT(_ZThn64_N9GG12232233barEv,_ZThn32_N9GG12232233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12232233fooEv,_ZTv0_n12_N9GG12232233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG12232233fooEv,_ZThn40_N9GG12232233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12232233barEv,_ZTv0_n16_N9GG12232233barEv)();
+extern void ABISELECT(_ZThn80_N9GG12232233barEv,_ZThn40_N9GG12232233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1223223[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1223223[0]),
+ (VTBL_ENTRY)&_ZN9GG12232233fooEv,
+ (VTBL_ENTRY)&_ZN9GG12232233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1223223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12232233barEv,_ZTv0_n20_N9GG12232233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1223223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12232233fooEv,_ZTv0_n12_N9GG12232233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1223223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12232233barEv,_ZTv0_n12_N9GG12232233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1223223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12232233barEv,_ZTv0_n20_N9GG12232233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1223223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12232233fooEv,_ZTv0_n12_N9GG12232233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12232233barEv,_ZTv0_n16_N9GG12232233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1223223[];
+extern void _ZN5EE1223barEv();
+static VTBL_ENTRY _tg__ZTV5EE122__9GG1223223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN5EE1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE122__9GG1223223[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv)();
+extern void ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE122__9GG1223223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv),
+};
+extern void _ZN5FF3223barEv();
+static VTBL_ENTRY _tg__ZTV5FF322__9GG1223223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN5FF3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv)();
+extern void ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF322__9GG1223223[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF322__9GG1223223[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv),
+};
+static VTT_ENTRY vtt_GG1223223[] = {
+ {&(_ZTV9GG1223223[7]), 7,35},
+ {&(_ZTV9GG1223223[14]), 14,35},
+ {&(_ZTV9GG1223223[18]), 18,35},
+ {&(_ZTV9GG1223223[22]), 22,35},
+ {&(_ZTV9GG1223223[28]), 28,35},
+ {&(_ZTV9GG1223223[33]), 33,35},
+ {&(_tg__ZTV5EE122__9GG1223223[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE122__9GG1223223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE122__9GG1223223[3]), 3,4},
+ {&(_tg__ZTV5FF322__9GG1223223[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF322__9GG1223223[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF322__9GG1223223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1223223[];
+extern VTBL_ENTRY _ZTV9GG1223223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1223223[];
+static VTBL_ENTRY alt_thunk_names346[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG12232233barEv,_ZTv0_n16_N9GG12232233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12232233barEv,_ZThn40_N9GG12232233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12232233barEv,_ZTv0_n12_N9GG12232233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12232233barEv,_ZThn24_N9GG12232233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12232233fooEv,_ZTv0_n12_N9GG12232233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12232233fooEv,_ZThn40_N9GG12232233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12232233fooEv,_ZThn16_N9GG12232233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12232233barEv,_ZTv0_n20_N9GG12232233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12232233barEv,_ZThn32_N9GG12232233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12232233barEv,_ZThn8_N9GG12232233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1223223 = { "GG1223223", // class name
+ bases_GG1223223, 5,
+ &(vtc_GG1223223[0]), // expected_vtbl_contents
+ &(vtt_GG1223223[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1223223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1223223),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1223223),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names346,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1223233 : virtual EE122 , virtual FF323 {
+ int pg;
+ virtual void foo(); // _ZN9GG12232333fooEv
+ virtual void bar(); // _ZN9GG12232333barEv
+ ~GG1223233(); // tgen
+ GG1223233(); // tgen
+};
+//SIG(1 GG1223233) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1223233 ::foo(){vfunc_called(this, "_ZN9GG12232333fooEv");}
+void GG1223233 ::bar(){vfunc_called(this, "_ZN9GG12232333barEv");}
+GG1223233 ::~GG1223233(){ note_dtor("GG1223233", this);} // tgen
+GG1223233 ::GG1223233(){ note_ctor("GG1223233", this);} // tgen
+
+static void Test_GG1223233()
+{
+ extern Class_Descriptor cd_GG1223233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1223233, buf);
+ GG1223233 *dp, &lv = *(dp=new (buf) GG1223233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1223233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1223233)");
+ check_base_class_offset(lv, (AA1*)(EE122*), ABISELECT(32,16), "GG1223233");
+ check_base_class_offset(lv, (BB2*)(EE122*), ABISELECT(48,24), "GG1223233");
+ check_base_class_offset(lv, (BB2*)(FF323*), ABISELECT(48,24), "GG1223233");
+ check_base_class_offset(lv, (EE122*), ABISELECT(16,8), "GG1223233");
+ check_base_class_offset(lv, (AA3*)(FF323*), ABISELECT(80,40), "GG1223233");
+ check_base_class_offset(lv, (FF323*), ABISELECT(64,32), "GG1223233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1223233.pg");
+ test_class_info(&lv, &cd_GG1223233);
+ dp->~GG1223233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1223233(Test_GG1223233, "GG1223233", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1223233C1Ev();
+extern void _ZN9GG1223233D1Ev();
+Name_Map name_map_GG1223233[] = {
+ NSPAIR(_ZN9GG1223233C1Ev),
+ NSPAIR(_ZN9GG1223233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE122;
+extern VTBL_ENTRY _ZTI5EE122[];
+extern VTBL_ENTRY _ZTV5EE122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE122[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF323;
+extern VTBL_ENTRY _ZTI5FF323[];
+extern VTBL_ENTRY _ZTV5FF323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF323[];
+static Base_Class bases_GG1223233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE122, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF323, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1223233[];
+extern void _ZN9GG12232333fooEv();
+extern void _ZN9GG12232333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12232333barEv,_ZTv0_n20_N9GG12232333barEv)();
+extern void ABISELECT(_ZThn16_N9GG12232333barEv,_ZThn8_N9GG12232333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12232333fooEv,_ZTv0_n12_N9GG12232333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12232333fooEv,_ZThn16_N9GG12232333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12232333barEv,_ZTv0_n12_N9GG12232333barEv)();
+extern void ABISELECT(_ZThn48_N9GG12232333barEv,_ZThn24_N9GG12232333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12232333fooEv,_ZTv0_n20_N9GG12232333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12232333fooEv,_ZThn32_N9GG12232333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12232333barEv,_ZTv0_n24_N9GG12232333barEv)();
+extern void ABISELECT(_ZThn64_N9GG12232333barEv,_ZThn32_N9GG12232333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12232333fooEv,_ZTv0_n12_N9GG12232333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG12232333fooEv,_ZThn40_N9GG12232333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12232333barEv,_ZTv0_n16_N9GG12232333barEv)();
+extern void ABISELECT(_ZThn80_N9GG12232333barEv,_ZThn40_N9GG12232333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1223233[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1223233[0]),
+ (VTBL_ENTRY)&_ZN9GG12232333fooEv,
+ (VTBL_ENTRY)&_ZN9GG12232333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1223233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12232333barEv,_ZTv0_n20_N9GG12232333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1223233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12232333fooEv,_ZTv0_n12_N9GG12232333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1223233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12232333barEv,_ZTv0_n12_N9GG12232333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1223233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12232333fooEv,_ZTv0_n20_N9GG12232333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12232333barEv,_ZTv0_n24_N9GG12232333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1223233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12232333fooEv,_ZTv0_n12_N9GG12232333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12232333barEv,_ZTv0_n16_N9GG12232333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1223233[];
+extern void _ZN5EE1223barEv();
+static VTBL_ENTRY _tg__ZTV5EE122__9GG1223233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN5EE1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE122__9GG1223233[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv)();
+extern void ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE122__9GG1223233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv),
+};
+extern void _ZN5FF3233fooEv();
+extern void _ZN5FF3233barEv();
+static VTBL_ENTRY _tg__ZTV5FF323__9GG1223233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&_ZN5FF3233fooEv,
+ (VTBL_ENTRY)&_ZN5FF3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3233fooEv,_ZThn8_N5FF3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv)();
+extern void ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF323__9GG1223233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF323__9GG1223233[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv),
+};
+static VTT_ENTRY vtt_GG1223233[] = {
+ {&(_ZTV9GG1223233[7]), 7,37},
+ {&(_ZTV9GG1223233[14]), 14,37},
+ {&(_ZTV9GG1223233[18]), 18,37},
+ {&(_ZTV9GG1223233[22]), 22,37},
+ {&(_ZTV9GG1223233[29]), 29,37},
+ {&(_ZTV9GG1223233[35]), 35,37},
+ {&(_tg__ZTV5EE122__9GG1223233[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE122__9GG1223233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE122__9GG1223233[3]), 3,4},
+ {&(_tg__ZTV5FF323__9GG1223233[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF323__9GG1223233[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF323__9GG1223233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1223233[];
+extern VTBL_ENTRY _ZTV9GG1223233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1223233[];
+static VTBL_ENTRY alt_thunk_names347[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3233fooEv,_ZThn8_N5FF3233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG12232333barEv,_ZTv0_n16_N9GG12232333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12232333barEv,_ZThn40_N9GG12232333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG12232333barEv,_ZTv0_n24_N9GG12232333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12232333barEv,_ZThn32_N9GG12232333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12232333fooEv,_ZTv0_n20_N9GG12232333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12232333fooEv,_ZThn32_N9GG12232333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12232333barEv,_ZTv0_n12_N9GG12232333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12232333barEv,_ZThn24_N9GG12232333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12232333fooEv,_ZTv0_n12_N9GG12232333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12232333fooEv,_ZThn40_N9GG12232333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12232333fooEv,_ZThn16_N9GG12232333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12232333barEv,_ZTv0_n20_N9GG12232333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12232333barEv,_ZThn8_N9GG12232333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1223233 = { "GG1223233", // class name
+ bases_GG1223233, 5,
+ &(vtc_GG1223233[0]), // expected_vtbl_contents
+ &(vtt_GG1223233[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1223233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1223233),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1223233),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names347,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1223313 : virtual EE122 , virtual FF331 {
+ int pg;
+ virtual void foo(); // _ZN9GG12233133fooEv
+ virtual void bar(); // _ZN9GG12233133barEv
+ ~GG1223313(); // tgen
+ GG1223313(); // tgen
+};
+//SIG(1 GG1223313) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1223313 ::foo(){vfunc_called(this, "_ZN9GG12233133fooEv");}
+void GG1223313 ::bar(){vfunc_called(this, "_ZN9GG12233133barEv");}
+GG1223313 ::~GG1223313(){ note_dtor("GG1223313", this);} // tgen
+GG1223313 ::GG1223313(){ note_ctor("GG1223313", this);} // tgen
+
+static void Test_GG1223313()
+{
+ extern Class_Descriptor cd_GG1223313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1223313, buf);
+ GG1223313 *dp, &lv = *(dp=new (buf) GG1223313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1223313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1223313)");
+ check_base_class_offset(lv, (AA1*)(EE122*), ABISELECT(32,16), "GG1223313");
+ check_base_class_offset(lv, (BB2*)(EE122*), ABISELECT(48,24), "GG1223313");
+ check_base_class_offset(lv, (EE122*), ABISELECT(16,8), "GG1223313");
+ check_base_class_offset(lv, (AA3*)(FF331*), ABISELECT(80,40), "GG1223313");
+ check_base_class_offset(lv, (BB3*)(FF331*), ABISELECT(96,48), "GG1223313");
+ check_base_class_offset(lv, (FF331*), ABISELECT(64,32), "GG1223313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1223313.pg");
+ test_class_info(&lv, &cd_GG1223313);
+ dp->~GG1223313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1223313(Test_GG1223313, "GG1223313", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1223313C1Ev();
+extern void _ZN9GG1223313D1Ev();
+Name_Map name_map_GG1223313[] = {
+ NSPAIR(_ZN9GG1223313C1Ev),
+ NSPAIR(_ZN9GG1223313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE122;
+extern VTBL_ENTRY _ZTI5EE122[];
+extern VTBL_ENTRY _ZTV5EE122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE122[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF331;
+extern VTBL_ENTRY _ZTI5FF331[];
+extern VTBL_ENTRY _ZTV5FF331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF331[];
+static Base_Class bases_GG1223313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE122, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF331, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1223313[];
+extern void _ZN9GG12233133fooEv();
+extern void _ZN9GG12233133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12233133barEv,_ZTv0_n20_N9GG12233133barEv)();
+extern void ABISELECT(_ZThn16_N9GG12233133barEv,_ZThn8_N9GG12233133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12233133fooEv,_ZTv0_n12_N9GG12233133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12233133fooEv,_ZThn16_N9GG12233133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12233133barEv,_ZTv0_n12_N9GG12233133barEv)();
+extern void ABISELECT(_ZThn48_N9GG12233133barEv,_ZThn24_N9GG12233133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12233133fooEv,_ZTv0_n20_N9GG12233133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12233133fooEv,_ZThn32_N9GG12233133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12233133fooEv,_ZTv0_n12_N9GG12233133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG12233133fooEv,_ZThn40_N9GG12233133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12233133barEv,_ZTv0_n16_N9GG12233133barEv)();
+extern void ABISELECT(_ZThn80_N9GG12233133barEv,_ZThn40_N9GG12233133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12233133fooEv,_ZTv0_n12_N9GG12233133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG12233133fooEv,_ZThn48_N9GG12233133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12233133barEv,_ZTv0_n16_N9GG12233133barEv)();
+extern void ABISELECT(_ZThn96_N9GG12233133barEv,_ZThn48_N9GG12233133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1223313[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1223313[0]),
+ (VTBL_ENTRY)&_ZN9GG12233133fooEv,
+ (VTBL_ENTRY)&_ZN9GG12233133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1223313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12233133barEv,_ZTv0_n20_N9GG12233133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1223313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12233133fooEv,_ZTv0_n12_N9GG12233133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1223313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12233133barEv,_ZTv0_n12_N9GG12233133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1223313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12233133fooEv,_ZTv0_n20_N9GG12233133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1223313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12233133fooEv,_ZTv0_n12_N9GG12233133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12233133barEv,_ZTv0_n16_N9GG12233133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1223313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12233133fooEv,_ZTv0_n12_N9GG12233133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12233133barEv,_ZTv0_n16_N9GG12233133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1223313[];
+extern void _ZN5EE1223barEv();
+static VTBL_ENTRY _tg__ZTV5EE122__9GG1223313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN5EE1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE122__9GG1223313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv)();
+extern void ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE122__9GG1223313[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv),
+};
+extern void _ZN5FF3313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF331__9GG1223313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&_ZN5FF3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF331__9GG1223313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3313fooEv,_ZThn16_N5FF3313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF331__9GG1223313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG1223313[] = {
+ {&(_ZTV9GG1223313[8]), 8,42},
+ {&(_ZTV9GG1223313[15]), 15,42},
+ {&(_ZTV9GG1223313[19]), 19,42},
+ {&(_ZTV9GG1223313[23]), 23,42},
+ {&(_ZTV9GG1223313[29]), 29,42},
+ {&(_ZTV9GG1223313[34]), 34,42},
+ {&(_ZTV9GG1223313[40]), 40,42},
+ {&(_tg__ZTV5EE122__9GG1223313[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE122__9GG1223313[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE122__9GG1223313[3]), 3,4},
+ {&(_tg__ZTV5FF331__9GG1223313[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF331__9GG1223313[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF331__9GG1223313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1223313[];
+extern VTBL_ENTRY _ZTV9GG1223313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1223313[];
+static VTBL_ENTRY alt_thunk_names348[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3313fooEv,_ZThn16_N5FF3313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG12233133barEv,_ZTv0_n16_N9GG12233133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12233133barEv,_ZThn48_N9GG12233133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12233133barEv,_ZThn40_N9GG12233133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12233133fooEv,_ZTv0_n20_N9GG12233133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12233133fooEv,_ZThn32_N9GG12233133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12233133barEv,_ZTv0_n12_N9GG12233133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12233133barEv,_ZThn24_N9GG12233133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12233133fooEv,_ZTv0_n12_N9GG12233133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12233133fooEv,_ZThn48_N9GG12233133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12233133fooEv,_ZThn40_N9GG12233133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12233133fooEv,_ZThn16_N9GG12233133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12233133barEv,_ZTv0_n20_N9GG12233133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12233133barEv,_ZThn8_N9GG12233133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1223313 = { "GG1223313", // class name
+ bases_GG1223313, 6,
+ &(vtc_GG1223313[0]), // expected_vtbl_contents
+ &(vtt_GG1223313[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1223313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1223313),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1223313),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names348,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1223323 : virtual EE122 , virtual FF332 {
+ int pg;
+ virtual void foo(); // _ZN9GG12233233fooEv
+ virtual void bar(); // _ZN9GG12233233barEv
+ ~GG1223323(); // tgen
+ GG1223323(); // tgen
+};
+//SIG(1 GG1223323) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1223323 ::foo(){vfunc_called(this, "_ZN9GG12233233fooEv");}
+void GG1223323 ::bar(){vfunc_called(this, "_ZN9GG12233233barEv");}
+GG1223323 ::~GG1223323(){ note_dtor("GG1223323", this);} // tgen
+GG1223323 ::GG1223323(){ note_ctor("GG1223323", this);} // tgen
+
+static void Test_GG1223323()
+{
+ extern Class_Descriptor cd_GG1223323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1223323, buf);
+ GG1223323 *dp, &lv = *(dp=new (buf) GG1223323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1223323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1223323)");
+ check_base_class_offset(lv, (AA1*)(EE122*), ABISELECT(32,16), "GG1223323");
+ check_base_class_offset(lv, (BB2*)(EE122*), ABISELECT(48,24), "GG1223323");
+ check_base_class_offset(lv, (EE122*), ABISELECT(16,8), "GG1223323");
+ check_base_class_offset(lv, (AA3*)(FF332*), ABISELECT(80,40), "GG1223323");
+ check_base_class_offset(lv, (BB3*)(FF332*), ABISELECT(96,48), "GG1223323");
+ check_base_class_offset(lv, (FF332*), ABISELECT(64,32), "GG1223323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1223323.pg");
+ test_class_info(&lv, &cd_GG1223323);
+ dp->~GG1223323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1223323(Test_GG1223323, "GG1223323", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1223323C1Ev();
+extern void _ZN9GG1223323D1Ev();
+Name_Map name_map_GG1223323[] = {
+ NSPAIR(_ZN9GG1223323C1Ev),
+ NSPAIR(_ZN9GG1223323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE122;
+extern VTBL_ENTRY _ZTI5EE122[];
+extern VTBL_ENTRY _ZTV5EE122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE122[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF332;
+extern VTBL_ENTRY _ZTI5FF332[];
+extern VTBL_ENTRY _ZTV5FF332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF332[];
+static Base_Class bases_GG1223323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE122, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF332, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1223323[];
+extern void _ZN9GG12233233fooEv();
+extern void _ZN9GG12233233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12233233barEv,_ZTv0_n20_N9GG12233233barEv)();
+extern void ABISELECT(_ZThn16_N9GG12233233barEv,_ZThn8_N9GG12233233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12233233fooEv,_ZTv0_n12_N9GG12233233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12233233fooEv,_ZThn16_N9GG12233233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12233233barEv,_ZTv0_n12_N9GG12233233barEv)();
+extern void ABISELECT(_ZThn48_N9GG12233233barEv,_ZThn24_N9GG12233233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12233233barEv,_ZTv0_n20_N9GG12233233barEv)();
+extern void ABISELECT(_ZThn64_N9GG12233233barEv,_ZThn32_N9GG12233233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12233233fooEv,_ZTv0_n12_N9GG12233233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG12233233fooEv,_ZThn40_N9GG12233233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12233233barEv,_ZTv0_n16_N9GG12233233barEv)();
+extern void ABISELECT(_ZThn80_N9GG12233233barEv,_ZThn40_N9GG12233233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12233233fooEv,_ZTv0_n12_N9GG12233233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG12233233fooEv,_ZThn48_N9GG12233233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12233233barEv,_ZTv0_n16_N9GG12233233barEv)();
+extern void ABISELECT(_ZThn96_N9GG12233233barEv,_ZThn48_N9GG12233233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1223323[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1223323[0]),
+ (VTBL_ENTRY)&_ZN9GG12233233fooEv,
+ (VTBL_ENTRY)&_ZN9GG12233233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1223323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12233233barEv,_ZTv0_n20_N9GG12233233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1223323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12233233fooEv,_ZTv0_n12_N9GG12233233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1223323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12233233barEv,_ZTv0_n12_N9GG12233233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1223323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12233233barEv,_ZTv0_n20_N9GG12233233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1223323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12233233fooEv,_ZTv0_n12_N9GG12233233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12233233barEv,_ZTv0_n16_N9GG12233233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1223323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12233233fooEv,_ZTv0_n12_N9GG12233233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12233233barEv,_ZTv0_n16_N9GG12233233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1223323[];
+extern void _ZN5EE1223barEv();
+static VTBL_ENTRY _tg__ZTV5EE122__9GG1223323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN5EE1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE122__9GG1223323[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv)();
+extern void ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE122__9GG1223323[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv),
+};
+extern void _ZN5FF3323barEv();
+static VTBL_ENTRY _tg__ZTV5FF332__9GG1223323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN5FF3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+extern void ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF332__9GG1223323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+extern void ABISELECT(_ZThn32_N5FF3323barEv,_ZThn16_N5FF3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF332__9GG1223323[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+static VTT_ENTRY vtt_GG1223323[] = {
+ {&(_ZTV9GG1223323[8]), 8,42},
+ {&(_ZTV9GG1223323[15]), 15,42},
+ {&(_ZTV9GG1223323[19]), 19,42},
+ {&(_ZTV9GG1223323[23]), 23,42},
+ {&(_ZTV9GG1223323[29]), 29,42},
+ {&(_ZTV9GG1223323[34]), 34,42},
+ {&(_ZTV9GG1223323[40]), 40,42},
+ {&(_tg__ZTV5EE122__9GG1223323[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE122__9GG1223323[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE122__9GG1223323[3]), 3,4},
+ {&(_tg__ZTV5FF332__9GG1223323[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF332__9GG1223323[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF332__9GG1223323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1223323[];
+extern VTBL_ENTRY _ZTV9GG1223323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1223323[];
+static VTBL_ENTRY alt_thunk_names349[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3323barEv,_ZThn16_N5FF3323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG12233233barEv,_ZTv0_n16_N9GG12233233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12233233barEv,_ZThn48_N9GG12233233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12233233barEv,_ZThn40_N9GG12233233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12233233barEv,_ZTv0_n12_N9GG12233233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12233233barEv,_ZThn24_N9GG12233233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12233233fooEv,_ZTv0_n12_N9GG12233233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12233233fooEv,_ZThn48_N9GG12233233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12233233fooEv,_ZThn40_N9GG12233233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12233233fooEv,_ZThn16_N9GG12233233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12233233barEv,_ZTv0_n20_N9GG12233233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12233233barEv,_ZThn32_N9GG12233233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12233233barEv,_ZThn8_N9GG12233233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1223323 = { "GG1223323", // class name
+ bases_GG1223323, 6,
+ &(vtc_GG1223323[0]), // expected_vtbl_contents
+ &(vtt_GG1223323[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1223323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1223323),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1223323),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names349,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1223333 : virtual EE122 , virtual FF333 {
+ int pg;
+ virtual void foo(); // _ZN9GG12233333fooEv
+ virtual void bar(); // _ZN9GG12233333barEv
+ ~GG1223333(); // tgen
+ GG1223333(); // tgen
+};
+//SIG(1 GG1223333) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1223333 ::foo(){vfunc_called(this, "_ZN9GG12233333fooEv");}
+void GG1223333 ::bar(){vfunc_called(this, "_ZN9GG12233333barEv");}
+GG1223333 ::~GG1223333(){ note_dtor("GG1223333", this);} // tgen
+GG1223333 ::GG1223333(){ note_ctor("GG1223333", this);} // tgen
+
+static void Test_GG1223333()
+{
+ extern Class_Descriptor cd_GG1223333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1223333, buf);
+ GG1223333 *dp, &lv = *(dp=new (buf) GG1223333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1223333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1223333)");
+ check_base_class_offset(lv, (AA1*)(EE122*), ABISELECT(32,16), "GG1223333");
+ check_base_class_offset(lv, (BB2*)(EE122*), ABISELECT(48,24), "GG1223333");
+ check_base_class_offset(lv, (EE122*), ABISELECT(16,8), "GG1223333");
+ check_base_class_offset(lv, (AA3*)(FF333*), ABISELECT(80,40), "GG1223333");
+ check_base_class_offset(lv, (BB3*)(FF333*), ABISELECT(96,48), "GG1223333");
+ check_base_class_offset(lv, (FF333*), ABISELECT(64,32), "GG1223333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1223333.pg");
+ test_class_info(&lv, &cd_GG1223333);
+ dp->~GG1223333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1223333(Test_GG1223333, "GG1223333", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1223333C1Ev();
+extern void _ZN9GG1223333D1Ev();
+Name_Map name_map_GG1223333[] = {
+ NSPAIR(_ZN9GG1223333C1Ev),
+ NSPAIR(_ZN9GG1223333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE122;
+extern VTBL_ENTRY _ZTI5EE122[];
+extern VTBL_ENTRY _ZTV5EE122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE122[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF333;
+extern VTBL_ENTRY _ZTI5FF333[];
+extern VTBL_ENTRY _ZTV5FF333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF333[];
+static Base_Class bases_GG1223333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE122, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF333, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1223333[];
+extern void _ZN9GG12233333fooEv();
+extern void _ZN9GG12233333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12233333barEv,_ZTv0_n20_N9GG12233333barEv)();
+extern void ABISELECT(_ZThn16_N9GG12233333barEv,_ZThn8_N9GG12233333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12233333fooEv,_ZTv0_n12_N9GG12233333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12233333fooEv,_ZThn16_N9GG12233333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12233333barEv,_ZTv0_n12_N9GG12233333barEv)();
+extern void ABISELECT(_ZThn48_N9GG12233333barEv,_ZThn24_N9GG12233333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12233333fooEv,_ZTv0_n20_N9GG12233333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12233333fooEv,_ZThn32_N9GG12233333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12233333barEv,_ZTv0_n24_N9GG12233333barEv)();
+extern void ABISELECT(_ZThn64_N9GG12233333barEv,_ZThn32_N9GG12233333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12233333fooEv,_ZTv0_n12_N9GG12233333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG12233333fooEv,_ZThn40_N9GG12233333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12233333barEv,_ZTv0_n16_N9GG12233333barEv)();
+extern void ABISELECT(_ZThn80_N9GG12233333barEv,_ZThn40_N9GG12233333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12233333fooEv,_ZTv0_n12_N9GG12233333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG12233333fooEv,_ZThn48_N9GG12233333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12233333barEv,_ZTv0_n16_N9GG12233333barEv)();
+extern void ABISELECT(_ZThn96_N9GG12233333barEv,_ZThn48_N9GG12233333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1223333[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1223333[0]),
+ (VTBL_ENTRY)&_ZN9GG12233333fooEv,
+ (VTBL_ENTRY)&_ZN9GG12233333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1223333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12233333barEv,_ZTv0_n20_N9GG12233333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1223333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12233333fooEv,_ZTv0_n12_N9GG12233333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1223333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12233333barEv,_ZTv0_n12_N9GG12233333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1223333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12233333fooEv,_ZTv0_n20_N9GG12233333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12233333barEv,_ZTv0_n24_N9GG12233333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1223333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12233333fooEv,_ZTv0_n12_N9GG12233333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12233333barEv,_ZTv0_n16_N9GG12233333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1223333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12233333fooEv,_ZTv0_n12_N9GG12233333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12233333barEv,_ZTv0_n16_N9GG12233333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1223333[];
+extern void _ZN5EE1223barEv();
+static VTBL_ENTRY _tg__ZTV5EE122__9GG1223333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN5EE1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE122__9GG1223333[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv)();
+extern void ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE122__9GG1223333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv),
+};
+extern void _ZN5FF3333fooEv();
+extern void _ZN5FF3333barEv();
+static VTBL_ENTRY _tg__ZTV5FF333__9GG1223333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&_ZN5FF3333fooEv,
+ (VTBL_ENTRY)&_ZN5FF3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+extern void ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF333__9GG1223333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3333fooEv,_ZThn16_N5FF3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+extern void ABISELECT(_ZThn32_N5FF3333barEv,_ZThn16_N5FF3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF333__9GG1223333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+static VTT_ENTRY vtt_GG1223333[] = {
+ {&(_ZTV9GG1223333[8]), 8,44},
+ {&(_ZTV9GG1223333[15]), 15,44},
+ {&(_ZTV9GG1223333[19]), 19,44},
+ {&(_ZTV9GG1223333[23]), 23,44},
+ {&(_ZTV9GG1223333[30]), 30,44},
+ {&(_ZTV9GG1223333[36]), 36,44},
+ {&(_ZTV9GG1223333[42]), 42,44},
+ {&(_tg__ZTV5EE122__9GG1223333[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE122__9GG1223333[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE122__9GG1223333[3]), 3,4},
+ {&(_tg__ZTV5FF333__9GG1223333[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF333__9GG1223333[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF333__9GG1223333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1223333[];
+extern VTBL_ENTRY _ZTV9GG1223333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1223333[];
+static VTBL_ENTRY alt_thunk_names350[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3333barEv,_ZThn16_N5FF3333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3333fooEv,_ZThn16_N5FF3333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1223barEv,_ZTv0_n12_N5EE1223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1223barEv,_ZThn16_N5EE1223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG12233333barEv,_ZTv0_n16_N9GG12233333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12233333barEv,_ZThn48_N9GG12233333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12233333barEv,_ZThn40_N9GG12233333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG12233333barEv,_ZTv0_n24_N9GG12233333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12233333barEv,_ZThn32_N9GG12233333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12233333fooEv,_ZTv0_n20_N9GG12233333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12233333fooEv,_ZThn32_N9GG12233333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12233333barEv,_ZTv0_n12_N9GG12233333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12233333barEv,_ZThn24_N9GG12233333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12233333fooEv,_ZTv0_n12_N9GG12233333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12233333fooEv,_ZThn48_N9GG12233333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12233333fooEv,_ZThn40_N9GG12233333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12233333fooEv,_ZThn16_N9GG12233333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12233333barEv,_ZTv0_n20_N9GG12233333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12233333barEv,_ZThn8_N9GG12233333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1223333 = { "GG1223333", // class name
+ bases_GG1223333, 6,
+ &(vtc_GG1223333[0]), // expected_vtbl_contents
+ &(vtt_GG1223333[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1223333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1223333),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1223333),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names350,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1231111 : virtual EE123 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG12311113fooEv
+ ~GG1231111(); // tgen
+ GG1231111(); // tgen
+};
+//SIG(1 GG1231111) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v1 Fi} v1 Fi}
+
+
+void GG1231111 ::foo(){vfunc_called(this, "_ZN9GG12311113fooEv");}
+GG1231111 ::~GG1231111(){ note_dtor("GG1231111", this);} // tgen
+GG1231111 ::GG1231111(){ note_ctor("GG1231111", this);} // tgen
+
+static void Test_GG1231111()
+{
+ extern Class_Descriptor cd_GG1231111;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1231111, buf);
+ GG1231111 *dp, &lv = *(dp=new (buf) GG1231111());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1231111)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1231111)");
+ check_base_class_offset(lv, (AA1*)(EE123*), ABISELECT(32,16), "GG1231111");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(32,16), "GG1231111");
+ check_base_class_offset(lv, (BB2*)(EE123*), ABISELECT(48,24), "GG1231111");
+ check_base_class_offset(lv, (EE123*), ABISELECT(16,8), "GG1231111");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(80,40), "GG1231111");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG1231111");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1231111.pg");
+ test_class_info(&lv, &cd_GG1231111);
+ dp->~GG1231111();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1231111(Test_GG1231111, "GG1231111", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1231111C1Ev();
+extern void _ZN9GG1231111D1Ev();
+Name_Map name_map_GG1231111[] = {
+ NSPAIR(_ZN9GG1231111C1Ev),
+ NSPAIR(_ZN9GG1231111D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE123;
+extern VTBL_ENTRY _ZTI5EE123[];
+extern VTBL_ENTRY _ZTV5EE123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE123[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG1231111[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE123, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1231111[];
+extern void _ZN9GG12311113fooEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12311113fooEv,_ZTv0_n20_N9GG12311113fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12311113fooEv,_ZThn8_N9GG12311113fooEv)() __attribute__((weak));
+extern void _ZN5EE1233barEv();
+extern void ABISELECT(_ZTv0_n24_N9GG12311113fooEv,_ZTv0_n12_N9GG12311113fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12311113fooEv,_ZThn16_N9GG12311113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv)();
+extern void ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12311113fooEv,_ZTv0_n20_N9GG12311113fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12311113fooEv,_ZThn32_N9GG12311113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12311113fooEv,_ZTv0_n12_N9GG12311113fooEv)();
+extern void ABISELECT(_ZThn80_N9GG12311113fooEv,_ZThn40_N9GG12311113fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1231111[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1231111[0]),
+ (VTBL_ENTRY)&_ZN9GG12311113fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1231111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12311113fooEv,_ZTv0_n20_N9GG12311113fooEv),
+ (VTBL_ENTRY)&_ZN5EE1233barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1231111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12311113fooEv,_ZTv0_n12_N9GG12311113fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1231111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1231111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12311113fooEv,_ZTv0_n20_N9GG12311113fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1231111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12311113fooEv,_ZTv0_n12_N9GG12311113fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1231111[];
+extern void _ZN5EE1233fooEv();
+extern void _ZN5EE1233barEv();
+static VTBL_ENTRY _tg__ZTV5EE123__9GG1231111[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&_ZN5EE1233fooEv,
+ (VTBL_ENTRY)&_ZN5EE1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE123__9GG1231111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv)();
+extern void ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE123__9GG1231111[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv),
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG1231111[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG1231111[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG1231111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG1231111[] = {
+ {&(_ZTV9GG1231111[7]), 7,34},
+ {&(_ZTV9GG1231111[14]), 14,34},
+ {&(_ZTV9GG1231111[19]), 19,34},
+ {&(_ZTV9GG1231111[23]), 23,34},
+ {&(_ZTV9GG1231111[29]), 29,34},
+ {&(_ZTV9GG1231111[33]), 33,34},
+ {&(_tg__ZTV5EE123__9GG1231111[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE123__9GG1231111[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE123__9GG1231111[3]), 3,4},
+ {&(_tg__ZTV5FF111__9GG1231111[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG1231111[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG1231111[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1231111[];
+extern VTBL_ENTRY _ZTV9GG1231111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1231111[];
+static VTBL_ENTRY alt_thunk_names351[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12311113fooEv,_ZTv0_n12_N9GG12311113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12311113fooEv,_ZThn40_N9GG12311113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12311113fooEv,_ZThn16_N9GG12311113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12311113fooEv,_ZTv0_n20_N9GG12311113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12311113fooEv,_ZThn32_N9GG12311113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12311113fooEv,_ZThn8_N9GG12311113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1231111 = { "GG1231111", // class name
+ bases_GG1231111, 5,
+ &(vtc_GG1231111[0]), // expected_vtbl_contents
+ &(vtt_GG1231111[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1231111),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1231111),34, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1231111),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names351,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1231113 : virtual EE123 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG12311133fooEv
+ virtual void bar(); // _ZN9GG12311133barEv
+ ~GG1231113(); // tgen
+ GG1231113(); // tgen
+};
+//SIG(1 GG1231113) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1231113 ::foo(){vfunc_called(this, "_ZN9GG12311133fooEv");}
+void GG1231113 ::bar(){vfunc_called(this, "_ZN9GG12311133barEv");}
+GG1231113 ::~GG1231113(){ note_dtor("GG1231113", this);} // tgen
+GG1231113 ::GG1231113(){ note_ctor("GG1231113", this);} // tgen
+
+static void Test_GG1231113()
+{
+ extern Class_Descriptor cd_GG1231113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1231113, buf);
+ GG1231113 *dp, &lv = *(dp=new (buf) GG1231113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1231113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1231113)");
+ check_base_class_offset(lv, (AA1*)(EE123*), ABISELECT(32,16), "GG1231113");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(32,16), "GG1231113");
+ check_base_class_offset(lv, (BB2*)(EE123*), ABISELECT(48,24), "GG1231113");
+ check_base_class_offset(lv, (EE123*), ABISELECT(16,8), "GG1231113");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(80,40), "GG1231113");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG1231113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1231113.pg");
+ test_class_info(&lv, &cd_GG1231113);
+ dp->~GG1231113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1231113(Test_GG1231113, "GG1231113", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1231113C1Ev();
+extern void _ZN9GG1231113D1Ev();
+Name_Map name_map_GG1231113[] = {
+ NSPAIR(_ZN9GG1231113C1Ev),
+ NSPAIR(_ZN9GG1231113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE123;
+extern VTBL_ENTRY _ZTI5EE123[];
+extern VTBL_ENTRY _ZTV5EE123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE123[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG1231113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE123, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1231113[];
+extern void _ZN9GG12311133fooEv();
+extern void _ZN9GG12311133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12311133fooEv,_ZTv0_n20_N9GG12311133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12311133fooEv,_ZThn8_N9GG12311133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12311133barEv,_ZTv0_n24_N9GG12311133barEv)();
+extern void ABISELECT(_ZThn16_N9GG12311133barEv,_ZThn8_N9GG12311133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12311133fooEv,_ZTv0_n12_N9GG12311133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12311133fooEv,_ZThn16_N9GG12311133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12311133barEv,_ZTv0_n12_N9GG12311133barEv)();
+extern void ABISELECT(_ZThn48_N9GG12311133barEv,_ZThn24_N9GG12311133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12311133fooEv,_ZTv0_n20_N9GG12311133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12311133fooEv,_ZThn32_N9GG12311133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12311133fooEv,_ZTv0_n12_N9GG12311133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG12311133fooEv,_ZThn40_N9GG12311133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1231113[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1231113[0]),
+ (VTBL_ENTRY)&_ZN9GG12311133fooEv,
+ (VTBL_ENTRY)&_ZN9GG12311133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1231113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12311133fooEv,_ZTv0_n20_N9GG12311133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12311133barEv,_ZTv0_n24_N9GG12311133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1231113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12311133fooEv,_ZTv0_n12_N9GG12311133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1231113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12311133barEv,_ZTv0_n12_N9GG12311133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1231113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12311133fooEv,_ZTv0_n20_N9GG12311133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1231113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12311133fooEv,_ZTv0_n12_N9GG12311133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1231113[];
+extern void _ZN5EE1233fooEv();
+extern void _ZN5EE1233barEv();
+static VTBL_ENTRY _tg__ZTV5EE123__9GG1231113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&_ZN5EE1233fooEv,
+ (VTBL_ENTRY)&_ZN5EE1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE123__9GG1231113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv)();
+extern void ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE123__9GG1231113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv),
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG1231113[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG1231113[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG1231113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG1231113[] = {
+ {&(_ZTV9GG1231113[7]), 7,35},
+ {&(_ZTV9GG1231113[15]), 15,35},
+ {&(_ZTV9GG1231113[20]), 20,35},
+ {&(_ZTV9GG1231113[24]), 24,35},
+ {&(_ZTV9GG1231113[30]), 30,35},
+ {&(_ZTV9GG1231113[34]), 34,35},
+ {&(_tg__ZTV5EE123__9GG1231113[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE123__9GG1231113[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE123__9GG1231113[3]), 3,4},
+ {&(_tg__ZTV5FF111__9GG1231113[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG1231113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG1231113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1231113[];
+extern VTBL_ENTRY _ZTV9GG1231113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1231113[];
+static VTBL_ENTRY alt_thunk_names352[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12311133barEv,_ZTv0_n12_N9GG12311133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12311133barEv,_ZThn24_N9GG12311133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12311133fooEv,_ZTv0_n12_N9GG12311133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12311133fooEv,_ZThn40_N9GG12311133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12311133fooEv,_ZThn16_N9GG12311133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG12311133barEv,_ZTv0_n24_N9GG12311133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12311133barEv,_ZThn8_N9GG12311133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12311133fooEv,_ZTv0_n20_N9GG12311133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12311133fooEv,_ZThn32_N9GG12311133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12311133fooEv,_ZThn8_N9GG12311133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1231113 = { "GG1231113", // class name
+ bases_GG1231113, 5,
+ &(vtc_GG1231113[0]), // expected_vtbl_contents
+ &(vtt_GG1231113[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1231113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1231113),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1231113),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names352,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1231123 : virtual EE123 , virtual FF112 {
+ int pg;
+ virtual void foo(); // _ZN9GG12311233fooEv
+ virtual void bar(); // _ZN9GG12311233barEv
+ ~GG1231123(); // tgen
+ GG1231123(); // tgen
+};
+//SIG(1 GG1231123) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1231123 ::foo(){vfunc_called(this, "_ZN9GG12311233fooEv");}
+void GG1231123 ::bar(){vfunc_called(this, "_ZN9GG12311233barEv");}
+GG1231123 ::~GG1231123(){ note_dtor("GG1231123", this);} // tgen
+GG1231123 ::GG1231123(){ note_ctor("GG1231123", this);} // tgen
+
+static void Test_GG1231123()
+{
+ extern Class_Descriptor cd_GG1231123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1231123, buf);
+ GG1231123 *dp, &lv = *(dp=new (buf) GG1231123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1231123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1231123)");
+ check_base_class_offset(lv, (AA1*)(EE123*), ABISELECT(32,16), "GG1231123");
+ check_base_class_offset(lv, (AA1*)(FF112*), ABISELECT(32,16), "GG1231123");
+ check_base_class_offset(lv, (BB2*)(EE123*), ABISELECT(48,24), "GG1231123");
+ check_base_class_offset(lv, (EE123*), ABISELECT(16,8), "GG1231123");
+ check_base_class_offset(lv, (BB1*)(FF112*), ABISELECT(80,40), "GG1231123");
+ check_base_class_offset(lv, (FF112*), ABISELECT(64,32), "GG1231123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1231123.pg");
+ test_class_info(&lv, &cd_GG1231123);
+ dp->~GG1231123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1231123(Test_GG1231123, "GG1231123", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1231123C1Ev();
+extern void _ZN9GG1231123D1Ev();
+Name_Map name_map_GG1231123[] = {
+ NSPAIR(_ZN9GG1231123C1Ev),
+ NSPAIR(_ZN9GG1231123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE123;
+extern VTBL_ENTRY _ZTI5EE123[];
+extern VTBL_ENTRY _ZTV5EE123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE123[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF112;
+extern VTBL_ENTRY _ZTI5FF112[];
+extern VTBL_ENTRY _ZTV5FF112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF112[];
+static Base_Class bases_GG1231123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE123, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF112, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1231123[];
+extern void _ZN9GG12311233fooEv();
+extern void _ZN9GG12311233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12311233fooEv,_ZTv0_n20_N9GG12311233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12311233fooEv,_ZThn8_N9GG12311233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12311233barEv,_ZTv0_n24_N9GG12311233barEv)();
+extern void ABISELECT(_ZThn16_N9GG12311233barEv,_ZThn8_N9GG12311233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12311233fooEv,_ZTv0_n12_N9GG12311233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12311233fooEv,_ZThn16_N9GG12311233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12311233barEv,_ZTv0_n12_N9GG12311233barEv)();
+extern void ABISELECT(_ZThn48_N9GG12311233barEv,_ZThn24_N9GG12311233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12311233barEv,_ZTv0_n20_N9GG12311233barEv)();
+extern void ABISELECT(_ZThn64_N9GG12311233barEv,_ZThn32_N9GG12311233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12311233fooEv,_ZTv0_n12_N9GG12311233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG12311233fooEv,_ZThn40_N9GG12311233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1231123[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1231123[0]),
+ (VTBL_ENTRY)&_ZN9GG12311233fooEv,
+ (VTBL_ENTRY)&_ZN9GG12311233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1231123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12311233fooEv,_ZTv0_n20_N9GG12311233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12311233barEv,_ZTv0_n24_N9GG12311233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1231123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12311233fooEv,_ZTv0_n12_N9GG12311233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1231123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12311233barEv,_ZTv0_n12_N9GG12311233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1231123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12311233barEv,_ZTv0_n20_N9GG12311233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1231123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12311233fooEv,_ZTv0_n12_N9GG12311233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1231123[];
+extern void _ZN5EE1233fooEv();
+extern void _ZN5EE1233barEv();
+static VTBL_ENTRY _tg__ZTV5EE123__9GG1231123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&_ZN5EE1233fooEv,
+ (VTBL_ENTRY)&_ZN5EE1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE123__9GG1231123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv)();
+extern void ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE123__9GG1231123[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv),
+};
+extern void _ZN5FF1123barEv();
+static VTBL_ENTRY _tg__ZTV5FF112__9GG1231123[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN5FF1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF112__9GG1231123[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF112__9GG1231123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG1231123[] = {
+ {&(_ZTV9GG1231123[7]), 7,35},
+ {&(_ZTV9GG1231123[15]), 15,35},
+ {&(_ZTV9GG1231123[20]), 20,35},
+ {&(_ZTV9GG1231123[24]), 24,35},
+ {&(_ZTV9GG1231123[30]), 30,35},
+ {&(_ZTV9GG1231123[34]), 34,35},
+ {&(_tg__ZTV5EE123__9GG1231123[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE123__9GG1231123[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE123__9GG1231123[3]), 3,4},
+ {&(_tg__ZTV5FF112__9GG1231123[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF112__9GG1231123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF112__9GG1231123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1231123[];
+extern VTBL_ENTRY _ZTV9GG1231123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1231123[];
+static VTBL_ENTRY alt_thunk_names353[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12311233barEv,_ZTv0_n20_N9GG12311233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12311233barEv,_ZThn32_N9GG12311233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12311233barEv,_ZTv0_n12_N9GG12311233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12311233barEv,_ZThn24_N9GG12311233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12311233fooEv,_ZTv0_n12_N9GG12311233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12311233fooEv,_ZThn40_N9GG12311233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12311233fooEv,_ZThn16_N9GG12311233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG12311233barEv,_ZTv0_n24_N9GG12311233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12311233barEv,_ZThn8_N9GG12311233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12311233fooEv,_ZTv0_n20_N9GG12311233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12311233fooEv,_ZThn8_N9GG12311233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1231123 = { "GG1231123", // class name
+ bases_GG1231123, 5,
+ &(vtc_GG1231123[0]), // expected_vtbl_contents
+ &(vtt_GG1231123[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1231123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1231123),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1231123),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names353,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1231133 : virtual EE123 , virtual FF113 {
+ int pg;
+ virtual void foo(); // _ZN9GG12311333fooEv
+ virtual void bar(); // _ZN9GG12311333barEv
+ ~GG1231133(); // tgen
+ GG1231133(); // tgen
+};
+//SIG(1 GG1231133) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1231133 ::foo(){vfunc_called(this, "_ZN9GG12311333fooEv");}
+void GG1231133 ::bar(){vfunc_called(this, "_ZN9GG12311333barEv");}
+GG1231133 ::~GG1231133(){ note_dtor("GG1231133", this);} // tgen
+GG1231133 ::GG1231133(){ note_ctor("GG1231133", this);} // tgen
+
+static void Test_GG1231133()
+{
+ extern Class_Descriptor cd_GG1231133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1231133, buf);
+ GG1231133 *dp, &lv = *(dp=new (buf) GG1231133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1231133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1231133)");
+ check_base_class_offset(lv, (AA1*)(EE123*), ABISELECT(32,16), "GG1231133");
+ check_base_class_offset(lv, (AA1*)(FF113*), ABISELECT(32,16), "GG1231133");
+ check_base_class_offset(lv, (BB2*)(EE123*), ABISELECT(48,24), "GG1231133");
+ check_base_class_offset(lv, (EE123*), ABISELECT(16,8), "GG1231133");
+ check_base_class_offset(lv, (BB1*)(FF113*), ABISELECT(80,40), "GG1231133");
+ check_base_class_offset(lv, (FF113*), ABISELECT(64,32), "GG1231133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1231133.pg");
+ test_class_info(&lv, &cd_GG1231133);
+ dp->~GG1231133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1231133(Test_GG1231133, "GG1231133", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1231133C1Ev();
+extern void _ZN9GG1231133D1Ev();
+Name_Map name_map_GG1231133[] = {
+ NSPAIR(_ZN9GG1231133C1Ev),
+ NSPAIR(_ZN9GG1231133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE123;
+extern VTBL_ENTRY _ZTI5EE123[];
+extern VTBL_ENTRY _ZTV5EE123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE123[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF113;
+extern VTBL_ENTRY _ZTI5FF113[];
+extern VTBL_ENTRY _ZTV5FF113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF113[];
+static Base_Class bases_GG1231133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE123, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF113, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1231133[];
+extern void _ZN9GG12311333fooEv();
+extern void _ZN9GG12311333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12311333fooEv,_ZTv0_n20_N9GG12311333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12311333fooEv,_ZThn8_N9GG12311333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12311333barEv,_ZTv0_n24_N9GG12311333barEv)();
+extern void ABISELECT(_ZThn16_N9GG12311333barEv,_ZThn8_N9GG12311333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12311333fooEv,_ZTv0_n12_N9GG12311333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12311333fooEv,_ZThn16_N9GG12311333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12311333barEv,_ZTv0_n12_N9GG12311333barEv)();
+extern void ABISELECT(_ZThn48_N9GG12311333barEv,_ZThn24_N9GG12311333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12311333fooEv,_ZTv0_n20_N9GG12311333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12311333fooEv,_ZThn32_N9GG12311333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12311333barEv,_ZTv0_n24_N9GG12311333barEv)();
+extern void ABISELECT(_ZThn64_N9GG12311333barEv,_ZThn32_N9GG12311333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12311333fooEv,_ZTv0_n12_N9GG12311333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG12311333fooEv,_ZThn40_N9GG12311333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1231133[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1231133[0]),
+ (VTBL_ENTRY)&_ZN9GG12311333fooEv,
+ (VTBL_ENTRY)&_ZN9GG12311333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1231133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12311333fooEv,_ZTv0_n20_N9GG12311333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12311333barEv,_ZTv0_n24_N9GG12311333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1231133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12311333fooEv,_ZTv0_n12_N9GG12311333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1231133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12311333barEv,_ZTv0_n12_N9GG12311333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1231133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12311333fooEv,_ZTv0_n20_N9GG12311333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12311333barEv,_ZTv0_n24_N9GG12311333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1231133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12311333fooEv,_ZTv0_n12_N9GG12311333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1231133[];
+extern void _ZN5EE1233fooEv();
+extern void _ZN5EE1233barEv();
+static VTBL_ENTRY _tg__ZTV5EE123__9GG1231133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&_ZN5EE1233fooEv,
+ (VTBL_ENTRY)&_ZN5EE1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE123__9GG1231133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv)();
+extern void ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE123__9GG1231133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv),
+};
+extern void _ZN5FF1133fooEv();
+extern void _ZN5FF1133barEv();
+static VTBL_ENTRY _tg__ZTV5FF113__9GG1231133[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&_ZN5FF1133fooEv,
+ (VTBL_ENTRY)&_ZN5FF1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF113__9GG1231133[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF113__9GG1231133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+static VTT_ENTRY vtt_GG1231133[] = {
+ {&(_ZTV9GG1231133[7]), 7,37},
+ {&(_ZTV9GG1231133[15]), 15,37},
+ {&(_ZTV9GG1231133[20]), 20,37},
+ {&(_ZTV9GG1231133[24]), 24,37},
+ {&(_ZTV9GG1231133[31]), 31,37},
+ {&(_ZTV9GG1231133[36]), 36,37},
+ {&(_tg__ZTV5EE123__9GG1231133[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE123__9GG1231133[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE123__9GG1231133[3]), 3,4},
+ {&(_tg__ZTV5FF113__9GG1231133[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF113__9GG1231133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF113__9GG1231133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1231133[];
+extern VTBL_ENTRY _ZTV9GG1231133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1231133[];
+static VTBL_ENTRY alt_thunk_names354[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12311333barEv,_ZTv0_n12_N9GG12311333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12311333barEv,_ZThn24_N9GG12311333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12311333fooEv,_ZTv0_n12_N9GG12311333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12311333fooEv,_ZThn40_N9GG12311333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12311333fooEv,_ZThn16_N9GG12311333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG12311333barEv,_ZTv0_n24_N9GG12311333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12311333barEv,_ZThn32_N9GG12311333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12311333barEv,_ZThn8_N9GG12311333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12311333fooEv,_ZTv0_n20_N9GG12311333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12311333fooEv,_ZThn32_N9GG12311333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12311333fooEv,_ZThn8_N9GG12311333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1231133 = { "GG1231133", // class name
+ bases_GG1231133, 5,
+ &(vtc_GG1231133[0]), // expected_vtbl_contents
+ &(vtt_GG1231133[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1231133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1231133),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1231133),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names354,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1231213 : virtual EE123 , virtual FF121 {
+ int pg;
+ virtual void foo(); // _ZN9GG12312133fooEv
+ virtual void bar(); // _ZN9GG12312133barEv
+ ~GG1231213(); // tgen
+ GG1231213(); // tgen
+};
+//SIG(1 GG1231213) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG1231213 ::foo(){vfunc_called(this, "_ZN9GG12312133fooEv");}
+void GG1231213 ::bar(){vfunc_called(this, "_ZN9GG12312133barEv");}
+GG1231213 ::~GG1231213(){ note_dtor("GG1231213", this);} // tgen
+GG1231213 ::GG1231213(){ note_ctor("GG1231213", this);} // tgen
+
+static void Test_GG1231213()
+{
+ extern Class_Descriptor cd_GG1231213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG1231213, buf);
+ GG1231213 *dp, &lv = *(dp=new (buf) GG1231213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG1231213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1231213)");
+ check_base_class_offset(lv, (AA1*)(EE123*), ABISELECT(32,16), "GG1231213");
+ check_base_class_offset(lv, (AA1*)(FF121*), ABISELECT(32,16), "GG1231213");
+ check_base_class_offset(lv, (BB2*)(EE123*), ABISELECT(48,24), "GG1231213");
+ check_base_class_offset(lv, (BB2*)(FF121*), ABISELECT(48,24), "GG1231213");
+ check_base_class_offset(lv, (EE123*), ABISELECT(16,8), "GG1231213");
+ check_base_class_offset(lv, (FF121*), ABISELECT(64,32), "GG1231213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1231213.pg");
+ test_class_info(&lv, &cd_GG1231213);
+ dp->~GG1231213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1231213(Test_GG1231213, "GG1231213", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG1231213C1Ev();
+extern void _ZN9GG1231213D1Ev();
+Name_Map name_map_GG1231213[] = {
+ NSPAIR(_ZN9GG1231213C1Ev),
+ NSPAIR(_ZN9GG1231213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE123;
+extern VTBL_ENTRY _ZTI5EE123[];
+extern VTBL_ENTRY _ZTV5EE123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE123[];
+extern Class_Descriptor cd_FF121;
+extern VTBL_ENTRY _ZTI5FF121[];
+extern VTBL_ENTRY _ZTV5FF121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF121[];
+static Base_Class bases_GG1231213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE123, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF121, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1231213[];
+extern void _ZN9GG12312133fooEv();
+extern void _ZN9GG12312133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12312133fooEv,_ZTv0_n20_N9GG12312133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12312133fooEv,_ZThn8_N9GG12312133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12312133barEv,_ZTv0_n24_N9GG12312133barEv)();
+extern void ABISELECT(_ZThn16_N9GG12312133barEv,_ZThn8_N9GG12312133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12312133fooEv,_ZTv0_n12_N9GG12312133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12312133fooEv,_ZThn16_N9GG12312133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12312133barEv,_ZTv0_n12_N9GG12312133barEv)();
+extern void ABISELECT(_ZThn48_N9GG12312133barEv,_ZThn24_N9GG12312133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12312133fooEv,_ZTv0_n20_N9GG12312133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12312133fooEv,_ZThn32_N9GG12312133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1231213[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1231213[0]),
+ (VTBL_ENTRY)&_ZN9GG12312133fooEv,
+ (VTBL_ENTRY)&_ZN9GG12312133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1231213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12312133fooEv,_ZTv0_n20_N9GG12312133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12312133barEv,_ZTv0_n24_N9GG12312133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1231213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12312133fooEv,_ZTv0_n12_N9GG12312133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1231213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12312133barEv,_ZTv0_n12_N9GG12312133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1231213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12312133fooEv,_ZTv0_n20_N9GG12312133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1231213[];
+extern void _ZN5EE1233fooEv();
+extern void _ZN5EE1233barEv();
+static VTBL_ENTRY _tg__ZTV5EE123__9GG1231213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&_ZN5EE1233fooEv,
+ (VTBL_ENTRY)&_ZN5EE1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE123__9GG1231213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv)();
+extern void ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE123__9GG1231213[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv),
+};
+extern void _ZN5FF1213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF121__9GG1231213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN5FF1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF121__9GG1231213[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF121__9GG1231213[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG1231213[] = {
+ {&(_ZTV9GG1231213[6]), 6,30},
+ {&(_ZTV9GG1231213[14]), 14,30},
+ {&(_ZTV9GG1231213[19]), 19,30},
+ {&(_ZTV9GG1231213[23]), 23,30},
+ {&(_ZTV9GG1231213[29]), 29,30},
+ {&(_tg__ZTV5EE123__9GG1231213[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE123__9GG1231213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE123__9GG1231213[3]), 3,4},
+ {&(_tg__ZTV5FF121__9GG1231213[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF121__9GG1231213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF121__9GG1231213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1231213[];
+extern VTBL_ENTRY _ZTV9GG1231213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1231213[];
+static VTBL_ENTRY alt_thunk_names355[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12312133barEv,_ZTv0_n12_N9GG12312133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12312133barEv,_ZThn24_N9GG12312133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12312133fooEv,_ZTv0_n12_N9GG12312133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12312133fooEv,_ZThn16_N9GG12312133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG12312133barEv,_ZTv0_n24_N9GG12312133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12312133barEv,_ZThn8_N9GG12312133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12312133fooEv,_ZTv0_n20_N9GG12312133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12312133fooEv,_ZThn32_N9GG12312133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12312133fooEv,_ZThn8_N9GG12312133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1231213 = { "GG1231213", // class name
+ bases_GG1231213, 4,
+ &(vtc_GG1231213[0]), // expected_vtbl_contents
+ &(vtt_GG1231213[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG1231213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1231213),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1231213),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names355,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1231223 : virtual EE123 , virtual FF122 {
+ int pg;
+ virtual void foo(); // _ZN9GG12312233fooEv
+ virtual void bar(); // _ZN9GG12312233barEv
+ ~GG1231223(); // tgen
+ GG1231223(); // tgen
+};
+//SIG(1 GG1231223) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG1231223 ::foo(){vfunc_called(this, "_ZN9GG12312233fooEv");}
+void GG1231223 ::bar(){vfunc_called(this, "_ZN9GG12312233barEv");}
+GG1231223 ::~GG1231223(){ note_dtor("GG1231223", this);} // tgen
+GG1231223 ::GG1231223(){ note_ctor("GG1231223", this);} // tgen
+
+static void Test_GG1231223()
+{
+ extern Class_Descriptor cd_GG1231223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG1231223, buf);
+ GG1231223 *dp, &lv = *(dp=new (buf) GG1231223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG1231223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1231223)");
+ check_base_class_offset(lv, (AA1*)(EE123*), ABISELECT(32,16), "GG1231223");
+ check_base_class_offset(lv, (AA1*)(FF122*), ABISELECT(32,16), "GG1231223");
+ check_base_class_offset(lv, (BB2*)(EE123*), ABISELECT(48,24), "GG1231223");
+ check_base_class_offset(lv, (BB2*)(FF122*), ABISELECT(48,24), "GG1231223");
+ check_base_class_offset(lv, (EE123*), ABISELECT(16,8), "GG1231223");
+ check_base_class_offset(lv, (FF122*), ABISELECT(64,32), "GG1231223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1231223.pg");
+ test_class_info(&lv, &cd_GG1231223);
+ dp->~GG1231223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1231223(Test_GG1231223, "GG1231223", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG1231223C1Ev();
+extern void _ZN9GG1231223D1Ev();
+Name_Map name_map_GG1231223[] = {
+ NSPAIR(_ZN9GG1231223C1Ev),
+ NSPAIR(_ZN9GG1231223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE123;
+extern VTBL_ENTRY _ZTI5EE123[];
+extern VTBL_ENTRY _ZTV5EE123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE123[];
+extern Class_Descriptor cd_FF122;
+extern VTBL_ENTRY _ZTI5FF122[];
+extern VTBL_ENTRY _ZTV5FF122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF122[];
+static Base_Class bases_GG1231223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE123, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF122, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1231223[];
+extern void _ZN9GG12312233fooEv();
+extern void _ZN9GG12312233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12312233fooEv,_ZTv0_n20_N9GG12312233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12312233fooEv,_ZThn8_N9GG12312233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12312233barEv,_ZTv0_n24_N9GG12312233barEv)();
+extern void ABISELECT(_ZThn16_N9GG12312233barEv,_ZThn8_N9GG12312233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12312233fooEv,_ZTv0_n12_N9GG12312233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12312233fooEv,_ZThn16_N9GG12312233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12312233barEv,_ZTv0_n12_N9GG12312233barEv)();
+extern void ABISELECT(_ZThn48_N9GG12312233barEv,_ZThn24_N9GG12312233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12312233barEv,_ZTv0_n20_N9GG12312233barEv)();
+extern void ABISELECT(_ZThn64_N9GG12312233barEv,_ZThn32_N9GG12312233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1231223[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1231223[0]),
+ (VTBL_ENTRY)&_ZN9GG12312233fooEv,
+ (VTBL_ENTRY)&_ZN9GG12312233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1231223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12312233fooEv,_ZTv0_n20_N9GG12312233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12312233barEv,_ZTv0_n24_N9GG12312233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1231223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12312233fooEv,_ZTv0_n12_N9GG12312233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1231223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12312233barEv,_ZTv0_n12_N9GG12312233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1231223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12312233barEv,_ZTv0_n20_N9GG12312233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1231223[];
+extern void _ZN5EE1233fooEv();
+extern void _ZN5EE1233barEv();
+static VTBL_ENTRY _tg__ZTV5EE123__9GG1231223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&_ZN5EE1233fooEv,
+ (VTBL_ENTRY)&_ZN5EE1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE123__9GG1231223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv)();
+extern void ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE123__9GG1231223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv),
+};
+extern void _ZN5FF1223barEv();
+static VTBL_ENTRY _tg__ZTV5FF122__9GG1231223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN5FF1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF122__9GG1231223[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF122__9GG1231223[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv),
+};
+static VTT_ENTRY vtt_GG1231223[] = {
+ {&(_ZTV9GG1231223[6]), 6,30},
+ {&(_ZTV9GG1231223[14]), 14,30},
+ {&(_ZTV9GG1231223[19]), 19,30},
+ {&(_ZTV9GG1231223[23]), 23,30},
+ {&(_ZTV9GG1231223[29]), 29,30},
+ {&(_tg__ZTV5EE123__9GG1231223[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE123__9GG1231223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE123__9GG1231223[3]), 3,4},
+ {&(_tg__ZTV5FF122__9GG1231223[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF122__9GG1231223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF122__9GG1231223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1231223[];
+extern VTBL_ENTRY _ZTV9GG1231223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1231223[];
+static VTBL_ENTRY alt_thunk_names356[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12312233barEv,_ZTv0_n20_N9GG12312233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12312233barEv,_ZThn32_N9GG12312233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12312233barEv,_ZTv0_n12_N9GG12312233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12312233barEv,_ZThn24_N9GG12312233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12312233fooEv,_ZTv0_n12_N9GG12312233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12312233fooEv,_ZThn16_N9GG12312233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG12312233barEv,_ZTv0_n24_N9GG12312233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12312233barEv,_ZThn8_N9GG12312233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12312233fooEv,_ZTv0_n20_N9GG12312233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12312233fooEv,_ZThn8_N9GG12312233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1231223 = { "GG1231223", // class name
+ bases_GG1231223, 4,
+ &(vtc_GG1231223[0]), // expected_vtbl_contents
+ &(vtt_GG1231223[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG1231223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1231223),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1231223),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names356,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1231233 : virtual EE123 , virtual FF123 {
+ int pg;
+ virtual void foo(); // _ZN9GG12312333fooEv
+ virtual void bar(); // _ZN9GG12312333barEv
+ ~GG1231233(); // tgen
+ GG1231233(); // tgen
+};
+//SIG(1 GG1231233) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1231233 ::foo(){vfunc_called(this, "_ZN9GG12312333fooEv");}
+void GG1231233 ::bar(){vfunc_called(this, "_ZN9GG12312333barEv");}
+GG1231233 ::~GG1231233(){ note_dtor("GG1231233", this);} // tgen
+GG1231233 ::GG1231233(){ note_ctor("GG1231233", this);} // tgen
+
+static void Test_GG1231233()
+{
+ extern Class_Descriptor cd_GG1231233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG1231233, buf);
+ GG1231233 *dp, &lv = *(dp=new (buf) GG1231233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG1231233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1231233)");
+ check_base_class_offset(lv, (AA1*)(EE123*), ABISELECT(32,16), "GG1231233");
+ check_base_class_offset(lv, (AA1*)(FF123*), ABISELECT(32,16), "GG1231233");
+ check_base_class_offset(lv, (BB2*)(EE123*), ABISELECT(48,24), "GG1231233");
+ check_base_class_offset(lv, (BB2*)(FF123*), ABISELECT(48,24), "GG1231233");
+ check_base_class_offset(lv, (EE123*), ABISELECT(16,8), "GG1231233");
+ check_base_class_offset(lv, (FF123*), ABISELECT(64,32), "GG1231233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1231233.pg");
+ test_class_info(&lv, &cd_GG1231233);
+ dp->~GG1231233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1231233(Test_GG1231233, "GG1231233", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG1231233C1Ev();
+extern void _ZN9GG1231233D1Ev();
+Name_Map name_map_GG1231233[] = {
+ NSPAIR(_ZN9GG1231233C1Ev),
+ NSPAIR(_ZN9GG1231233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE123;
+extern VTBL_ENTRY _ZTI5EE123[];
+extern VTBL_ENTRY _ZTV5EE123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE123[];
+extern Class_Descriptor cd_FF123;
+extern VTBL_ENTRY _ZTI5FF123[];
+extern VTBL_ENTRY _ZTV5FF123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF123[];
+static Base_Class bases_GG1231233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE123, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF123, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1231233[];
+extern void _ZN9GG12312333fooEv();
+extern void _ZN9GG12312333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12312333fooEv,_ZTv0_n20_N9GG12312333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12312333fooEv,_ZThn8_N9GG12312333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12312333barEv,_ZTv0_n24_N9GG12312333barEv)();
+extern void ABISELECT(_ZThn16_N9GG12312333barEv,_ZThn8_N9GG12312333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12312333fooEv,_ZTv0_n12_N9GG12312333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12312333fooEv,_ZThn16_N9GG12312333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12312333barEv,_ZTv0_n12_N9GG12312333barEv)();
+extern void ABISELECT(_ZThn48_N9GG12312333barEv,_ZThn24_N9GG12312333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12312333fooEv,_ZTv0_n20_N9GG12312333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12312333fooEv,_ZThn32_N9GG12312333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12312333barEv,_ZTv0_n24_N9GG12312333barEv)();
+extern void ABISELECT(_ZThn64_N9GG12312333barEv,_ZThn32_N9GG12312333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1231233[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1231233[0]),
+ (VTBL_ENTRY)&_ZN9GG12312333fooEv,
+ (VTBL_ENTRY)&_ZN9GG12312333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1231233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12312333fooEv,_ZTv0_n20_N9GG12312333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12312333barEv,_ZTv0_n24_N9GG12312333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1231233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12312333fooEv,_ZTv0_n12_N9GG12312333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1231233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12312333barEv,_ZTv0_n12_N9GG12312333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1231233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12312333fooEv,_ZTv0_n20_N9GG12312333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12312333barEv,_ZTv0_n24_N9GG12312333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1231233[];
+extern void _ZN5EE1233fooEv();
+extern void _ZN5EE1233barEv();
+static VTBL_ENTRY _tg__ZTV5EE123__9GG1231233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&_ZN5EE1233fooEv,
+ (VTBL_ENTRY)&_ZN5EE1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE123__9GG1231233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv)();
+extern void ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE123__9GG1231233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv),
+};
+extern void _ZN5FF1233fooEv();
+extern void _ZN5FF1233barEv();
+static VTBL_ENTRY _tg__ZTV5FF123__9GG1231233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&_ZN5FF1233fooEv,
+ (VTBL_ENTRY)&_ZN5FF1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF123__9GG1231233[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF123__9GG1231233[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv),
+};
+static VTT_ENTRY vtt_GG1231233[] = {
+ {&(_ZTV9GG1231233[6]), 6,32},
+ {&(_ZTV9GG1231233[14]), 14,32},
+ {&(_ZTV9GG1231233[19]), 19,32},
+ {&(_ZTV9GG1231233[23]), 23,32},
+ {&(_ZTV9GG1231233[30]), 30,32},
+ {&(_tg__ZTV5EE123__9GG1231233[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE123__9GG1231233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE123__9GG1231233[3]), 3,4},
+ {&(_tg__ZTV5FF123__9GG1231233[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF123__9GG1231233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF123__9GG1231233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1231233[];
+extern VTBL_ENTRY _ZTV9GG1231233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1231233[];
+static VTBL_ENTRY alt_thunk_names357[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12312333barEv,_ZTv0_n12_N9GG12312333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12312333barEv,_ZThn24_N9GG12312333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12312333fooEv,_ZTv0_n12_N9GG12312333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12312333fooEv,_ZThn16_N9GG12312333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG12312333barEv,_ZTv0_n24_N9GG12312333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12312333barEv,_ZThn32_N9GG12312333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12312333barEv,_ZThn8_N9GG12312333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12312333fooEv,_ZTv0_n20_N9GG12312333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12312333fooEv,_ZThn32_N9GG12312333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12312333fooEv,_ZThn8_N9GG12312333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1231233 = { "GG1231233", // class name
+ bases_GG1231233, 4,
+ &(vtc_GG1231233[0]), // expected_vtbl_contents
+ &(vtt_GG1231233[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG1231233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1231233),32, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1231233),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names357,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1231313 : virtual EE123 , virtual FF131 {
+ int pg;
+ virtual void foo(); // _ZN9GG12313133fooEv
+ virtual void bar(); // _ZN9GG12313133barEv
+ ~GG1231313(); // tgen
+ GG1231313(); // tgen
+};
+//SIG(1 GG1231313) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1231313 ::foo(){vfunc_called(this, "_ZN9GG12313133fooEv");}
+void GG1231313 ::bar(){vfunc_called(this, "_ZN9GG12313133barEv");}
+GG1231313 ::~GG1231313(){ note_dtor("GG1231313", this);} // tgen
+GG1231313 ::GG1231313(){ note_ctor("GG1231313", this);} // tgen
+
+static void Test_GG1231313()
+{
+ extern Class_Descriptor cd_GG1231313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1231313, buf);
+ GG1231313 *dp, &lv = *(dp=new (buf) GG1231313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1231313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1231313)");
+ check_base_class_offset(lv, (AA1*)(EE123*), ABISELECT(32,16), "GG1231313");
+ check_base_class_offset(lv, (AA1*)(FF131*), ABISELECT(32,16), "GG1231313");
+ check_base_class_offset(lv, (BB2*)(EE123*), ABISELECT(48,24), "GG1231313");
+ check_base_class_offset(lv, (EE123*), ABISELECT(16,8), "GG1231313");
+ check_base_class_offset(lv, (BB3*)(FF131*), ABISELECT(80,40), "GG1231313");
+ check_base_class_offset(lv, (FF131*), ABISELECT(64,32), "GG1231313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1231313.pg");
+ test_class_info(&lv, &cd_GG1231313);
+ dp->~GG1231313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1231313(Test_GG1231313, "GG1231313", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1231313C1Ev();
+extern void _ZN9GG1231313D1Ev();
+Name_Map name_map_GG1231313[] = {
+ NSPAIR(_ZN9GG1231313C1Ev),
+ NSPAIR(_ZN9GG1231313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE123;
+extern VTBL_ENTRY _ZTI5EE123[];
+extern VTBL_ENTRY _ZTV5EE123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE123[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF131;
+extern VTBL_ENTRY _ZTI5FF131[];
+extern VTBL_ENTRY _ZTV5FF131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF131[];
+static Base_Class bases_GG1231313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE123, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF131, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1231313[];
+extern void _ZN9GG12313133fooEv();
+extern void _ZN9GG12313133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12313133fooEv,_ZTv0_n20_N9GG12313133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12313133fooEv,_ZThn8_N9GG12313133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12313133barEv,_ZTv0_n24_N9GG12313133barEv)();
+extern void ABISELECT(_ZThn16_N9GG12313133barEv,_ZThn8_N9GG12313133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12313133fooEv,_ZTv0_n12_N9GG12313133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12313133fooEv,_ZThn16_N9GG12313133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12313133barEv,_ZTv0_n12_N9GG12313133barEv)();
+extern void ABISELECT(_ZThn48_N9GG12313133barEv,_ZThn24_N9GG12313133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12313133fooEv,_ZTv0_n20_N9GG12313133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12313133fooEv,_ZThn32_N9GG12313133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12313133fooEv,_ZTv0_n12_N9GG12313133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG12313133fooEv,_ZThn40_N9GG12313133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12313133barEv,_ZTv0_n16_N9GG12313133barEv)();
+extern void ABISELECT(_ZThn80_N9GG12313133barEv,_ZThn40_N9GG12313133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1231313[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1231313[0]),
+ (VTBL_ENTRY)&_ZN9GG12313133fooEv,
+ (VTBL_ENTRY)&_ZN9GG12313133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1231313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12313133fooEv,_ZTv0_n20_N9GG12313133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12313133barEv,_ZTv0_n24_N9GG12313133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1231313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12313133fooEv,_ZTv0_n12_N9GG12313133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1231313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12313133barEv,_ZTv0_n12_N9GG12313133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1231313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12313133fooEv,_ZTv0_n20_N9GG12313133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1231313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12313133fooEv,_ZTv0_n12_N9GG12313133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12313133barEv,_ZTv0_n16_N9GG12313133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1231313[];
+extern void _ZN5EE1233fooEv();
+extern void _ZN5EE1233barEv();
+static VTBL_ENTRY _tg__ZTV5EE123__9GG1231313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&_ZN5EE1233fooEv,
+ (VTBL_ENTRY)&_ZN5EE1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE123__9GG1231313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv)();
+extern void ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE123__9GG1231313[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv),
+};
+extern void _ZN5FF1313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF131__9GG1231313[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&_ZN5FF1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF131__9GG1231313[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF131__9GG1231313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG1231313[] = {
+ {&(_ZTV9GG1231313[7]), 7,37},
+ {&(_ZTV9GG1231313[15]), 15,37},
+ {&(_ZTV9GG1231313[20]), 20,37},
+ {&(_ZTV9GG1231313[24]), 24,37},
+ {&(_ZTV9GG1231313[30]), 30,37},
+ {&(_ZTV9GG1231313[35]), 35,37},
+ {&(_tg__ZTV5EE123__9GG1231313[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE123__9GG1231313[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE123__9GG1231313[3]), 3,4},
+ {&(_tg__ZTV5FF131__9GG1231313[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF131__9GG1231313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF131__9GG1231313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1231313[];
+extern VTBL_ENTRY _ZTV9GG1231313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1231313[];
+static VTBL_ENTRY alt_thunk_names358[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG12313133barEv,_ZTv0_n16_N9GG12313133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12313133barEv,_ZThn40_N9GG12313133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12313133barEv,_ZTv0_n12_N9GG12313133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12313133barEv,_ZThn24_N9GG12313133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12313133fooEv,_ZTv0_n12_N9GG12313133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12313133fooEv,_ZThn40_N9GG12313133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12313133fooEv,_ZThn16_N9GG12313133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG12313133barEv,_ZTv0_n24_N9GG12313133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12313133barEv,_ZThn8_N9GG12313133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12313133fooEv,_ZTv0_n20_N9GG12313133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12313133fooEv,_ZThn32_N9GG12313133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12313133fooEv,_ZThn8_N9GG12313133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1231313 = { "GG1231313", // class name
+ bases_GG1231313, 5,
+ &(vtc_GG1231313[0]), // expected_vtbl_contents
+ &(vtt_GG1231313[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1231313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1231313),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1231313),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names358,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1231323 : virtual EE123 , virtual FF132 {
+ int pg;
+ virtual void foo(); // _ZN9GG12313233fooEv
+ virtual void bar(); // _ZN9GG12313233barEv
+ ~GG1231323(); // tgen
+ GG1231323(); // tgen
+};
+//SIG(1 GG1231323) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1231323 ::foo(){vfunc_called(this, "_ZN9GG12313233fooEv");}
+void GG1231323 ::bar(){vfunc_called(this, "_ZN9GG12313233barEv");}
+GG1231323 ::~GG1231323(){ note_dtor("GG1231323", this);} // tgen
+GG1231323 ::GG1231323(){ note_ctor("GG1231323", this);} // tgen
+
+static void Test_GG1231323()
+{
+ extern Class_Descriptor cd_GG1231323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1231323, buf);
+ GG1231323 *dp, &lv = *(dp=new (buf) GG1231323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1231323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1231323)");
+ check_base_class_offset(lv, (AA1*)(EE123*), ABISELECT(32,16), "GG1231323");
+ check_base_class_offset(lv, (AA1*)(FF132*), ABISELECT(32,16), "GG1231323");
+ check_base_class_offset(lv, (BB2*)(EE123*), ABISELECT(48,24), "GG1231323");
+ check_base_class_offset(lv, (EE123*), ABISELECT(16,8), "GG1231323");
+ check_base_class_offset(lv, (BB3*)(FF132*), ABISELECT(80,40), "GG1231323");
+ check_base_class_offset(lv, (FF132*), ABISELECT(64,32), "GG1231323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1231323.pg");
+ test_class_info(&lv, &cd_GG1231323);
+ dp->~GG1231323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1231323(Test_GG1231323, "GG1231323", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1231323C1Ev();
+extern void _ZN9GG1231323D1Ev();
+Name_Map name_map_GG1231323[] = {
+ NSPAIR(_ZN9GG1231323C1Ev),
+ NSPAIR(_ZN9GG1231323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE123;
+extern VTBL_ENTRY _ZTI5EE123[];
+extern VTBL_ENTRY _ZTV5EE123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE123[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF132;
+extern VTBL_ENTRY _ZTI5FF132[];
+extern VTBL_ENTRY _ZTV5FF132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF132[];
+static Base_Class bases_GG1231323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE123, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF132, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1231323[];
+extern void _ZN9GG12313233fooEv();
+extern void _ZN9GG12313233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12313233fooEv,_ZTv0_n20_N9GG12313233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12313233fooEv,_ZThn8_N9GG12313233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12313233barEv,_ZTv0_n24_N9GG12313233barEv)();
+extern void ABISELECT(_ZThn16_N9GG12313233barEv,_ZThn8_N9GG12313233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12313233fooEv,_ZTv0_n12_N9GG12313233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12313233fooEv,_ZThn16_N9GG12313233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12313233barEv,_ZTv0_n12_N9GG12313233barEv)();
+extern void ABISELECT(_ZThn48_N9GG12313233barEv,_ZThn24_N9GG12313233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12313233barEv,_ZTv0_n20_N9GG12313233barEv)();
+extern void ABISELECT(_ZThn64_N9GG12313233barEv,_ZThn32_N9GG12313233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12313233fooEv,_ZTv0_n12_N9GG12313233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG12313233fooEv,_ZThn40_N9GG12313233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12313233barEv,_ZTv0_n16_N9GG12313233barEv)();
+extern void ABISELECT(_ZThn80_N9GG12313233barEv,_ZThn40_N9GG12313233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1231323[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1231323[0]),
+ (VTBL_ENTRY)&_ZN9GG12313233fooEv,
+ (VTBL_ENTRY)&_ZN9GG12313233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1231323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12313233fooEv,_ZTv0_n20_N9GG12313233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12313233barEv,_ZTv0_n24_N9GG12313233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1231323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12313233fooEv,_ZTv0_n12_N9GG12313233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1231323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12313233barEv,_ZTv0_n12_N9GG12313233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1231323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12313233barEv,_ZTv0_n20_N9GG12313233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1231323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12313233fooEv,_ZTv0_n12_N9GG12313233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12313233barEv,_ZTv0_n16_N9GG12313233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1231323[];
+extern void _ZN5EE1233fooEv();
+extern void _ZN5EE1233barEv();
+static VTBL_ENTRY _tg__ZTV5EE123__9GG1231323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&_ZN5EE1233fooEv,
+ (VTBL_ENTRY)&_ZN5EE1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE123__9GG1231323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv)();
+extern void ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE123__9GG1231323[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv),
+};
+extern void _ZN5FF1323barEv();
+static VTBL_ENTRY _tg__ZTV5FF132__9GG1231323[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN5FF1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF132__9GG1231323[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv)();
+extern void ABISELECT(_ZThn16_N5FF1323barEv,_ZThn8_N5FF1323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF132__9GG1231323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv),
+};
+static VTT_ENTRY vtt_GG1231323[] = {
+ {&(_ZTV9GG1231323[7]), 7,37},
+ {&(_ZTV9GG1231323[15]), 15,37},
+ {&(_ZTV9GG1231323[20]), 20,37},
+ {&(_ZTV9GG1231323[24]), 24,37},
+ {&(_ZTV9GG1231323[30]), 30,37},
+ {&(_ZTV9GG1231323[35]), 35,37},
+ {&(_tg__ZTV5EE123__9GG1231323[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE123__9GG1231323[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE123__9GG1231323[3]), 3,4},
+ {&(_tg__ZTV5FF132__9GG1231323[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF132__9GG1231323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF132__9GG1231323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1231323[];
+extern VTBL_ENTRY _ZTV9GG1231323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1231323[];
+static VTBL_ENTRY alt_thunk_names359[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1323barEv,_ZThn8_N5FF1323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG12313233barEv,_ZTv0_n16_N9GG12313233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12313233barEv,_ZThn40_N9GG12313233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12313233barEv,_ZTv0_n20_N9GG12313233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12313233barEv,_ZThn32_N9GG12313233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12313233barEv,_ZTv0_n12_N9GG12313233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12313233barEv,_ZThn24_N9GG12313233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12313233fooEv,_ZTv0_n12_N9GG12313233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12313233fooEv,_ZThn40_N9GG12313233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12313233fooEv,_ZThn16_N9GG12313233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG12313233barEv,_ZTv0_n24_N9GG12313233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12313233barEv,_ZThn8_N9GG12313233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12313233fooEv,_ZTv0_n20_N9GG12313233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12313233fooEv,_ZThn8_N9GG12313233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1231323 = { "GG1231323", // class name
+ bases_GG1231323, 5,
+ &(vtc_GG1231323[0]), // expected_vtbl_contents
+ &(vtt_GG1231323[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1231323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1231323),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1231323),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names359,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1231333 : virtual EE123 , virtual FF133 {
+ int pg;
+ virtual void foo(); // _ZN9GG12313333fooEv
+ virtual void bar(); // _ZN9GG12313333barEv
+ ~GG1231333(); // tgen
+ GG1231333(); // tgen
+};
+//SIG(1 GG1231333) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1231333 ::foo(){vfunc_called(this, "_ZN9GG12313333fooEv");}
+void GG1231333 ::bar(){vfunc_called(this, "_ZN9GG12313333barEv");}
+GG1231333 ::~GG1231333(){ note_dtor("GG1231333", this);} // tgen
+GG1231333 ::GG1231333(){ note_ctor("GG1231333", this);} // tgen
+
+static void Test_GG1231333()
+{
+ extern Class_Descriptor cd_GG1231333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1231333, buf);
+ GG1231333 *dp, &lv = *(dp=new (buf) GG1231333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1231333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1231333)");
+ check_base_class_offset(lv, (AA1*)(EE123*), ABISELECT(32,16), "GG1231333");
+ check_base_class_offset(lv, (AA1*)(FF133*), ABISELECT(32,16), "GG1231333");
+ check_base_class_offset(lv, (BB2*)(EE123*), ABISELECT(48,24), "GG1231333");
+ check_base_class_offset(lv, (EE123*), ABISELECT(16,8), "GG1231333");
+ check_base_class_offset(lv, (BB3*)(FF133*), ABISELECT(80,40), "GG1231333");
+ check_base_class_offset(lv, (FF133*), ABISELECT(64,32), "GG1231333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1231333.pg");
+ test_class_info(&lv, &cd_GG1231333);
+ dp->~GG1231333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1231333(Test_GG1231333, "GG1231333", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1231333C1Ev();
+extern void _ZN9GG1231333D1Ev();
+Name_Map name_map_GG1231333[] = {
+ NSPAIR(_ZN9GG1231333C1Ev),
+ NSPAIR(_ZN9GG1231333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE123;
+extern VTBL_ENTRY _ZTI5EE123[];
+extern VTBL_ENTRY _ZTV5EE123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE123[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF133;
+extern VTBL_ENTRY _ZTI5FF133[];
+extern VTBL_ENTRY _ZTV5FF133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF133[];
+static Base_Class bases_GG1231333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE123, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF133, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1231333[];
+extern void _ZN9GG12313333fooEv();
+extern void _ZN9GG12313333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12313333fooEv,_ZTv0_n20_N9GG12313333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12313333fooEv,_ZThn8_N9GG12313333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12313333barEv,_ZTv0_n24_N9GG12313333barEv)();
+extern void ABISELECT(_ZThn16_N9GG12313333barEv,_ZThn8_N9GG12313333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12313333fooEv,_ZTv0_n12_N9GG12313333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12313333fooEv,_ZThn16_N9GG12313333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12313333barEv,_ZTv0_n12_N9GG12313333barEv)();
+extern void ABISELECT(_ZThn48_N9GG12313333barEv,_ZThn24_N9GG12313333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12313333fooEv,_ZTv0_n20_N9GG12313333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12313333fooEv,_ZThn32_N9GG12313333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12313333barEv,_ZTv0_n24_N9GG12313333barEv)();
+extern void ABISELECT(_ZThn64_N9GG12313333barEv,_ZThn32_N9GG12313333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12313333fooEv,_ZTv0_n12_N9GG12313333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG12313333fooEv,_ZThn40_N9GG12313333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12313333barEv,_ZTv0_n16_N9GG12313333barEv)();
+extern void ABISELECT(_ZThn80_N9GG12313333barEv,_ZThn40_N9GG12313333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1231333[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1231333[0]),
+ (VTBL_ENTRY)&_ZN9GG12313333fooEv,
+ (VTBL_ENTRY)&_ZN9GG12313333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1231333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12313333fooEv,_ZTv0_n20_N9GG12313333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12313333barEv,_ZTv0_n24_N9GG12313333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1231333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12313333fooEv,_ZTv0_n12_N9GG12313333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1231333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12313333barEv,_ZTv0_n12_N9GG12313333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1231333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12313333fooEv,_ZTv0_n20_N9GG12313333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12313333barEv,_ZTv0_n24_N9GG12313333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1231333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12313333fooEv,_ZTv0_n12_N9GG12313333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12313333barEv,_ZTv0_n16_N9GG12313333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1231333[];
+extern void _ZN5EE1233fooEv();
+extern void _ZN5EE1233barEv();
+static VTBL_ENTRY _tg__ZTV5EE123__9GG1231333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&_ZN5EE1233fooEv,
+ (VTBL_ENTRY)&_ZN5EE1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE123__9GG1231333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv)();
+extern void ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE123__9GG1231333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv),
+};
+extern void _ZN5FF1333fooEv();
+extern void _ZN5FF1333barEv();
+static VTBL_ENTRY _tg__ZTV5FF133__9GG1231333[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&_ZN5FF1333fooEv,
+ (VTBL_ENTRY)&_ZN5FF1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF133__9GG1231333[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv)();
+extern void ABISELECT(_ZThn16_N5FF1333barEv,_ZThn8_N5FF1333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF133__9GG1231333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv),
+};
+static VTT_ENTRY vtt_GG1231333[] = {
+ {&(_ZTV9GG1231333[7]), 7,39},
+ {&(_ZTV9GG1231333[15]), 15,39},
+ {&(_ZTV9GG1231333[20]), 20,39},
+ {&(_ZTV9GG1231333[24]), 24,39},
+ {&(_ZTV9GG1231333[31]), 31,39},
+ {&(_ZTV9GG1231333[37]), 37,39},
+ {&(_tg__ZTV5EE123__9GG1231333[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE123__9GG1231333[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE123__9GG1231333[3]), 3,4},
+ {&(_tg__ZTV5FF133__9GG1231333[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF133__9GG1231333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF133__9GG1231333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1231333[];
+extern VTBL_ENTRY _ZTV9GG1231333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1231333[];
+static VTBL_ENTRY alt_thunk_names360[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1333barEv,_ZThn8_N5FF1333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG12313333barEv,_ZTv0_n16_N9GG12313333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12313333barEv,_ZThn40_N9GG12313333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12313333barEv,_ZTv0_n12_N9GG12313333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12313333barEv,_ZThn24_N9GG12313333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12313333fooEv,_ZTv0_n12_N9GG12313333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12313333fooEv,_ZThn40_N9GG12313333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12313333fooEv,_ZThn16_N9GG12313333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG12313333barEv,_ZTv0_n24_N9GG12313333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12313333barEv,_ZThn32_N9GG12313333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12313333barEv,_ZThn8_N9GG12313333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12313333fooEv,_ZTv0_n20_N9GG12313333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12313333fooEv,_ZThn32_N9GG12313333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12313333fooEv,_ZThn8_N9GG12313333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1231333 = { "GG1231333", // class name
+ bases_GG1231333, 5,
+ &(vtc_GG1231333[0]), // expected_vtbl_contents
+ &(vtt_GG1231333[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1231333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1231333),39, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1231333),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names360,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1232113 : virtual EE123 , virtual FF211 {
+ int pg;
+ virtual void foo(); // _ZN9GG12321133fooEv
+ virtual void bar(); // _ZN9GG12321133barEv
+ ~GG1232113(); // tgen
+ GG1232113(); // tgen
+};
+//SIG(1 GG1232113) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1232113 ::foo(){vfunc_called(this, "_ZN9GG12321133fooEv");}
+void GG1232113 ::bar(){vfunc_called(this, "_ZN9GG12321133barEv");}
+GG1232113 ::~GG1232113(){ note_dtor("GG1232113", this);} // tgen
+GG1232113 ::GG1232113(){ note_ctor("GG1232113", this);} // tgen
+
+static void Test_GG1232113()
+{
+ extern Class_Descriptor cd_GG1232113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1232113, buf);
+ GG1232113 *dp, &lv = *(dp=new (buf) GG1232113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1232113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1232113)");
+ check_base_class_offset(lv, (AA1*)(EE123*), ABISELECT(32,16), "GG1232113");
+ check_base_class_offset(lv, (BB2*)(EE123*), ABISELECT(48,24), "GG1232113");
+ check_base_class_offset(lv, (EE123*), ABISELECT(16,8), "GG1232113");
+ check_base_class_offset(lv, (AA2*)(FF211*), ABISELECT(80,40), "GG1232113");
+ check_base_class_offset(lv, (BB1*)(FF211*), ABISELECT(96,48), "GG1232113");
+ check_base_class_offset(lv, (FF211*), ABISELECT(64,32), "GG1232113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1232113.pg");
+ test_class_info(&lv, &cd_GG1232113);
+ dp->~GG1232113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1232113(Test_GG1232113, "GG1232113", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1232113C1Ev();
+extern void _ZN9GG1232113D1Ev();
+Name_Map name_map_GG1232113[] = {
+ NSPAIR(_ZN9GG1232113C1Ev),
+ NSPAIR(_ZN9GG1232113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE123;
+extern VTBL_ENTRY _ZTI5EE123[];
+extern VTBL_ENTRY _ZTV5EE123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE123[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF211;
+extern VTBL_ENTRY _ZTI5FF211[];
+extern VTBL_ENTRY _ZTV5FF211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF211[];
+static Base_Class bases_GG1232113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE123, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF211, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1232113[];
+extern void _ZN9GG12321133fooEv();
+extern void _ZN9GG12321133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12321133fooEv,_ZTv0_n20_N9GG12321133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12321133fooEv,_ZThn8_N9GG12321133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12321133barEv,_ZTv0_n24_N9GG12321133barEv)();
+extern void ABISELECT(_ZThn16_N9GG12321133barEv,_ZThn8_N9GG12321133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12321133fooEv,_ZTv0_n12_N9GG12321133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12321133fooEv,_ZThn16_N9GG12321133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12321133barEv,_ZTv0_n12_N9GG12321133barEv)();
+extern void ABISELECT(_ZThn48_N9GG12321133barEv,_ZThn24_N9GG12321133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12321133fooEv,_ZTv0_n20_N9GG12321133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12321133fooEv,_ZThn32_N9GG12321133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12321133barEv,_ZTv0_n12_N9GG12321133barEv)();
+extern void ABISELECT(_ZThn80_N9GG12321133barEv,_ZThn40_N9GG12321133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12321133fooEv,_ZTv0_n12_N9GG12321133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG12321133fooEv,_ZThn48_N9GG12321133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1232113[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1232113[0]),
+ (VTBL_ENTRY)&_ZN9GG12321133fooEv,
+ (VTBL_ENTRY)&_ZN9GG12321133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1232113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12321133fooEv,_ZTv0_n20_N9GG12321133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12321133barEv,_ZTv0_n24_N9GG12321133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1232113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12321133fooEv,_ZTv0_n12_N9GG12321133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1232113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12321133barEv,_ZTv0_n12_N9GG12321133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1232113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12321133fooEv,_ZTv0_n20_N9GG12321133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1232113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12321133barEv,_ZTv0_n12_N9GG12321133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1232113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12321133fooEv,_ZTv0_n12_N9GG12321133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1232113[];
+extern void _ZN5EE1233fooEv();
+extern void _ZN5EE1233barEv();
+static VTBL_ENTRY _tg__ZTV5EE123__9GG1232113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&_ZN5EE1233fooEv,
+ (VTBL_ENTRY)&_ZN5EE1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE123__9GG1232113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv)();
+extern void ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE123__9GG1232113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv),
+};
+extern void _ZN5FF2113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF211__9GG1232113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN5FF2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF211__9GG1232113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2113fooEv,_ZThn16_N5FF2113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF211__9GG1232113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv),
+};
+static VTT_ENTRY vtt_GG1232113[] = {
+ {&(_ZTV9GG1232113[8]), 8,40},
+ {&(_ZTV9GG1232113[16]), 16,40},
+ {&(_ZTV9GG1232113[21]), 21,40},
+ {&(_ZTV9GG1232113[25]), 25,40},
+ {&(_ZTV9GG1232113[31]), 31,40},
+ {&(_ZTV9GG1232113[35]), 35,40},
+ {&(_ZTV9GG1232113[39]), 39,40},
+ {&(_tg__ZTV5EE123__9GG1232113[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE123__9GG1232113[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE123__9GG1232113[3]), 3,4},
+ {&(_tg__ZTV5FF211__9GG1232113[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF211__9GG1232113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF211__9GG1232113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1232113[];
+extern VTBL_ENTRY _ZTV9GG1232113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1232113[];
+static VTBL_ENTRY alt_thunk_names361[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2113fooEv,_ZThn16_N5FF2113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12321133barEv,_ZTv0_n12_N9GG12321133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12321133barEv,_ZThn40_N9GG12321133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12321133barEv,_ZThn24_N9GG12321133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12321133fooEv,_ZTv0_n12_N9GG12321133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12321133fooEv,_ZThn48_N9GG12321133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12321133fooEv,_ZThn16_N9GG12321133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG12321133barEv,_ZTv0_n24_N9GG12321133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12321133barEv,_ZThn8_N9GG12321133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12321133fooEv,_ZTv0_n20_N9GG12321133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12321133fooEv,_ZThn32_N9GG12321133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12321133fooEv,_ZThn8_N9GG12321133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1232113 = { "GG1232113", // class name
+ bases_GG1232113, 6,
+ &(vtc_GG1232113[0]), // expected_vtbl_contents
+ &(vtt_GG1232113[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1232113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1232113),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1232113),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names361,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1232123 : virtual EE123 , virtual FF212 {
+ int pg;
+ virtual void foo(); // _ZN9GG12321233fooEv
+ virtual void bar(); // _ZN9GG12321233barEv
+ ~GG1232123(); // tgen
+ GG1232123(); // tgen
+};
+//SIG(1 GG1232123) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1232123 ::foo(){vfunc_called(this, "_ZN9GG12321233fooEv");}
+void GG1232123 ::bar(){vfunc_called(this, "_ZN9GG12321233barEv");}
+GG1232123 ::~GG1232123(){ note_dtor("GG1232123", this);} // tgen
+GG1232123 ::GG1232123(){ note_ctor("GG1232123", this);} // tgen
+
+static void Test_GG1232123()
+{
+ extern Class_Descriptor cd_GG1232123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1232123, buf);
+ GG1232123 *dp, &lv = *(dp=new (buf) GG1232123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1232123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1232123)");
+ check_base_class_offset(lv, (AA1*)(EE123*), ABISELECT(32,16), "GG1232123");
+ check_base_class_offset(lv, (BB2*)(EE123*), ABISELECT(48,24), "GG1232123");
+ check_base_class_offset(lv, (EE123*), ABISELECT(16,8), "GG1232123");
+ check_base_class_offset(lv, (AA2*)(FF212*), ABISELECT(80,40), "GG1232123");
+ check_base_class_offset(lv, (BB1*)(FF212*), ABISELECT(96,48), "GG1232123");
+ check_base_class_offset(lv, (FF212*), ABISELECT(64,32), "GG1232123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1232123.pg");
+ test_class_info(&lv, &cd_GG1232123);
+ dp->~GG1232123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1232123(Test_GG1232123, "GG1232123", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1232123C1Ev();
+extern void _ZN9GG1232123D1Ev();
+Name_Map name_map_GG1232123[] = {
+ NSPAIR(_ZN9GG1232123C1Ev),
+ NSPAIR(_ZN9GG1232123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE123;
+extern VTBL_ENTRY _ZTI5EE123[];
+extern VTBL_ENTRY _ZTV5EE123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE123[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF212;
+extern VTBL_ENTRY _ZTI5FF212[];
+extern VTBL_ENTRY _ZTV5FF212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF212[];
+static Base_Class bases_GG1232123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE123, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF212, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1232123[];
+extern void _ZN9GG12321233fooEv();
+extern void _ZN9GG12321233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12321233fooEv,_ZTv0_n20_N9GG12321233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12321233fooEv,_ZThn8_N9GG12321233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12321233barEv,_ZTv0_n24_N9GG12321233barEv)();
+extern void ABISELECT(_ZThn16_N9GG12321233barEv,_ZThn8_N9GG12321233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12321233fooEv,_ZTv0_n12_N9GG12321233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12321233fooEv,_ZThn16_N9GG12321233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12321233barEv,_ZTv0_n12_N9GG12321233barEv)();
+extern void ABISELECT(_ZThn48_N9GG12321233barEv,_ZThn24_N9GG12321233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12321233barEv,_ZTv0_n20_N9GG12321233barEv)();
+extern void ABISELECT(_ZThn64_N9GG12321233barEv,_ZThn32_N9GG12321233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12321233barEv,_ZTv0_n12_N9GG12321233barEv)();
+extern void ABISELECT(_ZThn80_N9GG12321233barEv,_ZThn40_N9GG12321233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12321233fooEv,_ZTv0_n12_N9GG12321233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG12321233fooEv,_ZThn48_N9GG12321233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1232123[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1232123[0]),
+ (VTBL_ENTRY)&_ZN9GG12321233fooEv,
+ (VTBL_ENTRY)&_ZN9GG12321233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1232123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12321233fooEv,_ZTv0_n20_N9GG12321233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12321233barEv,_ZTv0_n24_N9GG12321233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1232123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12321233fooEv,_ZTv0_n12_N9GG12321233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1232123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12321233barEv,_ZTv0_n12_N9GG12321233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1232123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12321233barEv,_ZTv0_n20_N9GG12321233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1232123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12321233barEv,_ZTv0_n12_N9GG12321233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1232123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12321233fooEv,_ZTv0_n12_N9GG12321233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1232123[];
+extern void _ZN5EE1233fooEv();
+extern void _ZN5EE1233barEv();
+static VTBL_ENTRY _tg__ZTV5EE123__9GG1232123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&_ZN5EE1233fooEv,
+ (VTBL_ENTRY)&_ZN5EE1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE123__9GG1232123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv)();
+extern void ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE123__9GG1232123[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv),
+};
+extern void _ZN5FF2123barEv();
+static VTBL_ENTRY _tg__ZTV5FF212__9GG1232123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN5FF2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv)();
+extern void ABISELECT(_ZThn16_N5FF2123barEv,_ZThn8_N5FF2123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF212__9GG1232123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF212__9GG1232123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG1232123[] = {
+ {&(_ZTV9GG1232123[8]), 8,40},
+ {&(_ZTV9GG1232123[16]), 16,40},
+ {&(_ZTV9GG1232123[21]), 21,40},
+ {&(_ZTV9GG1232123[25]), 25,40},
+ {&(_ZTV9GG1232123[31]), 31,40},
+ {&(_ZTV9GG1232123[35]), 35,40},
+ {&(_ZTV9GG1232123[39]), 39,40},
+ {&(_tg__ZTV5EE123__9GG1232123[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE123__9GG1232123[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE123__9GG1232123[3]), 3,4},
+ {&(_tg__ZTV5FF212__9GG1232123[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF212__9GG1232123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF212__9GG1232123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1232123[];
+extern VTBL_ENTRY _ZTV9GG1232123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1232123[];
+static VTBL_ENTRY alt_thunk_names362[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2123barEv,_ZThn8_N5FF2123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12321233barEv,_ZTv0_n20_N9GG12321233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12321233barEv,_ZThn32_N9GG12321233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12321233barEv,_ZTv0_n12_N9GG12321233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12321233barEv,_ZThn40_N9GG12321233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12321233barEv,_ZThn24_N9GG12321233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12321233fooEv,_ZTv0_n12_N9GG12321233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12321233fooEv,_ZThn48_N9GG12321233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12321233fooEv,_ZThn16_N9GG12321233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG12321233barEv,_ZTv0_n24_N9GG12321233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12321233barEv,_ZThn8_N9GG12321233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12321233fooEv,_ZTv0_n20_N9GG12321233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12321233fooEv,_ZThn8_N9GG12321233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1232123 = { "GG1232123", // class name
+ bases_GG1232123, 6,
+ &(vtc_GG1232123[0]), // expected_vtbl_contents
+ &(vtt_GG1232123[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1232123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1232123),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1232123),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names362,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1232133 : virtual EE123 , virtual FF213 {
+ int pg;
+ virtual void foo(); // _ZN9GG12321333fooEv
+ virtual void bar(); // _ZN9GG12321333barEv
+ ~GG1232133(); // tgen
+ GG1232133(); // tgen
+};
+//SIG(1 GG1232133) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1232133 ::foo(){vfunc_called(this, "_ZN9GG12321333fooEv");}
+void GG1232133 ::bar(){vfunc_called(this, "_ZN9GG12321333barEv");}
+GG1232133 ::~GG1232133(){ note_dtor("GG1232133", this);} // tgen
+GG1232133 ::GG1232133(){ note_ctor("GG1232133", this);} // tgen
+
+static void Test_GG1232133()
+{
+ extern Class_Descriptor cd_GG1232133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1232133, buf);
+ GG1232133 *dp, &lv = *(dp=new (buf) GG1232133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1232133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1232133)");
+ check_base_class_offset(lv, (AA1*)(EE123*), ABISELECT(32,16), "GG1232133");
+ check_base_class_offset(lv, (BB2*)(EE123*), ABISELECT(48,24), "GG1232133");
+ check_base_class_offset(lv, (EE123*), ABISELECT(16,8), "GG1232133");
+ check_base_class_offset(lv, (AA2*)(FF213*), ABISELECT(80,40), "GG1232133");
+ check_base_class_offset(lv, (BB1*)(FF213*), ABISELECT(96,48), "GG1232133");
+ check_base_class_offset(lv, (FF213*), ABISELECT(64,32), "GG1232133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1232133.pg");
+ test_class_info(&lv, &cd_GG1232133);
+ dp->~GG1232133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1232133(Test_GG1232133, "GG1232133", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1232133C1Ev();
+extern void _ZN9GG1232133D1Ev();
+Name_Map name_map_GG1232133[] = {
+ NSPAIR(_ZN9GG1232133C1Ev),
+ NSPAIR(_ZN9GG1232133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE123;
+extern VTBL_ENTRY _ZTI5EE123[];
+extern VTBL_ENTRY _ZTV5EE123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE123[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF213;
+extern VTBL_ENTRY _ZTI5FF213[];
+extern VTBL_ENTRY _ZTV5FF213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF213[];
+static Base_Class bases_GG1232133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE123, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF213, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1232133[];
+extern void _ZN9GG12321333fooEv();
+extern void _ZN9GG12321333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12321333fooEv,_ZTv0_n20_N9GG12321333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12321333fooEv,_ZThn8_N9GG12321333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12321333barEv,_ZTv0_n24_N9GG12321333barEv)();
+extern void ABISELECT(_ZThn16_N9GG12321333barEv,_ZThn8_N9GG12321333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12321333fooEv,_ZTv0_n12_N9GG12321333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12321333fooEv,_ZThn16_N9GG12321333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12321333barEv,_ZTv0_n12_N9GG12321333barEv)();
+extern void ABISELECT(_ZThn48_N9GG12321333barEv,_ZThn24_N9GG12321333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12321333fooEv,_ZTv0_n20_N9GG12321333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12321333fooEv,_ZThn32_N9GG12321333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12321333barEv,_ZTv0_n24_N9GG12321333barEv)();
+extern void ABISELECT(_ZThn64_N9GG12321333barEv,_ZThn32_N9GG12321333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12321333barEv,_ZTv0_n12_N9GG12321333barEv)();
+extern void ABISELECT(_ZThn80_N9GG12321333barEv,_ZThn40_N9GG12321333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12321333fooEv,_ZTv0_n12_N9GG12321333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG12321333fooEv,_ZThn48_N9GG12321333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1232133[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1232133[0]),
+ (VTBL_ENTRY)&_ZN9GG12321333fooEv,
+ (VTBL_ENTRY)&_ZN9GG12321333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1232133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12321333fooEv,_ZTv0_n20_N9GG12321333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12321333barEv,_ZTv0_n24_N9GG12321333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1232133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12321333fooEv,_ZTv0_n12_N9GG12321333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1232133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12321333barEv,_ZTv0_n12_N9GG12321333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1232133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12321333fooEv,_ZTv0_n20_N9GG12321333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12321333barEv,_ZTv0_n24_N9GG12321333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1232133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12321333barEv,_ZTv0_n12_N9GG12321333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1232133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12321333fooEv,_ZTv0_n12_N9GG12321333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1232133[];
+extern void _ZN5EE1233fooEv();
+extern void _ZN5EE1233barEv();
+static VTBL_ENTRY _tg__ZTV5EE123__9GG1232133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&_ZN5EE1233fooEv,
+ (VTBL_ENTRY)&_ZN5EE1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE123__9GG1232133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv)();
+extern void ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE123__9GG1232133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv),
+};
+extern void _ZN5FF2133fooEv();
+extern void _ZN5FF2133barEv();
+static VTBL_ENTRY _tg__ZTV5FF213__9GG1232133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&_ZN5FF2133fooEv,
+ (VTBL_ENTRY)&_ZN5FF2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv)();
+extern void ABISELECT(_ZThn16_N5FF2133barEv,_ZThn8_N5FF2133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF213__9GG1232133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2133fooEv,_ZThn16_N5FF2133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF213__9GG1232133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv),
+};
+static VTT_ENTRY vtt_GG1232133[] = {
+ {&(_ZTV9GG1232133[8]), 8,42},
+ {&(_ZTV9GG1232133[16]), 16,42},
+ {&(_ZTV9GG1232133[21]), 21,42},
+ {&(_ZTV9GG1232133[25]), 25,42},
+ {&(_ZTV9GG1232133[32]), 32,42},
+ {&(_ZTV9GG1232133[37]), 37,42},
+ {&(_ZTV9GG1232133[41]), 41,42},
+ {&(_tg__ZTV5EE123__9GG1232133[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE123__9GG1232133[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE123__9GG1232133[3]), 3,4},
+ {&(_tg__ZTV5FF213__9GG1232133[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF213__9GG1232133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF213__9GG1232133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1232133[];
+extern VTBL_ENTRY _ZTV9GG1232133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1232133[];
+static VTBL_ENTRY alt_thunk_names363[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2133fooEv,_ZThn16_N5FF2133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2133barEv,_ZThn8_N5FF2133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12321333barEv,_ZTv0_n12_N9GG12321333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12321333barEv,_ZThn40_N9GG12321333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12321333barEv,_ZThn24_N9GG12321333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12321333fooEv,_ZTv0_n12_N9GG12321333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12321333fooEv,_ZThn48_N9GG12321333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12321333fooEv,_ZThn16_N9GG12321333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG12321333barEv,_ZTv0_n24_N9GG12321333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12321333barEv,_ZThn32_N9GG12321333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12321333barEv,_ZThn8_N9GG12321333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12321333fooEv,_ZTv0_n20_N9GG12321333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12321333fooEv,_ZThn32_N9GG12321333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12321333fooEv,_ZThn8_N9GG12321333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1232133 = { "GG1232133", // class name
+ bases_GG1232133, 6,
+ &(vtc_GG1232133[0]), // expected_vtbl_contents
+ &(vtt_GG1232133[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1232133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1232133),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1232133),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names363,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1232213 : virtual EE123 , virtual FF221 {
+ int pg;
+ virtual void foo(); // _ZN9GG12322133fooEv
+ virtual void bar(); // _ZN9GG12322133barEv
+ ~GG1232213(); // tgen
+ GG1232213(); // tgen
+};
+//SIG(1 GG1232213) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG1232213 ::foo(){vfunc_called(this, "_ZN9GG12322133fooEv");}
+void GG1232213 ::bar(){vfunc_called(this, "_ZN9GG12322133barEv");}
+GG1232213 ::~GG1232213(){ note_dtor("GG1232213", this);} // tgen
+GG1232213 ::GG1232213(){ note_ctor("GG1232213", this);} // tgen
+
+static void Test_GG1232213()
+{
+ extern Class_Descriptor cd_GG1232213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1232213, buf);
+ GG1232213 *dp, &lv = *(dp=new (buf) GG1232213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1232213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1232213)");
+ check_base_class_offset(lv, (AA1*)(EE123*), ABISELECT(32,16), "GG1232213");
+ check_base_class_offset(lv, (BB2*)(EE123*), ABISELECT(48,24), "GG1232213");
+ check_base_class_offset(lv, (BB2*)(FF221*), ABISELECT(48,24), "GG1232213");
+ check_base_class_offset(lv, (EE123*), ABISELECT(16,8), "GG1232213");
+ check_base_class_offset(lv, (AA2*)(FF221*), ABISELECT(80,40), "GG1232213");
+ check_base_class_offset(lv, (FF221*), ABISELECT(64,32), "GG1232213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1232213.pg");
+ test_class_info(&lv, &cd_GG1232213);
+ dp->~GG1232213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1232213(Test_GG1232213, "GG1232213", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1232213C1Ev();
+extern void _ZN9GG1232213D1Ev();
+Name_Map name_map_GG1232213[] = {
+ NSPAIR(_ZN9GG1232213C1Ev),
+ NSPAIR(_ZN9GG1232213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE123;
+extern VTBL_ENTRY _ZTI5EE123[];
+extern VTBL_ENTRY _ZTV5EE123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE123[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF221;
+extern VTBL_ENTRY _ZTI5FF221[];
+extern VTBL_ENTRY _ZTV5FF221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF221[];
+static Base_Class bases_GG1232213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE123, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF221, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1232213[];
+extern void _ZN9GG12322133fooEv();
+extern void _ZN9GG12322133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12322133fooEv,_ZTv0_n20_N9GG12322133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12322133fooEv,_ZThn8_N9GG12322133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12322133barEv,_ZTv0_n24_N9GG12322133barEv)();
+extern void ABISELECT(_ZThn16_N9GG12322133barEv,_ZThn8_N9GG12322133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12322133fooEv,_ZTv0_n12_N9GG12322133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12322133fooEv,_ZThn16_N9GG12322133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12322133barEv,_ZTv0_n12_N9GG12322133barEv)();
+extern void ABISELECT(_ZThn48_N9GG12322133barEv,_ZThn24_N9GG12322133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12322133fooEv,_ZTv0_n20_N9GG12322133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12322133fooEv,_ZThn32_N9GG12322133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12322133barEv,_ZTv0_n12_N9GG12322133barEv)();
+extern void ABISELECT(_ZThn80_N9GG12322133barEv,_ZThn40_N9GG12322133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1232213[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1232213[0]),
+ (VTBL_ENTRY)&_ZN9GG12322133fooEv,
+ (VTBL_ENTRY)&_ZN9GG12322133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1232213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12322133fooEv,_ZTv0_n20_N9GG12322133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12322133barEv,_ZTv0_n24_N9GG12322133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1232213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12322133fooEv,_ZTv0_n12_N9GG12322133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1232213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12322133barEv,_ZTv0_n12_N9GG12322133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1232213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12322133fooEv,_ZTv0_n20_N9GG12322133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1232213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12322133barEv,_ZTv0_n12_N9GG12322133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1232213[];
+extern void _ZN5EE1233fooEv();
+extern void _ZN5EE1233barEv();
+static VTBL_ENTRY _tg__ZTV5EE123__9GG1232213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&_ZN5EE1233fooEv,
+ (VTBL_ENTRY)&_ZN5EE1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE123__9GG1232213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv)();
+extern void ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE123__9GG1232213[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv),
+};
+extern void _ZN5FF2213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF221__9GG1232213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN5FF2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF221__9GG1232213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF221__9GG1232213[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG1232213[] = {
+ {&(_ZTV9GG1232213[7]), 7,35},
+ {&(_ZTV9GG1232213[15]), 15,35},
+ {&(_ZTV9GG1232213[20]), 20,35},
+ {&(_ZTV9GG1232213[24]), 24,35},
+ {&(_ZTV9GG1232213[30]), 30,35},
+ {&(_ZTV9GG1232213[34]), 34,35},
+ {&(_tg__ZTV5EE123__9GG1232213[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE123__9GG1232213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE123__9GG1232213[3]), 3,4},
+ {&(_tg__ZTV5FF221__9GG1232213[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF221__9GG1232213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF221__9GG1232213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1232213[];
+extern VTBL_ENTRY _ZTV9GG1232213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1232213[];
+static VTBL_ENTRY alt_thunk_names364[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12322133barEv,_ZTv0_n12_N9GG12322133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12322133barEv,_ZThn40_N9GG12322133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12322133barEv,_ZThn24_N9GG12322133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12322133fooEv,_ZTv0_n12_N9GG12322133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12322133fooEv,_ZThn16_N9GG12322133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG12322133barEv,_ZTv0_n24_N9GG12322133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12322133barEv,_ZThn8_N9GG12322133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12322133fooEv,_ZTv0_n20_N9GG12322133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12322133fooEv,_ZThn32_N9GG12322133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12322133fooEv,_ZThn8_N9GG12322133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1232213 = { "GG1232213", // class name
+ bases_GG1232213, 5,
+ &(vtc_GG1232213[0]), // expected_vtbl_contents
+ &(vtt_GG1232213[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1232213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1232213),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1232213),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names364,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1232222 : virtual EE123 , virtual FF222 {
+ int pg;
+ virtual void bar(); // _ZN9GG12322223barEv
+ ~GG1232222(); // tgen
+ GG1232222(); // tgen
+};
+//SIG(1 GG1232222) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v2 v1 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v1 Fi} v1 Fi}
+
+
+void GG1232222 ::bar(){vfunc_called(this, "_ZN9GG12322223barEv");}
+GG1232222 ::~GG1232222(){ note_dtor("GG1232222", this);} // tgen
+GG1232222 ::GG1232222(){ note_ctor("GG1232222", this);} // tgen
+
+static void Test_GG1232222()
+{
+ extern Class_Descriptor cd_GG1232222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1232222, buf);
+ GG1232222 *dp, &lv = *(dp=new (buf) GG1232222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1232222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1232222)");
+ check_base_class_offset(lv, (AA1*)(EE123*), ABISELECT(32,16), "GG1232222");
+ check_base_class_offset(lv, (BB2*)(EE123*), ABISELECT(48,24), "GG1232222");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(48,24), "GG1232222");
+ check_base_class_offset(lv, (EE123*), ABISELECT(16,8), "GG1232222");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(80,40), "GG1232222");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG1232222");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1232222.pg");
+ test_class_info(&lv, &cd_GG1232222);
+ dp->~GG1232222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1232222(Test_GG1232222, "GG1232222", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1232222C1Ev();
+extern void _ZN9GG1232222D1Ev();
+Name_Map name_map_GG1232222[] = {
+ NSPAIR(_ZN9GG1232222C1Ev),
+ NSPAIR(_ZN9GG1232222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE123;
+extern VTBL_ENTRY _ZTI5EE123[];
+extern VTBL_ENTRY _ZTV5EE123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE123[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG1232222[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE123, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1232222[];
+extern void _ZN9GG12322223barEv();
+extern void _ZN5EE1233fooEv();
+extern void ABISELECT(_ZTv0_n48_N9GG12322223barEv,_ZTv0_n24_N9GG12322223barEv)();
+extern void ABISELECT(_ZThn16_N9GG12322223barEv,_ZThn8_N9GG12322223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12322223barEv,_ZTv0_n12_N9GG12322223barEv)();
+extern void ABISELECT(_ZThn48_N9GG12322223barEv,_ZThn24_N9GG12322223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12322223barEv,_ZTv0_n20_N9GG12322223barEv)();
+extern void ABISELECT(_ZThn64_N9GG12322223barEv,_ZThn32_N9GG12322223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12322223barEv,_ZTv0_n12_N9GG12322223barEv)();
+extern void ABISELECT(_ZThn80_N9GG12322223barEv,_ZThn40_N9GG12322223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1232222[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1232222[0]),
+ (VTBL_ENTRY)&_ZN9GG12322223barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1232222[0]),
+ (VTBL_ENTRY)&_ZN5EE1233fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12322223barEv,_ZTv0_n24_N9GG12322223barEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1232222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1232222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12322223barEv,_ZTv0_n12_N9GG12322223barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1232222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12322223barEv,_ZTv0_n20_N9GG12322223barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1232222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12322223barEv,_ZTv0_n12_N9GG12322223barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1232222[];
+extern void _ZN5EE1233fooEv();
+extern void _ZN5EE1233barEv();
+static VTBL_ENTRY _tg__ZTV5EE123__9GG1232222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&_ZN5EE1233fooEv,
+ (VTBL_ENTRY)&_ZN5EE1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE123__9GG1232222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv)();
+extern void ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE123__9GG1232222[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv),
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG1232222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG1232222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG1232222[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG1232222[] = {
+ {&(_ZTV9GG1232222[7]), 7,34},
+ {&(_ZTV9GG1232222[14]), 14,34},
+ {&(_ZTV9GG1232222[19]), 19,34},
+ {&(_ZTV9GG1232222[23]), 23,34},
+ {&(_ZTV9GG1232222[29]), 29,34},
+ {&(_ZTV9GG1232222[33]), 33,34},
+ {&(_tg__ZTV5EE123__9GG1232222[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE123__9GG1232222[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE123__9GG1232222[3]), 3,4},
+ {&(_tg__ZTV5FF222__9GG1232222[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG1232222[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG1232222[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1232222[];
+extern VTBL_ENTRY _ZTV9GG1232222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1232222[];
+static VTBL_ENTRY alt_thunk_names365[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12322223barEv,_ZTv0_n20_N9GG12322223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12322223barEv,_ZThn32_N9GG12322223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12322223barEv,_ZTv0_n12_N9GG12322223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12322223barEv,_ZThn40_N9GG12322223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12322223barEv,_ZThn24_N9GG12322223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG12322223barEv,_ZTv0_n24_N9GG12322223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12322223barEv,_ZThn8_N9GG12322223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1232222 = { "GG1232222", // class name
+ bases_GG1232222, 5,
+ &(vtc_GG1232222[0]), // expected_vtbl_contents
+ &(vtt_GG1232222[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1232222),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1232222),34, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1232222),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names365,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1232223 : virtual EE123 , virtual FF222 {
+ int pg;
+ virtual void foo(); // _ZN9GG12322233fooEv
+ virtual void bar(); // _ZN9GG12322233barEv
+ ~GG1232223(); // tgen
+ GG1232223(); // tgen
+};
+//SIG(1 GG1232223) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG1232223 ::foo(){vfunc_called(this, "_ZN9GG12322233fooEv");}
+void GG1232223 ::bar(){vfunc_called(this, "_ZN9GG12322233barEv");}
+GG1232223 ::~GG1232223(){ note_dtor("GG1232223", this);} // tgen
+GG1232223 ::GG1232223(){ note_ctor("GG1232223", this);} // tgen
+
+static void Test_GG1232223()
+{
+ extern Class_Descriptor cd_GG1232223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1232223, buf);
+ GG1232223 *dp, &lv = *(dp=new (buf) GG1232223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1232223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1232223)");
+ check_base_class_offset(lv, (AA1*)(EE123*), ABISELECT(32,16), "GG1232223");
+ check_base_class_offset(lv, (BB2*)(EE123*), ABISELECT(48,24), "GG1232223");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(48,24), "GG1232223");
+ check_base_class_offset(lv, (EE123*), ABISELECT(16,8), "GG1232223");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(80,40), "GG1232223");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG1232223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1232223.pg");
+ test_class_info(&lv, &cd_GG1232223);
+ dp->~GG1232223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1232223(Test_GG1232223, "GG1232223", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1232223C1Ev();
+extern void _ZN9GG1232223D1Ev();
+Name_Map name_map_GG1232223[] = {
+ NSPAIR(_ZN9GG1232223C1Ev),
+ NSPAIR(_ZN9GG1232223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE123;
+extern VTBL_ENTRY _ZTI5EE123[];
+extern VTBL_ENTRY _ZTV5EE123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE123[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG1232223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE123, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1232223[];
+extern void _ZN9GG12322233fooEv();
+extern void _ZN9GG12322233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12322233fooEv,_ZTv0_n20_N9GG12322233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12322233fooEv,_ZThn8_N9GG12322233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12322233barEv,_ZTv0_n24_N9GG12322233barEv)();
+extern void ABISELECT(_ZThn16_N9GG12322233barEv,_ZThn8_N9GG12322233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12322233fooEv,_ZTv0_n12_N9GG12322233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12322233fooEv,_ZThn16_N9GG12322233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12322233barEv,_ZTv0_n12_N9GG12322233barEv)();
+extern void ABISELECT(_ZThn48_N9GG12322233barEv,_ZThn24_N9GG12322233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12322233barEv,_ZTv0_n20_N9GG12322233barEv)();
+extern void ABISELECT(_ZThn64_N9GG12322233barEv,_ZThn32_N9GG12322233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12322233barEv,_ZTv0_n12_N9GG12322233barEv)();
+extern void ABISELECT(_ZThn80_N9GG12322233barEv,_ZThn40_N9GG12322233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1232223[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1232223[0]),
+ (VTBL_ENTRY)&_ZN9GG12322233fooEv,
+ (VTBL_ENTRY)&_ZN9GG12322233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1232223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12322233fooEv,_ZTv0_n20_N9GG12322233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12322233barEv,_ZTv0_n24_N9GG12322233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1232223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12322233fooEv,_ZTv0_n12_N9GG12322233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1232223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12322233barEv,_ZTv0_n12_N9GG12322233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1232223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12322233barEv,_ZTv0_n20_N9GG12322233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1232223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12322233barEv,_ZTv0_n12_N9GG12322233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1232223[];
+extern void _ZN5EE1233fooEv();
+extern void _ZN5EE1233barEv();
+static VTBL_ENTRY _tg__ZTV5EE123__9GG1232223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&_ZN5EE1233fooEv,
+ (VTBL_ENTRY)&_ZN5EE1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE123__9GG1232223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv)();
+extern void ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE123__9GG1232223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv),
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG1232223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG1232223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG1232223[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG1232223[] = {
+ {&(_ZTV9GG1232223[7]), 7,35},
+ {&(_ZTV9GG1232223[15]), 15,35},
+ {&(_ZTV9GG1232223[20]), 20,35},
+ {&(_ZTV9GG1232223[24]), 24,35},
+ {&(_ZTV9GG1232223[30]), 30,35},
+ {&(_ZTV9GG1232223[34]), 34,35},
+ {&(_tg__ZTV5EE123__9GG1232223[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE123__9GG1232223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE123__9GG1232223[3]), 3,4},
+ {&(_tg__ZTV5FF222__9GG1232223[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG1232223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG1232223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1232223[];
+extern VTBL_ENTRY _ZTV9GG1232223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1232223[];
+static VTBL_ENTRY alt_thunk_names366[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12322233barEv,_ZTv0_n20_N9GG12322233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12322233barEv,_ZThn32_N9GG12322233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12322233barEv,_ZTv0_n12_N9GG12322233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12322233barEv,_ZThn40_N9GG12322233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12322233barEv,_ZThn24_N9GG12322233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12322233fooEv,_ZTv0_n12_N9GG12322233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12322233fooEv,_ZThn16_N9GG12322233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG12322233barEv,_ZTv0_n24_N9GG12322233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12322233barEv,_ZThn8_N9GG12322233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12322233fooEv,_ZTv0_n20_N9GG12322233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12322233fooEv,_ZThn8_N9GG12322233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1232223 = { "GG1232223", // class name
+ bases_GG1232223, 5,
+ &(vtc_GG1232223[0]), // expected_vtbl_contents
+ &(vtt_GG1232223[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1232223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1232223),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1232223),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names366,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1232233 : virtual EE123 , virtual FF223 {
+ int pg;
+ virtual void foo(); // _ZN9GG12322333fooEv
+ virtual void bar(); // _ZN9GG12322333barEv
+ ~GG1232233(); // tgen
+ GG1232233(); // tgen
+};
+//SIG(1 GG1232233) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1232233 ::foo(){vfunc_called(this, "_ZN9GG12322333fooEv");}
+void GG1232233 ::bar(){vfunc_called(this, "_ZN9GG12322333barEv");}
+GG1232233 ::~GG1232233(){ note_dtor("GG1232233", this);} // tgen
+GG1232233 ::GG1232233(){ note_ctor("GG1232233", this);} // tgen
+
+static void Test_GG1232233()
+{
+ extern Class_Descriptor cd_GG1232233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1232233, buf);
+ GG1232233 *dp, &lv = *(dp=new (buf) GG1232233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1232233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1232233)");
+ check_base_class_offset(lv, (AA1*)(EE123*), ABISELECT(32,16), "GG1232233");
+ check_base_class_offset(lv, (BB2*)(EE123*), ABISELECT(48,24), "GG1232233");
+ check_base_class_offset(lv, (BB2*)(FF223*), ABISELECT(48,24), "GG1232233");
+ check_base_class_offset(lv, (EE123*), ABISELECT(16,8), "GG1232233");
+ check_base_class_offset(lv, (AA2*)(FF223*), ABISELECT(80,40), "GG1232233");
+ check_base_class_offset(lv, (FF223*), ABISELECT(64,32), "GG1232233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1232233.pg");
+ test_class_info(&lv, &cd_GG1232233);
+ dp->~GG1232233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1232233(Test_GG1232233, "GG1232233", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1232233C1Ev();
+extern void _ZN9GG1232233D1Ev();
+Name_Map name_map_GG1232233[] = {
+ NSPAIR(_ZN9GG1232233C1Ev),
+ NSPAIR(_ZN9GG1232233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE123;
+extern VTBL_ENTRY _ZTI5EE123[];
+extern VTBL_ENTRY _ZTV5EE123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE123[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF223;
+extern VTBL_ENTRY _ZTI5FF223[];
+extern VTBL_ENTRY _ZTV5FF223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF223[];
+static Base_Class bases_GG1232233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE123, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF223, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1232233[];
+extern void _ZN9GG12322333fooEv();
+extern void _ZN9GG12322333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12322333fooEv,_ZTv0_n20_N9GG12322333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12322333fooEv,_ZThn8_N9GG12322333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12322333barEv,_ZTv0_n24_N9GG12322333barEv)();
+extern void ABISELECT(_ZThn16_N9GG12322333barEv,_ZThn8_N9GG12322333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12322333fooEv,_ZTv0_n12_N9GG12322333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12322333fooEv,_ZThn16_N9GG12322333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12322333barEv,_ZTv0_n12_N9GG12322333barEv)();
+extern void ABISELECT(_ZThn48_N9GG12322333barEv,_ZThn24_N9GG12322333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12322333fooEv,_ZTv0_n20_N9GG12322333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12322333fooEv,_ZThn32_N9GG12322333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12322333barEv,_ZTv0_n24_N9GG12322333barEv)();
+extern void ABISELECT(_ZThn64_N9GG12322333barEv,_ZThn32_N9GG12322333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12322333barEv,_ZTv0_n12_N9GG12322333barEv)();
+extern void ABISELECT(_ZThn80_N9GG12322333barEv,_ZThn40_N9GG12322333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1232233[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1232233[0]),
+ (VTBL_ENTRY)&_ZN9GG12322333fooEv,
+ (VTBL_ENTRY)&_ZN9GG12322333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1232233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12322333fooEv,_ZTv0_n20_N9GG12322333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12322333barEv,_ZTv0_n24_N9GG12322333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1232233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12322333fooEv,_ZTv0_n12_N9GG12322333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1232233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12322333barEv,_ZTv0_n12_N9GG12322333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1232233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12322333fooEv,_ZTv0_n20_N9GG12322333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12322333barEv,_ZTv0_n24_N9GG12322333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1232233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12322333barEv,_ZTv0_n12_N9GG12322333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1232233[];
+extern void _ZN5EE1233fooEv();
+extern void _ZN5EE1233barEv();
+static VTBL_ENTRY _tg__ZTV5EE123__9GG1232233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&_ZN5EE1233fooEv,
+ (VTBL_ENTRY)&_ZN5EE1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE123__9GG1232233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv)();
+extern void ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE123__9GG1232233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv),
+};
+extern void _ZN5FF2233fooEv();
+extern void _ZN5FF2233barEv();
+static VTBL_ENTRY _tg__ZTV5FF223__9GG1232233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&_ZN5FF2233fooEv,
+ (VTBL_ENTRY)&_ZN5FF2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+extern void ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF223__9GG1232233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF223__9GG1232233[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+static VTT_ENTRY vtt_GG1232233[] = {
+ {&(_ZTV9GG1232233[7]), 7,37},
+ {&(_ZTV9GG1232233[15]), 15,37},
+ {&(_ZTV9GG1232233[20]), 20,37},
+ {&(_ZTV9GG1232233[24]), 24,37},
+ {&(_ZTV9GG1232233[31]), 31,37},
+ {&(_ZTV9GG1232233[36]), 36,37},
+ {&(_tg__ZTV5EE123__9GG1232233[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE123__9GG1232233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE123__9GG1232233[3]), 3,4},
+ {&(_tg__ZTV5FF223__9GG1232233[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF223__9GG1232233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF223__9GG1232233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1232233[];
+extern VTBL_ENTRY _ZTV9GG1232233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1232233[];
+static VTBL_ENTRY alt_thunk_names367[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12322333barEv,_ZTv0_n12_N9GG12322333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12322333barEv,_ZThn40_N9GG12322333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12322333barEv,_ZThn24_N9GG12322333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12322333fooEv,_ZTv0_n12_N9GG12322333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12322333fooEv,_ZThn16_N9GG12322333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG12322333barEv,_ZTv0_n24_N9GG12322333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12322333barEv,_ZThn32_N9GG12322333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12322333barEv,_ZThn8_N9GG12322333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12322333fooEv,_ZTv0_n20_N9GG12322333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12322333fooEv,_ZThn32_N9GG12322333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12322333fooEv,_ZThn8_N9GG12322333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1232233 = { "GG1232233", // class name
+ bases_GG1232233, 5,
+ &(vtc_GG1232233[0]), // expected_vtbl_contents
+ &(vtt_GG1232233[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1232233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1232233),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1232233),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names367,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1232313 : virtual EE123 , virtual FF231 {
+ int pg;
+ virtual void foo(); // _ZN9GG12323133fooEv
+ virtual void bar(); // _ZN9GG12323133barEv
+ ~GG1232313(); // tgen
+ GG1232313(); // tgen
+};
+//SIG(1 GG1232313) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1232313 ::foo(){vfunc_called(this, "_ZN9GG12323133fooEv");}
+void GG1232313 ::bar(){vfunc_called(this, "_ZN9GG12323133barEv");}
+GG1232313 ::~GG1232313(){ note_dtor("GG1232313", this);} // tgen
+GG1232313 ::GG1232313(){ note_ctor("GG1232313", this);} // tgen
+
+static void Test_GG1232313()
+{
+ extern Class_Descriptor cd_GG1232313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1232313, buf);
+ GG1232313 *dp, &lv = *(dp=new (buf) GG1232313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1232313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1232313)");
+ check_base_class_offset(lv, (AA1*)(EE123*), ABISELECT(32,16), "GG1232313");
+ check_base_class_offset(lv, (BB2*)(EE123*), ABISELECT(48,24), "GG1232313");
+ check_base_class_offset(lv, (EE123*), ABISELECT(16,8), "GG1232313");
+ check_base_class_offset(lv, (AA2*)(FF231*), ABISELECT(80,40), "GG1232313");
+ check_base_class_offset(lv, (BB3*)(FF231*), ABISELECT(96,48), "GG1232313");
+ check_base_class_offset(lv, (FF231*), ABISELECT(64,32), "GG1232313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1232313.pg");
+ test_class_info(&lv, &cd_GG1232313);
+ dp->~GG1232313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1232313(Test_GG1232313, "GG1232313", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1232313C1Ev();
+extern void _ZN9GG1232313D1Ev();
+Name_Map name_map_GG1232313[] = {
+ NSPAIR(_ZN9GG1232313C1Ev),
+ NSPAIR(_ZN9GG1232313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE123;
+extern VTBL_ENTRY _ZTI5EE123[];
+extern VTBL_ENTRY _ZTV5EE123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE123[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF231;
+extern VTBL_ENTRY _ZTI5FF231[];
+extern VTBL_ENTRY _ZTV5FF231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF231[];
+static Base_Class bases_GG1232313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE123, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF231, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1232313[];
+extern void _ZN9GG12323133fooEv();
+extern void _ZN9GG12323133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12323133fooEv,_ZTv0_n20_N9GG12323133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12323133fooEv,_ZThn8_N9GG12323133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12323133barEv,_ZTv0_n24_N9GG12323133barEv)();
+extern void ABISELECT(_ZThn16_N9GG12323133barEv,_ZThn8_N9GG12323133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12323133fooEv,_ZTv0_n12_N9GG12323133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12323133fooEv,_ZThn16_N9GG12323133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12323133barEv,_ZTv0_n12_N9GG12323133barEv)();
+extern void ABISELECT(_ZThn48_N9GG12323133barEv,_ZThn24_N9GG12323133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12323133fooEv,_ZTv0_n20_N9GG12323133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12323133fooEv,_ZThn32_N9GG12323133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12323133barEv,_ZTv0_n12_N9GG12323133barEv)();
+extern void ABISELECT(_ZThn80_N9GG12323133barEv,_ZThn40_N9GG12323133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12323133fooEv,_ZTv0_n12_N9GG12323133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG12323133fooEv,_ZThn48_N9GG12323133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12323133barEv,_ZTv0_n16_N9GG12323133barEv)();
+extern void ABISELECT(_ZThn96_N9GG12323133barEv,_ZThn48_N9GG12323133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1232313[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1232313[0]),
+ (VTBL_ENTRY)&_ZN9GG12323133fooEv,
+ (VTBL_ENTRY)&_ZN9GG12323133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1232313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12323133fooEv,_ZTv0_n20_N9GG12323133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12323133barEv,_ZTv0_n24_N9GG12323133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1232313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12323133fooEv,_ZTv0_n12_N9GG12323133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1232313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12323133barEv,_ZTv0_n12_N9GG12323133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1232313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12323133fooEv,_ZTv0_n20_N9GG12323133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1232313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12323133barEv,_ZTv0_n12_N9GG12323133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1232313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12323133fooEv,_ZTv0_n12_N9GG12323133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12323133barEv,_ZTv0_n16_N9GG12323133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1232313[];
+extern void _ZN5EE1233fooEv();
+extern void _ZN5EE1233barEv();
+static VTBL_ENTRY _tg__ZTV5EE123__9GG1232313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&_ZN5EE1233fooEv,
+ (VTBL_ENTRY)&_ZN5EE1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE123__9GG1232313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv)();
+extern void ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE123__9GG1232313[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv),
+};
+extern void _ZN5FF2313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF231__9GG1232313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN5FF2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF231__9GG1232313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2313fooEv,_ZThn16_N5FF2313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF231__9GG1232313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG1232313[] = {
+ {&(_ZTV9GG1232313[8]), 8,42},
+ {&(_ZTV9GG1232313[16]), 16,42},
+ {&(_ZTV9GG1232313[21]), 21,42},
+ {&(_ZTV9GG1232313[25]), 25,42},
+ {&(_ZTV9GG1232313[31]), 31,42},
+ {&(_ZTV9GG1232313[35]), 35,42},
+ {&(_ZTV9GG1232313[40]), 40,42},
+ {&(_tg__ZTV5EE123__9GG1232313[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE123__9GG1232313[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE123__9GG1232313[3]), 3,4},
+ {&(_tg__ZTV5FF231__9GG1232313[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF231__9GG1232313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF231__9GG1232313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1232313[];
+extern VTBL_ENTRY _ZTV9GG1232313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1232313[];
+static VTBL_ENTRY alt_thunk_names368[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2313fooEv,_ZThn16_N5FF2313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG12323133barEv,_ZTv0_n16_N9GG12323133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12323133barEv,_ZThn48_N9GG12323133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12323133barEv,_ZTv0_n12_N9GG12323133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12323133barEv,_ZThn40_N9GG12323133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12323133barEv,_ZThn24_N9GG12323133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12323133fooEv,_ZTv0_n12_N9GG12323133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12323133fooEv,_ZThn48_N9GG12323133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12323133fooEv,_ZThn16_N9GG12323133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG12323133barEv,_ZTv0_n24_N9GG12323133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12323133barEv,_ZThn8_N9GG12323133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12323133fooEv,_ZTv0_n20_N9GG12323133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12323133fooEv,_ZThn32_N9GG12323133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12323133fooEv,_ZThn8_N9GG12323133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1232313 = { "GG1232313", // class name
+ bases_GG1232313, 6,
+ &(vtc_GG1232313[0]), // expected_vtbl_contents
+ &(vtt_GG1232313[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1232313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1232313),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1232313),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names368,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1232323 : virtual EE123 , virtual FF232 {
+ int pg;
+ virtual void foo(); // _ZN9GG12323233fooEv
+ virtual void bar(); // _ZN9GG12323233barEv
+ ~GG1232323(); // tgen
+ GG1232323(); // tgen
+};
+//SIG(1 GG1232323) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1232323 ::foo(){vfunc_called(this, "_ZN9GG12323233fooEv");}
+void GG1232323 ::bar(){vfunc_called(this, "_ZN9GG12323233barEv");}
+GG1232323 ::~GG1232323(){ note_dtor("GG1232323", this);} // tgen
+GG1232323 ::GG1232323(){ note_ctor("GG1232323", this);} // tgen
+
+static void Test_GG1232323()
+{
+ extern Class_Descriptor cd_GG1232323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1232323, buf);
+ GG1232323 *dp, &lv = *(dp=new (buf) GG1232323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1232323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1232323)");
+ check_base_class_offset(lv, (AA1*)(EE123*), ABISELECT(32,16), "GG1232323");
+ check_base_class_offset(lv, (BB2*)(EE123*), ABISELECT(48,24), "GG1232323");
+ check_base_class_offset(lv, (EE123*), ABISELECT(16,8), "GG1232323");
+ check_base_class_offset(lv, (AA2*)(FF232*), ABISELECT(80,40), "GG1232323");
+ check_base_class_offset(lv, (BB3*)(FF232*), ABISELECT(96,48), "GG1232323");
+ check_base_class_offset(lv, (FF232*), ABISELECT(64,32), "GG1232323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1232323.pg");
+ test_class_info(&lv, &cd_GG1232323);
+ dp->~GG1232323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1232323(Test_GG1232323, "GG1232323", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1232323C1Ev();
+extern void _ZN9GG1232323D1Ev();
+Name_Map name_map_GG1232323[] = {
+ NSPAIR(_ZN9GG1232323C1Ev),
+ NSPAIR(_ZN9GG1232323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE123;
+extern VTBL_ENTRY _ZTI5EE123[];
+extern VTBL_ENTRY _ZTV5EE123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE123[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF232;
+extern VTBL_ENTRY _ZTI5FF232[];
+extern VTBL_ENTRY _ZTV5FF232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF232[];
+static Base_Class bases_GG1232323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE123, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF232, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1232323[];
+extern void _ZN9GG12323233fooEv();
+extern void _ZN9GG12323233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12323233fooEv,_ZTv0_n20_N9GG12323233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12323233fooEv,_ZThn8_N9GG12323233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12323233barEv,_ZTv0_n24_N9GG12323233barEv)();
+extern void ABISELECT(_ZThn16_N9GG12323233barEv,_ZThn8_N9GG12323233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12323233fooEv,_ZTv0_n12_N9GG12323233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12323233fooEv,_ZThn16_N9GG12323233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12323233barEv,_ZTv0_n12_N9GG12323233barEv)();
+extern void ABISELECT(_ZThn48_N9GG12323233barEv,_ZThn24_N9GG12323233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12323233barEv,_ZTv0_n20_N9GG12323233barEv)();
+extern void ABISELECT(_ZThn64_N9GG12323233barEv,_ZThn32_N9GG12323233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12323233barEv,_ZTv0_n12_N9GG12323233barEv)();
+extern void ABISELECT(_ZThn80_N9GG12323233barEv,_ZThn40_N9GG12323233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12323233fooEv,_ZTv0_n12_N9GG12323233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG12323233fooEv,_ZThn48_N9GG12323233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12323233barEv,_ZTv0_n16_N9GG12323233barEv)();
+extern void ABISELECT(_ZThn96_N9GG12323233barEv,_ZThn48_N9GG12323233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1232323[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1232323[0]),
+ (VTBL_ENTRY)&_ZN9GG12323233fooEv,
+ (VTBL_ENTRY)&_ZN9GG12323233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1232323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12323233fooEv,_ZTv0_n20_N9GG12323233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12323233barEv,_ZTv0_n24_N9GG12323233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1232323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12323233fooEv,_ZTv0_n12_N9GG12323233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1232323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12323233barEv,_ZTv0_n12_N9GG12323233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1232323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12323233barEv,_ZTv0_n20_N9GG12323233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1232323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12323233barEv,_ZTv0_n12_N9GG12323233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1232323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12323233fooEv,_ZTv0_n12_N9GG12323233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12323233barEv,_ZTv0_n16_N9GG12323233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1232323[];
+extern void _ZN5EE1233fooEv();
+extern void _ZN5EE1233barEv();
+static VTBL_ENTRY _tg__ZTV5EE123__9GG1232323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&_ZN5EE1233fooEv,
+ (VTBL_ENTRY)&_ZN5EE1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE123__9GG1232323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv)();
+extern void ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE123__9GG1232323[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv),
+};
+extern void _ZN5FF2323barEv();
+static VTBL_ENTRY _tg__ZTV5FF232__9GG1232323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN5FF2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv)();
+extern void ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF232__9GG1232323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv)();
+extern void ABISELECT(_ZThn32_N5FF2323barEv,_ZThn16_N5FF2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF232__9GG1232323[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv),
+};
+static VTT_ENTRY vtt_GG1232323[] = {
+ {&(_ZTV9GG1232323[8]), 8,42},
+ {&(_ZTV9GG1232323[16]), 16,42},
+ {&(_ZTV9GG1232323[21]), 21,42},
+ {&(_ZTV9GG1232323[25]), 25,42},
+ {&(_ZTV9GG1232323[31]), 31,42},
+ {&(_ZTV9GG1232323[35]), 35,42},
+ {&(_ZTV9GG1232323[40]), 40,42},
+ {&(_tg__ZTV5EE123__9GG1232323[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE123__9GG1232323[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE123__9GG1232323[3]), 3,4},
+ {&(_tg__ZTV5FF232__9GG1232323[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF232__9GG1232323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF232__9GG1232323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1232323[];
+extern VTBL_ENTRY _ZTV9GG1232323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1232323[];
+static VTBL_ENTRY alt_thunk_names369[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2323barEv,_ZThn16_N5FF2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG12323233barEv,_ZTv0_n16_N9GG12323233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12323233barEv,_ZThn48_N9GG12323233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12323233barEv,_ZTv0_n20_N9GG12323233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12323233barEv,_ZThn32_N9GG12323233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12323233barEv,_ZTv0_n12_N9GG12323233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12323233barEv,_ZThn40_N9GG12323233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12323233barEv,_ZThn24_N9GG12323233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12323233fooEv,_ZTv0_n12_N9GG12323233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12323233fooEv,_ZThn48_N9GG12323233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12323233fooEv,_ZThn16_N9GG12323233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG12323233barEv,_ZTv0_n24_N9GG12323233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12323233barEv,_ZThn8_N9GG12323233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12323233fooEv,_ZTv0_n20_N9GG12323233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12323233fooEv,_ZThn8_N9GG12323233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1232323 = { "GG1232323", // class name
+ bases_GG1232323, 6,
+ &(vtc_GG1232323[0]), // expected_vtbl_contents
+ &(vtt_GG1232323[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1232323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1232323),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1232323),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names369,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1232333 : virtual EE123 , virtual FF233 {
+ int pg;
+ virtual void foo(); // _ZN9GG12323333fooEv
+ virtual void bar(); // _ZN9GG12323333barEv
+ ~GG1232333(); // tgen
+ GG1232333(); // tgen
+};
+//SIG(1 GG1232333) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1232333 ::foo(){vfunc_called(this, "_ZN9GG12323333fooEv");}
+void GG1232333 ::bar(){vfunc_called(this, "_ZN9GG12323333barEv");}
+GG1232333 ::~GG1232333(){ note_dtor("GG1232333", this);} // tgen
+GG1232333 ::GG1232333(){ note_ctor("GG1232333", this);} // tgen
+
+static void Test_GG1232333()
+{
+ extern Class_Descriptor cd_GG1232333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1232333, buf);
+ GG1232333 *dp, &lv = *(dp=new (buf) GG1232333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1232333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1232333)");
+ check_base_class_offset(lv, (AA1*)(EE123*), ABISELECT(32,16), "GG1232333");
+ check_base_class_offset(lv, (BB2*)(EE123*), ABISELECT(48,24), "GG1232333");
+ check_base_class_offset(lv, (EE123*), ABISELECT(16,8), "GG1232333");
+ check_base_class_offset(lv, (AA2*)(FF233*), ABISELECT(80,40), "GG1232333");
+ check_base_class_offset(lv, (BB3*)(FF233*), ABISELECT(96,48), "GG1232333");
+ check_base_class_offset(lv, (FF233*), ABISELECT(64,32), "GG1232333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1232333.pg");
+ test_class_info(&lv, &cd_GG1232333);
+ dp->~GG1232333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1232333(Test_GG1232333, "GG1232333", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1232333C1Ev();
+extern void _ZN9GG1232333D1Ev();
+Name_Map name_map_GG1232333[] = {
+ NSPAIR(_ZN9GG1232333C1Ev),
+ NSPAIR(_ZN9GG1232333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE123;
+extern VTBL_ENTRY _ZTI5EE123[];
+extern VTBL_ENTRY _ZTV5EE123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE123[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF233;
+extern VTBL_ENTRY _ZTI5FF233[];
+extern VTBL_ENTRY _ZTV5FF233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF233[];
+static Base_Class bases_GG1232333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE123, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF233, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1232333[];
+extern void _ZN9GG12323333fooEv();
+extern void _ZN9GG12323333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12323333fooEv,_ZTv0_n20_N9GG12323333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12323333fooEv,_ZThn8_N9GG12323333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12323333barEv,_ZTv0_n24_N9GG12323333barEv)();
+extern void ABISELECT(_ZThn16_N9GG12323333barEv,_ZThn8_N9GG12323333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12323333fooEv,_ZTv0_n12_N9GG12323333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12323333fooEv,_ZThn16_N9GG12323333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12323333barEv,_ZTv0_n12_N9GG12323333barEv)();
+extern void ABISELECT(_ZThn48_N9GG12323333barEv,_ZThn24_N9GG12323333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12323333fooEv,_ZTv0_n20_N9GG12323333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12323333fooEv,_ZThn32_N9GG12323333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12323333barEv,_ZTv0_n24_N9GG12323333barEv)();
+extern void ABISELECT(_ZThn64_N9GG12323333barEv,_ZThn32_N9GG12323333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12323333barEv,_ZTv0_n12_N9GG12323333barEv)();
+extern void ABISELECT(_ZThn80_N9GG12323333barEv,_ZThn40_N9GG12323333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12323333fooEv,_ZTv0_n12_N9GG12323333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG12323333fooEv,_ZThn48_N9GG12323333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12323333barEv,_ZTv0_n16_N9GG12323333barEv)();
+extern void ABISELECT(_ZThn96_N9GG12323333barEv,_ZThn48_N9GG12323333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1232333[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1232333[0]),
+ (VTBL_ENTRY)&_ZN9GG12323333fooEv,
+ (VTBL_ENTRY)&_ZN9GG12323333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1232333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12323333fooEv,_ZTv0_n20_N9GG12323333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12323333barEv,_ZTv0_n24_N9GG12323333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1232333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12323333fooEv,_ZTv0_n12_N9GG12323333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1232333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12323333barEv,_ZTv0_n12_N9GG12323333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1232333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12323333fooEv,_ZTv0_n20_N9GG12323333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12323333barEv,_ZTv0_n24_N9GG12323333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1232333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12323333barEv,_ZTv0_n12_N9GG12323333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1232333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12323333fooEv,_ZTv0_n12_N9GG12323333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12323333barEv,_ZTv0_n16_N9GG12323333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1232333[];
+extern void _ZN5EE1233fooEv();
+extern void _ZN5EE1233barEv();
+static VTBL_ENTRY _tg__ZTV5EE123__9GG1232333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&_ZN5EE1233fooEv,
+ (VTBL_ENTRY)&_ZN5EE1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE123__9GG1232333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv)();
+extern void ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE123__9GG1232333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv),
+};
+extern void _ZN5FF2333fooEv();
+extern void _ZN5FF2333barEv();
+static VTBL_ENTRY _tg__ZTV5FF233__9GG1232333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&_ZN5FF2333fooEv,
+ (VTBL_ENTRY)&_ZN5FF2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv)();
+extern void ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF233__9GG1232333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2333fooEv,_ZThn16_N5FF2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv)();
+extern void ABISELECT(_ZThn32_N5FF2333barEv,_ZThn16_N5FF2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF233__9GG1232333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv),
+};
+static VTT_ENTRY vtt_GG1232333[] = {
+ {&(_ZTV9GG1232333[8]), 8,44},
+ {&(_ZTV9GG1232333[16]), 16,44},
+ {&(_ZTV9GG1232333[21]), 21,44},
+ {&(_ZTV9GG1232333[25]), 25,44},
+ {&(_ZTV9GG1232333[32]), 32,44},
+ {&(_ZTV9GG1232333[37]), 37,44},
+ {&(_ZTV9GG1232333[42]), 42,44},
+ {&(_tg__ZTV5EE123__9GG1232333[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE123__9GG1232333[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE123__9GG1232333[3]), 3,4},
+ {&(_tg__ZTV5FF233__9GG1232333[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF233__9GG1232333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF233__9GG1232333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1232333[];
+extern VTBL_ENTRY _ZTV9GG1232333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1232333[];
+static VTBL_ENTRY alt_thunk_names370[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2333barEv,_ZThn16_N5FF2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2333fooEv,_ZThn16_N5FF2333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG12323333barEv,_ZTv0_n16_N9GG12323333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12323333barEv,_ZThn48_N9GG12323333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12323333barEv,_ZTv0_n12_N9GG12323333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12323333barEv,_ZThn40_N9GG12323333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12323333barEv,_ZThn24_N9GG12323333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12323333fooEv,_ZTv0_n12_N9GG12323333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12323333fooEv,_ZThn48_N9GG12323333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12323333fooEv,_ZThn16_N9GG12323333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG12323333barEv,_ZTv0_n24_N9GG12323333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12323333barEv,_ZThn32_N9GG12323333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12323333barEv,_ZThn8_N9GG12323333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12323333fooEv,_ZTv0_n20_N9GG12323333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12323333fooEv,_ZThn32_N9GG12323333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12323333fooEv,_ZThn8_N9GG12323333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1232333 = { "GG1232333", // class name
+ bases_GG1232333, 6,
+ &(vtc_GG1232333[0]), // expected_vtbl_contents
+ &(vtt_GG1232333[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1232333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1232333),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1232333),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names370,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1233113 : virtual EE123 , virtual FF311 {
+ int pg;
+ virtual void foo(); // _ZN9GG12331133fooEv
+ virtual void bar(); // _ZN9GG12331133barEv
+ ~GG1233113(); // tgen
+ GG1233113(); // tgen
+};
+//SIG(1 GG1233113) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1233113 ::foo(){vfunc_called(this, "_ZN9GG12331133fooEv");}
+void GG1233113 ::bar(){vfunc_called(this, "_ZN9GG12331133barEv");}
+GG1233113 ::~GG1233113(){ note_dtor("GG1233113", this);} // tgen
+GG1233113 ::GG1233113(){ note_ctor("GG1233113", this);} // tgen
+
+static void Test_GG1233113()
+{
+ extern Class_Descriptor cd_GG1233113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1233113, buf);
+ GG1233113 *dp, &lv = *(dp=new (buf) GG1233113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1233113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1233113)");
+ check_base_class_offset(lv, (AA1*)(EE123*), ABISELECT(32,16), "GG1233113");
+ check_base_class_offset(lv, (BB2*)(EE123*), ABISELECT(48,24), "GG1233113");
+ check_base_class_offset(lv, (EE123*), ABISELECT(16,8), "GG1233113");
+ check_base_class_offset(lv, (AA3*)(FF311*), ABISELECT(80,40), "GG1233113");
+ check_base_class_offset(lv, (BB1*)(FF311*), ABISELECT(96,48), "GG1233113");
+ check_base_class_offset(lv, (FF311*), ABISELECT(64,32), "GG1233113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1233113.pg");
+ test_class_info(&lv, &cd_GG1233113);
+ dp->~GG1233113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1233113(Test_GG1233113, "GG1233113", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1233113C1Ev();
+extern void _ZN9GG1233113D1Ev();
+Name_Map name_map_GG1233113[] = {
+ NSPAIR(_ZN9GG1233113C1Ev),
+ NSPAIR(_ZN9GG1233113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE123;
+extern VTBL_ENTRY _ZTI5EE123[];
+extern VTBL_ENTRY _ZTV5EE123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE123[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF311;
+extern VTBL_ENTRY _ZTI5FF311[];
+extern VTBL_ENTRY _ZTV5FF311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF311[];
+static Base_Class bases_GG1233113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE123, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF311, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1233113[];
+extern void _ZN9GG12331133fooEv();
+extern void _ZN9GG12331133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12331133fooEv,_ZTv0_n20_N9GG12331133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12331133fooEv,_ZThn8_N9GG12331133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12331133barEv,_ZTv0_n24_N9GG12331133barEv)();
+extern void ABISELECT(_ZThn16_N9GG12331133barEv,_ZThn8_N9GG12331133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12331133fooEv,_ZTv0_n12_N9GG12331133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12331133fooEv,_ZThn16_N9GG12331133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12331133barEv,_ZTv0_n12_N9GG12331133barEv)();
+extern void ABISELECT(_ZThn48_N9GG12331133barEv,_ZThn24_N9GG12331133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12331133fooEv,_ZTv0_n20_N9GG12331133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12331133fooEv,_ZThn32_N9GG12331133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12331133fooEv,_ZTv0_n12_N9GG12331133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG12331133fooEv,_ZThn40_N9GG12331133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12331133barEv,_ZTv0_n16_N9GG12331133barEv)();
+extern void ABISELECT(_ZThn80_N9GG12331133barEv,_ZThn40_N9GG12331133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12331133fooEv,_ZTv0_n12_N9GG12331133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG12331133fooEv,_ZThn48_N9GG12331133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1233113[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1233113[0]),
+ (VTBL_ENTRY)&_ZN9GG12331133fooEv,
+ (VTBL_ENTRY)&_ZN9GG12331133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1233113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12331133fooEv,_ZTv0_n20_N9GG12331133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12331133barEv,_ZTv0_n24_N9GG12331133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1233113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12331133fooEv,_ZTv0_n12_N9GG12331133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1233113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12331133barEv,_ZTv0_n12_N9GG12331133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1233113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12331133fooEv,_ZTv0_n20_N9GG12331133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1233113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12331133fooEv,_ZTv0_n12_N9GG12331133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12331133barEv,_ZTv0_n16_N9GG12331133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1233113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12331133fooEv,_ZTv0_n12_N9GG12331133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1233113[];
+extern void _ZN5EE1233fooEv();
+extern void _ZN5EE1233barEv();
+static VTBL_ENTRY _tg__ZTV5EE123__9GG1233113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&_ZN5EE1233fooEv,
+ (VTBL_ENTRY)&_ZN5EE1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE123__9GG1233113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv)();
+extern void ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE123__9GG1233113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv),
+};
+extern void _ZN5FF3113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF311__9GG1233113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&_ZN5FF3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF311__9GG1233113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3113fooEv,_ZThn16_N5FF3113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF311__9GG1233113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+};
+static VTT_ENTRY vtt_GG1233113[] = {
+ {&(_ZTV9GG1233113[8]), 8,42},
+ {&(_ZTV9GG1233113[16]), 16,42},
+ {&(_ZTV9GG1233113[21]), 21,42},
+ {&(_ZTV9GG1233113[25]), 25,42},
+ {&(_ZTV9GG1233113[31]), 31,42},
+ {&(_ZTV9GG1233113[36]), 36,42},
+ {&(_ZTV9GG1233113[41]), 41,42},
+ {&(_tg__ZTV5EE123__9GG1233113[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE123__9GG1233113[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE123__9GG1233113[3]), 3,4},
+ {&(_tg__ZTV5FF311__9GG1233113[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF311__9GG1233113[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF311__9GG1233113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1233113[];
+extern VTBL_ENTRY _ZTV9GG1233113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1233113[];
+static VTBL_ENTRY alt_thunk_names371[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3113fooEv,_ZThn16_N5FF3113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG12331133barEv,_ZTv0_n16_N9GG12331133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12331133barEv,_ZThn40_N9GG12331133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12331133barEv,_ZTv0_n12_N9GG12331133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12331133barEv,_ZThn24_N9GG12331133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12331133fooEv,_ZTv0_n12_N9GG12331133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12331133fooEv,_ZThn48_N9GG12331133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12331133fooEv,_ZThn40_N9GG12331133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12331133fooEv,_ZThn16_N9GG12331133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG12331133barEv,_ZTv0_n24_N9GG12331133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12331133barEv,_ZThn8_N9GG12331133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12331133fooEv,_ZTv0_n20_N9GG12331133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12331133fooEv,_ZThn32_N9GG12331133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12331133fooEv,_ZThn8_N9GG12331133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1233113 = { "GG1233113", // class name
+ bases_GG1233113, 6,
+ &(vtc_GG1233113[0]), // expected_vtbl_contents
+ &(vtt_GG1233113[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1233113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1233113),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1233113),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names371,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1233123 : virtual EE123 , virtual FF312 {
+ int pg;
+ virtual void foo(); // _ZN9GG12331233fooEv
+ virtual void bar(); // _ZN9GG12331233barEv
+ ~GG1233123(); // tgen
+ GG1233123(); // tgen
+};
+//SIG(1 GG1233123) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1233123 ::foo(){vfunc_called(this, "_ZN9GG12331233fooEv");}
+void GG1233123 ::bar(){vfunc_called(this, "_ZN9GG12331233barEv");}
+GG1233123 ::~GG1233123(){ note_dtor("GG1233123", this);} // tgen
+GG1233123 ::GG1233123(){ note_ctor("GG1233123", this);} // tgen
+
+static void Test_GG1233123()
+{
+ extern Class_Descriptor cd_GG1233123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1233123, buf);
+ GG1233123 *dp, &lv = *(dp=new (buf) GG1233123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1233123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1233123)");
+ check_base_class_offset(lv, (AA1*)(EE123*), ABISELECT(32,16), "GG1233123");
+ check_base_class_offset(lv, (BB2*)(EE123*), ABISELECT(48,24), "GG1233123");
+ check_base_class_offset(lv, (EE123*), ABISELECT(16,8), "GG1233123");
+ check_base_class_offset(lv, (AA3*)(FF312*), ABISELECT(80,40), "GG1233123");
+ check_base_class_offset(lv, (BB1*)(FF312*), ABISELECT(96,48), "GG1233123");
+ check_base_class_offset(lv, (FF312*), ABISELECT(64,32), "GG1233123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1233123.pg");
+ test_class_info(&lv, &cd_GG1233123);
+ dp->~GG1233123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1233123(Test_GG1233123, "GG1233123", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1233123C1Ev();
+extern void _ZN9GG1233123D1Ev();
+Name_Map name_map_GG1233123[] = {
+ NSPAIR(_ZN9GG1233123C1Ev),
+ NSPAIR(_ZN9GG1233123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE123;
+extern VTBL_ENTRY _ZTI5EE123[];
+extern VTBL_ENTRY _ZTV5EE123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE123[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF312;
+extern VTBL_ENTRY _ZTI5FF312[];
+extern VTBL_ENTRY _ZTV5FF312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF312[];
+static Base_Class bases_GG1233123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE123, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF312, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1233123[];
+extern void _ZN9GG12331233fooEv();
+extern void _ZN9GG12331233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12331233fooEv,_ZTv0_n20_N9GG12331233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12331233fooEv,_ZThn8_N9GG12331233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12331233barEv,_ZTv0_n24_N9GG12331233barEv)();
+extern void ABISELECT(_ZThn16_N9GG12331233barEv,_ZThn8_N9GG12331233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12331233fooEv,_ZTv0_n12_N9GG12331233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12331233fooEv,_ZThn16_N9GG12331233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12331233barEv,_ZTv0_n12_N9GG12331233barEv)();
+extern void ABISELECT(_ZThn48_N9GG12331233barEv,_ZThn24_N9GG12331233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12331233barEv,_ZTv0_n20_N9GG12331233barEv)();
+extern void ABISELECT(_ZThn64_N9GG12331233barEv,_ZThn32_N9GG12331233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12331233fooEv,_ZTv0_n12_N9GG12331233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG12331233fooEv,_ZThn40_N9GG12331233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12331233barEv,_ZTv0_n16_N9GG12331233barEv)();
+extern void ABISELECT(_ZThn80_N9GG12331233barEv,_ZThn40_N9GG12331233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12331233fooEv,_ZTv0_n12_N9GG12331233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG12331233fooEv,_ZThn48_N9GG12331233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1233123[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1233123[0]),
+ (VTBL_ENTRY)&_ZN9GG12331233fooEv,
+ (VTBL_ENTRY)&_ZN9GG12331233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1233123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12331233fooEv,_ZTv0_n20_N9GG12331233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12331233barEv,_ZTv0_n24_N9GG12331233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1233123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12331233fooEv,_ZTv0_n12_N9GG12331233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1233123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12331233barEv,_ZTv0_n12_N9GG12331233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1233123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12331233barEv,_ZTv0_n20_N9GG12331233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1233123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12331233fooEv,_ZTv0_n12_N9GG12331233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12331233barEv,_ZTv0_n16_N9GG12331233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1233123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12331233fooEv,_ZTv0_n12_N9GG12331233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1233123[];
+extern void _ZN5EE1233fooEv();
+extern void _ZN5EE1233barEv();
+static VTBL_ENTRY _tg__ZTV5EE123__9GG1233123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&_ZN5EE1233fooEv,
+ (VTBL_ENTRY)&_ZN5EE1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE123__9GG1233123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv)();
+extern void ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE123__9GG1233123[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv),
+};
+extern void _ZN5FF3123barEv();
+static VTBL_ENTRY _tg__ZTV5FF312__9GG1233123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN5FF3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv)();
+extern void ABISELECT(_ZThn16_N5FF3123barEv,_ZThn8_N5FF3123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF312__9GG1233123[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF312__9GG1233123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG1233123[] = {
+ {&(_ZTV9GG1233123[8]), 8,42},
+ {&(_ZTV9GG1233123[16]), 16,42},
+ {&(_ZTV9GG1233123[21]), 21,42},
+ {&(_ZTV9GG1233123[25]), 25,42},
+ {&(_ZTV9GG1233123[31]), 31,42},
+ {&(_ZTV9GG1233123[36]), 36,42},
+ {&(_ZTV9GG1233123[41]), 41,42},
+ {&(_tg__ZTV5EE123__9GG1233123[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE123__9GG1233123[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE123__9GG1233123[3]), 3,4},
+ {&(_tg__ZTV5FF312__9GG1233123[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF312__9GG1233123[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF312__9GG1233123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1233123[];
+extern VTBL_ENTRY _ZTV9GG1233123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1233123[];
+static VTBL_ENTRY alt_thunk_names372[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3123barEv,_ZThn8_N5FF3123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG12331233barEv,_ZTv0_n16_N9GG12331233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12331233barEv,_ZThn40_N9GG12331233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12331233barEv,_ZTv0_n20_N9GG12331233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12331233barEv,_ZThn32_N9GG12331233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12331233barEv,_ZTv0_n12_N9GG12331233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12331233barEv,_ZThn24_N9GG12331233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12331233fooEv,_ZTv0_n12_N9GG12331233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12331233fooEv,_ZThn48_N9GG12331233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12331233fooEv,_ZThn40_N9GG12331233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12331233fooEv,_ZThn16_N9GG12331233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG12331233barEv,_ZTv0_n24_N9GG12331233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12331233barEv,_ZThn8_N9GG12331233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12331233fooEv,_ZTv0_n20_N9GG12331233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12331233fooEv,_ZThn8_N9GG12331233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1233123 = { "GG1233123", // class name
+ bases_GG1233123, 6,
+ &(vtc_GG1233123[0]), // expected_vtbl_contents
+ &(vtt_GG1233123[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1233123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1233123),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1233123),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names372,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1233133 : virtual EE123 , virtual FF313 {
+ int pg;
+ virtual void foo(); // _ZN9GG12331333fooEv
+ virtual void bar(); // _ZN9GG12331333barEv
+ ~GG1233133(); // tgen
+ GG1233133(); // tgen
+};
+//SIG(1 GG1233133) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1233133 ::foo(){vfunc_called(this, "_ZN9GG12331333fooEv");}
+void GG1233133 ::bar(){vfunc_called(this, "_ZN9GG12331333barEv");}
+GG1233133 ::~GG1233133(){ note_dtor("GG1233133", this);} // tgen
+GG1233133 ::GG1233133(){ note_ctor("GG1233133", this);} // tgen
+
+static void Test_GG1233133()
+{
+ extern Class_Descriptor cd_GG1233133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1233133, buf);
+ GG1233133 *dp, &lv = *(dp=new (buf) GG1233133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1233133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1233133)");
+ check_base_class_offset(lv, (AA1*)(EE123*), ABISELECT(32,16), "GG1233133");
+ check_base_class_offset(lv, (BB2*)(EE123*), ABISELECT(48,24), "GG1233133");
+ check_base_class_offset(lv, (EE123*), ABISELECT(16,8), "GG1233133");
+ check_base_class_offset(lv, (AA3*)(FF313*), ABISELECT(80,40), "GG1233133");
+ check_base_class_offset(lv, (BB1*)(FF313*), ABISELECT(96,48), "GG1233133");
+ check_base_class_offset(lv, (FF313*), ABISELECT(64,32), "GG1233133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1233133.pg");
+ test_class_info(&lv, &cd_GG1233133);
+ dp->~GG1233133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1233133(Test_GG1233133, "GG1233133", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1233133C1Ev();
+extern void _ZN9GG1233133D1Ev();
+Name_Map name_map_GG1233133[] = {
+ NSPAIR(_ZN9GG1233133C1Ev),
+ NSPAIR(_ZN9GG1233133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE123;
+extern VTBL_ENTRY _ZTI5EE123[];
+extern VTBL_ENTRY _ZTV5EE123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE123[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF313;
+extern VTBL_ENTRY _ZTI5FF313[];
+extern VTBL_ENTRY _ZTV5FF313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF313[];
+static Base_Class bases_GG1233133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE123, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 40, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF313, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1233133[];
+extern void _ZN9GG12331333fooEv();
+extern void _ZN9GG12331333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12331333fooEv,_ZTv0_n20_N9GG12331333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12331333fooEv,_ZThn8_N9GG12331333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12331333barEv,_ZTv0_n24_N9GG12331333barEv)();
+extern void ABISELECT(_ZThn16_N9GG12331333barEv,_ZThn8_N9GG12331333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12331333fooEv,_ZTv0_n12_N9GG12331333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12331333fooEv,_ZThn16_N9GG12331333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12331333barEv,_ZTv0_n12_N9GG12331333barEv)();
+extern void ABISELECT(_ZThn48_N9GG12331333barEv,_ZThn24_N9GG12331333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12331333fooEv,_ZTv0_n20_N9GG12331333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12331333fooEv,_ZThn32_N9GG12331333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12331333barEv,_ZTv0_n24_N9GG12331333barEv)();
+extern void ABISELECT(_ZThn64_N9GG12331333barEv,_ZThn32_N9GG12331333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12331333fooEv,_ZTv0_n12_N9GG12331333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG12331333fooEv,_ZThn40_N9GG12331333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12331333barEv,_ZTv0_n16_N9GG12331333barEv)();
+extern void ABISELECT(_ZThn80_N9GG12331333barEv,_ZThn40_N9GG12331333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12331333fooEv,_ZTv0_n12_N9GG12331333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG12331333fooEv,_ZThn48_N9GG12331333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1233133[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1233133[0]),
+ (VTBL_ENTRY)&_ZN9GG12331333fooEv,
+ (VTBL_ENTRY)&_ZN9GG12331333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1233133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12331333fooEv,_ZTv0_n20_N9GG12331333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12331333barEv,_ZTv0_n24_N9GG12331333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1233133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12331333fooEv,_ZTv0_n12_N9GG12331333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1233133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12331333barEv,_ZTv0_n12_N9GG12331333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1233133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12331333fooEv,_ZTv0_n20_N9GG12331333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12331333barEv,_ZTv0_n24_N9GG12331333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1233133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12331333fooEv,_ZTv0_n12_N9GG12331333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12331333barEv,_ZTv0_n16_N9GG12331333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1233133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12331333fooEv,_ZTv0_n12_N9GG12331333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1233133[];
+extern void _ZN5EE1233fooEv();
+extern void _ZN5EE1233barEv();
+static VTBL_ENTRY _tg__ZTV5EE123__9GG1233133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&_ZN5EE1233fooEv,
+ (VTBL_ENTRY)&_ZN5EE1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE123__9GG1233133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv)();
+extern void ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE123__9GG1233133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv),
+};
+extern void _ZN5FF3133fooEv();
+extern void _ZN5FF3133barEv();
+static VTBL_ENTRY _tg__ZTV5FF313__9GG1233133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&_ZN5FF3133fooEv,
+ (VTBL_ENTRY)&_ZN5FF3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv)();
+extern void ABISELECT(_ZThn16_N5FF3133barEv,_ZThn8_N5FF3133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF313__9GG1233133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3133fooEv,_ZThn16_N5FF3133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF313__9GG1233133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+};
+static VTT_ENTRY vtt_GG1233133[] = {
+ {&(_ZTV9GG1233133[8]), 8,44},
+ {&(_ZTV9GG1233133[16]), 16,44},
+ {&(_ZTV9GG1233133[21]), 21,44},
+ {&(_ZTV9GG1233133[25]), 25,44},
+ {&(_ZTV9GG1233133[32]), 32,44},
+ {&(_ZTV9GG1233133[38]), 38,44},
+ {&(_ZTV9GG1233133[43]), 43,44},
+ {&(_tg__ZTV5EE123__9GG1233133[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE123__9GG1233133[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE123__9GG1233133[3]), 3,4},
+ {&(_tg__ZTV5FF313__9GG1233133[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF313__9GG1233133[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF313__9GG1233133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1233133[];
+extern VTBL_ENTRY _ZTV9GG1233133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1233133[];
+static VTBL_ENTRY alt_thunk_names373[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3133barEv,_ZThn8_N5FF3133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3133fooEv,_ZThn16_N5FF3133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG12331333barEv,_ZTv0_n16_N9GG12331333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12331333barEv,_ZThn40_N9GG12331333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12331333barEv,_ZTv0_n12_N9GG12331333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12331333barEv,_ZThn24_N9GG12331333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12331333fooEv,_ZTv0_n12_N9GG12331333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12331333fooEv,_ZThn48_N9GG12331333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12331333fooEv,_ZThn40_N9GG12331333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12331333fooEv,_ZThn16_N9GG12331333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG12331333barEv,_ZTv0_n24_N9GG12331333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12331333barEv,_ZThn32_N9GG12331333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12331333barEv,_ZThn8_N9GG12331333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12331333fooEv,_ZTv0_n20_N9GG12331333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12331333fooEv,_ZThn32_N9GG12331333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12331333fooEv,_ZThn8_N9GG12331333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1233133 = { "GG1233133", // class name
+ bases_GG1233133, 6,
+ &(vtc_GG1233133[0]), // expected_vtbl_contents
+ &(vtt_GG1233133[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1233133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1233133),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1233133),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names373,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1233213 : virtual EE123 , virtual FF321 {
+ int pg;
+ virtual void foo(); // _ZN9GG12332133fooEv
+ virtual void bar(); // _ZN9GG12332133barEv
+ ~GG1233213(); // tgen
+ GG1233213(); // tgen
+};
+//SIG(1 GG1233213) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG1233213 ::foo(){vfunc_called(this, "_ZN9GG12332133fooEv");}
+void GG1233213 ::bar(){vfunc_called(this, "_ZN9GG12332133barEv");}
+GG1233213 ::~GG1233213(){ note_dtor("GG1233213", this);} // tgen
+GG1233213 ::GG1233213(){ note_ctor("GG1233213", this);} // tgen
+
+static void Test_GG1233213()
+{
+ extern Class_Descriptor cd_GG1233213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1233213, buf);
+ GG1233213 *dp, &lv = *(dp=new (buf) GG1233213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1233213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1233213)");
+ check_base_class_offset(lv, (AA1*)(EE123*), ABISELECT(32,16), "GG1233213");
+ check_base_class_offset(lv, (BB2*)(EE123*), ABISELECT(48,24), "GG1233213");
+ check_base_class_offset(lv, (BB2*)(FF321*), ABISELECT(48,24), "GG1233213");
+ check_base_class_offset(lv, (EE123*), ABISELECT(16,8), "GG1233213");
+ check_base_class_offset(lv, (AA3*)(FF321*), ABISELECT(80,40), "GG1233213");
+ check_base_class_offset(lv, (FF321*), ABISELECT(64,32), "GG1233213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1233213.pg");
+ test_class_info(&lv, &cd_GG1233213);
+ dp->~GG1233213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1233213(Test_GG1233213, "GG1233213", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1233213C1Ev();
+extern void _ZN9GG1233213D1Ev();
+Name_Map name_map_GG1233213[] = {
+ NSPAIR(_ZN9GG1233213C1Ev),
+ NSPAIR(_ZN9GG1233213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE123;
+extern VTBL_ENTRY _ZTI5EE123[];
+extern VTBL_ENTRY _ZTV5EE123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE123[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF321;
+extern VTBL_ENTRY _ZTI5FF321[];
+extern VTBL_ENTRY _ZTV5FF321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF321[];
+static Base_Class bases_GG1233213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE123, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF321, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1233213[];
+extern void _ZN9GG12332133fooEv();
+extern void _ZN9GG12332133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12332133fooEv,_ZTv0_n20_N9GG12332133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12332133fooEv,_ZThn8_N9GG12332133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12332133barEv,_ZTv0_n24_N9GG12332133barEv)();
+extern void ABISELECT(_ZThn16_N9GG12332133barEv,_ZThn8_N9GG12332133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12332133fooEv,_ZTv0_n12_N9GG12332133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12332133fooEv,_ZThn16_N9GG12332133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12332133barEv,_ZTv0_n12_N9GG12332133barEv)();
+extern void ABISELECT(_ZThn48_N9GG12332133barEv,_ZThn24_N9GG12332133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12332133fooEv,_ZTv0_n20_N9GG12332133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12332133fooEv,_ZThn32_N9GG12332133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12332133fooEv,_ZTv0_n12_N9GG12332133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG12332133fooEv,_ZThn40_N9GG12332133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12332133barEv,_ZTv0_n16_N9GG12332133barEv)();
+extern void ABISELECT(_ZThn80_N9GG12332133barEv,_ZThn40_N9GG12332133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1233213[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1233213[0]),
+ (VTBL_ENTRY)&_ZN9GG12332133fooEv,
+ (VTBL_ENTRY)&_ZN9GG12332133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1233213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12332133fooEv,_ZTv0_n20_N9GG12332133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12332133barEv,_ZTv0_n24_N9GG12332133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1233213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12332133fooEv,_ZTv0_n12_N9GG12332133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1233213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12332133barEv,_ZTv0_n12_N9GG12332133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1233213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12332133fooEv,_ZTv0_n20_N9GG12332133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1233213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12332133fooEv,_ZTv0_n12_N9GG12332133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12332133barEv,_ZTv0_n16_N9GG12332133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1233213[];
+extern void _ZN5EE1233fooEv();
+extern void _ZN5EE1233barEv();
+static VTBL_ENTRY _tg__ZTV5EE123__9GG1233213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&_ZN5EE1233fooEv,
+ (VTBL_ENTRY)&_ZN5EE1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE123__9GG1233213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv)();
+extern void ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE123__9GG1233213[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv),
+};
+extern void _ZN5FF3213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF321__9GG1233213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN5FF3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3213fooEv,_ZThn8_N5FF3213fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF321__9GG1233213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF321__9GG1233213[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG1233213[] = {
+ {&(_ZTV9GG1233213[7]), 7,37},
+ {&(_ZTV9GG1233213[15]), 15,37},
+ {&(_ZTV9GG1233213[20]), 20,37},
+ {&(_ZTV9GG1233213[24]), 24,37},
+ {&(_ZTV9GG1233213[30]), 30,37},
+ {&(_ZTV9GG1233213[35]), 35,37},
+ {&(_tg__ZTV5EE123__9GG1233213[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE123__9GG1233213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE123__9GG1233213[3]), 3,4},
+ {&(_tg__ZTV5FF321__9GG1233213[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF321__9GG1233213[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF321__9GG1233213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1233213[];
+extern VTBL_ENTRY _ZTV9GG1233213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1233213[];
+static VTBL_ENTRY alt_thunk_names374[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3213fooEv,_ZThn8_N5FF3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG12332133barEv,_ZTv0_n16_N9GG12332133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12332133barEv,_ZThn40_N9GG12332133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12332133barEv,_ZTv0_n12_N9GG12332133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12332133barEv,_ZThn24_N9GG12332133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12332133fooEv,_ZTv0_n12_N9GG12332133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12332133fooEv,_ZThn40_N9GG12332133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12332133fooEv,_ZThn16_N9GG12332133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG12332133barEv,_ZTv0_n24_N9GG12332133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12332133barEv,_ZThn8_N9GG12332133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12332133fooEv,_ZTv0_n20_N9GG12332133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12332133fooEv,_ZThn32_N9GG12332133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12332133fooEv,_ZThn8_N9GG12332133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1233213 = { "GG1233213", // class name
+ bases_GG1233213, 5,
+ &(vtc_GG1233213[0]), // expected_vtbl_contents
+ &(vtt_GG1233213[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1233213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1233213),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1233213),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names374,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1233223 : virtual EE123 , virtual FF322 {
+ int pg;
+ virtual void foo(); // _ZN9GG12332233fooEv
+ virtual void bar(); // _ZN9GG12332233barEv
+ ~GG1233223(); // tgen
+ GG1233223(); // tgen
+};
+//SIG(1 GG1233223) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG1233223 ::foo(){vfunc_called(this, "_ZN9GG12332233fooEv");}
+void GG1233223 ::bar(){vfunc_called(this, "_ZN9GG12332233barEv");}
+GG1233223 ::~GG1233223(){ note_dtor("GG1233223", this);} // tgen
+GG1233223 ::GG1233223(){ note_ctor("GG1233223", this);} // tgen
+
+static void Test_GG1233223()
+{
+ extern Class_Descriptor cd_GG1233223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1233223, buf);
+ GG1233223 *dp, &lv = *(dp=new (buf) GG1233223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1233223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1233223)");
+ check_base_class_offset(lv, (AA1*)(EE123*), ABISELECT(32,16), "GG1233223");
+ check_base_class_offset(lv, (BB2*)(EE123*), ABISELECT(48,24), "GG1233223");
+ check_base_class_offset(lv, (BB2*)(FF322*), ABISELECT(48,24), "GG1233223");
+ check_base_class_offset(lv, (EE123*), ABISELECT(16,8), "GG1233223");
+ check_base_class_offset(lv, (AA3*)(FF322*), ABISELECT(80,40), "GG1233223");
+ check_base_class_offset(lv, (FF322*), ABISELECT(64,32), "GG1233223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1233223.pg");
+ test_class_info(&lv, &cd_GG1233223);
+ dp->~GG1233223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1233223(Test_GG1233223, "GG1233223", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1233223C1Ev();
+extern void _ZN9GG1233223D1Ev();
+Name_Map name_map_GG1233223[] = {
+ NSPAIR(_ZN9GG1233223C1Ev),
+ NSPAIR(_ZN9GG1233223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE123;
+extern VTBL_ENTRY _ZTI5EE123[];
+extern VTBL_ENTRY _ZTV5EE123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE123[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF322;
+extern VTBL_ENTRY _ZTI5FF322[];
+extern VTBL_ENTRY _ZTV5FF322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF322[];
+static Base_Class bases_GG1233223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE123, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF322, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1233223[];
+extern void _ZN9GG12332233fooEv();
+extern void _ZN9GG12332233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12332233fooEv,_ZTv0_n20_N9GG12332233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12332233fooEv,_ZThn8_N9GG12332233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12332233barEv,_ZTv0_n24_N9GG12332233barEv)();
+extern void ABISELECT(_ZThn16_N9GG12332233barEv,_ZThn8_N9GG12332233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12332233fooEv,_ZTv0_n12_N9GG12332233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12332233fooEv,_ZThn16_N9GG12332233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12332233barEv,_ZTv0_n12_N9GG12332233barEv)();
+extern void ABISELECT(_ZThn48_N9GG12332233barEv,_ZThn24_N9GG12332233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12332233barEv,_ZTv0_n20_N9GG12332233barEv)();
+extern void ABISELECT(_ZThn64_N9GG12332233barEv,_ZThn32_N9GG12332233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12332233fooEv,_ZTv0_n12_N9GG12332233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG12332233fooEv,_ZThn40_N9GG12332233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12332233barEv,_ZTv0_n16_N9GG12332233barEv)();
+extern void ABISELECT(_ZThn80_N9GG12332233barEv,_ZThn40_N9GG12332233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1233223[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1233223[0]),
+ (VTBL_ENTRY)&_ZN9GG12332233fooEv,
+ (VTBL_ENTRY)&_ZN9GG12332233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1233223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12332233fooEv,_ZTv0_n20_N9GG12332233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12332233barEv,_ZTv0_n24_N9GG12332233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1233223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12332233fooEv,_ZTv0_n12_N9GG12332233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1233223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12332233barEv,_ZTv0_n12_N9GG12332233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1233223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12332233barEv,_ZTv0_n20_N9GG12332233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1233223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12332233fooEv,_ZTv0_n12_N9GG12332233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12332233barEv,_ZTv0_n16_N9GG12332233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1233223[];
+extern void _ZN5EE1233fooEv();
+extern void _ZN5EE1233barEv();
+static VTBL_ENTRY _tg__ZTV5EE123__9GG1233223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&_ZN5EE1233fooEv,
+ (VTBL_ENTRY)&_ZN5EE1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE123__9GG1233223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv)();
+extern void ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE123__9GG1233223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv),
+};
+extern void _ZN5FF3223barEv();
+static VTBL_ENTRY _tg__ZTV5FF322__9GG1233223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN5FF3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv)();
+extern void ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF322__9GG1233223[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF322__9GG1233223[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv),
+};
+static VTT_ENTRY vtt_GG1233223[] = {
+ {&(_ZTV9GG1233223[7]), 7,37},
+ {&(_ZTV9GG1233223[15]), 15,37},
+ {&(_ZTV9GG1233223[20]), 20,37},
+ {&(_ZTV9GG1233223[24]), 24,37},
+ {&(_ZTV9GG1233223[30]), 30,37},
+ {&(_ZTV9GG1233223[35]), 35,37},
+ {&(_tg__ZTV5EE123__9GG1233223[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE123__9GG1233223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE123__9GG1233223[3]), 3,4},
+ {&(_tg__ZTV5FF322__9GG1233223[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF322__9GG1233223[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF322__9GG1233223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1233223[];
+extern VTBL_ENTRY _ZTV9GG1233223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1233223[];
+static VTBL_ENTRY alt_thunk_names375[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG12332233barEv,_ZTv0_n16_N9GG12332233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12332233barEv,_ZThn40_N9GG12332233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12332233barEv,_ZTv0_n20_N9GG12332233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12332233barEv,_ZThn32_N9GG12332233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12332233barEv,_ZTv0_n12_N9GG12332233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12332233barEv,_ZThn24_N9GG12332233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12332233fooEv,_ZTv0_n12_N9GG12332233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12332233fooEv,_ZThn40_N9GG12332233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12332233fooEv,_ZThn16_N9GG12332233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG12332233barEv,_ZTv0_n24_N9GG12332233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12332233barEv,_ZThn8_N9GG12332233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12332233fooEv,_ZTv0_n20_N9GG12332233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12332233fooEv,_ZThn8_N9GG12332233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1233223 = { "GG1233223", // class name
+ bases_GG1233223, 5,
+ &(vtc_GG1233223[0]), // expected_vtbl_contents
+ &(vtt_GG1233223[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1233223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1233223),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1233223),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names375,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1233233 : virtual EE123 , virtual FF323 {
+ int pg;
+ virtual void foo(); // _ZN9GG12332333fooEv
+ virtual void bar(); // _ZN9GG12332333barEv
+ ~GG1233233(); // tgen
+ GG1233233(); // tgen
+};
+//SIG(1 GG1233233) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1233233 ::foo(){vfunc_called(this, "_ZN9GG12332333fooEv");}
+void GG1233233 ::bar(){vfunc_called(this, "_ZN9GG12332333barEv");}
+GG1233233 ::~GG1233233(){ note_dtor("GG1233233", this);} // tgen
+GG1233233 ::GG1233233(){ note_ctor("GG1233233", this);} // tgen
+
+static void Test_GG1233233()
+{
+ extern Class_Descriptor cd_GG1233233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1233233, buf);
+ GG1233233 *dp, &lv = *(dp=new (buf) GG1233233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1233233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1233233)");
+ check_base_class_offset(lv, (AA1*)(EE123*), ABISELECT(32,16), "GG1233233");
+ check_base_class_offset(lv, (BB2*)(EE123*), ABISELECT(48,24), "GG1233233");
+ check_base_class_offset(lv, (BB2*)(FF323*), ABISELECT(48,24), "GG1233233");
+ check_base_class_offset(lv, (EE123*), ABISELECT(16,8), "GG1233233");
+ check_base_class_offset(lv, (AA3*)(FF323*), ABISELECT(80,40), "GG1233233");
+ check_base_class_offset(lv, (FF323*), ABISELECT(64,32), "GG1233233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1233233.pg");
+ test_class_info(&lv, &cd_GG1233233);
+ dp->~GG1233233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1233233(Test_GG1233233, "GG1233233", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1233233C1Ev();
+extern void _ZN9GG1233233D1Ev();
+Name_Map name_map_GG1233233[] = {
+ NSPAIR(_ZN9GG1233233C1Ev),
+ NSPAIR(_ZN9GG1233233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE123;
+extern VTBL_ENTRY _ZTI5EE123[];
+extern VTBL_ENTRY _ZTV5EE123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE123[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF323;
+extern VTBL_ENTRY _ZTI5FF323[];
+extern VTBL_ENTRY _ZTV5FF323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF323[];
+static Base_Class bases_GG1233233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE123, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF323, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1233233[];
+extern void _ZN9GG12332333fooEv();
+extern void _ZN9GG12332333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12332333fooEv,_ZTv0_n20_N9GG12332333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12332333fooEv,_ZThn8_N9GG12332333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12332333barEv,_ZTv0_n24_N9GG12332333barEv)();
+extern void ABISELECT(_ZThn16_N9GG12332333barEv,_ZThn8_N9GG12332333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12332333fooEv,_ZTv0_n12_N9GG12332333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12332333fooEv,_ZThn16_N9GG12332333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12332333barEv,_ZTv0_n12_N9GG12332333barEv)();
+extern void ABISELECT(_ZThn48_N9GG12332333barEv,_ZThn24_N9GG12332333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12332333fooEv,_ZTv0_n20_N9GG12332333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12332333fooEv,_ZThn32_N9GG12332333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12332333barEv,_ZTv0_n24_N9GG12332333barEv)();
+extern void ABISELECT(_ZThn64_N9GG12332333barEv,_ZThn32_N9GG12332333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12332333fooEv,_ZTv0_n12_N9GG12332333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG12332333fooEv,_ZThn40_N9GG12332333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12332333barEv,_ZTv0_n16_N9GG12332333barEv)();
+extern void ABISELECT(_ZThn80_N9GG12332333barEv,_ZThn40_N9GG12332333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1233233[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1233233[0]),
+ (VTBL_ENTRY)&_ZN9GG12332333fooEv,
+ (VTBL_ENTRY)&_ZN9GG12332333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1233233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12332333fooEv,_ZTv0_n20_N9GG12332333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12332333barEv,_ZTv0_n24_N9GG12332333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1233233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12332333fooEv,_ZTv0_n12_N9GG12332333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1233233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12332333barEv,_ZTv0_n12_N9GG12332333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1233233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12332333fooEv,_ZTv0_n20_N9GG12332333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12332333barEv,_ZTv0_n24_N9GG12332333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1233233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12332333fooEv,_ZTv0_n12_N9GG12332333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12332333barEv,_ZTv0_n16_N9GG12332333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1233233[];
+extern void _ZN5EE1233fooEv();
+extern void _ZN5EE1233barEv();
+static VTBL_ENTRY _tg__ZTV5EE123__9GG1233233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&_ZN5EE1233fooEv,
+ (VTBL_ENTRY)&_ZN5EE1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE123__9GG1233233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv)();
+extern void ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE123__9GG1233233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv),
+};
+extern void _ZN5FF3233fooEv();
+extern void _ZN5FF3233barEv();
+static VTBL_ENTRY _tg__ZTV5FF323__9GG1233233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&_ZN5FF3233fooEv,
+ (VTBL_ENTRY)&_ZN5FF3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3233fooEv,_ZThn8_N5FF3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv)();
+extern void ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF323__9GG1233233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF323__9GG1233233[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv),
+};
+static VTT_ENTRY vtt_GG1233233[] = {
+ {&(_ZTV9GG1233233[7]), 7,39},
+ {&(_ZTV9GG1233233[15]), 15,39},
+ {&(_ZTV9GG1233233[20]), 20,39},
+ {&(_ZTV9GG1233233[24]), 24,39},
+ {&(_ZTV9GG1233233[31]), 31,39},
+ {&(_ZTV9GG1233233[37]), 37,39},
+ {&(_tg__ZTV5EE123__9GG1233233[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE123__9GG1233233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE123__9GG1233233[3]), 3,4},
+ {&(_tg__ZTV5FF323__9GG1233233[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF323__9GG1233233[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF323__9GG1233233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1233233[];
+extern VTBL_ENTRY _ZTV9GG1233233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1233233[];
+static VTBL_ENTRY alt_thunk_names376[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3233fooEv,_ZThn8_N5FF3233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG12332333barEv,_ZTv0_n16_N9GG12332333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12332333barEv,_ZThn40_N9GG12332333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12332333barEv,_ZTv0_n12_N9GG12332333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12332333barEv,_ZThn24_N9GG12332333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12332333fooEv,_ZTv0_n12_N9GG12332333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12332333fooEv,_ZThn40_N9GG12332333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12332333fooEv,_ZThn16_N9GG12332333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG12332333barEv,_ZTv0_n24_N9GG12332333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12332333barEv,_ZThn32_N9GG12332333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12332333barEv,_ZThn8_N9GG12332333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12332333fooEv,_ZTv0_n20_N9GG12332333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12332333fooEv,_ZThn32_N9GG12332333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12332333fooEv,_ZThn8_N9GG12332333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1233233 = { "GG1233233", // class name
+ bases_GG1233233, 5,
+ &(vtc_GG1233233[0]), // expected_vtbl_contents
+ &(vtt_GG1233233[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1233233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1233233),39, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1233233),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names376,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1233313 : virtual EE123 , virtual FF331 {
+ int pg;
+ virtual void foo(); // _ZN9GG12333133fooEv
+ virtual void bar(); // _ZN9GG12333133barEv
+ ~GG1233313(); // tgen
+ GG1233313(); // tgen
+};
+//SIG(1 GG1233313) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1233313 ::foo(){vfunc_called(this, "_ZN9GG12333133fooEv");}
+void GG1233313 ::bar(){vfunc_called(this, "_ZN9GG12333133barEv");}
+GG1233313 ::~GG1233313(){ note_dtor("GG1233313", this);} // tgen
+GG1233313 ::GG1233313(){ note_ctor("GG1233313", this);} // tgen
+
+static void Test_GG1233313()
+{
+ extern Class_Descriptor cd_GG1233313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1233313, buf);
+ GG1233313 *dp, &lv = *(dp=new (buf) GG1233313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1233313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1233313)");
+ check_base_class_offset(lv, (AA1*)(EE123*), ABISELECT(32,16), "GG1233313");
+ check_base_class_offset(lv, (BB2*)(EE123*), ABISELECT(48,24), "GG1233313");
+ check_base_class_offset(lv, (EE123*), ABISELECT(16,8), "GG1233313");
+ check_base_class_offset(lv, (AA3*)(FF331*), ABISELECT(80,40), "GG1233313");
+ check_base_class_offset(lv, (BB3*)(FF331*), ABISELECT(96,48), "GG1233313");
+ check_base_class_offset(lv, (FF331*), ABISELECT(64,32), "GG1233313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1233313.pg");
+ test_class_info(&lv, &cd_GG1233313);
+ dp->~GG1233313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1233313(Test_GG1233313, "GG1233313", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1233313C1Ev();
+extern void _ZN9GG1233313D1Ev();
+Name_Map name_map_GG1233313[] = {
+ NSPAIR(_ZN9GG1233313C1Ev),
+ NSPAIR(_ZN9GG1233313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE123;
+extern VTBL_ENTRY _ZTI5EE123[];
+extern VTBL_ENTRY _ZTV5EE123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE123[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF331;
+extern VTBL_ENTRY _ZTI5FF331[];
+extern VTBL_ENTRY _ZTV5FF331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF331[];
+static Base_Class bases_GG1233313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE123, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF331, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1233313[];
+extern void _ZN9GG12333133fooEv();
+extern void _ZN9GG12333133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12333133fooEv,_ZTv0_n20_N9GG12333133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12333133fooEv,_ZThn8_N9GG12333133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12333133barEv,_ZTv0_n24_N9GG12333133barEv)();
+extern void ABISELECT(_ZThn16_N9GG12333133barEv,_ZThn8_N9GG12333133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12333133fooEv,_ZTv0_n12_N9GG12333133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12333133fooEv,_ZThn16_N9GG12333133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12333133barEv,_ZTv0_n12_N9GG12333133barEv)();
+extern void ABISELECT(_ZThn48_N9GG12333133barEv,_ZThn24_N9GG12333133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12333133fooEv,_ZTv0_n20_N9GG12333133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12333133fooEv,_ZThn32_N9GG12333133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12333133fooEv,_ZTv0_n12_N9GG12333133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG12333133fooEv,_ZThn40_N9GG12333133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12333133barEv,_ZTv0_n16_N9GG12333133barEv)();
+extern void ABISELECT(_ZThn80_N9GG12333133barEv,_ZThn40_N9GG12333133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12333133fooEv,_ZTv0_n12_N9GG12333133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG12333133fooEv,_ZThn48_N9GG12333133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12333133barEv,_ZTv0_n16_N9GG12333133barEv)();
+extern void ABISELECT(_ZThn96_N9GG12333133barEv,_ZThn48_N9GG12333133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1233313[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1233313[0]),
+ (VTBL_ENTRY)&_ZN9GG12333133fooEv,
+ (VTBL_ENTRY)&_ZN9GG12333133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1233313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12333133fooEv,_ZTv0_n20_N9GG12333133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12333133barEv,_ZTv0_n24_N9GG12333133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1233313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12333133fooEv,_ZTv0_n12_N9GG12333133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1233313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12333133barEv,_ZTv0_n12_N9GG12333133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1233313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12333133fooEv,_ZTv0_n20_N9GG12333133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1233313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12333133fooEv,_ZTv0_n12_N9GG12333133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12333133barEv,_ZTv0_n16_N9GG12333133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1233313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12333133fooEv,_ZTv0_n12_N9GG12333133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12333133barEv,_ZTv0_n16_N9GG12333133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1233313[];
+extern void _ZN5EE1233fooEv();
+extern void _ZN5EE1233barEv();
+static VTBL_ENTRY _tg__ZTV5EE123__9GG1233313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&_ZN5EE1233fooEv,
+ (VTBL_ENTRY)&_ZN5EE1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE123__9GG1233313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv)();
+extern void ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE123__9GG1233313[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv),
+};
+extern void _ZN5FF3313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF331__9GG1233313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&_ZN5FF3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF331__9GG1233313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3313fooEv,_ZThn16_N5FF3313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF331__9GG1233313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG1233313[] = {
+ {&(_ZTV9GG1233313[8]), 8,44},
+ {&(_ZTV9GG1233313[16]), 16,44},
+ {&(_ZTV9GG1233313[21]), 21,44},
+ {&(_ZTV9GG1233313[25]), 25,44},
+ {&(_ZTV9GG1233313[31]), 31,44},
+ {&(_ZTV9GG1233313[36]), 36,44},
+ {&(_ZTV9GG1233313[42]), 42,44},
+ {&(_tg__ZTV5EE123__9GG1233313[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE123__9GG1233313[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE123__9GG1233313[3]), 3,4},
+ {&(_tg__ZTV5FF331__9GG1233313[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF331__9GG1233313[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF331__9GG1233313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1233313[];
+extern VTBL_ENTRY _ZTV9GG1233313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1233313[];
+static VTBL_ENTRY alt_thunk_names377[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3313fooEv,_ZThn16_N5FF3313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG12333133barEv,_ZTv0_n16_N9GG12333133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12333133barEv,_ZThn48_N9GG12333133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12333133barEv,_ZThn40_N9GG12333133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12333133barEv,_ZTv0_n12_N9GG12333133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12333133barEv,_ZThn24_N9GG12333133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12333133fooEv,_ZTv0_n12_N9GG12333133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12333133fooEv,_ZThn48_N9GG12333133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12333133fooEv,_ZThn40_N9GG12333133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12333133fooEv,_ZThn16_N9GG12333133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG12333133barEv,_ZTv0_n24_N9GG12333133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12333133barEv,_ZThn8_N9GG12333133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12333133fooEv,_ZTv0_n20_N9GG12333133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12333133fooEv,_ZThn32_N9GG12333133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12333133fooEv,_ZThn8_N9GG12333133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1233313 = { "GG1233313", // class name
+ bases_GG1233313, 6,
+ &(vtc_GG1233313[0]), // expected_vtbl_contents
+ &(vtt_GG1233313[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1233313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1233313),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1233313),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names377,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1233323 : virtual EE123 , virtual FF332 {
+ int pg;
+ virtual void foo(); // _ZN9GG12333233fooEv
+ virtual void bar(); // _ZN9GG12333233barEv
+ ~GG1233323(); // tgen
+ GG1233323(); // tgen
+};
+//SIG(1 GG1233323) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1233323 ::foo(){vfunc_called(this, "_ZN9GG12333233fooEv");}
+void GG1233323 ::bar(){vfunc_called(this, "_ZN9GG12333233barEv");}
+GG1233323 ::~GG1233323(){ note_dtor("GG1233323", this);} // tgen
+GG1233323 ::GG1233323(){ note_ctor("GG1233323", this);} // tgen
+
+static void Test_GG1233323()
+{
+ extern Class_Descriptor cd_GG1233323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1233323, buf);
+ GG1233323 *dp, &lv = *(dp=new (buf) GG1233323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1233323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1233323)");
+ check_base_class_offset(lv, (AA1*)(EE123*), ABISELECT(32,16), "GG1233323");
+ check_base_class_offset(lv, (BB2*)(EE123*), ABISELECT(48,24), "GG1233323");
+ check_base_class_offset(lv, (EE123*), ABISELECT(16,8), "GG1233323");
+ check_base_class_offset(lv, (AA3*)(FF332*), ABISELECT(80,40), "GG1233323");
+ check_base_class_offset(lv, (BB3*)(FF332*), ABISELECT(96,48), "GG1233323");
+ check_base_class_offset(lv, (FF332*), ABISELECT(64,32), "GG1233323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1233323.pg");
+ test_class_info(&lv, &cd_GG1233323);
+ dp->~GG1233323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1233323(Test_GG1233323, "GG1233323", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1233323C1Ev();
+extern void _ZN9GG1233323D1Ev();
+Name_Map name_map_GG1233323[] = {
+ NSPAIR(_ZN9GG1233323C1Ev),
+ NSPAIR(_ZN9GG1233323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE123;
+extern VTBL_ENTRY _ZTI5EE123[];
+extern VTBL_ENTRY _ZTV5EE123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE123[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF332;
+extern VTBL_ENTRY _ZTI5FF332[];
+extern VTBL_ENTRY _ZTV5FF332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF332[];
+static Base_Class bases_GG1233323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE123, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF332, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1233323[];
+extern void _ZN9GG12333233fooEv();
+extern void _ZN9GG12333233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12333233fooEv,_ZTv0_n20_N9GG12333233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12333233fooEv,_ZThn8_N9GG12333233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12333233barEv,_ZTv0_n24_N9GG12333233barEv)();
+extern void ABISELECT(_ZThn16_N9GG12333233barEv,_ZThn8_N9GG12333233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12333233fooEv,_ZTv0_n12_N9GG12333233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12333233fooEv,_ZThn16_N9GG12333233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12333233barEv,_ZTv0_n12_N9GG12333233barEv)();
+extern void ABISELECT(_ZThn48_N9GG12333233barEv,_ZThn24_N9GG12333233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12333233barEv,_ZTv0_n20_N9GG12333233barEv)();
+extern void ABISELECT(_ZThn64_N9GG12333233barEv,_ZThn32_N9GG12333233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12333233fooEv,_ZTv0_n12_N9GG12333233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG12333233fooEv,_ZThn40_N9GG12333233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12333233barEv,_ZTv0_n16_N9GG12333233barEv)();
+extern void ABISELECT(_ZThn80_N9GG12333233barEv,_ZThn40_N9GG12333233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12333233fooEv,_ZTv0_n12_N9GG12333233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG12333233fooEv,_ZThn48_N9GG12333233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12333233barEv,_ZTv0_n16_N9GG12333233barEv)();
+extern void ABISELECT(_ZThn96_N9GG12333233barEv,_ZThn48_N9GG12333233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1233323[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1233323[0]),
+ (VTBL_ENTRY)&_ZN9GG12333233fooEv,
+ (VTBL_ENTRY)&_ZN9GG12333233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1233323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12333233fooEv,_ZTv0_n20_N9GG12333233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12333233barEv,_ZTv0_n24_N9GG12333233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1233323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12333233fooEv,_ZTv0_n12_N9GG12333233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1233323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12333233barEv,_ZTv0_n12_N9GG12333233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1233323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12333233barEv,_ZTv0_n20_N9GG12333233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1233323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12333233fooEv,_ZTv0_n12_N9GG12333233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12333233barEv,_ZTv0_n16_N9GG12333233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1233323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12333233fooEv,_ZTv0_n12_N9GG12333233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12333233barEv,_ZTv0_n16_N9GG12333233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1233323[];
+extern void _ZN5EE1233fooEv();
+extern void _ZN5EE1233barEv();
+static VTBL_ENTRY _tg__ZTV5EE123__9GG1233323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&_ZN5EE1233fooEv,
+ (VTBL_ENTRY)&_ZN5EE1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE123__9GG1233323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv)();
+extern void ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE123__9GG1233323[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv),
+};
+extern void _ZN5FF3323barEv();
+static VTBL_ENTRY _tg__ZTV5FF332__9GG1233323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN5FF3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+extern void ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF332__9GG1233323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+extern void ABISELECT(_ZThn32_N5FF3323barEv,_ZThn16_N5FF3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF332__9GG1233323[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+static VTT_ENTRY vtt_GG1233323[] = {
+ {&(_ZTV9GG1233323[8]), 8,44},
+ {&(_ZTV9GG1233323[16]), 16,44},
+ {&(_ZTV9GG1233323[21]), 21,44},
+ {&(_ZTV9GG1233323[25]), 25,44},
+ {&(_ZTV9GG1233323[31]), 31,44},
+ {&(_ZTV9GG1233323[36]), 36,44},
+ {&(_ZTV9GG1233323[42]), 42,44},
+ {&(_tg__ZTV5EE123__9GG1233323[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE123__9GG1233323[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE123__9GG1233323[3]), 3,4},
+ {&(_tg__ZTV5FF332__9GG1233323[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF332__9GG1233323[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF332__9GG1233323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1233323[];
+extern VTBL_ENTRY _ZTV9GG1233323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1233323[];
+static VTBL_ENTRY alt_thunk_names378[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3323barEv,_ZThn16_N5FF3323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG12333233barEv,_ZTv0_n16_N9GG12333233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12333233barEv,_ZThn48_N9GG12333233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12333233barEv,_ZThn40_N9GG12333233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12333233barEv,_ZTv0_n20_N9GG12333233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12333233barEv,_ZThn32_N9GG12333233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12333233barEv,_ZTv0_n12_N9GG12333233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12333233barEv,_ZThn24_N9GG12333233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12333233fooEv,_ZTv0_n12_N9GG12333233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12333233fooEv,_ZThn48_N9GG12333233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12333233fooEv,_ZThn40_N9GG12333233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12333233fooEv,_ZThn16_N9GG12333233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG12333233barEv,_ZTv0_n24_N9GG12333233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12333233barEv,_ZThn8_N9GG12333233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12333233fooEv,_ZTv0_n20_N9GG12333233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12333233fooEv,_ZThn8_N9GG12333233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1233323 = { "GG1233323", // class name
+ bases_GG1233323, 6,
+ &(vtc_GG1233323[0]), // expected_vtbl_contents
+ &(vtt_GG1233323[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1233323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1233323),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1233323),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names378,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1233333 : virtual EE123 , virtual FF333 {
+ int pg;
+ virtual void foo(); // _ZN9GG12333333fooEv
+ virtual void bar(); // _ZN9GG12333333barEv
+ ~GG1233333(); // tgen
+ GG1233333(); // tgen
+};
+//SIG(1 GG1233333) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1233333 ::foo(){vfunc_called(this, "_ZN9GG12333333fooEv");}
+void GG1233333 ::bar(){vfunc_called(this, "_ZN9GG12333333barEv");}
+GG1233333 ::~GG1233333(){ note_dtor("GG1233333", this);} // tgen
+GG1233333 ::GG1233333(){ note_ctor("GG1233333", this);} // tgen
+
+static void Test_GG1233333()
+{
+ extern Class_Descriptor cd_GG1233333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1233333, buf);
+ GG1233333 *dp, &lv = *(dp=new (buf) GG1233333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1233333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1233333)");
+ check_base_class_offset(lv, (AA1*)(EE123*), ABISELECT(32,16), "GG1233333");
+ check_base_class_offset(lv, (BB2*)(EE123*), ABISELECT(48,24), "GG1233333");
+ check_base_class_offset(lv, (EE123*), ABISELECT(16,8), "GG1233333");
+ check_base_class_offset(lv, (AA3*)(FF333*), ABISELECT(80,40), "GG1233333");
+ check_base_class_offset(lv, (BB3*)(FF333*), ABISELECT(96,48), "GG1233333");
+ check_base_class_offset(lv, (FF333*), ABISELECT(64,32), "GG1233333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1233333.pg");
+ test_class_info(&lv, &cd_GG1233333);
+ dp->~GG1233333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1233333(Test_GG1233333, "GG1233333", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1233333C1Ev();
+extern void _ZN9GG1233333D1Ev();
+Name_Map name_map_GG1233333[] = {
+ NSPAIR(_ZN9GG1233333C1Ev),
+ NSPAIR(_ZN9GG1233333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE123;
+extern VTBL_ENTRY _ZTI5EE123[];
+extern VTBL_ENTRY _ZTV5EE123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE123[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF333;
+extern VTBL_ENTRY _ZTI5FF333[];
+extern VTBL_ENTRY _ZTV5FF333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF333[];
+static Base_Class bases_GG1233333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE123, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 40, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF333, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1233333[];
+extern void _ZN9GG12333333fooEv();
+extern void _ZN9GG12333333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG12333333fooEv,_ZTv0_n20_N9GG12333333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG12333333fooEv,_ZThn8_N9GG12333333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12333333barEv,_ZTv0_n24_N9GG12333333barEv)();
+extern void ABISELECT(_ZThn16_N9GG12333333barEv,_ZThn8_N9GG12333333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12333333fooEv,_ZTv0_n12_N9GG12333333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG12333333fooEv,_ZThn16_N9GG12333333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12333333barEv,_ZTv0_n12_N9GG12333333barEv)();
+extern void ABISELECT(_ZThn48_N9GG12333333barEv,_ZThn24_N9GG12333333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG12333333fooEv,_ZTv0_n20_N9GG12333333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG12333333fooEv,_ZThn32_N9GG12333333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG12333333barEv,_ZTv0_n24_N9GG12333333barEv)();
+extern void ABISELECT(_ZThn64_N9GG12333333barEv,_ZThn32_N9GG12333333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12333333fooEv,_ZTv0_n12_N9GG12333333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG12333333fooEv,_ZThn40_N9GG12333333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12333333barEv,_ZTv0_n16_N9GG12333333barEv)();
+extern void ABISELECT(_ZThn80_N9GG12333333barEv,_ZThn40_N9GG12333333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG12333333fooEv,_ZTv0_n12_N9GG12333333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG12333333fooEv,_ZThn48_N9GG12333333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG12333333barEv,_ZTv0_n16_N9GG12333333barEv)();
+extern void ABISELECT(_ZThn96_N9GG12333333barEv,_ZThn48_N9GG12333333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1233333[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1233333[0]),
+ (VTBL_ENTRY)&_ZN9GG12333333fooEv,
+ (VTBL_ENTRY)&_ZN9GG12333333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1233333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12333333fooEv,_ZTv0_n20_N9GG12333333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12333333barEv,_ZTv0_n24_N9GG12333333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1233333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12333333fooEv,_ZTv0_n12_N9GG12333333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1233333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12333333barEv,_ZTv0_n12_N9GG12333333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1233333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG12333333fooEv,_ZTv0_n20_N9GG12333333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG12333333barEv,_ZTv0_n24_N9GG12333333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1233333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12333333fooEv,_ZTv0_n12_N9GG12333333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12333333barEv,_ZTv0_n16_N9GG12333333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1233333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG12333333fooEv,_ZTv0_n12_N9GG12333333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG12333333barEv,_ZTv0_n16_N9GG12333333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1233333[];
+extern void _ZN5EE1233fooEv();
+extern void _ZN5EE1233barEv();
+static VTBL_ENTRY _tg__ZTV5EE123__9GG1233333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&_ZN5EE1233fooEv,
+ (VTBL_ENTRY)&_ZN5EE1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE123__9GG1233333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv)();
+extern void ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE123__9GG1233333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv),
+};
+extern void _ZN5FF3333fooEv();
+extern void _ZN5FF3333barEv();
+static VTBL_ENTRY _tg__ZTV5FF333__9GG1233333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&_ZN5FF3333fooEv,
+ (VTBL_ENTRY)&_ZN5FF3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+extern void ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF333__9GG1233333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3333fooEv,_ZThn16_N5FF3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+extern void ABISELECT(_ZThn32_N5FF3333barEv,_ZThn16_N5FF3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF333__9GG1233333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+static VTT_ENTRY vtt_GG1233333[] = {
+ {&(_ZTV9GG1233333[8]), 8,46},
+ {&(_ZTV9GG1233333[16]), 16,46},
+ {&(_ZTV9GG1233333[21]), 21,46},
+ {&(_ZTV9GG1233333[25]), 25,46},
+ {&(_ZTV9GG1233333[32]), 32,46},
+ {&(_ZTV9GG1233333[38]), 38,46},
+ {&(_ZTV9GG1233333[44]), 44,46},
+ {&(_tg__ZTV5EE123__9GG1233333[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE123__9GG1233333[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE123__9GG1233333[3]), 3,4},
+ {&(_tg__ZTV5FF333__9GG1233333[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF333__9GG1233333[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF333__9GG1233333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1233333[];
+extern VTBL_ENTRY _ZTV9GG1233333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1233333[];
+static VTBL_ENTRY alt_thunk_names379[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3333barEv,_ZThn16_N5FF3333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3333fooEv,_ZThn16_N5FF3333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233barEv,_ZTv0_n12_N5EE1233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1233barEv,_ZThn16_N5EE1233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1233fooEv,_ZTv0_n12_N5EE1233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1233fooEv,_ZThn8_N5EE1233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG12333333barEv,_ZTv0_n16_N9GG12333333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12333333barEv,_ZThn48_N9GG12333333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12333333barEv,_ZThn40_N9GG12333333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12333333barEv,_ZTv0_n12_N9GG12333333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG12333333barEv,_ZThn24_N9GG12333333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG12333333fooEv,_ZTv0_n12_N9GG12333333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG12333333fooEv,_ZThn48_N9GG12333333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG12333333fooEv,_ZThn40_N9GG12333333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG12333333fooEv,_ZThn16_N9GG12333333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG12333333barEv,_ZTv0_n24_N9GG12333333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12333333barEv,_ZThn32_N9GG12333333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12333333barEv,_ZThn8_N9GG12333333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG12333333fooEv,_ZTv0_n20_N9GG12333333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG12333333fooEv,_ZThn32_N9GG12333333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG12333333fooEv,_ZThn8_N9GG12333333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1233333 = { "GG1233333", // class name
+ bases_GG1233333, 6,
+ &(vtc_GG1233333[0]), // expected_vtbl_contents
+ &(vtt_GG1233333[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1233333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1233333),46, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1233333),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names379,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1311111 : virtual EE131 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG13111113fooEv
+ ~GG1311111(); // tgen
+ GG1311111(); // tgen
+};
+//SIG(1 GG1311111) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v1 Fi} v1 Fi}
+
+
+void GG1311111 ::foo(){vfunc_called(this, "_ZN9GG13111113fooEv");}
+GG1311111 ::~GG1311111(){ note_dtor("GG1311111", this);} // tgen
+GG1311111 ::GG1311111(){ note_ctor("GG1311111", this);} // tgen
+
+static void Test_GG1311111()
+{
+ extern Class_Descriptor cd_GG1311111;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1311111, buf);
+ GG1311111 *dp, &lv = *(dp=new (buf) GG1311111());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1311111)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1311111)");
+ check_base_class_offset(lv, (AA1*)(EE131*), ABISELECT(32,16), "GG1311111");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(32,16), "GG1311111");
+ check_base_class_offset(lv, (BB3*)(EE131*), ABISELECT(48,24), "GG1311111");
+ check_base_class_offset(lv, (EE131*), ABISELECT(16,8), "GG1311111");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(80,40), "GG1311111");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG1311111");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1311111.pg");
+ test_class_info(&lv, &cd_GG1311111);
+ dp->~GG1311111();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1311111(Test_GG1311111, "GG1311111", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1311111C1Ev();
+extern void _ZN9GG1311111D1Ev();
+Name_Map name_map_GG1311111[] = {
+ NSPAIR(_ZN9GG1311111C1Ev),
+ NSPAIR(_ZN9GG1311111D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE131;
+extern VTBL_ENTRY _ZTI5EE131[];
+extern VTBL_ENTRY _ZTV5EE131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE131[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG1311111[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE131, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1311111[];
+extern void _ZN9GG13111113fooEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13111113fooEv,_ZTv0_n20_N9GG13111113fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13111113fooEv,_ZThn8_N9GG13111113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13111113fooEv,_ZTv0_n12_N9GG13111113fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13111113fooEv,_ZThn16_N9GG13111113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13111113fooEv,_ZTv0_n12_N9GG13111113fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13111113fooEv,_ZThn24_N9GG13111113fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13111113fooEv,_ZTv0_n20_N9GG13111113fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13111113fooEv,_ZThn32_N9GG13111113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13111113fooEv,_ZTv0_n12_N9GG13111113fooEv)();
+extern void ABISELECT(_ZThn80_N9GG13111113fooEv,_ZThn40_N9GG13111113fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1311111[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1311111[0]),
+ (VTBL_ENTRY)&_ZN9GG13111113fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1311111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13111113fooEv,_ZTv0_n20_N9GG13111113fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1311111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13111113fooEv,_ZTv0_n12_N9GG13111113fooEv),
+ 0,
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1311111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13111113fooEv,_ZTv0_n12_N9GG13111113fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1311111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13111113fooEv,_ZTv0_n20_N9GG13111113fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1311111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13111113fooEv,_ZTv0_n12_N9GG13111113fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1311111[];
+extern void _ZN5EE1313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE131__9GG1311111[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&_ZN5EE1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE131__9GG1311111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE131__9GG1311111[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG1311111[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG1311111[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG1311111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG1311111[] = {
+ {&(_ZTV9GG1311111[7]), 7,34},
+ {&(_ZTV9GG1311111[13]), 13,34},
+ {&(_ZTV9GG1311111[17]), 17,34},
+ {&(_ZTV9GG1311111[22]), 22,34},
+ {&(_ZTV9GG1311111[29]), 29,34},
+ {&(_ZTV9GG1311111[33]), 33,34},
+ {&(_tg__ZTV5EE131__9GG1311111[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE131__9GG1311111[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE131__9GG1311111[4]), 4,6},
+ {&(_tg__ZTV5FF111__9GG1311111[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG1311111[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG1311111[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1311111[];
+extern VTBL_ENTRY _ZTV9GG1311111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1311111[];
+static VTBL_ENTRY alt_thunk_names380[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13111113fooEv,_ZTv0_n12_N9GG13111113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13111113fooEv,_ZThn40_N9GG13111113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13111113fooEv,_ZThn24_N9GG13111113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13111113fooEv,_ZThn16_N9GG13111113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13111113fooEv,_ZTv0_n20_N9GG13111113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13111113fooEv,_ZThn32_N9GG13111113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13111113fooEv,_ZThn8_N9GG13111113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1311111 = { "GG1311111", // class name
+ bases_GG1311111, 5,
+ &(vtc_GG1311111[0]), // expected_vtbl_contents
+ &(vtt_GG1311111[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1311111),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1311111),34, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1311111),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names380,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1311113 : virtual EE131 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG13111133fooEv
+ virtual void bar(); // _ZN9GG13111133barEv
+ ~GG1311113(); // tgen
+ GG1311113(); // tgen
+};
+//SIG(1 GG1311113) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1311113 ::foo(){vfunc_called(this, "_ZN9GG13111133fooEv");}
+void GG1311113 ::bar(){vfunc_called(this, "_ZN9GG13111133barEv");}
+GG1311113 ::~GG1311113(){ note_dtor("GG1311113", this);} // tgen
+GG1311113 ::GG1311113(){ note_ctor("GG1311113", this);} // tgen
+
+static void Test_GG1311113()
+{
+ extern Class_Descriptor cd_GG1311113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1311113, buf);
+ GG1311113 *dp, &lv = *(dp=new (buf) GG1311113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1311113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1311113)");
+ check_base_class_offset(lv, (AA1*)(EE131*), ABISELECT(32,16), "GG1311113");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(32,16), "GG1311113");
+ check_base_class_offset(lv, (BB3*)(EE131*), ABISELECT(48,24), "GG1311113");
+ check_base_class_offset(lv, (EE131*), ABISELECT(16,8), "GG1311113");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(80,40), "GG1311113");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG1311113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1311113.pg");
+ test_class_info(&lv, &cd_GG1311113);
+ dp->~GG1311113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1311113(Test_GG1311113, "GG1311113", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1311113C1Ev();
+extern void _ZN9GG1311113D1Ev();
+Name_Map name_map_GG1311113[] = {
+ NSPAIR(_ZN9GG1311113C1Ev),
+ NSPAIR(_ZN9GG1311113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE131;
+extern VTBL_ENTRY _ZTI5EE131[];
+extern VTBL_ENTRY _ZTV5EE131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE131[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG1311113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE131, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1311113[];
+extern void _ZN9GG13111133fooEv();
+extern void _ZN9GG13111133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13111133fooEv,_ZTv0_n20_N9GG13111133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13111133fooEv,_ZThn8_N9GG13111133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13111133fooEv,_ZTv0_n12_N9GG13111133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13111133fooEv,_ZThn16_N9GG13111133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13111133fooEv,_ZTv0_n12_N9GG13111133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13111133fooEv,_ZThn24_N9GG13111133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13111133barEv,_ZTv0_n16_N9GG13111133barEv)();
+extern void ABISELECT(_ZThn48_N9GG13111133barEv,_ZThn24_N9GG13111133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13111133fooEv,_ZTv0_n20_N9GG13111133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13111133fooEv,_ZThn32_N9GG13111133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13111133fooEv,_ZTv0_n12_N9GG13111133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG13111133fooEv,_ZThn40_N9GG13111133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1311113[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1311113[0]),
+ (VTBL_ENTRY)&_ZN9GG13111133fooEv,
+ (VTBL_ENTRY)&_ZN9GG13111133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1311113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13111133fooEv,_ZTv0_n20_N9GG13111133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1311113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13111133fooEv,_ZTv0_n12_N9GG13111133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1311113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13111133fooEv,_ZTv0_n12_N9GG13111133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13111133barEv,_ZTv0_n16_N9GG13111133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1311113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13111133fooEv,_ZTv0_n20_N9GG13111133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1311113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13111133fooEv,_ZTv0_n12_N9GG13111133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1311113[];
+extern void _ZN5EE1313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE131__9GG1311113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&_ZN5EE1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE131__9GG1311113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE131__9GG1311113[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG1311113[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG1311113[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG1311113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG1311113[] = {
+ {&(_ZTV9GG1311113[7]), 7,35},
+ {&(_ZTV9GG1311113[14]), 14,35},
+ {&(_ZTV9GG1311113[18]), 18,35},
+ {&(_ZTV9GG1311113[23]), 23,35},
+ {&(_ZTV9GG1311113[30]), 30,35},
+ {&(_ZTV9GG1311113[34]), 34,35},
+ {&(_tg__ZTV5EE131__9GG1311113[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE131__9GG1311113[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE131__9GG1311113[4]), 4,6},
+ {&(_tg__ZTV5FF111__9GG1311113[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG1311113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG1311113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1311113[];
+extern VTBL_ENTRY _ZTV9GG1311113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1311113[];
+static VTBL_ENTRY alt_thunk_names381[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13111133barEv,_ZTv0_n16_N9GG13111133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13111133barEv,_ZThn24_N9GG13111133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13111133fooEv,_ZTv0_n12_N9GG13111133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13111133fooEv,_ZThn40_N9GG13111133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13111133fooEv,_ZThn24_N9GG13111133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13111133fooEv,_ZThn16_N9GG13111133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13111133fooEv,_ZTv0_n20_N9GG13111133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13111133fooEv,_ZThn32_N9GG13111133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13111133fooEv,_ZThn8_N9GG13111133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1311113 = { "GG1311113", // class name
+ bases_GG1311113, 5,
+ &(vtc_GG1311113[0]), // expected_vtbl_contents
+ &(vtt_GG1311113[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1311113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1311113),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1311113),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names381,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1311123 : virtual EE131 , virtual FF112 {
+ int pg;
+ virtual void foo(); // _ZN9GG13111233fooEv
+ virtual void bar(); // _ZN9GG13111233barEv
+ ~GG1311123(); // tgen
+ GG1311123(); // tgen
+};
+//SIG(1 GG1311123) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1311123 ::foo(){vfunc_called(this, "_ZN9GG13111233fooEv");}
+void GG1311123 ::bar(){vfunc_called(this, "_ZN9GG13111233barEv");}
+GG1311123 ::~GG1311123(){ note_dtor("GG1311123", this);} // tgen
+GG1311123 ::GG1311123(){ note_ctor("GG1311123", this);} // tgen
+
+static void Test_GG1311123()
+{
+ extern Class_Descriptor cd_GG1311123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1311123, buf);
+ GG1311123 *dp, &lv = *(dp=new (buf) GG1311123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1311123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1311123)");
+ check_base_class_offset(lv, (AA1*)(EE131*), ABISELECT(32,16), "GG1311123");
+ check_base_class_offset(lv, (AA1*)(FF112*), ABISELECT(32,16), "GG1311123");
+ check_base_class_offset(lv, (BB3*)(EE131*), ABISELECT(48,24), "GG1311123");
+ check_base_class_offset(lv, (EE131*), ABISELECT(16,8), "GG1311123");
+ check_base_class_offset(lv, (BB1*)(FF112*), ABISELECT(80,40), "GG1311123");
+ check_base_class_offset(lv, (FF112*), ABISELECT(64,32), "GG1311123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1311123.pg");
+ test_class_info(&lv, &cd_GG1311123);
+ dp->~GG1311123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1311123(Test_GG1311123, "GG1311123", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1311123C1Ev();
+extern void _ZN9GG1311123D1Ev();
+Name_Map name_map_GG1311123[] = {
+ NSPAIR(_ZN9GG1311123C1Ev),
+ NSPAIR(_ZN9GG1311123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE131;
+extern VTBL_ENTRY _ZTI5EE131[];
+extern VTBL_ENTRY _ZTV5EE131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE131[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF112;
+extern VTBL_ENTRY _ZTI5FF112[];
+extern VTBL_ENTRY _ZTV5FF112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF112[];
+static Base_Class bases_GG1311123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE131, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF112, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1311123[];
+extern void _ZN9GG13111233fooEv();
+extern void _ZN9GG13111233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13111233fooEv,_ZTv0_n20_N9GG13111233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13111233fooEv,_ZThn8_N9GG13111233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13111233fooEv,_ZTv0_n12_N9GG13111233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13111233fooEv,_ZThn16_N9GG13111233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13111233fooEv,_ZTv0_n12_N9GG13111233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13111233fooEv,_ZThn24_N9GG13111233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13111233barEv,_ZTv0_n16_N9GG13111233barEv)();
+extern void ABISELECT(_ZThn48_N9GG13111233barEv,_ZThn24_N9GG13111233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13111233barEv,_ZTv0_n20_N9GG13111233barEv)();
+extern void ABISELECT(_ZThn64_N9GG13111233barEv,_ZThn32_N9GG13111233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13111233fooEv,_ZTv0_n12_N9GG13111233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG13111233fooEv,_ZThn40_N9GG13111233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1311123[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1311123[0]),
+ (VTBL_ENTRY)&_ZN9GG13111233fooEv,
+ (VTBL_ENTRY)&_ZN9GG13111233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1311123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13111233fooEv,_ZTv0_n20_N9GG13111233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1311123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13111233fooEv,_ZTv0_n12_N9GG13111233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1311123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13111233fooEv,_ZTv0_n12_N9GG13111233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13111233barEv,_ZTv0_n16_N9GG13111233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1311123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13111233barEv,_ZTv0_n20_N9GG13111233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1311123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13111233fooEv,_ZTv0_n12_N9GG13111233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1311123[];
+extern void _ZN5EE1313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE131__9GG1311123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&_ZN5EE1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE131__9GG1311123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE131__9GG1311123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF1123barEv();
+static VTBL_ENTRY _tg__ZTV5FF112__9GG1311123[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN5FF1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF112__9GG1311123[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF112__9GG1311123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG1311123[] = {
+ {&(_ZTV9GG1311123[7]), 7,35},
+ {&(_ZTV9GG1311123[14]), 14,35},
+ {&(_ZTV9GG1311123[18]), 18,35},
+ {&(_ZTV9GG1311123[23]), 23,35},
+ {&(_ZTV9GG1311123[30]), 30,35},
+ {&(_ZTV9GG1311123[34]), 34,35},
+ {&(_tg__ZTV5EE131__9GG1311123[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE131__9GG1311123[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE131__9GG1311123[4]), 4,6},
+ {&(_tg__ZTV5FF112__9GG1311123[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF112__9GG1311123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF112__9GG1311123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1311123[];
+extern VTBL_ENTRY _ZTV9GG1311123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1311123[];
+static VTBL_ENTRY alt_thunk_names382[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13111233barEv,_ZTv0_n20_N9GG13111233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13111233barEv,_ZThn32_N9GG13111233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13111233barEv,_ZTv0_n16_N9GG13111233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13111233barEv,_ZThn24_N9GG13111233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13111233fooEv,_ZTv0_n12_N9GG13111233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13111233fooEv,_ZThn40_N9GG13111233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13111233fooEv,_ZThn24_N9GG13111233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13111233fooEv,_ZThn16_N9GG13111233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13111233fooEv,_ZTv0_n20_N9GG13111233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13111233fooEv,_ZThn8_N9GG13111233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1311123 = { "GG1311123", // class name
+ bases_GG1311123, 5,
+ &(vtc_GG1311123[0]), // expected_vtbl_contents
+ &(vtt_GG1311123[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1311123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1311123),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1311123),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names382,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1311133 : virtual EE131 , virtual FF113 {
+ int pg;
+ virtual void foo(); // _ZN9GG13111333fooEv
+ virtual void bar(); // _ZN9GG13111333barEv
+ ~GG1311133(); // tgen
+ GG1311133(); // tgen
+};
+//SIG(1 GG1311133) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1311133 ::foo(){vfunc_called(this, "_ZN9GG13111333fooEv");}
+void GG1311133 ::bar(){vfunc_called(this, "_ZN9GG13111333barEv");}
+GG1311133 ::~GG1311133(){ note_dtor("GG1311133", this);} // tgen
+GG1311133 ::GG1311133(){ note_ctor("GG1311133", this);} // tgen
+
+static void Test_GG1311133()
+{
+ extern Class_Descriptor cd_GG1311133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1311133, buf);
+ GG1311133 *dp, &lv = *(dp=new (buf) GG1311133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1311133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1311133)");
+ check_base_class_offset(lv, (AA1*)(EE131*), ABISELECT(32,16), "GG1311133");
+ check_base_class_offset(lv, (AA1*)(FF113*), ABISELECT(32,16), "GG1311133");
+ check_base_class_offset(lv, (BB3*)(EE131*), ABISELECT(48,24), "GG1311133");
+ check_base_class_offset(lv, (EE131*), ABISELECT(16,8), "GG1311133");
+ check_base_class_offset(lv, (BB1*)(FF113*), ABISELECT(80,40), "GG1311133");
+ check_base_class_offset(lv, (FF113*), ABISELECT(64,32), "GG1311133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1311133.pg");
+ test_class_info(&lv, &cd_GG1311133);
+ dp->~GG1311133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1311133(Test_GG1311133, "GG1311133", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1311133C1Ev();
+extern void _ZN9GG1311133D1Ev();
+Name_Map name_map_GG1311133[] = {
+ NSPAIR(_ZN9GG1311133C1Ev),
+ NSPAIR(_ZN9GG1311133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE131;
+extern VTBL_ENTRY _ZTI5EE131[];
+extern VTBL_ENTRY _ZTV5EE131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE131[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF113;
+extern VTBL_ENTRY _ZTI5FF113[];
+extern VTBL_ENTRY _ZTV5FF113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF113[];
+static Base_Class bases_GG1311133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE131, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF113, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1311133[];
+extern void _ZN9GG13111333fooEv();
+extern void _ZN9GG13111333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13111333fooEv,_ZTv0_n20_N9GG13111333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13111333fooEv,_ZThn8_N9GG13111333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13111333fooEv,_ZTv0_n12_N9GG13111333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13111333fooEv,_ZThn16_N9GG13111333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13111333fooEv,_ZTv0_n12_N9GG13111333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13111333fooEv,_ZThn24_N9GG13111333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13111333barEv,_ZTv0_n16_N9GG13111333barEv)();
+extern void ABISELECT(_ZThn48_N9GG13111333barEv,_ZThn24_N9GG13111333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13111333fooEv,_ZTv0_n20_N9GG13111333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13111333fooEv,_ZThn32_N9GG13111333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13111333barEv,_ZTv0_n24_N9GG13111333barEv)();
+extern void ABISELECT(_ZThn64_N9GG13111333barEv,_ZThn32_N9GG13111333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13111333fooEv,_ZTv0_n12_N9GG13111333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG13111333fooEv,_ZThn40_N9GG13111333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1311133[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1311133[0]),
+ (VTBL_ENTRY)&_ZN9GG13111333fooEv,
+ (VTBL_ENTRY)&_ZN9GG13111333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1311133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13111333fooEv,_ZTv0_n20_N9GG13111333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1311133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13111333fooEv,_ZTv0_n12_N9GG13111333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1311133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13111333fooEv,_ZTv0_n12_N9GG13111333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13111333barEv,_ZTv0_n16_N9GG13111333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1311133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13111333fooEv,_ZTv0_n20_N9GG13111333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13111333barEv,_ZTv0_n24_N9GG13111333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1311133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13111333fooEv,_ZTv0_n12_N9GG13111333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1311133[];
+extern void _ZN5EE1313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE131__9GG1311133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&_ZN5EE1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE131__9GG1311133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE131__9GG1311133[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF1133fooEv();
+extern void _ZN5FF1133barEv();
+static VTBL_ENTRY _tg__ZTV5FF113__9GG1311133[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&_ZN5FF1133fooEv,
+ (VTBL_ENTRY)&_ZN5FF1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF113__9GG1311133[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF113__9GG1311133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+static VTT_ENTRY vtt_GG1311133[] = {
+ {&(_ZTV9GG1311133[7]), 7,37},
+ {&(_ZTV9GG1311133[14]), 14,37},
+ {&(_ZTV9GG1311133[18]), 18,37},
+ {&(_ZTV9GG1311133[23]), 23,37},
+ {&(_ZTV9GG1311133[31]), 31,37},
+ {&(_ZTV9GG1311133[36]), 36,37},
+ {&(_tg__ZTV5EE131__9GG1311133[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE131__9GG1311133[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE131__9GG1311133[4]), 4,6},
+ {&(_tg__ZTV5FF113__9GG1311133[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF113__9GG1311133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF113__9GG1311133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1311133[];
+extern VTBL_ENTRY _ZTV9GG1311133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1311133[];
+static VTBL_ENTRY alt_thunk_names383[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG13111333barEv,_ZTv0_n24_N9GG13111333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13111333barEv,_ZThn32_N9GG13111333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13111333barEv,_ZTv0_n16_N9GG13111333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13111333barEv,_ZThn24_N9GG13111333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13111333fooEv,_ZTv0_n12_N9GG13111333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13111333fooEv,_ZThn40_N9GG13111333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13111333fooEv,_ZThn24_N9GG13111333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13111333fooEv,_ZThn16_N9GG13111333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13111333fooEv,_ZTv0_n20_N9GG13111333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13111333fooEv,_ZThn32_N9GG13111333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13111333fooEv,_ZThn8_N9GG13111333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1311133 = { "GG1311133", // class name
+ bases_GG1311133, 5,
+ &(vtc_GG1311133[0]), // expected_vtbl_contents
+ &(vtt_GG1311133[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1311133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1311133),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1311133),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names383,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1311213 : virtual EE131 , virtual FF121 {
+ int pg;
+ virtual void foo(); // _ZN9GG13112133fooEv
+ virtual void bar(); // _ZN9GG13112133barEv
+ ~GG1311213(); // tgen
+ GG1311213(); // tgen
+};
+//SIG(1 GG1311213) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1311213 ::foo(){vfunc_called(this, "_ZN9GG13112133fooEv");}
+void GG1311213 ::bar(){vfunc_called(this, "_ZN9GG13112133barEv");}
+GG1311213 ::~GG1311213(){ note_dtor("GG1311213", this);} // tgen
+GG1311213 ::GG1311213(){ note_ctor("GG1311213", this);} // tgen
+
+static void Test_GG1311213()
+{
+ extern Class_Descriptor cd_GG1311213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1311213, buf);
+ GG1311213 *dp, &lv = *(dp=new (buf) GG1311213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1311213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1311213)");
+ check_base_class_offset(lv, (AA1*)(EE131*), ABISELECT(32,16), "GG1311213");
+ check_base_class_offset(lv, (AA1*)(FF121*), ABISELECT(32,16), "GG1311213");
+ check_base_class_offset(lv, (BB3*)(EE131*), ABISELECT(48,24), "GG1311213");
+ check_base_class_offset(lv, (EE131*), ABISELECT(16,8), "GG1311213");
+ check_base_class_offset(lv, (BB2*)(FF121*), ABISELECT(80,40), "GG1311213");
+ check_base_class_offset(lv, (FF121*), ABISELECT(64,32), "GG1311213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1311213.pg");
+ test_class_info(&lv, &cd_GG1311213);
+ dp->~GG1311213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1311213(Test_GG1311213, "GG1311213", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1311213C1Ev();
+extern void _ZN9GG1311213D1Ev();
+Name_Map name_map_GG1311213[] = {
+ NSPAIR(_ZN9GG1311213C1Ev),
+ NSPAIR(_ZN9GG1311213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE131;
+extern VTBL_ENTRY _ZTI5EE131[];
+extern VTBL_ENTRY _ZTV5EE131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE131[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF121;
+extern VTBL_ENTRY _ZTI5FF121[];
+extern VTBL_ENTRY _ZTV5FF121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF121[];
+static Base_Class bases_GG1311213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE131, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF121, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1311213[];
+extern void _ZN9GG13112133fooEv();
+extern void _ZN9GG13112133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13112133fooEv,_ZTv0_n20_N9GG13112133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13112133fooEv,_ZThn8_N9GG13112133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13112133fooEv,_ZTv0_n12_N9GG13112133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13112133fooEv,_ZThn16_N9GG13112133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13112133fooEv,_ZTv0_n12_N9GG13112133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13112133fooEv,_ZThn24_N9GG13112133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13112133barEv,_ZTv0_n16_N9GG13112133barEv)();
+extern void ABISELECT(_ZThn48_N9GG13112133barEv,_ZThn24_N9GG13112133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13112133fooEv,_ZTv0_n20_N9GG13112133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13112133fooEv,_ZThn32_N9GG13112133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13112133barEv,_ZTv0_n12_N9GG13112133barEv)();
+extern void ABISELECT(_ZThn80_N9GG13112133barEv,_ZThn40_N9GG13112133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1311213[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1311213[0]),
+ (VTBL_ENTRY)&_ZN9GG13112133fooEv,
+ (VTBL_ENTRY)&_ZN9GG13112133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1311213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13112133fooEv,_ZTv0_n20_N9GG13112133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1311213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13112133fooEv,_ZTv0_n12_N9GG13112133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1311213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13112133fooEv,_ZTv0_n12_N9GG13112133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13112133barEv,_ZTv0_n16_N9GG13112133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1311213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13112133fooEv,_ZTv0_n20_N9GG13112133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1311213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13112133barEv,_ZTv0_n12_N9GG13112133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1311213[];
+extern void _ZN5EE1313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE131__9GG1311213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&_ZN5EE1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE131__9GG1311213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE131__9GG1311213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF1213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF121__9GG1311213[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN5FF1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF121__9GG1311213[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF121__9GG1311213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG1311213[] = {
+ {&(_ZTV9GG1311213[7]), 7,35},
+ {&(_ZTV9GG1311213[14]), 14,35},
+ {&(_ZTV9GG1311213[18]), 18,35},
+ {&(_ZTV9GG1311213[23]), 23,35},
+ {&(_ZTV9GG1311213[30]), 30,35},
+ {&(_ZTV9GG1311213[34]), 34,35},
+ {&(_tg__ZTV5EE131__9GG1311213[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE131__9GG1311213[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE131__9GG1311213[4]), 4,6},
+ {&(_tg__ZTV5FF121__9GG1311213[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF121__9GG1311213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF121__9GG1311213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1311213[];
+extern VTBL_ENTRY _ZTV9GG1311213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1311213[];
+static VTBL_ENTRY alt_thunk_names384[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13112133barEv,_ZTv0_n12_N9GG13112133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13112133barEv,_ZThn40_N9GG13112133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13112133barEv,_ZTv0_n16_N9GG13112133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13112133barEv,_ZThn24_N9GG13112133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13112133fooEv,_ZTv0_n12_N9GG13112133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13112133fooEv,_ZThn24_N9GG13112133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13112133fooEv,_ZThn16_N9GG13112133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13112133fooEv,_ZTv0_n20_N9GG13112133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13112133fooEv,_ZThn32_N9GG13112133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13112133fooEv,_ZThn8_N9GG13112133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1311213 = { "GG1311213", // class name
+ bases_GG1311213, 5,
+ &(vtc_GG1311213[0]), // expected_vtbl_contents
+ &(vtt_GG1311213[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1311213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1311213),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1311213),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names384,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1311223 : virtual EE131 , virtual FF122 {
+ int pg;
+ virtual void foo(); // _ZN9GG13112233fooEv
+ virtual void bar(); // _ZN9GG13112233barEv
+ ~GG1311223(); // tgen
+ GG1311223(); // tgen
+};
+//SIG(1 GG1311223) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1311223 ::foo(){vfunc_called(this, "_ZN9GG13112233fooEv");}
+void GG1311223 ::bar(){vfunc_called(this, "_ZN9GG13112233barEv");}
+GG1311223 ::~GG1311223(){ note_dtor("GG1311223", this);} // tgen
+GG1311223 ::GG1311223(){ note_ctor("GG1311223", this);} // tgen
+
+static void Test_GG1311223()
+{
+ extern Class_Descriptor cd_GG1311223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1311223, buf);
+ GG1311223 *dp, &lv = *(dp=new (buf) GG1311223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1311223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1311223)");
+ check_base_class_offset(lv, (AA1*)(EE131*), ABISELECT(32,16), "GG1311223");
+ check_base_class_offset(lv, (AA1*)(FF122*), ABISELECT(32,16), "GG1311223");
+ check_base_class_offset(lv, (BB3*)(EE131*), ABISELECT(48,24), "GG1311223");
+ check_base_class_offset(lv, (EE131*), ABISELECT(16,8), "GG1311223");
+ check_base_class_offset(lv, (BB2*)(FF122*), ABISELECT(80,40), "GG1311223");
+ check_base_class_offset(lv, (FF122*), ABISELECT(64,32), "GG1311223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1311223.pg");
+ test_class_info(&lv, &cd_GG1311223);
+ dp->~GG1311223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1311223(Test_GG1311223, "GG1311223", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1311223C1Ev();
+extern void _ZN9GG1311223D1Ev();
+Name_Map name_map_GG1311223[] = {
+ NSPAIR(_ZN9GG1311223C1Ev),
+ NSPAIR(_ZN9GG1311223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE131;
+extern VTBL_ENTRY _ZTI5EE131[];
+extern VTBL_ENTRY _ZTV5EE131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE131[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF122;
+extern VTBL_ENTRY _ZTI5FF122[];
+extern VTBL_ENTRY _ZTV5FF122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF122[];
+static Base_Class bases_GG1311223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE131, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF122, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1311223[];
+extern void _ZN9GG13112233fooEv();
+extern void _ZN9GG13112233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13112233fooEv,_ZTv0_n20_N9GG13112233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13112233fooEv,_ZThn8_N9GG13112233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13112233fooEv,_ZTv0_n12_N9GG13112233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13112233fooEv,_ZThn16_N9GG13112233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13112233fooEv,_ZTv0_n12_N9GG13112233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13112233fooEv,_ZThn24_N9GG13112233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13112233barEv,_ZTv0_n16_N9GG13112233barEv)();
+extern void ABISELECT(_ZThn48_N9GG13112233barEv,_ZThn24_N9GG13112233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13112233barEv,_ZTv0_n20_N9GG13112233barEv)();
+extern void ABISELECT(_ZThn64_N9GG13112233barEv,_ZThn32_N9GG13112233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13112233barEv,_ZTv0_n12_N9GG13112233barEv)();
+extern void ABISELECT(_ZThn80_N9GG13112233barEv,_ZThn40_N9GG13112233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1311223[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1311223[0]),
+ (VTBL_ENTRY)&_ZN9GG13112233fooEv,
+ (VTBL_ENTRY)&_ZN9GG13112233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1311223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13112233fooEv,_ZTv0_n20_N9GG13112233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1311223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13112233fooEv,_ZTv0_n12_N9GG13112233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1311223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13112233fooEv,_ZTv0_n12_N9GG13112233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13112233barEv,_ZTv0_n16_N9GG13112233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1311223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13112233barEv,_ZTv0_n20_N9GG13112233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1311223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13112233barEv,_ZTv0_n12_N9GG13112233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1311223[];
+extern void _ZN5EE1313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE131__9GG1311223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&_ZN5EE1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE131__9GG1311223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE131__9GG1311223[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF1223barEv();
+static VTBL_ENTRY _tg__ZTV5FF122__9GG1311223[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN5FF1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF122__9GG1311223[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv)();
+extern void ABISELECT(_ZThn16_N5FF1223barEv,_ZThn8_N5FF1223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF122__9GG1311223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv),
+};
+static VTT_ENTRY vtt_GG1311223[] = {
+ {&(_ZTV9GG1311223[7]), 7,35},
+ {&(_ZTV9GG1311223[14]), 14,35},
+ {&(_ZTV9GG1311223[18]), 18,35},
+ {&(_ZTV9GG1311223[23]), 23,35},
+ {&(_ZTV9GG1311223[30]), 30,35},
+ {&(_ZTV9GG1311223[34]), 34,35},
+ {&(_tg__ZTV5EE131__9GG1311223[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE131__9GG1311223[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE131__9GG1311223[4]), 4,6},
+ {&(_tg__ZTV5FF122__9GG1311223[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF122__9GG1311223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF122__9GG1311223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1311223[];
+extern VTBL_ENTRY _ZTV9GG1311223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1311223[];
+static VTBL_ENTRY alt_thunk_names385[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1223barEv,_ZThn8_N5FF1223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13112233barEv,_ZTv0_n12_N9GG13112233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13112233barEv,_ZThn40_N9GG13112233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13112233barEv,_ZTv0_n20_N9GG13112233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13112233barEv,_ZThn32_N9GG13112233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13112233barEv,_ZTv0_n16_N9GG13112233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13112233barEv,_ZThn24_N9GG13112233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13112233fooEv,_ZTv0_n12_N9GG13112233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13112233fooEv,_ZThn24_N9GG13112233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13112233fooEv,_ZThn16_N9GG13112233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13112233fooEv,_ZTv0_n20_N9GG13112233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13112233fooEv,_ZThn8_N9GG13112233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1311223 = { "GG1311223", // class name
+ bases_GG1311223, 5,
+ &(vtc_GG1311223[0]), // expected_vtbl_contents
+ &(vtt_GG1311223[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1311223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1311223),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1311223),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names385,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1311233 : virtual EE131 , virtual FF123 {
+ int pg;
+ virtual void foo(); // _ZN9GG13112333fooEv
+ virtual void bar(); // _ZN9GG13112333barEv
+ ~GG1311233(); // tgen
+ GG1311233(); // tgen
+};
+//SIG(1 GG1311233) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1311233 ::foo(){vfunc_called(this, "_ZN9GG13112333fooEv");}
+void GG1311233 ::bar(){vfunc_called(this, "_ZN9GG13112333barEv");}
+GG1311233 ::~GG1311233(){ note_dtor("GG1311233", this);} // tgen
+GG1311233 ::GG1311233(){ note_ctor("GG1311233", this);} // tgen
+
+static void Test_GG1311233()
+{
+ extern Class_Descriptor cd_GG1311233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1311233, buf);
+ GG1311233 *dp, &lv = *(dp=new (buf) GG1311233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1311233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1311233)");
+ check_base_class_offset(lv, (AA1*)(EE131*), ABISELECT(32,16), "GG1311233");
+ check_base_class_offset(lv, (AA1*)(FF123*), ABISELECT(32,16), "GG1311233");
+ check_base_class_offset(lv, (BB3*)(EE131*), ABISELECT(48,24), "GG1311233");
+ check_base_class_offset(lv, (EE131*), ABISELECT(16,8), "GG1311233");
+ check_base_class_offset(lv, (BB2*)(FF123*), ABISELECT(80,40), "GG1311233");
+ check_base_class_offset(lv, (FF123*), ABISELECT(64,32), "GG1311233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1311233.pg");
+ test_class_info(&lv, &cd_GG1311233);
+ dp->~GG1311233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1311233(Test_GG1311233, "GG1311233", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1311233C1Ev();
+extern void _ZN9GG1311233D1Ev();
+Name_Map name_map_GG1311233[] = {
+ NSPAIR(_ZN9GG1311233C1Ev),
+ NSPAIR(_ZN9GG1311233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE131;
+extern VTBL_ENTRY _ZTI5EE131[];
+extern VTBL_ENTRY _ZTV5EE131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE131[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF123;
+extern VTBL_ENTRY _ZTI5FF123[];
+extern VTBL_ENTRY _ZTV5FF123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF123[];
+static Base_Class bases_GG1311233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE131, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF123, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1311233[];
+extern void _ZN9GG13112333fooEv();
+extern void _ZN9GG13112333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13112333fooEv,_ZTv0_n20_N9GG13112333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13112333fooEv,_ZThn8_N9GG13112333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13112333fooEv,_ZTv0_n12_N9GG13112333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13112333fooEv,_ZThn16_N9GG13112333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13112333fooEv,_ZTv0_n12_N9GG13112333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13112333fooEv,_ZThn24_N9GG13112333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13112333barEv,_ZTv0_n16_N9GG13112333barEv)();
+extern void ABISELECT(_ZThn48_N9GG13112333barEv,_ZThn24_N9GG13112333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13112333fooEv,_ZTv0_n20_N9GG13112333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13112333fooEv,_ZThn32_N9GG13112333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13112333barEv,_ZTv0_n24_N9GG13112333barEv)();
+extern void ABISELECT(_ZThn64_N9GG13112333barEv,_ZThn32_N9GG13112333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13112333barEv,_ZTv0_n12_N9GG13112333barEv)();
+extern void ABISELECT(_ZThn80_N9GG13112333barEv,_ZThn40_N9GG13112333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1311233[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1311233[0]),
+ (VTBL_ENTRY)&_ZN9GG13112333fooEv,
+ (VTBL_ENTRY)&_ZN9GG13112333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1311233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13112333fooEv,_ZTv0_n20_N9GG13112333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1311233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13112333fooEv,_ZTv0_n12_N9GG13112333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1311233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13112333fooEv,_ZTv0_n12_N9GG13112333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13112333barEv,_ZTv0_n16_N9GG13112333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1311233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13112333fooEv,_ZTv0_n20_N9GG13112333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13112333barEv,_ZTv0_n24_N9GG13112333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1311233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13112333barEv,_ZTv0_n12_N9GG13112333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1311233[];
+extern void _ZN5EE1313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE131__9GG1311233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&_ZN5EE1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE131__9GG1311233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE131__9GG1311233[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF1233fooEv();
+extern void _ZN5FF1233barEv();
+static VTBL_ENTRY _tg__ZTV5FF123__9GG1311233[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&_ZN5FF1233fooEv,
+ (VTBL_ENTRY)&_ZN5FF1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF123__9GG1311233[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv)();
+extern void ABISELECT(_ZThn16_N5FF1233barEv,_ZThn8_N5FF1233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF123__9GG1311233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv),
+};
+static VTT_ENTRY vtt_GG1311233[] = {
+ {&(_ZTV9GG1311233[7]), 7,37},
+ {&(_ZTV9GG1311233[14]), 14,37},
+ {&(_ZTV9GG1311233[18]), 18,37},
+ {&(_ZTV9GG1311233[23]), 23,37},
+ {&(_ZTV9GG1311233[31]), 31,37},
+ {&(_ZTV9GG1311233[36]), 36,37},
+ {&(_tg__ZTV5EE131__9GG1311233[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE131__9GG1311233[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE131__9GG1311233[4]), 4,6},
+ {&(_tg__ZTV5FF123__9GG1311233[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF123__9GG1311233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF123__9GG1311233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1311233[];
+extern VTBL_ENTRY _ZTV9GG1311233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1311233[];
+static VTBL_ENTRY alt_thunk_names386[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1233barEv,_ZThn8_N5FF1233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13112333barEv,_ZTv0_n12_N9GG13112333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13112333barEv,_ZThn40_N9GG13112333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG13112333barEv,_ZTv0_n24_N9GG13112333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13112333barEv,_ZThn32_N9GG13112333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13112333barEv,_ZTv0_n16_N9GG13112333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13112333barEv,_ZThn24_N9GG13112333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13112333fooEv,_ZTv0_n12_N9GG13112333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13112333fooEv,_ZThn24_N9GG13112333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13112333fooEv,_ZThn16_N9GG13112333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13112333fooEv,_ZTv0_n20_N9GG13112333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13112333fooEv,_ZThn32_N9GG13112333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13112333fooEv,_ZThn8_N9GG13112333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1311233 = { "GG1311233", // class name
+ bases_GG1311233, 5,
+ &(vtc_GG1311233[0]), // expected_vtbl_contents
+ &(vtt_GG1311233[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1311233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1311233),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1311233),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names386,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1311313 : virtual EE131 , virtual FF131 {
+ int pg;
+ virtual void foo(); // _ZN9GG13113133fooEv
+ virtual void bar(); // _ZN9GG13113133barEv
+ ~GG1311313(); // tgen
+ GG1311313(); // tgen
+};
+//SIG(1 GG1311313) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC3 VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG1311313 ::foo(){vfunc_called(this, "_ZN9GG13113133fooEv");}
+void GG1311313 ::bar(){vfunc_called(this, "_ZN9GG13113133barEv");}
+GG1311313 ::~GG1311313(){ note_dtor("GG1311313", this);} // tgen
+GG1311313 ::GG1311313(){ note_ctor("GG1311313", this);} // tgen
+
+static void Test_GG1311313()
+{
+ extern Class_Descriptor cd_GG1311313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG1311313, buf);
+ GG1311313 *dp, &lv = *(dp=new (buf) GG1311313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG1311313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1311313)");
+ check_base_class_offset(lv, (AA1*)(EE131*), ABISELECT(32,16), "GG1311313");
+ check_base_class_offset(lv, (AA1*)(FF131*), ABISELECT(32,16), "GG1311313");
+ check_base_class_offset(lv, (BB3*)(EE131*), ABISELECT(48,24), "GG1311313");
+ check_base_class_offset(lv, (BB3*)(FF131*), ABISELECT(48,24), "GG1311313");
+ check_base_class_offset(lv, (EE131*), ABISELECT(16,8), "GG1311313");
+ check_base_class_offset(lv, (FF131*), ABISELECT(64,32), "GG1311313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1311313.pg");
+ test_class_info(&lv, &cd_GG1311313);
+ dp->~GG1311313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1311313(Test_GG1311313, "GG1311313", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG1311313C1Ev();
+extern void _ZN9GG1311313D1Ev();
+Name_Map name_map_GG1311313[] = {
+ NSPAIR(_ZN9GG1311313C1Ev),
+ NSPAIR(_ZN9GG1311313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE131;
+extern VTBL_ENTRY _ZTI5EE131[];
+extern VTBL_ENTRY _ZTV5EE131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE131[];
+extern Class_Descriptor cd_FF131;
+extern VTBL_ENTRY _ZTI5FF131[];
+extern VTBL_ENTRY _ZTV5FF131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF131[];
+static Base_Class bases_GG1311313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE131, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF131, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1311313[];
+extern void _ZN9GG13113133fooEv();
+extern void _ZN9GG13113133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13113133fooEv,_ZTv0_n20_N9GG13113133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13113133fooEv,_ZThn8_N9GG13113133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13113133fooEv,_ZTv0_n12_N9GG13113133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13113133fooEv,_ZThn16_N9GG13113133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13113133fooEv,_ZTv0_n12_N9GG13113133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13113133fooEv,_ZThn24_N9GG13113133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13113133barEv,_ZTv0_n16_N9GG13113133barEv)();
+extern void ABISELECT(_ZThn48_N9GG13113133barEv,_ZThn24_N9GG13113133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13113133fooEv,_ZTv0_n20_N9GG13113133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13113133fooEv,_ZThn32_N9GG13113133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1311313[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1311313[0]),
+ (VTBL_ENTRY)&_ZN9GG13113133fooEv,
+ (VTBL_ENTRY)&_ZN9GG13113133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1311313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13113133fooEv,_ZTv0_n20_N9GG13113133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1311313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13113133fooEv,_ZTv0_n12_N9GG13113133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1311313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13113133fooEv,_ZTv0_n12_N9GG13113133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13113133barEv,_ZTv0_n16_N9GG13113133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1311313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13113133fooEv,_ZTv0_n20_N9GG13113133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1311313[];
+extern void _ZN5EE1313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE131__9GG1311313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&_ZN5EE1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE131__9GG1311313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE131__9GG1311313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF1313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF131__9GG1311313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&_ZN5FF1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF131__9GG1311313[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF131__9GG1311313[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG1311313[] = {
+ {&(_ZTV9GG1311313[6]), 6,30},
+ {&(_ZTV9GG1311313[13]), 13,30},
+ {&(_ZTV9GG1311313[17]), 17,30},
+ {&(_ZTV9GG1311313[22]), 22,30},
+ {&(_ZTV9GG1311313[29]), 29,30},
+ {&(_tg__ZTV5EE131__9GG1311313[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE131__9GG1311313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE131__9GG1311313[4]), 4,6},
+ {&(_tg__ZTV5FF131__9GG1311313[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF131__9GG1311313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF131__9GG1311313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1311313[];
+extern VTBL_ENTRY _ZTV9GG1311313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1311313[];
+static VTBL_ENTRY alt_thunk_names387[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13113133barEv,_ZTv0_n16_N9GG13113133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13113133barEv,_ZThn24_N9GG13113133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13113133fooEv,_ZTv0_n12_N9GG13113133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13113133fooEv,_ZThn24_N9GG13113133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13113133fooEv,_ZThn16_N9GG13113133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13113133fooEv,_ZTv0_n20_N9GG13113133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13113133fooEv,_ZThn32_N9GG13113133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13113133fooEv,_ZThn8_N9GG13113133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1311313 = { "GG1311313", // class name
+ bases_GG1311313, 4,
+ &(vtc_GG1311313[0]), // expected_vtbl_contents
+ &(vtt_GG1311313[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG1311313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1311313),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1311313),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names387,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1311323 : virtual EE131 , virtual FF132 {
+ int pg;
+ virtual void foo(); // _ZN9GG13113233fooEv
+ virtual void bar(); // _ZN9GG13113233barEv
+ ~GG1311323(); // tgen
+ GG1311323(); // tgen
+};
+//SIG(1 GG1311323) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC3 VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG1311323 ::foo(){vfunc_called(this, "_ZN9GG13113233fooEv");}
+void GG1311323 ::bar(){vfunc_called(this, "_ZN9GG13113233barEv");}
+GG1311323 ::~GG1311323(){ note_dtor("GG1311323", this);} // tgen
+GG1311323 ::GG1311323(){ note_ctor("GG1311323", this);} // tgen
+
+static void Test_GG1311323()
+{
+ extern Class_Descriptor cd_GG1311323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG1311323, buf);
+ GG1311323 *dp, &lv = *(dp=new (buf) GG1311323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG1311323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1311323)");
+ check_base_class_offset(lv, (AA1*)(EE131*), ABISELECT(32,16), "GG1311323");
+ check_base_class_offset(lv, (AA1*)(FF132*), ABISELECT(32,16), "GG1311323");
+ check_base_class_offset(lv, (BB3*)(EE131*), ABISELECT(48,24), "GG1311323");
+ check_base_class_offset(lv, (BB3*)(FF132*), ABISELECT(48,24), "GG1311323");
+ check_base_class_offset(lv, (EE131*), ABISELECT(16,8), "GG1311323");
+ check_base_class_offset(lv, (FF132*), ABISELECT(64,32), "GG1311323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1311323.pg");
+ test_class_info(&lv, &cd_GG1311323);
+ dp->~GG1311323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1311323(Test_GG1311323, "GG1311323", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG1311323C1Ev();
+extern void _ZN9GG1311323D1Ev();
+Name_Map name_map_GG1311323[] = {
+ NSPAIR(_ZN9GG1311323C1Ev),
+ NSPAIR(_ZN9GG1311323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE131;
+extern VTBL_ENTRY _ZTI5EE131[];
+extern VTBL_ENTRY _ZTV5EE131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE131[];
+extern Class_Descriptor cd_FF132;
+extern VTBL_ENTRY _ZTI5FF132[];
+extern VTBL_ENTRY _ZTV5FF132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF132[];
+static Base_Class bases_GG1311323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE131, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF132, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1311323[];
+extern void _ZN9GG13113233fooEv();
+extern void _ZN9GG13113233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13113233fooEv,_ZTv0_n20_N9GG13113233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13113233fooEv,_ZThn8_N9GG13113233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13113233fooEv,_ZTv0_n12_N9GG13113233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13113233fooEv,_ZThn16_N9GG13113233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13113233fooEv,_ZTv0_n12_N9GG13113233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13113233fooEv,_ZThn24_N9GG13113233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13113233barEv,_ZTv0_n16_N9GG13113233barEv)();
+extern void ABISELECT(_ZThn48_N9GG13113233barEv,_ZThn24_N9GG13113233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13113233barEv,_ZTv0_n20_N9GG13113233barEv)();
+extern void ABISELECT(_ZThn64_N9GG13113233barEv,_ZThn32_N9GG13113233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1311323[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1311323[0]),
+ (VTBL_ENTRY)&_ZN9GG13113233fooEv,
+ (VTBL_ENTRY)&_ZN9GG13113233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1311323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13113233fooEv,_ZTv0_n20_N9GG13113233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1311323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13113233fooEv,_ZTv0_n12_N9GG13113233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1311323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13113233fooEv,_ZTv0_n12_N9GG13113233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13113233barEv,_ZTv0_n16_N9GG13113233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1311323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13113233barEv,_ZTv0_n20_N9GG13113233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1311323[];
+extern void _ZN5EE1313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE131__9GG1311323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&_ZN5EE1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE131__9GG1311323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE131__9GG1311323[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF1323barEv();
+static VTBL_ENTRY _tg__ZTV5FF132__9GG1311323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN5FF1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF132__9GG1311323[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF132__9GG1311323[] = {
+ ABISELECT(16,8),
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv),
+};
+static VTT_ENTRY vtt_GG1311323[] = {
+ {&(_ZTV9GG1311323[6]), 6,30},
+ {&(_ZTV9GG1311323[13]), 13,30},
+ {&(_ZTV9GG1311323[17]), 17,30},
+ {&(_ZTV9GG1311323[22]), 22,30},
+ {&(_ZTV9GG1311323[29]), 29,30},
+ {&(_tg__ZTV5EE131__9GG1311323[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE131__9GG1311323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE131__9GG1311323[4]), 4,6},
+ {&(_tg__ZTV5FF132__9GG1311323[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF132__9GG1311323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF132__9GG1311323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1311323[];
+extern VTBL_ENTRY _ZTV9GG1311323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1311323[];
+static VTBL_ENTRY alt_thunk_names388[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13113233barEv,_ZTv0_n20_N9GG13113233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13113233barEv,_ZThn32_N9GG13113233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13113233barEv,_ZTv0_n16_N9GG13113233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13113233barEv,_ZThn24_N9GG13113233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13113233fooEv,_ZTv0_n12_N9GG13113233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13113233fooEv,_ZThn24_N9GG13113233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13113233fooEv,_ZThn16_N9GG13113233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13113233fooEv,_ZTv0_n20_N9GG13113233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13113233fooEv,_ZThn8_N9GG13113233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1311323 = { "GG1311323", // class name
+ bases_GG1311323, 4,
+ &(vtc_GG1311323[0]), // expected_vtbl_contents
+ &(vtt_GG1311323[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG1311323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1311323),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1311323),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names388,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1311333 : virtual EE131 , virtual FF133 {
+ int pg;
+ virtual void foo(); // _ZN9GG13113333fooEv
+ virtual void bar(); // _ZN9GG13113333barEv
+ ~GG1311333(); // tgen
+ GG1311333(); // tgen
+};
+//SIG(1 GG1311333) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC3 VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1311333 ::foo(){vfunc_called(this, "_ZN9GG13113333fooEv");}
+void GG1311333 ::bar(){vfunc_called(this, "_ZN9GG13113333barEv");}
+GG1311333 ::~GG1311333(){ note_dtor("GG1311333", this);} // tgen
+GG1311333 ::GG1311333(){ note_ctor("GG1311333", this);} // tgen
+
+static void Test_GG1311333()
+{
+ extern Class_Descriptor cd_GG1311333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG1311333, buf);
+ GG1311333 *dp, &lv = *(dp=new (buf) GG1311333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG1311333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1311333)");
+ check_base_class_offset(lv, (AA1*)(EE131*), ABISELECT(32,16), "GG1311333");
+ check_base_class_offset(lv, (AA1*)(FF133*), ABISELECT(32,16), "GG1311333");
+ check_base_class_offset(lv, (BB3*)(EE131*), ABISELECT(48,24), "GG1311333");
+ check_base_class_offset(lv, (BB3*)(FF133*), ABISELECT(48,24), "GG1311333");
+ check_base_class_offset(lv, (EE131*), ABISELECT(16,8), "GG1311333");
+ check_base_class_offset(lv, (FF133*), ABISELECT(64,32), "GG1311333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1311333.pg");
+ test_class_info(&lv, &cd_GG1311333);
+ dp->~GG1311333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1311333(Test_GG1311333, "GG1311333", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG1311333C1Ev();
+extern void _ZN9GG1311333D1Ev();
+Name_Map name_map_GG1311333[] = {
+ NSPAIR(_ZN9GG1311333C1Ev),
+ NSPAIR(_ZN9GG1311333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE131;
+extern VTBL_ENTRY _ZTI5EE131[];
+extern VTBL_ENTRY _ZTV5EE131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE131[];
+extern Class_Descriptor cd_FF133;
+extern VTBL_ENTRY _ZTI5FF133[];
+extern VTBL_ENTRY _ZTV5FF133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF133[];
+static Base_Class bases_GG1311333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE131, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF133, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1311333[];
+extern void _ZN9GG13113333fooEv();
+extern void _ZN9GG13113333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13113333fooEv,_ZTv0_n20_N9GG13113333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13113333fooEv,_ZThn8_N9GG13113333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13113333fooEv,_ZTv0_n12_N9GG13113333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13113333fooEv,_ZThn16_N9GG13113333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13113333fooEv,_ZTv0_n12_N9GG13113333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13113333fooEv,_ZThn24_N9GG13113333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13113333barEv,_ZTv0_n16_N9GG13113333barEv)();
+extern void ABISELECT(_ZThn48_N9GG13113333barEv,_ZThn24_N9GG13113333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13113333fooEv,_ZTv0_n20_N9GG13113333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13113333fooEv,_ZThn32_N9GG13113333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13113333barEv,_ZTv0_n24_N9GG13113333barEv)();
+extern void ABISELECT(_ZThn64_N9GG13113333barEv,_ZThn32_N9GG13113333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1311333[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1311333[0]),
+ (VTBL_ENTRY)&_ZN9GG13113333fooEv,
+ (VTBL_ENTRY)&_ZN9GG13113333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1311333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13113333fooEv,_ZTv0_n20_N9GG13113333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1311333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13113333fooEv,_ZTv0_n12_N9GG13113333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1311333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13113333fooEv,_ZTv0_n12_N9GG13113333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13113333barEv,_ZTv0_n16_N9GG13113333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1311333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13113333fooEv,_ZTv0_n20_N9GG13113333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13113333barEv,_ZTv0_n24_N9GG13113333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1311333[];
+extern void _ZN5EE1313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE131__9GG1311333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&_ZN5EE1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE131__9GG1311333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE131__9GG1311333[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF1333fooEv();
+extern void _ZN5FF1333barEv();
+static VTBL_ENTRY _tg__ZTV5FF133__9GG1311333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&_ZN5FF1333fooEv,
+ (VTBL_ENTRY)&_ZN5FF1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF133__9GG1311333[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF133__9GG1311333[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv),
+};
+static VTT_ENTRY vtt_GG1311333[] = {
+ {&(_ZTV9GG1311333[6]), 6,32},
+ {&(_ZTV9GG1311333[13]), 13,32},
+ {&(_ZTV9GG1311333[17]), 17,32},
+ {&(_ZTV9GG1311333[22]), 22,32},
+ {&(_ZTV9GG1311333[30]), 30,32},
+ {&(_tg__ZTV5EE131__9GG1311333[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE131__9GG1311333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE131__9GG1311333[4]), 4,6},
+ {&(_tg__ZTV5FF133__9GG1311333[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF133__9GG1311333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF133__9GG1311333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1311333[];
+extern VTBL_ENTRY _ZTV9GG1311333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1311333[];
+static VTBL_ENTRY alt_thunk_names389[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG13113333barEv,_ZTv0_n24_N9GG13113333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13113333barEv,_ZThn32_N9GG13113333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13113333barEv,_ZTv0_n16_N9GG13113333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13113333barEv,_ZThn24_N9GG13113333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13113333fooEv,_ZTv0_n12_N9GG13113333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13113333fooEv,_ZThn24_N9GG13113333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13113333fooEv,_ZThn16_N9GG13113333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13113333fooEv,_ZTv0_n20_N9GG13113333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13113333fooEv,_ZThn32_N9GG13113333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13113333fooEv,_ZThn8_N9GG13113333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1311333 = { "GG1311333", // class name
+ bases_GG1311333, 4,
+ &(vtc_GG1311333[0]), // expected_vtbl_contents
+ &(vtt_GG1311333[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG1311333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1311333),32, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1311333),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names389,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1312113 : virtual EE131 , virtual FF211 {
+ int pg;
+ virtual void foo(); // _ZN9GG13121133fooEv
+ virtual void bar(); // _ZN9GG13121133barEv
+ ~GG1312113(); // tgen
+ GG1312113(); // tgen
+};
+//SIG(1 GG1312113) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1312113 ::foo(){vfunc_called(this, "_ZN9GG13121133fooEv");}
+void GG1312113 ::bar(){vfunc_called(this, "_ZN9GG13121133barEv");}
+GG1312113 ::~GG1312113(){ note_dtor("GG1312113", this);} // tgen
+GG1312113 ::GG1312113(){ note_ctor("GG1312113", this);} // tgen
+
+static void Test_GG1312113()
+{
+ extern Class_Descriptor cd_GG1312113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1312113, buf);
+ GG1312113 *dp, &lv = *(dp=new (buf) GG1312113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1312113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1312113)");
+ check_base_class_offset(lv, (AA1*)(EE131*), ABISELECT(32,16), "GG1312113");
+ check_base_class_offset(lv, (BB3*)(EE131*), ABISELECT(48,24), "GG1312113");
+ check_base_class_offset(lv, (EE131*), ABISELECT(16,8), "GG1312113");
+ check_base_class_offset(lv, (AA2*)(FF211*), ABISELECT(80,40), "GG1312113");
+ check_base_class_offset(lv, (BB1*)(FF211*), ABISELECT(96,48), "GG1312113");
+ check_base_class_offset(lv, (FF211*), ABISELECT(64,32), "GG1312113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1312113.pg");
+ test_class_info(&lv, &cd_GG1312113);
+ dp->~GG1312113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1312113(Test_GG1312113, "GG1312113", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1312113C1Ev();
+extern void _ZN9GG1312113D1Ev();
+Name_Map name_map_GG1312113[] = {
+ NSPAIR(_ZN9GG1312113C1Ev),
+ NSPAIR(_ZN9GG1312113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE131;
+extern VTBL_ENTRY _ZTI5EE131[];
+extern VTBL_ENTRY _ZTV5EE131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE131[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF211;
+extern VTBL_ENTRY _ZTI5FF211[];
+extern VTBL_ENTRY _ZTV5FF211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF211[];
+static Base_Class bases_GG1312113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE131, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF211, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1312113[];
+extern void _ZN9GG13121133fooEv();
+extern void _ZN9GG13121133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13121133fooEv,_ZTv0_n20_N9GG13121133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13121133fooEv,_ZThn8_N9GG13121133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13121133fooEv,_ZTv0_n12_N9GG13121133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13121133fooEv,_ZThn16_N9GG13121133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13121133fooEv,_ZTv0_n12_N9GG13121133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13121133fooEv,_ZThn24_N9GG13121133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13121133barEv,_ZTv0_n16_N9GG13121133barEv)();
+extern void ABISELECT(_ZThn48_N9GG13121133barEv,_ZThn24_N9GG13121133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13121133fooEv,_ZTv0_n20_N9GG13121133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13121133fooEv,_ZThn32_N9GG13121133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13121133barEv,_ZTv0_n12_N9GG13121133barEv)();
+extern void ABISELECT(_ZThn80_N9GG13121133barEv,_ZThn40_N9GG13121133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13121133fooEv,_ZTv0_n12_N9GG13121133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG13121133fooEv,_ZThn48_N9GG13121133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1312113[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1312113[0]),
+ (VTBL_ENTRY)&_ZN9GG13121133fooEv,
+ (VTBL_ENTRY)&_ZN9GG13121133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1312113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13121133fooEv,_ZTv0_n20_N9GG13121133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1312113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13121133fooEv,_ZTv0_n12_N9GG13121133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1312113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13121133fooEv,_ZTv0_n12_N9GG13121133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13121133barEv,_ZTv0_n16_N9GG13121133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1312113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13121133fooEv,_ZTv0_n20_N9GG13121133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1312113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13121133barEv,_ZTv0_n12_N9GG13121133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1312113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13121133fooEv,_ZTv0_n12_N9GG13121133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1312113[];
+extern void _ZN5EE1313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE131__9GG1312113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&_ZN5EE1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE131__9GG1312113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE131__9GG1312113[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF2113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF211__9GG1312113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN5FF2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF211__9GG1312113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2113fooEv,_ZThn16_N5FF2113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF211__9GG1312113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv),
+};
+static VTT_ENTRY vtt_GG1312113[] = {
+ {&(_ZTV9GG1312113[8]), 8,40},
+ {&(_ZTV9GG1312113[15]), 15,40},
+ {&(_ZTV9GG1312113[19]), 19,40},
+ {&(_ZTV9GG1312113[24]), 24,40},
+ {&(_ZTV9GG1312113[31]), 31,40},
+ {&(_ZTV9GG1312113[35]), 35,40},
+ {&(_ZTV9GG1312113[39]), 39,40},
+ {&(_tg__ZTV5EE131__9GG1312113[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE131__9GG1312113[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE131__9GG1312113[4]), 4,6},
+ {&(_tg__ZTV5FF211__9GG1312113[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF211__9GG1312113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF211__9GG1312113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1312113[];
+extern VTBL_ENTRY _ZTV9GG1312113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1312113[];
+static VTBL_ENTRY alt_thunk_names390[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2113fooEv,_ZThn16_N5FF2113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13121133barEv,_ZTv0_n12_N9GG13121133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13121133barEv,_ZThn40_N9GG13121133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13121133barEv,_ZTv0_n16_N9GG13121133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13121133barEv,_ZThn24_N9GG13121133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13121133fooEv,_ZTv0_n12_N9GG13121133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG13121133fooEv,_ZThn48_N9GG13121133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13121133fooEv,_ZThn24_N9GG13121133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13121133fooEv,_ZThn16_N9GG13121133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13121133fooEv,_ZTv0_n20_N9GG13121133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13121133fooEv,_ZThn32_N9GG13121133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13121133fooEv,_ZThn8_N9GG13121133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1312113 = { "GG1312113", // class name
+ bases_GG1312113, 6,
+ &(vtc_GG1312113[0]), // expected_vtbl_contents
+ &(vtt_GG1312113[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1312113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1312113),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1312113),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names390,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1312123 : virtual EE131 , virtual FF212 {
+ int pg;
+ virtual void foo(); // _ZN9GG13121233fooEv
+ virtual void bar(); // _ZN9GG13121233barEv
+ ~GG1312123(); // tgen
+ GG1312123(); // tgen
+};
+//SIG(1 GG1312123) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1312123 ::foo(){vfunc_called(this, "_ZN9GG13121233fooEv");}
+void GG1312123 ::bar(){vfunc_called(this, "_ZN9GG13121233barEv");}
+GG1312123 ::~GG1312123(){ note_dtor("GG1312123", this);} // tgen
+GG1312123 ::GG1312123(){ note_ctor("GG1312123", this);} // tgen
+
+static void Test_GG1312123()
+{
+ extern Class_Descriptor cd_GG1312123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1312123, buf);
+ GG1312123 *dp, &lv = *(dp=new (buf) GG1312123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1312123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1312123)");
+ check_base_class_offset(lv, (AA1*)(EE131*), ABISELECT(32,16), "GG1312123");
+ check_base_class_offset(lv, (BB3*)(EE131*), ABISELECT(48,24), "GG1312123");
+ check_base_class_offset(lv, (EE131*), ABISELECT(16,8), "GG1312123");
+ check_base_class_offset(lv, (AA2*)(FF212*), ABISELECT(80,40), "GG1312123");
+ check_base_class_offset(lv, (BB1*)(FF212*), ABISELECT(96,48), "GG1312123");
+ check_base_class_offset(lv, (FF212*), ABISELECT(64,32), "GG1312123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1312123.pg");
+ test_class_info(&lv, &cd_GG1312123);
+ dp->~GG1312123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1312123(Test_GG1312123, "GG1312123", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1312123C1Ev();
+extern void _ZN9GG1312123D1Ev();
+Name_Map name_map_GG1312123[] = {
+ NSPAIR(_ZN9GG1312123C1Ev),
+ NSPAIR(_ZN9GG1312123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE131;
+extern VTBL_ENTRY _ZTI5EE131[];
+extern VTBL_ENTRY _ZTV5EE131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE131[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF212;
+extern VTBL_ENTRY _ZTI5FF212[];
+extern VTBL_ENTRY _ZTV5FF212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF212[];
+static Base_Class bases_GG1312123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE131, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF212, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1312123[];
+extern void _ZN9GG13121233fooEv();
+extern void _ZN9GG13121233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13121233fooEv,_ZTv0_n20_N9GG13121233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13121233fooEv,_ZThn8_N9GG13121233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13121233fooEv,_ZTv0_n12_N9GG13121233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13121233fooEv,_ZThn16_N9GG13121233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13121233fooEv,_ZTv0_n12_N9GG13121233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13121233fooEv,_ZThn24_N9GG13121233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13121233barEv,_ZTv0_n16_N9GG13121233barEv)();
+extern void ABISELECT(_ZThn48_N9GG13121233barEv,_ZThn24_N9GG13121233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13121233barEv,_ZTv0_n20_N9GG13121233barEv)();
+extern void ABISELECT(_ZThn64_N9GG13121233barEv,_ZThn32_N9GG13121233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13121233barEv,_ZTv0_n12_N9GG13121233barEv)();
+extern void ABISELECT(_ZThn80_N9GG13121233barEv,_ZThn40_N9GG13121233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13121233fooEv,_ZTv0_n12_N9GG13121233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG13121233fooEv,_ZThn48_N9GG13121233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1312123[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1312123[0]),
+ (VTBL_ENTRY)&_ZN9GG13121233fooEv,
+ (VTBL_ENTRY)&_ZN9GG13121233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1312123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13121233fooEv,_ZTv0_n20_N9GG13121233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1312123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13121233fooEv,_ZTv0_n12_N9GG13121233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1312123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13121233fooEv,_ZTv0_n12_N9GG13121233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13121233barEv,_ZTv0_n16_N9GG13121233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1312123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13121233barEv,_ZTv0_n20_N9GG13121233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1312123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13121233barEv,_ZTv0_n12_N9GG13121233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1312123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13121233fooEv,_ZTv0_n12_N9GG13121233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1312123[];
+extern void _ZN5EE1313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE131__9GG1312123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&_ZN5EE1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE131__9GG1312123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE131__9GG1312123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF2123barEv();
+static VTBL_ENTRY _tg__ZTV5FF212__9GG1312123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN5FF2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv)();
+extern void ABISELECT(_ZThn16_N5FF2123barEv,_ZThn8_N5FF2123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF212__9GG1312123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF212__9GG1312123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG1312123[] = {
+ {&(_ZTV9GG1312123[8]), 8,40},
+ {&(_ZTV9GG1312123[15]), 15,40},
+ {&(_ZTV9GG1312123[19]), 19,40},
+ {&(_ZTV9GG1312123[24]), 24,40},
+ {&(_ZTV9GG1312123[31]), 31,40},
+ {&(_ZTV9GG1312123[35]), 35,40},
+ {&(_ZTV9GG1312123[39]), 39,40},
+ {&(_tg__ZTV5EE131__9GG1312123[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE131__9GG1312123[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE131__9GG1312123[4]), 4,6},
+ {&(_tg__ZTV5FF212__9GG1312123[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF212__9GG1312123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF212__9GG1312123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1312123[];
+extern VTBL_ENTRY _ZTV9GG1312123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1312123[];
+static VTBL_ENTRY alt_thunk_names391[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2123barEv,_ZThn8_N5FF2123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13121233barEv,_ZTv0_n12_N9GG13121233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13121233barEv,_ZThn40_N9GG13121233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13121233barEv,_ZTv0_n20_N9GG13121233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13121233barEv,_ZThn32_N9GG13121233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13121233barEv,_ZTv0_n16_N9GG13121233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13121233barEv,_ZThn24_N9GG13121233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13121233fooEv,_ZTv0_n12_N9GG13121233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG13121233fooEv,_ZThn48_N9GG13121233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13121233fooEv,_ZThn24_N9GG13121233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13121233fooEv,_ZThn16_N9GG13121233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13121233fooEv,_ZTv0_n20_N9GG13121233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13121233fooEv,_ZThn8_N9GG13121233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1312123 = { "GG1312123", // class name
+ bases_GG1312123, 6,
+ &(vtc_GG1312123[0]), // expected_vtbl_contents
+ &(vtt_GG1312123[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1312123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1312123),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1312123),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names391,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1312133 : virtual EE131 , virtual FF213 {
+ int pg;
+ virtual void foo(); // _ZN9GG13121333fooEv
+ virtual void bar(); // _ZN9GG13121333barEv
+ ~GG1312133(); // tgen
+ GG1312133(); // tgen
+};
+//SIG(1 GG1312133) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1312133 ::foo(){vfunc_called(this, "_ZN9GG13121333fooEv");}
+void GG1312133 ::bar(){vfunc_called(this, "_ZN9GG13121333barEv");}
+GG1312133 ::~GG1312133(){ note_dtor("GG1312133", this);} // tgen
+GG1312133 ::GG1312133(){ note_ctor("GG1312133", this);} // tgen
+
+static void Test_GG1312133()
+{
+ extern Class_Descriptor cd_GG1312133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1312133, buf);
+ GG1312133 *dp, &lv = *(dp=new (buf) GG1312133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1312133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1312133)");
+ check_base_class_offset(lv, (AA1*)(EE131*), ABISELECT(32,16), "GG1312133");
+ check_base_class_offset(lv, (BB3*)(EE131*), ABISELECT(48,24), "GG1312133");
+ check_base_class_offset(lv, (EE131*), ABISELECT(16,8), "GG1312133");
+ check_base_class_offset(lv, (AA2*)(FF213*), ABISELECT(80,40), "GG1312133");
+ check_base_class_offset(lv, (BB1*)(FF213*), ABISELECT(96,48), "GG1312133");
+ check_base_class_offset(lv, (FF213*), ABISELECT(64,32), "GG1312133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1312133.pg");
+ test_class_info(&lv, &cd_GG1312133);
+ dp->~GG1312133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1312133(Test_GG1312133, "GG1312133", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1312133C1Ev();
+extern void _ZN9GG1312133D1Ev();
+Name_Map name_map_GG1312133[] = {
+ NSPAIR(_ZN9GG1312133C1Ev),
+ NSPAIR(_ZN9GG1312133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE131;
+extern VTBL_ENTRY _ZTI5EE131[];
+extern VTBL_ENTRY _ZTV5EE131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE131[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF213;
+extern VTBL_ENTRY _ZTI5FF213[];
+extern VTBL_ENTRY _ZTV5FF213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF213[];
+static Base_Class bases_GG1312133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE131, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF213, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1312133[];
+extern void _ZN9GG13121333fooEv();
+extern void _ZN9GG13121333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13121333fooEv,_ZTv0_n20_N9GG13121333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13121333fooEv,_ZThn8_N9GG13121333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13121333fooEv,_ZTv0_n12_N9GG13121333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13121333fooEv,_ZThn16_N9GG13121333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13121333fooEv,_ZTv0_n12_N9GG13121333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13121333fooEv,_ZThn24_N9GG13121333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13121333barEv,_ZTv0_n16_N9GG13121333barEv)();
+extern void ABISELECT(_ZThn48_N9GG13121333barEv,_ZThn24_N9GG13121333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13121333fooEv,_ZTv0_n20_N9GG13121333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13121333fooEv,_ZThn32_N9GG13121333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13121333barEv,_ZTv0_n24_N9GG13121333barEv)();
+extern void ABISELECT(_ZThn64_N9GG13121333barEv,_ZThn32_N9GG13121333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13121333barEv,_ZTv0_n12_N9GG13121333barEv)();
+extern void ABISELECT(_ZThn80_N9GG13121333barEv,_ZThn40_N9GG13121333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13121333fooEv,_ZTv0_n12_N9GG13121333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG13121333fooEv,_ZThn48_N9GG13121333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1312133[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1312133[0]),
+ (VTBL_ENTRY)&_ZN9GG13121333fooEv,
+ (VTBL_ENTRY)&_ZN9GG13121333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1312133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13121333fooEv,_ZTv0_n20_N9GG13121333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1312133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13121333fooEv,_ZTv0_n12_N9GG13121333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1312133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13121333fooEv,_ZTv0_n12_N9GG13121333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13121333barEv,_ZTv0_n16_N9GG13121333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1312133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13121333fooEv,_ZTv0_n20_N9GG13121333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13121333barEv,_ZTv0_n24_N9GG13121333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1312133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13121333barEv,_ZTv0_n12_N9GG13121333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1312133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13121333fooEv,_ZTv0_n12_N9GG13121333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1312133[];
+extern void _ZN5EE1313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE131__9GG1312133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&_ZN5EE1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE131__9GG1312133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE131__9GG1312133[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF2133fooEv();
+extern void _ZN5FF2133barEv();
+static VTBL_ENTRY _tg__ZTV5FF213__9GG1312133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&_ZN5FF2133fooEv,
+ (VTBL_ENTRY)&_ZN5FF2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv)();
+extern void ABISELECT(_ZThn16_N5FF2133barEv,_ZThn8_N5FF2133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF213__9GG1312133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2133fooEv,_ZThn16_N5FF2133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF213__9GG1312133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv),
+};
+static VTT_ENTRY vtt_GG1312133[] = {
+ {&(_ZTV9GG1312133[8]), 8,42},
+ {&(_ZTV9GG1312133[15]), 15,42},
+ {&(_ZTV9GG1312133[19]), 19,42},
+ {&(_ZTV9GG1312133[24]), 24,42},
+ {&(_ZTV9GG1312133[32]), 32,42},
+ {&(_ZTV9GG1312133[37]), 37,42},
+ {&(_ZTV9GG1312133[41]), 41,42},
+ {&(_tg__ZTV5EE131__9GG1312133[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE131__9GG1312133[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE131__9GG1312133[4]), 4,6},
+ {&(_tg__ZTV5FF213__9GG1312133[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF213__9GG1312133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF213__9GG1312133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1312133[];
+extern VTBL_ENTRY _ZTV9GG1312133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1312133[];
+static VTBL_ENTRY alt_thunk_names392[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2133fooEv,_ZThn16_N5FF2133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2133barEv,_ZThn8_N5FF2133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13121333barEv,_ZTv0_n12_N9GG13121333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13121333barEv,_ZThn40_N9GG13121333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG13121333barEv,_ZTv0_n24_N9GG13121333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13121333barEv,_ZThn32_N9GG13121333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13121333barEv,_ZTv0_n16_N9GG13121333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13121333barEv,_ZThn24_N9GG13121333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13121333fooEv,_ZTv0_n12_N9GG13121333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG13121333fooEv,_ZThn48_N9GG13121333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13121333fooEv,_ZThn24_N9GG13121333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13121333fooEv,_ZThn16_N9GG13121333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13121333fooEv,_ZTv0_n20_N9GG13121333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13121333fooEv,_ZThn32_N9GG13121333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13121333fooEv,_ZThn8_N9GG13121333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1312133 = { "GG1312133", // class name
+ bases_GG1312133, 6,
+ &(vtc_GG1312133[0]), // expected_vtbl_contents
+ &(vtt_GG1312133[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1312133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1312133),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1312133),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names392,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1312213 : virtual EE131 , virtual FF221 {
+ int pg;
+ virtual void foo(); // _ZN9GG13122133fooEv
+ virtual void bar(); // _ZN9GG13122133barEv
+ ~GG1312213(); // tgen
+ GG1312213(); // tgen
+};
+//SIG(1 GG1312213) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1312213 ::foo(){vfunc_called(this, "_ZN9GG13122133fooEv");}
+void GG1312213 ::bar(){vfunc_called(this, "_ZN9GG13122133barEv");}
+GG1312213 ::~GG1312213(){ note_dtor("GG1312213", this);} // tgen
+GG1312213 ::GG1312213(){ note_ctor("GG1312213", this);} // tgen
+
+static void Test_GG1312213()
+{
+ extern Class_Descriptor cd_GG1312213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1312213, buf);
+ GG1312213 *dp, &lv = *(dp=new (buf) GG1312213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1312213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1312213)");
+ check_base_class_offset(lv, (AA1*)(EE131*), ABISELECT(32,16), "GG1312213");
+ check_base_class_offset(lv, (BB3*)(EE131*), ABISELECT(48,24), "GG1312213");
+ check_base_class_offset(lv, (EE131*), ABISELECT(16,8), "GG1312213");
+ check_base_class_offset(lv, (AA2*)(FF221*), ABISELECT(80,40), "GG1312213");
+ check_base_class_offset(lv, (BB2*)(FF221*), ABISELECT(96,48), "GG1312213");
+ check_base_class_offset(lv, (FF221*), ABISELECT(64,32), "GG1312213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1312213.pg");
+ test_class_info(&lv, &cd_GG1312213);
+ dp->~GG1312213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1312213(Test_GG1312213, "GG1312213", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1312213C1Ev();
+extern void _ZN9GG1312213D1Ev();
+Name_Map name_map_GG1312213[] = {
+ NSPAIR(_ZN9GG1312213C1Ev),
+ NSPAIR(_ZN9GG1312213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE131;
+extern VTBL_ENTRY _ZTI5EE131[];
+extern VTBL_ENTRY _ZTV5EE131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE131[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF221;
+extern VTBL_ENTRY _ZTI5FF221[];
+extern VTBL_ENTRY _ZTV5FF221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF221[];
+static Base_Class bases_GG1312213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE131, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF221, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1312213[];
+extern void _ZN9GG13122133fooEv();
+extern void _ZN9GG13122133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13122133fooEv,_ZTv0_n20_N9GG13122133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13122133fooEv,_ZThn8_N9GG13122133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13122133fooEv,_ZTv0_n12_N9GG13122133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13122133fooEv,_ZThn16_N9GG13122133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13122133fooEv,_ZTv0_n12_N9GG13122133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13122133fooEv,_ZThn24_N9GG13122133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13122133barEv,_ZTv0_n16_N9GG13122133barEv)();
+extern void ABISELECT(_ZThn48_N9GG13122133barEv,_ZThn24_N9GG13122133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13122133fooEv,_ZTv0_n20_N9GG13122133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13122133fooEv,_ZThn32_N9GG13122133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13122133barEv,_ZTv0_n12_N9GG13122133barEv)();
+extern void ABISELECT(_ZThn80_N9GG13122133barEv,_ZThn40_N9GG13122133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13122133barEv,_ZTv0_n12_N9GG13122133barEv)();
+extern void ABISELECT(_ZThn96_N9GG13122133barEv,_ZThn48_N9GG13122133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1312213[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1312213[0]),
+ (VTBL_ENTRY)&_ZN9GG13122133fooEv,
+ (VTBL_ENTRY)&_ZN9GG13122133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1312213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13122133fooEv,_ZTv0_n20_N9GG13122133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1312213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13122133fooEv,_ZTv0_n12_N9GG13122133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1312213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13122133fooEv,_ZTv0_n12_N9GG13122133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13122133barEv,_ZTv0_n16_N9GG13122133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1312213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13122133fooEv,_ZTv0_n20_N9GG13122133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1312213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13122133barEv,_ZTv0_n12_N9GG13122133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1312213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13122133barEv,_ZTv0_n12_N9GG13122133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1312213[];
+extern void _ZN5EE1313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE131__9GG1312213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&_ZN5EE1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE131__9GG1312213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE131__9GG1312213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF2213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF221__9GG1312213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN5FF2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF221__9GG1312213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF221__9GG1312213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG1312213[] = {
+ {&(_ZTV9GG1312213[8]), 8,40},
+ {&(_ZTV9GG1312213[15]), 15,40},
+ {&(_ZTV9GG1312213[19]), 19,40},
+ {&(_ZTV9GG1312213[24]), 24,40},
+ {&(_ZTV9GG1312213[31]), 31,40},
+ {&(_ZTV9GG1312213[35]), 35,40},
+ {&(_ZTV9GG1312213[39]), 39,40},
+ {&(_tg__ZTV5EE131__9GG1312213[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE131__9GG1312213[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE131__9GG1312213[4]), 4,6},
+ {&(_tg__ZTV5FF221__9GG1312213[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF221__9GG1312213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF221__9GG1312213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1312213[];
+extern VTBL_ENTRY _ZTV9GG1312213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1312213[];
+static VTBL_ENTRY alt_thunk_names393[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13122133barEv,_ZTv0_n12_N9GG13122133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG13122133barEv,_ZThn48_N9GG13122133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13122133barEv,_ZThn40_N9GG13122133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13122133barEv,_ZTv0_n16_N9GG13122133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13122133barEv,_ZThn24_N9GG13122133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13122133fooEv,_ZTv0_n12_N9GG13122133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13122133fooEv,_ZThn24_N9GG13122133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13122133fooEv,_ZThn16_N9GG13122133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13122133fooEv,_ZTv0_n20_N9GG13122133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13122133fooEv,_ZThn32_N9GG13122133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13122133fooEv,_ZThn8_N9GG13122133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1312213 = { "GG1312213", // class name
+ bases_GG1312213, 6,
+ &(vtc_GG1312213[0]), // expected_vtbl_contents
+ &(vtt_GG1312213[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1312213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1312213),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1312213),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names393,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1312222 : virtual EE131 , virtual FF222 {
+ int pg;
+ virtual void bar(); // _ZN9GG13122223barEv
+ ~GG1312222(); // tgen
+ GG1312222(); // tgen
+};
+//SIG(1 GG1312222) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 v1 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+void GG1312222 ::bar(){vfunc_called(this, "_ZN9GG13122223barEv");}
+GG1312222 ::~GG1312222(){ note_dtor("GG1312222", this);} // tgen
+GG1312222 ::GG1312222(){ note_ctor("GG1312222", this);} // tgen
+
+static void Test_GG1312222()
+{
+ extern Class_Descriptor cd_GG1312222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1312222, buf);
+ GG1312222 *dp, &lv = *(dp=new (buf) GG1312222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1312222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1312222)");
+ check_base_class_offset(lv, (AA1*)(EE131*), ABISELECT(32,16), "GG1312222");
+ check_base_class_offset(lv, (BB3*)(EE131*), ABISELECT(48,24), "GG1312222");
+ check_base_class_offset(lv, (EE131*), ABISELECT(16,8), "GG1312222");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(80,40), "GG1312222");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(96,48), "GG1312222");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG1312222");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1312222.pg");
+ test_class_info(&lv, &cd_GG1312222);
+ dp->~GG1312222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1312222(Test_GG1312222, "GG1312222", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1312222C1Ev();
+extern void _ZN9GG1312222D1Ev();
+Name_Map name_map_GG1312222[] = {
+ NSPAIR(_ZN9GG1312222C1Ev),
+ NSPAIR(_ZN9GG1312222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE131;
+extern VTBL_ENTRY _ZTI5EE131[];
+extern VTBL_ENTRY _ZTV5EE131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE131[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG1312222[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE131, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1312222[];
+extern void _ZN9GG13122223barEv();
+extern void _ZN5EE1313fooEv();
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13122223barEv,_ZTv0_n16_N9GG13122223barEv)();
+extern void ABISELECT(_ZThn48_N9GG13122223barEv,_ZThn24_N9GG13122223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13122223barEv,_ZTv0_n20_N9GG13122223barEv)();
+extern void ABISELECT(_ZThn64_N9GG13122223barEv,_ZThn32_N9GG13122223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13122223barEv,_ZTv0_n12_N9GG13122223barEv)();
+extern void ABISELECT(_ZThn80_N9GG13122223barEv,_ZThn40_N9GG13122223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13122223barEv,_ZTv0_n12_N9GG13122223barEv)();
+extern void ABISELECT(_ZThn96_N9GG13122223barEv,_ZThn48_N9GG13122223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1312222[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1312222[0]),
+ (VTBL_ENTRY)&_ZN9GG13122223barEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1312222[0]),
+ (VTBL_ENTRY)&_ZN5EE1313fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1312222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1312222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13122223barEv,_ZTv0_n16_N9GG13122223barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1312222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13122223barEv,_ZTv0_n20_N9GG13122223barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1312222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13122223barEv,_ZTv0_n12_N9GG13122223barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1312222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13122223barEv,_ZTv0_n12_N9GG13122223barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1312222[];
+extern void _ZN5EE1313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE131__9GG1312222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&_ZN5EE1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE131__9GG1312222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE131__9GG1312222[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG1312222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG1312222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG1312222[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG1312222[] = {
+ {&(_ZTV9GG1312222[8]), 8,39},
+ {&(_ZTV9GG1312222[14]), 14,39},
+ {&(_ZTV9GG1312222[18]), 18,39},
+ {&(_ZTV9GG1312222[23]), 23,39},
+ {&(_ZTV9GG1312222[30]), 30,39},
+ {&(_ZTV9GG1312222[34]), 34,39},
+ {&(_ZTV9GG1312222[38]), 38,39},
+ {&(_tg__ZTV5EE131__9GG1312222[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE131__9GG1312222[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE131__9GG1312222[4]), 4,6},
+ {&(_tg__ZTV5FF222__9GG1312222[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG1312222[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG1312222[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1312222[];
+extern VTBL_ENTRY _ZTV9GG1312222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1312222[];
+static VTBL_ENTRY alt_thunk_names394[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13122223barEv,_ZTv0_n12_N9GG13122223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG13122223barEv,_ZThn48_N9GG13122223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13122223barEv,_ZThn40_N9GG13122223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13122223barEv,_ZTv0_n20_N9GG13122223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13122223barEv,_ZThn32_N9GG13122223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13122223barEv,_ZTv0_n16_N9GG13122223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13122223barEv,_ZThn24_N9GG13122223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1312222 = { "GG1312222", // class name
+ bases_GG1312222, 6,
+ &(vtc_GG1312222[0]), // expected_vtbl_contents
+ &(vtt_GG1312222[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1312222),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1312222),39, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1312222),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names394,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1312223 : virtual EE131 , virtual FF222 {
+ int pg;
+ virtual void foo(); // _ZN9GG13122233fooEv
+ virtual void bar(); // _ZN9GG13122233barEv
+ ~GG1312223(); // tgen
+ GG1312223(); // tgen
+};
+//SIG(1 GG1312223) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1312223 ::foo(){vfunc_called(this, "_ZN9GG13122233fooEv");}
+void GG1312223 ::bar(){vfunc_called(this, "_ZN9GG13122233barEv");}
+GG1312223 ::~GG1312223(){ note_dtor("GG1312223", this);} // tgen
+GG1312223 ::GG1312223(){ note_ctor("GG1312223", this);} // tgen
+
+static void Test_GG1312223()
+{
+ extern Class_Descriptor cd_GG1312223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1312223, buf);
+ GG1312223 *dp, &lv = *(dp=new (buf) GG1312223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1312223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1312223)");
+ check_base_class_offset(lv, (AA1*)(EE131*), ABISELECT(32,16), "GG1312223");
+ check_base_class_offset(lv, (BB3*)(EE131*), ABISELECT(48,24), "GG1312223");
+ check_base_class_offset(lv, (EE131*), ABISELECT(16,8), "GG1312223");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(80,40), "GG1312223");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(96,48), "GG1312223");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG1312223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1312223.pg");
+ test_class_info(&lv, &cd_GG1312223);
+ dp->~GG1312223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1312223(Test_GG1312223, "GG1312223", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1312223C1Ev();
+extern void _ZN9GG1312223D1Ev();
+Name_Map name_map_GG1312223[] = {
+ NSPAIR(_ZN9GG1312223C1Ev),
+ NSPAIR(_ZN9GG1312223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE131;
+extern VTBL_ENTRY _ZTI5EE131[];
+extern VTBL_ENTRY _ZTV5EE131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE131[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG1312223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE131, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1312223[];
+extern void _ZN9GG13122233fooEv();
+extern void _ZN9GG13122233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13122233fooEv,_ZTv0_n20_N9GG13122233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13122233fooEv,_ZThn8_N9GG13122233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13122233fooEv,_ZTv0_n12_N9GG13122233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13122233fooEv,_ZThn16_N9GG13122233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13122233fooEv,_ZTv0_n12_N9GG13122233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13122233fooEv,_ZThn24_N9GG13122233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13122233barEv,_ZTv0_n16_N9GG13122233barEv)();
+extern void ABISELECT(_ZThn48_N9GG13122233barEv,_ZThn24_N9GG13122233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13122233barEv,_ZTv0_n20_N9GG13122233barEv)();
+extern void ABISELECT(_ZThn64_N9GG13122233barEv,_ZThn32_N9GG13122233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13122233barEv,_ZTv0_n12_N9GG13122233barEv)();
+extern void ABISELECT(_ZThn80_N9GG13122233barEv,_ZThn40_N9GG13122233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13122233barEv,_ZTv0_n12_N9GG13122233barEv)();
+extern void ABISELECT(_ZThn96_N9GG13122233barEv,_ZThn48_N9GG13122233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1312223[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1312223[0]),
+ (VTBL_ENTRY)&_ZN9GG13122233fooEv,
+ (VTBL_ENTRY)&_ZN9GG13122233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1312223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13122233fooEv,_ZTv0_n20_N9GG13122233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1312223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13122233fooEv,_ZTv0_n12_N9GG13122233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1312223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13122233fooEv,_ZTv0_n12_N9GG13122233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13122233barEv,_ZTv0_n16_N9GG13122233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1312223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13122233barEv,_ZTv0_n20_N9GG13122233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1312223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13122233barEv,_ZTv0_n12_N9GG13122233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1312223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13122233barEv,_ZTv0_n12_N9GG13122233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1312223[];
+extern void _ZN5EE1313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE131__9GG1312223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&_ZN5EE1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE131__9GG1312223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE131__9GG1312223[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG1312223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG1312223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG1312223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG1312223[] = {
+ {&(_ZTV9GG1312223[8]), 8,40},
+ {&(_ZTV9GG1312223[15]), 15,40},
+ {&(_ZTV9GG1312223[19]), 19,40},
+ {&(_ZTV9GG1312223[24]), 24,40},
+ {&(_ZTV9GG1312223[31]), 31,40},
+ {&(_ZTV9GG1312223[35]), 35,40},
+ {&(_ZTV9GG1312223[39]), 39,40},
+ {&(_tg__ZTV5EE131__9GG1312223[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE131__9GG1312223[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE131__9GG1312223[4]), 4,6},
+ {&(_tg__ZTV5FF222__9GG1312223[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG1312223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG1312223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1312223[];
+extern VTBL_ENTRY _ZTV9GG1312223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1312223[];
+static VTBL_ENTRY alt_thunk_names395[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13122233barEv,_ZTv0_n12_N9GG13122233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG13122233barEv,_ZThn48_N9GG13122233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13122233barEv,_ZThn40_N9GG13122233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13122233barEv,_ZTv0_n20_N9GG13122233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13122233barEv,_ZThn32_N9GG13122233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13122233barEv,_ZTv0_n16_N9GG13122233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13122233barEv,_ZThn24_N9GG13122233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13122233fooEv,_ZTv0_n12_N9GG13122233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13122233fooEv,_ZThn24_N9GG13122233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13122233fooEv,_ZThn16_N9GG13122233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13122233fooEv,_ZTv0_n20_N9GG13122233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13122233fooEv,_ZThn8_N9GG13122233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1312223 = { "GG1312223", // class name
+ bases_GG1312223, 6,
+ &(vtc_GG1312223[0]), // expected_vtbl_contents
+ &(vtt_GG1312223[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1312223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1312223),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1312223),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names395,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1312233 : virtual EE131 , virtual FF223 {
+ int pg;
+ virtual void foo(); // _ZN9GG13122333fooEv
+ virtual void bar(); // _ZN9GG13122333barEv
+ ~GG1312233(); // tgen
+ GG1312233(); // tgen
+};
+//SIG(1 GG1312233) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1312233 ::foo(){vfunc_called(this, "_ZN9GG13122333fooEv");}
+void GG1312233 ::bar(){vfunc_called(this, "_ZN9GG13122333barEv");}
+GG1312233 ::~GG1312233(){ note_dtor("GG1312233", this);} // tgen
+GG1312233 ::GG1312233(){ note_ctor("GG1312233", this);} // tgen
+
+static void Test_GG1312233()
+{
+ extern Class_Descriptor cd_GG1312233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1312233, buf);
+ GG1312233 *dp, &lv = *(dp=new (buf) GG1312233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1312233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1312233)");
+ check_base_class_offset(lv, (AA1*)(EE131*), ABISELECT(32,16), "GG1312233");
+ check_base_class_offset(lv, (BB3*)(EE131*), ABISELECT(48,24), "GG1312233");
+ check_base_class_offset(lv, (EE131*), ABISELECT(16,8), "GG1312233");
+ check_base_class_offset(lv, (AA2*)(FF223*), ABISELECT(80,40), "GG1312233");
+ check_base_class_offset(lv, (BB2*)(FF223*), ABISELECT(96,48), "GG1312233");
+ check_base_class_offset(lv, (FF223*), ABISELECT(64,32), "GG1312233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1312233.pg");
+ test_class_info(&lv, &cd_GG1312233);
+ dp->~GG1312233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1312233(Test_GG1312233, "GG1312233", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1312233C1Ev();
+extern void _ZN9GG1312233D1Ev();
+Name_Map name_map_GG1312233[] = {
+ NSPAIR(_ZN9GG1312233C1Ev),
+ NSPAIR(_ZN9GG1312233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE131;
+extern VTBL_ENTRY _ZTI5EE131[];
+extern VTBL_ENTRY _ZTV5EE131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE131[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF223;
+extern VTBL_ENTRY _ZTI5FF223[];
+extern VTBL_ENTRY _ZTV5FF223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF223[];
+static Base_Class bases_GG1312233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE131, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF223, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1312233[];
+extern void _ZN9GG13122333fooEv();
+extern void _ZN9GG13122333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13122333fooEv,_ZTv0_n20_N9GG13122333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13122333fooEv,_ZThn8_N9GG13122333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13122333fooEv,_ZTv0_n12_N9GG13122333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13122333fooEv,_ZThn16_N9GG13122333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13122333fooEv,_ZTv0_n12_N9GG13122333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13122333fooEv,_ZThn24_N9GG13122333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13122333barEv,_ZTv0_n16_N9GG13122333barEv)();
+extern void ABISELECT(_ZThn48_N9GG13122333barEv,_ZThn24_N9GG13122333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13122333fooEv,_ZTv0_n20_N9GG13122333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13122333fooEv,_ZThn32_N9GG13122333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13122333barEv,_ZTv0_n24_N9GG13122333barEv)();
+extern void ABISELECT(_ZThn64_N9GG13122333barEv,_ZThn32_N9GG13122333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13122333barEv,_ZTv0_n12_N9GG13122333barEv)();
+extern void ABISELECT(_ZThn80_N9GG13122333barEv,_ZThn40_N9GG13122333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13122333barEv,_ZTv0_n12_N9GG13122333barEv)();
+extern void ABISELECT(_ZThn96_N9GG13122333barEv,_ZThn48_N9GG13122333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1312233[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1312233[0]),
+ (VTBL_ENTRY)&_ZN9GG13122333fooEv,
+ (VTBL_ENTRY)&_ZN9GG13122333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1312233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13122333fooEv,_ZTv0_n20_N9GG13122333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1312233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13122333fooEv,_ZTv0_n12_N9GG13122333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1312233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13122333fooEv,_ZTv0_n12_N9GG13122333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13122333barEv,_ZTv0_n16_N9GG13122333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1312233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13122333fooEv,_ZTv0_n20_N9GG13122333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13122333barEv,_ZTv0_n24_N9GG13122333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1312233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13122333barEv,_ZTv0_n12_N9GG13122333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1312233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13122333barEv,_ZTv0_n12_N9GG13122333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1312233[];
+extern void _ZN5EE1313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE131__9GG1312233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&_ZN5EE1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE131__9GG1312233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE131__9GG1312233[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF2233fooEv();
+extern void _ZN5FF2233barEv();
+static VTBL_ENTRY _tg__ZTV5FF223__9GG1312233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&_ZN5FF2233fooEv,
+ (VTBL_ENTRY)&_ZN5FF2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+extern void ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF223__9GG1312233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+extern void ABISELECT(_ZThn32_N5FF2233barEv,_ZThn16_N5FF2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF223__9GG1312233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+static VTT_ENTRY vtt_GG1312233[] = {
+ {&(_ZTV9GG1312233[8]), 8,42},
+ {&(_ZTV9GG1312233[15]), 15,42},
+ {&(_ZTV9GG1312233[19]), 19,42},
+ {&(_ZTV9GG1312233[24]), 24,42},
+ {&(_ZTV9GG1312233[32]), 32,42},
+ {&(_ZTV9GG1312233[37]), 37,42},
+ {&(_ZTV9GG1312233[41]), 41,42},
+ {&(_tg__ZTV5EE131__9GG1312233[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE131__9GG1312233[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE131__9GG1312233[4]), 4,6},
+ {&(_tg__ZTV5FF223__9GG1312233[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF223__9GG1312233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF223__9GG1312233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1312233[];
+extern VTBL_ENTRY _ZTV9GG1312233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1312233[];
+static VTBL_ENTRY alt_thunk_names396[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2233barEv,_ZThn16_N5FF2233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13122333barEv,_ZTv0_n12_N9GG13122333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG13122333barEv,_ZThn48_N9GG13122333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13122333barEv,_ZThn40_N9GG13122333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG13122333barEv,_ZTv0_n24_N9GG13122333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13122333barEv,_ZThn32_N9GG13122333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13122333barEv,_ZTv0_n16_N9GG13122333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13122333barEv,_ZThn24_N9GG13122333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13122333fooEv,_ZTv0_n12_N9GG13122333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13122333fooEv,_ZThn24_N9GG13122333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13122333fooEv,_ZThn16_N9GG13122333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13122333fooEv,_ZTv0_n20_N9GG13122333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13122333fooEv,_ZThn32_N9GG13122333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13122333fooEv,_ZThn8_N9GG13122333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1312233 = { "GG1312233", // class name
+ bases_GG1312233, 6,
+ &(vtc_GG1312233[0]), // expected_vtbl_contents
+ &(vtt_GG1312233[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1312233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1312233),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1312233),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names396,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1312313 : virtual EE131 , virtual FF231 {
+ int pg;
+ virtual void foo(); // _ZN9GG13123133fooEv
+ virtual void bar(); // _ZN9GG13123133barEv
+ ~GG1312313(); // tgen
+ GG1312313(); // tgen
+};
+//SIG(1 GG1312313) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG1312313 ::foo(){vfunc_called(this, "_ZN9GG13123133fooEv");}
+void GG1312313 ::bar(){vfunc_called(this, "_ZN9GG13123133barEv");}
+GG1312313 ::~GG1312313(){ note_dtor("GG1312313", this);} // tgen
+GG1312313 ::GG1312313(){ note_ctor("GG1312313", this);} // tgen
+
+static void Test_GG1312313()
+{
+ extern Class_Descriptor cd_GG1312313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1312313, buf);
+ GG1312313 *dp, &lv = *(dp=new (buf) GG1312313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1312313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1312313)");
+ check_base_class_offset(lv, (AA1*)(EE131*), ABISELECT(32,16), "GG1312313");
+ check_base_class_offset(lv, (BB3*)(EE131*), ABISELECT(48,24), "GG1312313");
+ check_base_class_offset(lv, (BB3*)(FF231*), ABISELECT(48,24), "GG1312313");
+ check_base_class_offset(lv, (EE131*), ABISELECT(16,8), "GG1312313");
+ check_base_class_offset(lv, (AA2*)(FF231*), ABISELECT(80,40), "GG1312313");
+ check_base_class_offset(lv, (FF231*), ABISELECT(64,32), "GG1312313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1312313.pg");
+ test_class_info(&lv, &cd_GG1312313);
+ dp->~GG1312313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1312313(Test_GG1312313, "GG1312313", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1312313C1Ev();
+extern void _ZN9GG1312313D1Ev();
+Name_Map name_map_GG1312313[] = {
+ NSPAIR(_ZN9GG1312313C1Ev),
+ NSPAIR(_ZN9GG1312313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE131;
+extern VTBL_ENTRY _ZTI5EE131[];
+extern VTBL_ENTRY _ZTV5EE131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE131[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF231;
+extern VTBL_ENTRY _ZTI5FF231[];
+extern VTBL_ENTRY _ZTV5FF231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF231[];
+static Base_Class bases_GG1312313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE131, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF231, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1312313[];
+extern void _ZN9GG13123133fooEv();
+extern void _ZN9GG13123133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13123133fooEv,_ZTv0_n20_N9GG13123133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13123133fooEv,_ZThn8_N9GG13123133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13123133fooEv,_ZTv0_n12_N9GG13123133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13123133fooEv,_ZThn16_N9GG13123133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13123133fooEv,_ZTv0_n12_N9GG13123133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13123133fooEv,_ZThn24_N9GG13123133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13123133barEv,_ZTv0_n16_N9GG13123133barEv)();
+extern void ABISELECT(_ZThn48_N9GG13123133barEv,_ZThn24_N9GG13123133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13123133fooEv,_ZTv0_n20_N9GG13123133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13123133fooEv,_ZThn32_N9GG13123133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13123133barEv,_ZTv0_n12_N9GG13123133barEv)();
+extern void ABISELECT(_ZThn80_N9GG13123133barEv,_ZThn40_N9GG13123133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1312313[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1312313[0]),
+ (VTBL_ENTRY)&_ZN9GG13123133fooEv,
+ (VTBL_ENTRY)&_ZN9GG13123133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1312313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13123133fooEv,_ZTv0_n20_N9GG13123133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1312313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13123133fooEv,_ZTv0_n12_N9GG13123133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1312313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13123133fooEv,_ZTv0_n12_N9GG13123133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13123133barEv,_ZTv0_n16_N9GG13123133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1312313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13123133fooEv,_ZTv0_n20_N9GG13123133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1312313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13123133barEv,_ZTv0_n12_N9GG13123133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1312313[];
+extern void _ZN5EE1313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE131__9GG1312313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&_ZN5EE1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE131__9GG1312313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE131__9GG1312313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF2313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF231__9GG1312313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN5FF2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF231__9GG1312313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv)();
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF231__9GG1312313[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG1312313[] = {
+ {&(_ZTV9GG1312313[7]), 7,35},
+ {&(_ZTV9GG1312313[14]), 14,35},
+ {&(_ZTV9GG1312313[18]), 18,35},
+ {&(_ZTV9GG1312313[23]), 23,35},
+ {&(_ZTV9GG1312313[30]), 30,35},
+ {&(_ZTV9GG1312313[34]), 34,35},
+ {&(_tg__ZTV5EE131__9GG1312313[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE131__9GG1312313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE131__9GG1312313[4]), 4,6},
+ {&(_tg__ZTV5FF231__9GG1312313[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF231__9GG1312313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF231__9GG1312313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1312313[];
+extern VTBL_ENTRY _ZTV9GG1312313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1312313[];
+static VTBL_ENTRY alt_thunk_names397[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13123133barEv,_ZTv0_n12_N9GG13123133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13123133barEv,_ZThn40_N9GG13123133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13123133barEv,_ZTv0_n16_N9GG13123133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13123133barEv,_ZThn24_N9GG13123133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13123133fooEv,_ZTv0_n12_N9GG13123133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13123133fooEv,_ZThn24_N9GG13123133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13123133fooEv,_ZThn16_N9GG13123133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13123133fooEv,_ZTv0_n20_N9GG13123133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13123133fooEv,_ZThn32_N9GG13123133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13123133fooEv,_ZThn8_N9GG13123133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1312313 = { "GG1312313", // class name
+ bases_GG1312313, 5,
+ &(vtc_GG1312313[0]), // expected_vtbl_contents
+ &(vtt_GG1312313[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1312313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1312313),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1312313),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names397,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1312323 : virtual EE131 , virtual FF232 {
+ int pg;
+ virtual void foo(); // _ZN9GG13123233fooEv
+ virtual void bar(); // _ZN9GG13123233barEv
+ ~GG1312323(); // tgen
+ GG1312323(); // tgen
+};
+//SIG(1 GG1312323) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG1312323 ::foo(){vfunc_called(this, "_ZN9GG13123233fooEv");}
+void GG1312323 ::bar(){vfunc_called(this, "_ZN9GG13123233barEv");}
+GG1312323 ::~GG1312323(){ note_dtor("GG1312323", this);} // tgen
+GG1312323 ::GG1312323(){ note_ctor("GG1312323", this);} // tgen
+
+static void Test_GG1312323()
+{
+ extern Class_Descriptor cd_GG1312323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1312323, buf);
+ GG1312323 *dp, &lv = *(dp=new (buf) GG1312323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1312323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1312323)");
+ check_base_class_offset(lv, (AA1*)(EE131*), ABISELECT(32,16), "GG1312323");
+ check_base_class_offset(lv, (BB3*)(EE131*), ABISELECT(48,24), "GG1312323");
+ check_base_class_offset(lv, (BB3*)(FF232*), ABISELECT(48,24), "GG1312323");
+ check_base_class_offset(lv, (EE131*), ABISELECT(16,8), "GG1312323");
+ check_base_class_offset(lv, (AA2*)(FF232*), ABISELECT(80,40), "GG1312323");
+ check_base_class_offset(lv, (FF232*), ABISELECT(64,32), "GG1312323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1312323.pg");
+ test_class_info(&lv, &cd_GG1312323);
+ dp->~GG1312323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1312323(Test_GG1312323, "GG1312323", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1312323C1Ev();
+extern void _ZN9GG1312323D1Ev();
+Name_Map name_map_GG1312323[] = {
+ NSPAIR(_ZN9GG1312323C1Ev),
+ NSPAIR(_ZN9GG1312323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE131;
+extern VTBL_ENTRY _ZTI5EE131[];
+extern VTBL_ENTRY _ZTV5EE131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE131[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF232;
+extern VTBL_ENTRY _ZTI5FF232[];
+extern VTBL_ENTRY _ZTV5FF232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF232[];
+static Base_Class bases_GG1312323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE131, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF232, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1312323[];
+extern void _ZN9GG13123233fooEv();
+extern void _ZN9GG13123233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13123233fooEv,_ZTv0_n20_N9GG13123233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13123233fooEv,_ZThn8_N9GG13123233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13123233fooEv,_ZTv0_n12_N9GG13123233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13123233fooEv,_ZThn16_N9GG13123233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13123233fooEv,_ZTv0_n12_N9GG13123233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13123233fooEv,_ZThn24_N9GG13123233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13123233barEv,_ZTv0_n16_N9GG13123233barEv)();
+extern void ABISELECT(_ZThn48_N9GG13123233barEv,_ZThn24_N9GG13123233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13123233barEv,_ZTv0_n20_N9GG13123233barEv)();
+extern void ABISELECT(_ZThn64_N9GG13123233barEv,_ZThn32_N9GG13123233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13123233barEv,_ZTv0_n12_N9GG13123233barEv)();
+extern void ABISELECT(_ZThn80_N9GG13123233barEv,_ZThn40_N9GG13123233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1312323[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1312323[0]),
+ (VTBL_ENTRY)&_ZN9GG13123233fooEv,
+ (VTBL_ENTRY)&_ZN9GG13123233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1312323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13123233fooEv,_ZTv0_n20_N9GG13123233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1312323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13123233fooEv,_ZTv0_n12_N9GG13123233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1312323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13123233fooEv,_ZTv0_n12_N9GG13123233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13123233barEv,_ZTv0_n16_N9GG13123233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1312323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13123233barEv,_ZTv0_n20_N9GG13123233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1312323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13123233barEv,_ZTv0_n12_N9GG13123233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1312323[];
+extern void _ZN5EE1313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE131__9GG1312323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&_ZN5EE1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE131__9GG1312323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE131__9GG1312323[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF2323barEv();
+static VTBL_ENTRY _tg__ZTV5FF232__9GG1312323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN5FF2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv)();
+extern void ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF232__9GG1312323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF232__9GG1312323[] = {
+ ABISELECT(16,8),
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv),
+};
+static VTT_ENTRY vtt_GG1312323[] = {
+ {&(_ZTV9GG1312323[7]), 7,35},
+ {&(_ZTV9GG1312323[14]), 14,35},
+ {&(_ZTV9GG1312323[18]), 18,35},
+ {&(_ZTV9GG1312323[23]), 23,35},
+ {&(_ZTV9GG1312323[30]), 30,35},
+ {&(_ZTV9GG1312323[34]), 34,35},
+ {&(_tg__ZTV5EE131__9GG1312323[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE131__9GG1312323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE131__9GG1312323[4]), 4,6},
+ {&(_tg__ZTV5FF232__9GG1312323[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF232__9GG1312323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF232__9GG1312323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1312323[];
+extern VTBL_ENTRY _ZTV9GG1312323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1312323[];
+static VTBL_ENTRY alt_thunk_names398[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13123233barEv,_ZTv0_n12_N9GG13123233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13123233barEv,_ZThn40_N9GG13123233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13123233barEv,_ZTv0_n20_N9GG13123233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13123233barEv,_ZThn32_N9GG13123233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13123233barEv,_ZTv0_n16_N9GG13123233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13123233barEv,_ZThn24_N9GG13123233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13123233fooEv,_ZTv0_n12_N9GG13123233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13123233fooEv,_ZThn24_N9GG13123233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13123233fooEv,_ZThn16_N9GG13123233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13123233fooEv,_ZTv0_n20_N9GG13123233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13123233fooEv,_ZThn8_N9GG13123233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1312323 = { "GG1312323", // class name
+ bases_GG1312323, 5,
+ &(vtc_GG1312323[0]), // expected_vtbl_contents
+ &(vtt_GG1312323[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1312323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1312323),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1312323),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names398,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1312333 : virtual EE131 , virtual FF233 {
+ int pg;
+ virtual void foo(); // _ZN9GG13123333fooEv
+ virtual void bar(); // _ZN9GG13123333barEv
+ ~GG1312333(); // tgen
+ GG1312333(); // tgen
+};
+//SIG(1 GG1312333) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1312333 ::foo(){vfunc_called(this, "_ZN9GG13123333fooEv");}
+void GG1312333 ::bar(){vfunc_called(this, "_ZN9GG13123333barEv");}
+GG1312333 ::~GG1312333(){ note_dtor("GG1312333", this);} // tgen
+GG1312333 ::GG1312333(){ note_ctor("GG1312333", this);} // tgen
+
+static void Test_GG1312333()
+{
+ extern Class_Descriptor cd_GG1312333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1312333, buf);
+ GG1312333 *dp, &lv = *(dp=new (buf) GG1312333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1312333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1312333)");
+ check_base_class_offset(lv, (AA1*)(EE131*), ABISELECT(32,16), "GG1312333");
+ check_base_class_offset(lv, (BB3*)(EE131*), ABISELECT(48,24), "GG1312333");
+ check_base_class_offset(lv, (BB3*)(FF233*), ABISELECT(48,24), "GG1312333");
+ check_base_class_offset(lv, (EE131*), ABISELECT(16,8), "GG1312333");
+ check_base_class_offset(lv, (AA2*)(FF233*), ABISELECT(80,40), "GG1312333");
+ check_base_class_offset(lv, (FF233*), ABISELECT(64,32), "GG1312333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1312333.pg");
+ test_class_info(&lv, &cd_GG1312333);
+ dp->~GG1312333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1312333(Test_GG1312333, "GG1312333", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1312333C1Ev();
+extern void _ZN9GG1312333D1Ev();
+Name_Map name_map_GG1312333[] = {
+ NSPAIR(_ZN9GG1312333C1Ev),
+ NSPAIR(_ZN9GG1312333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE131;
+extern VTBL_ENTRY _ZTI5EE131[];
+extern VTBL_ENTRY _ZTV5EE131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE131[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF233;
+extern VTBL_ENTRY _ZTI5FF233[];
+extern VTBL_ENTRY _ZTV5FF233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF233[];
+static Base_Class bases_GG1312333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE131, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF233, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1312333[];
+extern void _ZN9GG13123333fooEv();
+extern void _ZN9GG13123333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13123333fooEv,_ZTv0_n20_N9GG13123333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13123333fooEv,_ZThn8_N9GG13123333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13123333fooEv,_ZTv0_n12_N9GG13123333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13123333fooEv,_ZThn16_N9GG13123333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13123333fooEv,_ZTv0_n12_N9GG13123333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13123333fooEv,_ZThn24_N9GG13123333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13123333barEv,_ZTv0_n16_N9GG13123333barEv)();
+extern void ABISELECT(_ZThn48_N9GG13123333barEv,_ZThn24_N9GG13123333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13123333fooEv,_ZTv0_n20_N9GG13123333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13123333fooEv,_ZThn32_N9GG13123333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13123333barEv,_ZTv0_n24_N9GG13123333barEv)();
+extern void ABISELECT(_ZThn64_N9GG13123333barEv,_ZThn32_N9GG13123333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13123333barEv,_ZTv0_n12_N9GG13123333barEv)();
+extern void ABISELECT(_ZThn80_N9GG13123333barEv,_ZThn40_N9GG13123333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1312333[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1312333[0]),
+ (VTBL_ENTRY)&_ZN9GG13123333fooEv,
+ (VTBL_ENTRY)&_ZN9GG13123333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1312333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13123333fooEv,_ZTv0_n20_N9GG13123333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1312333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13123333fooEv,_ZTv0_n12_N9GG13123333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1312333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13123333fooEv,_ZTv0_n12_N9GG13123333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13123333barEv,_ZTv0_n16_N9GG13123333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1312333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13123333fooEv,_ZTv0_n20_N9GG13123333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13123333barEv,_ZTv0_n24_N9GG13123333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1312333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13123333barEv,_ZTv0_n12_N9GG13123333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1312333[];
+extern void _ZN5EE1313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE131__9GG1312333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&_ZN5EE1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE131__9GG1312333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE131__9GG1312333[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF2333fooEv();
+extern void _ZN5FF2333barEv();
+static VTBL_ENTRY _tg__ZTV5FF233__9GG1312333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&_ZN5FF2333fooEv,
+ (VTBL_ENTRY)&_ZN5FF2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv)();
+extern void ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF233__9GG1312333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF233__9GG1312333[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv),
+};
+static VTT_ENTRY vtt_GG1312333[] = {
+ {&(_ZTV9GG1312333[7]), 7,37},
+ {&(_ZTV9GG1312333[14]), 14,37},
+ {&(_ZTV9GG1312333[18]), 18,37},
+ {&(_ZTV9GG1312333[23]), 23,37},
+ {&(_ZTV9GG1312333[31]), 31,37},
+ {&(_ZTV9GG1312333[36]), 36,37},
+ {&(_tg__ZTV5EE131__9GG1312333[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE131__9GG1312333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE131__9GG1312333[4]), 4,6},
+ {&(_tg__ZTV5FF233__9GG1312333[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF233__9GG1312333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF233__9GG1312333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1312333[];
+extern VTBL_ENTRY _ZTV9GG1312333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1312333[];
+static VTBL_ENTRY alt_thunk_names399[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13123333barEv,_ZTv0_n12_N9GG13123333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13123333barEv,_ZThn40_N9GG13123333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG13123333barEv,_ZTv0_n24_N9GG13123333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13123333barEv,_ZThn32_N9GG13123333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13123333barEv,_ZTv0_n16_N9GG13123333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13123333barEv,_ZThn24_N9GG13123333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13123333fooEv,_ZTv0_n12_N9GG13123333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13123333fooEv,_ZThn24_N9GG13123333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13123333fooEv,_ZThn16_N9GG13123333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13123333fooEv,_ZTv0_n20_N9GG13123333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13123333fooEv,_ZThn32_N9GG13123333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13123333fooEv,_ZThn8_N9GG13123333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1312333 = { "GG1312333", // class name
+ bases_GG1312333, 5,
+ &(vtc_GG1312333[0]), // expected_vtbl_contents
+ &(vtt_GG1312333[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1312333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1312333),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1312333),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names399,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1313113 : virtual EE131 , virtual FF311 {
+ int pg;
+ virtual void foo(); // _ZN9GG13131133fooEv
+ virtual void bar(); // _ZN9GG13131133barEv
+ ~GG1313113(); // tgen
+ GG1313113(); // tgen
+};
+//SIG(1 GG1313113) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1313113 ::foo(){vfunc_called(this, "_ZN9GG13131133fooEv");}
+void GG1313113 ::bar(){vfunc_called(this, "_ZN9GG13131133barEv");}
+GG1313113 ::~GG1313113(){ note_dtor("GG1313113", this);} // tgen
+GG1313113 ::GG1313113(){ note_ctor("GG1313113", this);} // tgen
+
+static void Test_GG1313113()
+{
+ extern Class_Descriptor cd_GG1313113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1313113, buf);
+ GG1313113 *dp, &lv = *(dp=new (buf) GG1313113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1313113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1313113)");
+ check_base_class_offset(lv, (AA1*)(EE131*), ABISELECT(32,16), "GG1313113");
+ check_base_class_offset(lv, (BB3*)(EE131*), ABISELECT(48,24), "GG1313113");
+ check_base_class_offset(lv, (EE131*), ABISELECT(16,8), "GG1313113");
+ check_base_class_offset(lv, (AA3*)(FF311*), ABISELECT(80,40), "GG1313113");
+ check_base_class_offset(lv, (BB1*)(FF311*), ABISELECT(96,48), "GG1313113");
+ check_base_class_offset(lv, (FF311*), ABISELECT(64,32), "GG1313113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1313113.pg");
+ test_class_info(&lv, &cd_GG1313113);
+ dp->~GG1313113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1313113(Test_GG1313113, "GG1313113", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1313113C1Ev();
+extern void _ZN9GG1313113D1Ev();
+Name_Map name_map_GG1313113[] = {
+ NSPAIR(_ZN9GG1313113C1Ev),
+ NSPAIR(_ZN9GG1313113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE131;
+extern VTBL_ENTRY _ZTI5EE131[];
+extern VTBL_ENTRY _ZTV5EE131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE131[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF311;
+extern VTBL_ENTRY _ZTI5FF311[];
+extern VTBL_ENTRY _ZTV5FF311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF311[];
+static Base_Class bases_GG1313113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE131, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF311, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1313113[];
+extern void _ZN9GG13131133fooEv();
+extern void _ZN9GG13131133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13131133fooEv,_ZTv0_n20_N9GG13131133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13131133fooEv,_ZThn8_N9GG13131133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13131133fooEv,_ZTv0_n12_N9GG13131133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13131133fooEv,_ZThn16_N9GG13131133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13131133fooEv,_ZTv0_n12_N9GG13131133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13131133fooEv,_ZThn24_N9GG13131133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13131133barEv,_ZTv0_n16_N9GG13131133barEv)();
+extern void ABISELECT(_ZThn48_N9GG13131133barEv,_ZThn24_N9GG13131133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13131133fooEv,_ZTv0_n20_N9GG13131133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13131133fooEv,_ZThn32_N9GG13131133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13131133fooEv,_ZTv0_n12_N9GG13131133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG13131133fooEv,_ZThn40_N9GG13131133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13131133barEv,_ZTv0_n16_N9GG13131133barEv)();
+extern void ABISELECT(_ZThn80_N9GG13131133barEv,_ZThn40_N9GG13131133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13131133fooEv,_ZTv0_n12_N9GG13131133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG13131133fooEv,_ZThn48_N9GG13131133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1313113[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1313113[0]),
+ (VTBL_ENTRY)&_ZN9GG13131133fooEv,
+ (VTBL_ENTRY)&_ZN9GG13131133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1313113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13131133fooEv,_ZTv0_n20_N9GG13131133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1313113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13131133fooEv,_ZTv0_n12_N9GG13131133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1313113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13131133fooEv,_ZTv0_n12_N9GG13131133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13131133barEv,_ZTv0_n16_N9GG13131133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1313113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13131133fooEv,_ZTv0_n20_N9GG13131133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1313113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13131133fooEv,_ZTv0_n12_N9GG13131133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13131133barEv,_ZTv0_n16_N9GG13131133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1313113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13131133fooEv,_ZTv0_n12_N9GG13131133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1313113[];
+extern void _ZN5EE1313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE131__9GG1313113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&_ZN5EE1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE131__9GG1313113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE131__9GG1313113[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF3113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF311__9GG1313113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&_ZN5FF3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF311__9GG1313113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3113fooEv,_ZThn16_N5FF3113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF311__9GG1313113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+};
+static VTT_ENTRY vtt_GG1313113[] = {
+ {&(_ZTV9GG1313113[8]), 8,42},
+ {&(_ZTV9GG1313113[15]), 15,42},
+ {&(_ZTV9GG1313113[19]), 19,42},
+ {&(_ZTV9GG1313113[24]), 24,42},
+ {&(_ZTV9GG1313113[31]), 31,42},
+ {&(_ZTV9GG1313113[36]), 36,42},
+ {&(_ZTV9GG1313113[41]), 41,42},
+ {&(_tg__ZTV5EE131__9GG1313113[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE131__9GG1313113[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE131__9GG1313113[4]), 4,6},
+ {&(_tg__ZTV5FF311__9GG1313113[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF311__9GG1313113[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF311__9GG1313113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1313113[];
+extern VTBL_ENTRY _ZTV9GG1313113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1313113[];
+static VTBL_ENTRY alt_thunk_names400[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3113fooEv,_ZThn16_N5FF3113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13131133barEv,_ZTv0_n16_N9GG13131133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13131133barEv,_ZThn40_N9GG13131133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13131133barEv,_ZThn24_N9GG13131133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13131133fooEv,_ZTv0_n12_N9GG13131133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG13131133fooEv,_ZThn48_N9GG13131133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13131133fooEv,_ZThn40_N9GG13131133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13131133fooEv,_ZThn24_N9GG13131133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13131133fooEv,_ZThn16_N9GG13131133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13131133fooEv,_ZTv0_n20_N9GG13131133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13131133fooEv,_ZThn32_N9GG13131133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13131133fooEv,_ZThn8_N9GG13131133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1313113 = { "GG1313113", // class name
+ bases_GG1313113, 6,
+ &(vtc_GG1313113[0]), // expected_vtbl_contents
+ &(vtt_GG1313113[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1313113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1313113),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1313113),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names400,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1313123 : virtual EE131 , virtual FF312 {
+ int pg;
+ virtual void foo(); // _ZN9GG13131233fooEv
+ virtual void bar(); // _ZN9GG13131233barEv
+ ~GG1313123(); // tgen
+ GG1313123(); // tgen
+};
+//SIG(1 GG1313123) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1313123 ::foo(){vfunc_called(this, "_ZN9GG13131233fooEv");}
+void GG1313123 ::bar(){vfunc_called(this, "_ZN9GG13131233barEv");}
+GG1313123 ::~GG1313123(){ note_dtor("GG1313123", this);} // tgen
+GG1313123 ::GG1313123(){ note_ctor("GG1313123", this);} // tgen
+
+static void Test_GG1313123()
+{
+ extern Class_Descriptor cd_GG1313123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1313123, buf);
+ GG1313123 *dp, &lv = *(dp=new (buf) GG1313123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1313123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1313123)");
+ check_base_class_offset(lv, (AA1*)(EE131*), ABISELECT(32,16), "GG1313123");
+ check_base_class_offset(lv, (BB3*)(EE131*), ABISELECT(48,24), "GG1313123");
+ check_base_class_offset(lv, (EE131*), ABISELECT(16,8), "GG1313123");
+ check_base_class_offset(lv, (AA3*)(FF312*), ABISELECT(80,40), "GG1313123");
+ check_base_class_offset(lv, (BB1*)(FF312*), ABISELECT(96,48), "GG1313123");
+ check_base_class_offset(lv, (FF312*), ABISELECT(64,32), "GG1313123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1313123.pg");
+ test_class_info(&lv, &cd_GG1313123);
+ dp->~GG1313123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1313123(Test_GG1313123, "GG1313123", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1313123C1Ev();
+extern void _ZN9GG1313123D1Ev();
+Name_Map name_map_GG1313123[] = {
+ NSPAIR(_ZN9GG1313123C1Ev),
+ NSPAIR(_ZN9GG1313123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE131;
+extern VTBL_ENTRY _ZTI5EE131[];
+extern VTBL_ENTRY _ZTV5EE131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE131[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF312;
+extern VTBL_ENTRY _ZTI5FF312[];
+extern VTBL_ENTRY _ZTV5FF312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF312[];
+static Base_Class bases_GG1313123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE131, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF312, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1313123[];
+extern void _ZN9GG13131233fooEv();
+extern void _ZN9GG13131233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13131233fooEv,_ZTv0_n20_N9GG13131233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13131233fooEv,_ZThn8_N9GG13131233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13131233fooEv,_ZTv0_n12_N9GG13131233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13131233fooEv,_ZThn16_N9GG13131233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13131233fooEv,_ZTv0_n12_N9GG13131233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13131233fooEv,_ZThn24_N9GG13131233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13131233barEv,_ZTv0_n16_N9GG13131233barEv)();
+extern void ABISELECT(_ZThn48_N9GG13131233barEv,_ZThn24_N9GG13131233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13131233barEv,_ZTv0_n20_N9GG13131233barEv)();
+extern void ABISELECT(_ZThn64_N9GG13131233barEv,_ZThn32_N9GG13131233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13131233fooEv,_ZTv0_n12_N9GG13131233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG13131233fooEv,_ZThn40_N9GG13131233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13131233barEv,_ZTv0_n16_N9GG13131233barEv)();
+extern void ABISELECT(_ZThn80_N9GG13131233barEv,_ZThn40_N9GG13131233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13131233fooEv,_ZTv0_n12_N9GG13131233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG13131233fooEv,_ZThn48_N9GG13131233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1313123[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1313123[0]),
+ (VTBL_ENTRY)&_ZN9GG13131233fooEv,
+ (VTBL_ENTRY)&_ZN9GG13131233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1313123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13131233fooEv,_ZTv0_n20_N9GG13131233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1313123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13131233fooEv,_ZTv0_n12_N9GG13131233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1313123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13131233fooEv,_ZTv0_n12_N9GG13131233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13131233barEv,_ZTv0_n16_N9GG13131233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1313123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13131233barEv,_ZTv0_n20_N9GG13131233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1313123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13131233fooEv,_ZTv0_n12_N9GG13131233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13131233barEv,_ZTv0_n16_N9GG13131233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1313123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13131233fooEv,_ZTv0_n12_N9GG13131233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1313123[];
+extern void _ZN5EE1313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE131__9GG1313123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&_ZN5EE1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE131__9GG1313123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE131__9GG1313123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF3123barEv();
+static VTBL_ENTRY _tg__ZTV5FF312__9GG1313123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN5FF3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv)();
+extern void ABISELECT(_ZThn16_N5FF3123barEv,_ZThn8_N5FF3123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF312__9GG1313123[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF312__9GG1313123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG1313123[] = {
+ {&(_ZTV9GG1313123[8]), 8,42},
+ {&(_ZTV9GG1313123[15]), 15,42},
+ {&(_ZTV9GG1313123[19]), 19,42},
+ {&(_ZTV9GG1313123[24]), 24,42},
+ {&(_ZTV9GG1313123[31]), 31,42},
+ {&(_ZTV9GG1313123[36]), 36,42},
+ {&(_ZTV9GG1313123[41]), 41,42},
+ {&(_tg__ZTV5EE131__9GG1313123[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE131__9GG1313123[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE131__9GG1313123[4]), 4,6},
+ {&(_tg__ZTV5FF312__9GG1313123[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF312__9GG1313123[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF312__9GG1313123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1313123[];
+extern VTBL_ENTRY _ZTV9GG1313123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1313123[];
+static VTBL_ENTRY alt_thunk_names401[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3123barEv,_ZThn8_N5FF3123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13131233barEv,_ZTv0_n20_N9GG13131233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13131233barEv,_ZThn32_N9GG13131233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13131233barEv,_ZTv0_n16_N9GG13131233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13131233barEv,_ZThn40_N9GG13131233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13131233barEv,_ZThn24_N9GG13131233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13131233fooEv,_ZTv0_n12_N9GG13131233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG13131233fooEv,_ZThn48_N9GG13131233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13131233fooEv,_ZThn40_N9GG13131233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13131233fooEv,_ZThn24_N9GG13131233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13131233fooEv,_ZThn16_N9GG13131233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13131233fooEv,_ZTv0_n20_N9GG13131233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13131233fooEv,_ZThn8_N9GG13131233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1313123 = { "GG1313123", // class name
+ bases_GG1313123, 6,
+ &(vtc_GG1313123[0]), // expected_vtbl_contents
+ &(vtt_GG1313123[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1313123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1313123),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1313123),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names401,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1313133 : virtual EE131 , virtual FF313 {
+ int pg;
+ virtual void foo(); // _ZN9GG13131333fooEv
+ virtual void bar(); // _ZN9GG13131333barEv
+ ~GG1313133(); // tgen
+ GG1313133(); // tgen
+};
+//SIG(1 GG1313133) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1313133 ::foo(){vfunc_called(this, "_ZN9GG13131333fooEv");}
+void GG1313133 ::bar(){vfunc_called(this, "_ZN9GG13131333barEv");}
+GG1313133 ::~GG1313133(){ note_dtor("GG1313133", this);} // tgen
+GG1313133 ::GG1313133(){ note_ctor("GG1313133", this);} // tgen
+
+static void Test_GG1313133()
+{
+ extern Class_Descriptor cd_GG1313133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1313133, buf);
+ GG1313133 *dp, &lv = *(dp=new (buf) GG1313133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1313133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1313133)");
+ check_base_class_offset(lv, (AA1*)(EE131*), ABISELECT(32,16), "GG1313133");
+ check_base_class_offset(lv, (BB3*)(EE131*), ABISELECT(48,24), "GG1313133");
+ check_base_class_offset(lv, (EE131*), ABISELECT(16,8), "GG1313133");
+ check_base_class_offset(lv, (AA3*)(FF313*), ABISELECT(80,40), "GG1313133");
+ check_base_class_offset(lv, (BB1*)(FF313*), ABISELECT(96,48), "GG1313133");
+ check_base_class_offset(lv, (FF313*), ABISELECT(64,32), "GG1313133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1313133.pg");
+ test_class_info(&lv, &cd_GG1313133);
+ dp->~GG1313133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1313133(Test_GG1313133, "GG1313133", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1313133C1Ev();
+extern void _ZN9GG1313133D1Ev();
+Name_Map name_map_GG1313133[] = {
+ NSPAIR(_ZN9GG1313133C1Ev),
+ NSPAIR(_ZN9GG1313133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE131;
+extern VTBL_ENTRY _ZTI5EE131[];
+extern VTBL_ENTRY _ZTV5EE131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE131[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF313;
+extern VTBL_ENTRY _ZTI5FF313[];
+extern VTBL_ENTRY _ZTV5FF313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF313[];
+static Base_Class bases_GG1313133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE131, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 40, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF313, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1313133[];
+extern void _ZN9GG13131333fooEv();
+extern void _ZN9GG13131333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13131333fooEv,_ZTv0_n20_N9GG13131333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13131333fooEv,_ZThn8_N9GG13131333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13131333fooEv,_ZTv0_n12_N9GG13131333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13131333fooEv,_ZThn16_N9GG13131333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13131333fooEv,_ZTv0_n12_N9GG13131333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13131333fooEv,_ZThn24_N9GG13131333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13131333barEv,_ZTv0_n16_N9GG13131333barEv)();
+extern void ABISELECT(_ZThn48_N9GG13131333barEv,_ZThn24_N9GG13131333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13131333fooEv,_ZTv0_n20_N9GG13131333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13131333fooEv,_ZThn32_N9GG13131333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13131333barEv,_ZTv0_n24_N9GG13131333barEv)();
+extern void ABISELECT(_ZThn64_N9GG13131333barEv,_ZThn32_N9GG13131333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13131333fooEv,_ZTv0_n12_N9GG13131333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG13131333fooEv,_ZThn40_N9GG13131333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13131333barEv,_ZTv0_n16_N9GG13131333barEv)();
+extern void ABISELECT(_ZThn80_N9GG13131333barEv,_ZThn40_N9GG13131333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13131333fooEv,_ZTv0_n12_N9GG13131333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG13131333fooEv,_ZThn48_N9GG13131333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1313133[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1313133[0]),
+ (VTBL_ENTRY)&_ZN9GG13131333fooEv,
+ (VTBL_ENTRY)&_ZN9GG13131333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1313133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13131333fooEv,_ZTv0_n20_N9GG13131333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1313133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13131333fooEv,_ZTv0_n12_N9GG13131333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1313133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13131333fooEv,_ZTv0_n12_N9GG13131333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13131333barEv,_ZTv0_n16_N9GG13131333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1313133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13131333fooEv,_ZTv0_n20_N9GG13131333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13131333barEv,_ZTv0_n24_N9GG13131333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1313133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13131333fooEv,_ZTv0_n12_N9GG13131333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13131333barEv,_ZTv0_n16_N9GG13131333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1313133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13131333fooEv,_ZTv0_n12_N9GG13131333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1313133[];
+extern void _ZN5EE1313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE131__9GG1313133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&_ZN5EE1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE131__9GG1313133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE131__9GG1313133[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF3133fooEv();
+extern void _ZN5FF3133barEv();
+static VTBL_ENTRY _tg__ZTV5FF313__9GG1313133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&_ZN5FF3133fooEv,
+ (VTBL_ENTRY)&_ZN5FF3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv)();
+extern void ABISELECT(_ZThn16_N5FF3133barEv,_ZThn8_N5FF3133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF313__9GG1313133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3133fooEv,_ZThn16_N5FF3133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF313__9GG1313133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+};
+static VTT_ENTRY vtt_GG1313133[] = {
+ {&(_ZTV9GG1313133[8]), 8,44},
+ {&(_ZTV9GG1313133[15]), 15,44},
+ {&(_ZTV9GG1313133[19]), 19,44},
+ {&(_ZTV9GG1313133[24]), 24,44},
+ {&(_ZTV9GG1313133[32]), 32,44},
+ {&(_ZTV9GG1313133[38]), 38,44},
+ {&(_ZTV9GG1313133[43]), 43,44},
+ {&(_tg__ZTV5EE131__9GG1313133[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE131__9GG1313133[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE131__9GG1313133[4]), 4,6},
+ {&(_tg__ZTV5FF313__9GG1313133[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF313__9GG1313133[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF313__9GG1313133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1313133[];
+extern VTBL_ENTRY _ZTV9GG1313133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1313133[];
+static VTBL_ENTRY alt_thunk_names402[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3133barEv,_ZThn8_N5FF3133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3133fooEv,_ZThn16_N5FF3133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG13131333barEv,_ZTv0_n24_N9GG13131333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13131333barEv,_ZThn32_N9GG13131333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13131333barEv,_ZTv0_n16_N9GG13131333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13131333barEv,_ZThn40_N9GG13131333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13131333barEv,_ZThn24_N9GG13131333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13131333fooEv,_ZTv0_n12_N9GG13131333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG13131333fooEv,_ZThn48_N9GG13131333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13131333fooEv,_ZThn40_N9GG13131333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13131333fooEv,_ZThn24_N9GG13131333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13131333fooEv,_ZThn16_N9GG13131333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13131333fooEv,_ZTv0_n20_N9GG13131333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13131333fooEv,_ZThn32_N9GG13131333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13131333fooEv,_ZThn8_N9GG13131333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1313133 = { "GG1313133", // class name
+ bases_GG1313133, 6,
+ &(vtc_GG1313133[0]), // expected_vtbl_contents
+ &(vtt_GG1313133[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1313133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1313133),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1313133),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names402,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1313213 : virtual EE131 , virtual FF321 {
+ int pg;
+ virtual void foo(); // _ZN9GG13132133fooEv
+ virtual void bar(); // _ZN9GG13132133barEv
+ ~GG1313213(); // tgen
+ GG1313213(); // tgen
+};
+//SIG(1 GG1313213) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1313213 ::foo(){vfunc_called(this, "_ZN9GG13132133fooEv");}
+void GG1313213 ::bar(){vfunc_called(this, "_ZN9GG13132133barEv");}
+GG1313213 ::~GG1313213(){ note_dtor("GG1313213", this);} // tgen
+GG1313213 ::GG1313213(){ note_ctor("GG1313213", this);} // tgen
+
+static void Test_GG1313213()
+{
+ extern Class_Descriptor cd_GG1313213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1313213, buf);
+ GG1313213 *dp, &lv = *(dp=new (buf) GG1313213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1313213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1313213)");
+ check_base_class_offset(lv, (AA1*)(EE131*), ABISELECT(32,16), "GG1313213");
+ check_base_class_offset(lv, (BB3*)(EE131*), ABISELECT(48,24), "GG1313213");
+ check_base_class_offset(lv, (EE131*), ABISELECT(16,8), "GG1313213");
+ check_base_class_offset(lv, (AA3*)(FF321*), ABISELECT(80,40), "GG1313213");
+ check_base_class_offset(lv, (BB2*)(FF321*), ABISELECT(96,48), "GG1313213");
+ check_base_class_offset(lv, (FF321*), ABISELECT(64,32), "GG1313213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1313213.pg");
+ test_class_info(&lv, &cd_GG1313213);
+ dp->~GG1313213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1313213(Test_GG1313213, "GG1313213", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1313213C1Ev();
+extern void _ZN9GG1313213D1Ev();
+Name_Map name_map_GG1313213[] = {
+ NSPAIR(_ZN9GG1313213C1Ev),
+ NSPAIR(_ZN9GG1313213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE131;
+extern VTBL_ENTRY _ZTI5EE131[];
+extern VTBL_ENTRY _ZTV5EE131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE131[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF321;
+extern VTBL_ENTRY _ZTI5FF321[];
+extern VTBL_ENTRY _ZTV5FF321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF321[];
+static Base_Class bases_GG1313213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE131, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF321, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1313213[];
+extern void _ZN9GG13132133fooEv();
+extern void _ZN9GG13132133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13132133fooEv,_ZTv0_n20_N9GG13132133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13132133fooEv,_ZThn8_N9GG13132133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13132133fooEv,_ZTv0_n12_N9GG13132133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13132133fooEv,_ZThn16_N9GG13132133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13132133fooEv,_ZTv0_n12_N9GG13132133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13132133fooEv,_ZThn24_N9GG13132133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13132133barEv,_ZTv0_n16_N9GG13132133barEv)();
+extern void ABISELECT(_ZThn48_N9GG13132133barEv,_ZThn24_N9GG13132133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13132133fooEv,_ZTv0_n20_N9GG13132133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13132133fooEv,_ZThn32_N9GG13132133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13132133fooEv,_ZTv0_n12_N9GG13132133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG13132133fooEv,_ZThn40_N9GG13132133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13132133barEv,_ZTv0_n16_N9GG13132133barEv)();
+extern void ABISELECT(_ZThn80_N9GG13132133barEv,_ZThn40_N9GG13132133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13132133barEv,_ZTv0_n12_N9GG13132133barEv)();
+extern void ABISELECT(_ZThn96_N9GG13132133barEv,_ZThn48_N9GG13132133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1313213[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1313213[0]),
+ (VTBL_ENTRY)&_ZN9GG13132133fooEv,
+ (VTBL_ENTRY)&_ZN9GG13132133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1313213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13132133fooEv,_ZTv0_n20_N9GG13132133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1313213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13132133fooEv,_ZTv0_n12_N9GG13132133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1313213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13132133fooEv,_ZTv0_n12_N9GG13132133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13132133barEv,_ZTv0_n16_N9GG13132133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1313213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13132133fooEv,_ZTv0_n20_N9GG13132133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1313213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13132133fooEv,_ZTv0_n12_N9GG13132133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13132133barEv,_ZTv0_n16_N9GG13132133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1313213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13132133barEv,_ZTv0_n12_N9GG13132133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1313213[];
+extern void _ZN5EE1313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE131__9GG1313213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&_ZN5EE1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE131__9GG1313213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE131__9GG1313213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF3213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF321__9GG1313213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN5FF3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3213fooEv,_ZThn8_N5FF3213fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF321__9GG1313213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF321__9GG1313213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG1313213[] = {
+ {&(_ZTV9GG1313213[8]), 8,42},
+ {&(_ZTV9GG1313213[15]), 15,42},
+ {&(_ZTV9GG1313213[19]), 19,42},
+ {&(_ZTV9GG1313213[24]), 24,42},
+ {&(_ZTV9GG1313213[31]), 31,42},
+ {&(_ZTV9GG1313213[36]), 36,42},
+ {&(_ZTV9GG1313213[41]), 41,42},
+ {&(_tg__ZTV5EE131__9GG1313213[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE131__9GG1313213[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE131__9GG1313213[4]), 4,6},
+ {&(_tg__ZTV5FF321__9GG1313213[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF321__9GG1313213[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF321__9GG1313213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1313213[];
+extern VTBL_ENTRY _ZTV9GG1313213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1313213[];
+static VTBL_ENTRY alt_thunk_names403[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3213fooEv,_ZThn8_N5FF3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13132133barEv,_ZTv0_n12_N9GG13132133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG13132133barEv,_ZThn48_N9GG13132133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13132133barEv,_ZTv0_n16_N9GG13132133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13132133barEv,_ZThn40_N9GG13132133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13132133barEv,_ZThn24_N9GG13132133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13132133fooEv,_ZTv0_n12_N9GG13132133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13132133fooEv,_ZThn40_N9GG13132133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13132133fooEv,_ZThn24_N9GG13132133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13132133fooEv,_ZThn16_N9GG13132133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13132133fooEv,_ZTv0_n20_N9GG13132133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13132133fooEv,_ZThn32_N9GG13132133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13132133fooEv,_ZThn8_N9GG13132133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1313213 = { "GG1313213", // class name
+ bases_GG1313213, 6,
+ &(vtc_GG1313213[0]), // expected_vtbl_contents
+ &(vtt_GG1313213[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1313213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1313213),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1313213),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names403,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1313223 : virtual EE131 , virtual FF322 {
+ int pg;
+ virtual void foo(); // _ZN9GG13132233fooEv
+ virtual void bar(); // _ZN9GG13132233barEv
+ ~GG1313223(); // tgen
+ GG1313223(); // tgen
+};
+//SIG(1 GG1313223) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1313223 ::foo(){vfunc_called(this, "_ZN9GG13132233fooEv");}
+void GG1313223 ::bar(){vfunc_called(this, "_ZN9GG13132233barEv");}
+GG1313223 ::~GG1313223(){ note_dtor("GG1313223", this);} // tgen
+GG1313223 ::GG1313223(){ note_ctor("GG1313223", this);} // tgen
+
+static void Test_GG1313223()
+{
+ extern Class_Descriptor cd_GG1313223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1313223, buf);
+ GG1313223 *dp, &lv = *(dp=new (buf) GG1313223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1313223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1313223)");
+ check_base_class_offset(lv, (AA1*)(EE131*), ABISELECT(32,16), "GG1313223");
+ check_base_class_offset(lv, (BB3*)(EE131*), ABISELECT(48,24), "GG1313223");
+ check_base_class_offset(lv, (EE131*), ABISELECT(16,8), "GG1313223");
+ check_base_class_offset(lv, (AA3*)(FF322*), ABISELECT(80,40), "GG1313223");
+ check_base_class_offset(lv, (BB2*)(FF322*), ABISELECT(96,48), "GG1313223");
+ check_base_class_offset(lv, (FF322*), ABISELECT(64,32), "GG1313223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1313223.pg");
+ test_class_info(&lv, &cd_GG1313223);
+ dp->~GG1313223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1313223(Test_GG1313223, "GG1313223", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1313223C1Ev();
+extern void _ZN9GG1313223D1Ev();
+Name_Map name_map_GG1313223[] = {
+ NSPAIR(_ZN9GG1313223C1Ev),
+ NSPAIR(_ZN9GG1313223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE131;
+extern VTBL_ENTRY _ZTI5EE131[];
+extern VTBL_ENTRY _ZTV5EE131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE131[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF322;
+extern VTBL_ENTRY _ZTI5FF322[];
+extern VTBL_ENTRY _ZTV5FF322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF322[];
+static Base_Class bases_GG1313223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE131, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF322, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1313223[];
+extern void _ZN9GG13132233fooEv();
+extern void _ZN9GG13132233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13132233fooEv,_ZTv0_n20_N9GG13132233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13132233fooEv,_ZThn8_N9GG13132233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13132233fooEv,_ZTv0_n12_N9GG13132233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13132233fooEv,_ZThn16_N9GG13132233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13132233fooEv,_ZTv0_n12_N9GG13132233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13132233fooEv,_ZThn24_N9GG13132233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13132233barEv,_ZTv0_n16_N9GG13132233barEv)();
+extern void ABISELECT(_ZThn48_N9GG13132233barEv,_ZThn24_N9GG13132233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13132233barEv,_ZTv0_n20_N9GG13132233barEv)();
+extern void ABISELECT(_ZThn64_N9GG13132233barEv,_ZThn32_N9GG13132233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13132233fooEv,_ZTv0_n12_N9GG13132233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG13132233fooEv,_ZThn40_N9GG13132233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13132233barEv,_ZTv0_n16_N9GG13132233barEv)();
+extern void ABISELECT(_ZThn80_N9GG13132233barEv,_ZThn40_N9GG13132233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13132233barEv,_ZTv0_n12_N9GG13132233barEv)();
+extern void ABISELECT(_ZThn96_N9GG13132233barEv,_ZThn48_N9GG13132233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1313223[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1313223[0]),
+ (VTBL_ENTRY)&_ZN9GG13132233fooEv,
+ (VTBL_ENTRY)&_ZN9GG13132233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1313223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13132233fooEv,_ZTv0_n20_N9GG13132233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1313223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13132233fooEv,_ZTv0_n12_N9GG13132233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1313223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13132233fooEv,_ZTv0_n12_N9GG13132233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13132233barEv,_ZTv0_n16_N9GG13132233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1313223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13132233barEv,_ZTv0_n20_N9GG13132233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1313223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13132233fooEv,_ZTv0_n12_N9GG13132233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13132233barEv,_ZTv0_n16_N9GG13132233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1313223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13132233barEv,_ZTv0_n12_N9GG13132233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1313223[];
+extern void _ZN5EE1313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE131__9GG1313223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&_ZN5EE1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE131__9GG1313223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE131__9GG1313223[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF3223barEv();
+static VTBL_ENTRY _tg__ZTV5FF322__9GG1313223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN5FF3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv)();
+extern void ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF322__9GG1313223[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv)();
+extern void ABISELECT(_ZThn32_N5FF3223barEv,_ZThn16_N5FF3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF322__9GG1313223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv),
+};
+static VTT_ENTRY vtt_GG1313223[] = {
+ {&(_ZTV9GG1313223[8]), 8,42},
+ {&(_ZTV9GG1313223[15]), 15,42},
+ {&(_ZTV9GG1313223[19]), 19,42},
+ {&(_ZTV9GG1313223[24]), 24,42},
+ {&(_ZTV9GG1313223[31]), 31,42},
+ {&(_ZTV9GG1313223[36]), 36,42},
+ {&(_ZTV9GG1313223[41]), 41,42},
+ {&(_tg__ZTV5EE131__9GG1313223[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE131__9GG1313223[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE131__9GG1313223[4]), 4,6},
+ {&(_tg__ZTV5FF322__9GG1313223[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF322__9GG1313223[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF322__9GG1313223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1313223[];
+extern VTBL_ENTRY _ZTV9GG1313223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1313223[];
+static VTBL_ENTRY alt_thunk_names404[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3223barEv,_ZThn16_N5FF3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13132233barEv,_ZTv0_n12_N9GG13132233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG13132233barEv,_ZThn48_N9GG13132233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13132233barEv,_ZTv0_n20_N9GG13132233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13132233barEv,_ZThn32_N9GG13132233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13132233barEv,_ZTv0_n16_N9GG13132233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13132233barEv,_ZThn40_N9GG13132233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13132233barEv,_ZThn24_N9GG13132233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13132233fooEv,_ZTv0_n12_N9GG13132233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13132233fooEv,_ZThn40_N9GG13132233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13132233fooEv,_ZThn24_N9GG13132233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13132233fooEv,_ZThn16_N9GG13132233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13132233fooEv,_ZTv0_n20_N9GG13132233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13132233fooEv,_ZThn8_N9GG13132233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1313223 = { "GG1313223", // class name
+ bases_GG1313223, 6,
+ &(vtc_GG1313223[0]), // expected_vtbl_contents
+ &(vtt_GG1313223[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1313223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1313223),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1313223),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names404,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1313233 : virtual EE131 , virtual FF323 {
+ int pg;
+ virtual void foo(); // _ZN9GG13132333fooEv
+ virtual void bar(); // _ZN9GG13132333barEv
+ ~GG1313233(); // tgen
+ GG1313233(); // tgen
+};
+//SIG(1 GG1313233) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1313233 ::foo(){vfunc_called(this, "_ZN9GG13132333fooEv");}
+void GG1313233 ::bar(){vfunc_called(this, "_ZN9GG13132333barEv");}
+GG1313233 ::~GG1313233(){ note_dtor("GG1313233", this);} // tgen
+GG1313233 ::GG1313233(){ note_ctor("GG1313233", this);} // tgen
+
+static void Test_GG1313233()
+{
+ extern Class_Descriptor cd_GG1313233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1313233, buf);
+ GG1313233 *dp, &lv = *(dp=new (buf) GG1313233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1313233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1313233)");
+ check_base_class_offset(lv, (AA1*)(EE131*), ABISELECT(32,16), "GG1313233");
+ check_base_class_offset(lv, (BB3*)(EE131*), ABISELECT(48,24), "GG1313233");
+ check_base_class_offset(lv, (EE131*), ABISELECT(16,8), "GG1313233");
+ check_base_class_offset(lv, (AA3*)(FF323*), ABISELECT(80,40), "GG1313233");
+ check_base_class_offset(lv, (BB2*)(FF323*), ABISELECT(96,48), "GG1313233");
+ check_base_class_offset(lv, (FF323*), ABISELECT(64,32), "GG1313233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1313233.pg");
+ test_class_info(&lv, &cd_GG1313233);
+ dp->~GG1313233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1313233(Test_GG1313233, "GG1313233", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1313233C1Ev();
+extern void _ZN9GG1313233D1Ev();
+Name_Map name_map_GG1313233[] = {
+ NSPAIR(_ZN9GG1313233C1Ev),
+ NSPAIR(_ZN9GG1313233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE131;
+extern VTBL_ENTRY _ZTI5EE131[];
+extern VTBL_ENTRY _ZTV5EE131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE131[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF323;
+extern VTBL_ENTRY _ZTI5FF323[];
+extern VTBL_ENTRY _ZTV5FF323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF323[];
+static Base_Class bases_GG1313233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE131, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 40, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF323, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1313233[];
+extern void _ZN9GG13132333fooEv();
+extern void _ZN9GG13132333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13132333fooEv,_ZTv0_n20_N9GG13132333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13132333fooEv,_ZThn8_N9GG13132333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13132333fooEv,_ZTv0_n12_N9GG13132333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13132333fooEv,_ZThn16_N9GG13132333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13132333fooEv,_ZTv0_n12_N9GG13132333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13132333fooEv,_ZThn24_N9GG13132333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13132333barEv,_ZTv0_n16_N9GG13132333barEv)();
+extern void ABISELECT(_ZThn48_N9GG13132333barEv,_ZThn24_N9GG13132333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13132333fooEv,_ZTv0_n20_N9GG13132333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13132333fooEv,_ZThn32_N9GG13132333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13132333barEv,_ZTv0_n24_N9GG13132333barEv)();
+extern void ABISELECT(_ZThn64_N9GG13132333barEv,_ZThn32_N9GG13132333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13132333fooEv,_ZTv0_n12_N9GG13132333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG13132333fooEv,_ZThn40_N9GG13132333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13132333barEv,_ZTv0_n16_N9GG13132333barEv)();
+extern void ABISELECT(_ZThn80_N9GG13132333barEv,_ZThn40_N9GG13132333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13132333barEv,_ZTv0_n12_N9GG13132333barEv)();
+extern void ABISELECT(_ZThn96_N9GG13132333barEv,_ZThn48_N9GG13132333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1313233[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1313233[0]),
+ (VTBL_ENTRY)&_ZN9GG13132333fooEv,
+ (VTBL_ENTRY)&_ZN9GG13132333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1313233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13132333fooEv,_ZTv0_n20_N9GG13132333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1313233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13132333fooEv,_ZTv0_n12_N9GG13132333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1313233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13132333fooEv,_ZTv0_n12_N9GG13132333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13132333barEv,_ZTv0_n16_N9GG13132333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1313233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13132333fooEv,_ZTv0_n20_N9GG13132333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13132333barEv,_ZTv0_n24_N9GG13132333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1313233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13132333fooEv,_ZTv0_n12_N9GG13132333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13132333barEv,_ZTv0_n16_N9GG13132333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1313233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13132333barEv,_ZTv0_n12_N9GG13132333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1313233[];
+extern void _ZN5EE1313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE131__9GG1313233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&_ZN5EE1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE131__9GG1313233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE131__9GG1313233[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF3233fooEv();
+extern void _ZN5FF3233barEv();
+static VTBL_ENTRY _tg__ZTV5FF323__9GG1313233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&_ZN5FF3233fooEv,
+ (VTBL_ENTRY)&_ZN5FF3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3233fooEv,_ZThn8_N5FF3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv)();
+extern void ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF323__9GG1313233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv)();
+extern void ABISELECT(_ZThn32_N5FF3233barEv,_ZThn16_N5FF3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF323__9GG1313233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv),
+};
+static VTT_ENTRY vtt_GG1313233[] = {
+ {&(_ZTV9GG1313233[8]), 8,44},
+ {&(_ZTV9GG1313233[15]), 15,44},
+ {&(_ZTV9GG1313233[19]), 19,44},
+ {&(_ZTV9GG1313233[24]), 24,44},
+ {&(_ZTV9GG1313233[32]), 32,44},
+ {&(_ZTV9GG1313233[38]), 38,44},
+ {&(_ZTV9GG1313233[43]), 43,44},
+ {&(_tg__ZTV5EE131__9GG1313233[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE131__9GG1313233[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE131__9GG1313233[4]), 4,6},
+ {&(_tg__ZTV5FF323__9GG1313233[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF323__9GG1313233[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF323__9GG1313233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1313233[];
+extern VTBL_ENTRY _ZTV9GG1313233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1313233[];
+static VTBL_ENTRY alt_thunk_names405[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3233barEv,_ZThn16_N5FF3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3233fooEv,_ZThn8_N5FF3233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13132333barEv,_ZTv0_n12_N9GG13132333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG13132333barEv,_ZThn48_N9GG13132333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG13132333barEv,_ZTv0_n24_N9GG13132333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13132333barEv,_ZThn32_N9GG13132333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13132333barEv,_ZTv0_n16_N9GG13132333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13132333barEv,_ZThn40_N9GG13132333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13132333barEv,_ZThn24_N9GG13132333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13132333fooEv,_ZTv0_n12_N9GG13132333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13132333fooEv,_ZThn40_N9GG13132333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13132333fooEv,_ZThn24_N9GG13132333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13132333fooEv,_ZThn16_N9GG13132333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13132333fooEv,_ZTv0_n20_N9GG13132333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13132333fooEv,_ZThn32_N9GG13132333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13132333fooEv,_ZThn8_N9GG13132333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1313233 = { "GG1313233", // class name
+ bases_GG1313233, 6,
+ &(vtc_GG1313233[0]), // expected_vtbl_contents
+ &(vtt_GG1313233[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1313233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1313233),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1313233),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names405,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1313313 : virtual EE131 , virtual FF331 {
+ int pg;
+ virtual void foo(); // _ZN9GG13133133fooEv
+ virtual void bar(); // _ZN9GG13133133barEv
+ ~GG1313313(); // tgen
+ GG1313313(); // tgen
+};
+//SIG(1 GG1313313) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG1313313 ::foo(){vfunc_called(this, "_ZN9GG13133133fooEv");}
+void GG1313313 ::bar(){vfunc_called(this, "_ZN9GG13133133barEv");}
+GG1313313 ::~GG1313313(){ note_dtor("GG1313313", this);} // tgen
+GG1313313 ::GG1313313(){ note_ctor("GG1313313", this);} // tgen
+
+static void Test_GG1313313()
+{
+ extern Class_Descriptor cd_GG1313313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1313313, buf);
+ GG1313313 *dp, &lv = *(dp=new (buf) GG1313313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1313313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1313313)");
+ check_base_class_offset(lv, (AA1*)(EE131*), ABISELECT(32,16), "GG1313313");
+ check_base_class_offset(lv, (BB3*)(EE131*), ABISELECT(48,24), "GG1313313");
+ check_base_class_offset(lv, (BB3*)(FF331*), ABISELECT(48,24), "GG1313313");
+ check_base_class_offset(lv, (EE131*), ABISELECT(16,8), "GG1313313");
+ check_base_class_offset(lv, (AA3*)(FF331*), ABISELECT(80,40), "GG1313313");
+ check_base_class_offset(lv, (FF331*), ABISELECT(64,32), "GG1313313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1313313.pg");
+ test_class_info(&lv, &cd_GG1313313);
+ dp->~GG1313313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1313313(Test_GG1313313, "GG1313313", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1313313C1Ev();
+extern void _ZN9GG1313313D1Ev();
+Name_Map name_map_GG1313313[] = {
+ NSPAIR(_ZN9GG1313313C1Ev),
+ NSPAIR(_ZN9GG1313313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE131;
+extern VTBL_ENTRY _ZTI5EE131[];
+extern VTBL_ENTRY _ZTV5EE131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE131[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF331;
+extern VTBL_ENTRY _ZTI5FF331[];
+extern VTBL_ENTRY _ZTV5FF331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF331[];
+static Base_Class bases_GG1313313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE131, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF331, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1313313[];
+extern void _ZN9GG13133133fooEv();
+extern void _ZN9GG13133133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13133133fooEv,_ZTv0_n20_N9GG13133133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13133133fooEv,_ZThn8_N9GG13133133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13133133fooEv,_ZTv0_n12_N9GG13133133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13133133fooEv,_ZThn16_N9GG13133133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13133133fooEv,_ZTv0_n12_N9GG13133133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13133133fooEv,_ZThn24_N9GG13133133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13133133barEv,_ZTv0_n16_N9GG13133133barEv)();
+extern void ABISELECT(_ZThn48_N9GG13133133barEv,_ZThn24_N9GG13133133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13133133fooEv,_ZTv0_n20_N9GG13133133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13133133fooEv,_ZThn32_N9GG13133133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13133133fooEv,_ZTv0_n12_N9GG13133133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG13133133fooEv,_ZThn40_N9GG13133133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13133133barEv,_ZTv0_n16_N9GG13133133barEv)();
+extern void ABISELECT(_ZThn80_N9GG13133133barEv,_ZThn40_N9GG13133133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1313313[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1313313[0]),
+ (VTBL_ENTRY)&_ZN9GG13133133fooEv,
+ (VTBL_ENTRY)&_ZN9GG13133133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1313313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13133133fooEv,_ZTv0_n20_N9GG13133133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1313313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13133133fooEv,_ZTv0_n12_N9GG13133133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1313313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13133133fooEv,_ZTv0_n12_N9GG13133133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13133133barEv,_ZTv0_n16_N9GG13133133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1313313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13133133fooEv,_ZTv0_n20_N9GG13133133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1313313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13133133fooEv,_ZTv0_n12_N9GG13133133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13133133barEv,_ZTv0_n16_N9GG13133133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1313313[];
+extern void _ZN5EE1313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE131__9GG1313313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&_ZN5EE1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE131__9GG1313313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE131__9GG1313313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF3313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF331__9GG1313313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&_ZN5FF3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF331__9GG1313313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF331__9GG1313313[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG1313313[] = {
+ {&(_ZTV9GG1313313[7]), 7,37},
+ {&(_ZTV9GG1313313[14]), 14,37},
+ {&(_ZTV9GG1313313[18]), 18,37},
+ {&(_ZTV9GG1313313[23]), 23,37},
+ {&(_ZTV9GG1313313[30]), 30,37},
+ {&(_ZTV9GG1313313[35]), 35,37},
+ {&(_tg__ZTV5EE131__9GG1313313[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE131__9GG1313313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE131__9GG1313313[4]), 4,6},
+ {&(_tg__ZTV5FF331__9GG1313313[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF331__9GG1313313[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF331__9GG1313313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1313313[];
+extern VTBL_ENTRY _ZTV9GG1313313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1313313[];
+static VTBL_ENTRY alt_thunk_names406[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13133133barEv,_ZTv0_n16_N9GG13133133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13133133barEv,_ZThn40_N9GG13133133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13133133barEv,_ZThn24_N9GG13133133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13133133fooEv,_ZTv0_n12_N9GG13133133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13133133fooEv,_ZThn40_N9GG13133133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13133133fooEv,_ZThn24_N9GG13133133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13133133fooEv,_ZThn16_N9GG13133133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13133133fooEv,_ZTv0_n20_N9GG13133133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13133133fooEv,_ZThn32_N9GG13133133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13133133fooEv,_ZThn8_N9GG13133133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1313313 = { "GG1313313", // class name
+ bases_GG1313313, 5,
+ &(vtc_GG1313313[0]), // expected_vtbl_contents
+ &(vtt_GG1313313[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1313313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1313313),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1313313),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names406,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1313323 : virtual EE131 , virtual FF332 {
+ int pg;
+ virtual void foo(); // _ZN9GG13133233fooEv
+ virtual void bar(); // _ZN9GG13133233barEv
+ ~GG1313323(); // tgen
+ GG1313323(); // tgen
+};
+//SIG(1 GG1313323) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG1313323 ::foo(){vfunc_called(this, "_ZN9GG13133233fooEv");}
+void GG1313323 ::bar(){vfunc_called(this, "_ZN9GG13133233barEv");}
+GG1313323 ::~GG1313323(){ note_dtor("GG1313323", this);} // tgen
+GG1313323 ::GG1313323(){ note_ctor("GG1313323", this);} // tgen
+
+static void Test_GG1313323()
+{
+ extern Class_Descriptor cd_GG1313323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1313323, buf);
+ GG1313323 *dp, &lv = *(dp=new (buf) GG1313323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1313323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1313323)");
+ check_base_class_offset(lv, (AA1*)(EE131*), ABISELECT(32,16), "GG1313323");
+ check_base_class_offset(lv, (BB3*)(EE131*), ABISELECT(48,24), "GG1313323");
+ check_base_class_offset(lv, (BB3*)(FF332*), ABISELECT(48,24), "GG1313323");
+ check_base_class_offset(lv, (EE131*), ABISELECT(16,8), "GG1313323");
+ check_base_class_offset(lv, (AA3*)(FF332*), ABISELECT(80,40), "GG1313323");
+ check_base_class_offset(lv, (FF332*), ABISELECT(64,32), "GG1313323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1313323.pg");
+ test_class_info(&lv, &cd_GG1313323);
+ dp->~GG1313323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1313323(Test_GG1313323, "GG1313323", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1313323C1Ev();
+extern void _ZN9GG1313323D1Ev();
+Name_Map name_map_GG1313323[] = {
+ NSPAIR(_ZN9GG1313323C1Ev),
+ NSPAIR(_ZN9GG1313323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE131;
+extern VTBL_ENTRY _ZTI5EE131[];
+extern VTBL_ENTRY _ZTV5EE131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE131[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF332;
+extern VTBL_ENTRY _ZTI5FF332[];
+extern VTBL_ENTRY _ZTV5FF332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF332[];
+static Base_Class bases_GG1313323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE131, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF332, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1313323[];
+extern void _ZN9GG13133233fooEv();
+extern void _ZN9GG13133233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13133233fooEv,_ZTv0_n20_N9GG13133233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13133233fooEv,_ZThn8_N9GG13133233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13133233fooEv,_ZTv0_n12_N9GG13133233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13133233fooEv,_ZThn16_N9GG13133233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13133233fooEv,_ZTv0_n12_N9GG13133233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13133233fooEv,_ZThn24_N9GG13133233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13133233barEv,_ZTv0_n16_N9GG13133233barEv)();
+extern void ABISELECT(_ZThn48_N9GG13133233barEv,_ZThn24_N9GG13133233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13133233barEv,_ZTv0_n20_N9GG13133233barEv)();
+extern void ABISELECT(_ZThn64_N9GG13133233barEv,_ZThn32_N9GG13133233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13133233fooEv,_ZTv0_n12_N9GG13133233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG13133233fooEv,_ZThn40_N9GG13133233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13133233barEv,_ZTv0_n16_N9GG13133233barEv)();
+extern void ABISELECT(_ZThn80_N9GG13133233barEv,_ZThn40_N9GG13133233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1313323[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1313323[0]),
+ (VTBL_ENTRY)&_ZN9GG13133233fooEv,
+ (VTBL_ENTRY)&_ZN9GG13133233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1313323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13133233fooEv,_ZTv0_n20_N9GG13133233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1313323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13133233fooEv,_ZTv0_n12_N9GG13133233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1313323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13133233fooEv,_ZTv0_n12_N9GG13133233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13133233barEv,_ZTv0_n16_N9GG13133233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1313323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13133233barEv,_ZTv0_n20_N9GG13133233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1313323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13133233fooEv,_ZTv0_n12_N9GG13133233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13133233barEv,_ZTv0_n16_N9GG13133233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1313323[];
+extern void _ZN5EE1313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE131__9GG1313323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&_ZN5EE1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE131__9GG1313323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE131__9GG1313323[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF3323barEv();
+static VTBL_ENTRY _tg__ZTV5FF332__9GG1313323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN5FF3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+extern void ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF332__9GG1313323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF332__9GG1313323[] = {
+ ABISELECT(16,8),
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+static VTT_ENTRY vtt_GG1313323[] = {
+ {&(_ZTV9GG1313323[7]), 7,37},
+ {&(_ZTV9GG1313323[14]), 14,37},
+ {&(_ZTV9GG1313323[18]), 18,37},
+ {&(_ZTV9GG1313323[23]), 23,37},
+ {&(_ZTV9GG1313323[30]), 30,37},
+ {&(_ZTV9GG1313323[35]), 35,37},
+ {&(_tg__ZTV5EE131__9GG1313323[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE131__9GG1313323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE131__9GG1313323[4]), 4,6},
+ {&(_tg__ZTV5FF332__9GG1313323[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF332__9GG1313323[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF332__9GG1313323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1313323[];
+extern VTBL_ENTRY _ZTV9GG1313323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1313323[];
+static VTBL_ENTRY alt_thunk_names407[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13133233barEv,_ZTv0_n20_N9GG13133233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13133233barEv,_ZThn32_N9GG13133233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13133233barEv,_ZTv0_n16_N9GG13133233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13133233barEv,_ZThn40_N9GG13133233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13133233barEv,_ZThn24_N9GG13133233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13133233fooEv,_ZTv0_n12_N9GG13133233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13133233fooEv,_ZThn40_N9GG13133233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13133233fooEv,_ZThn24_N9GG13133233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13133233fooEv,_ZThn16_N9GG13133233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13133233fooEv,_ZTv0_n20_N9GG13133233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13133233fooEv,_ZThn8_N9GG13133233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1313323 = { "GG1313323", // class name
+ bases_GG1313323, 5,
+ &(vtc_GG1313323[0]), // expected_vtbl_contents
+ &(vtt_GG1313323[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1313323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1313323),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1313323),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names407,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1313333 : virtual EE131 , virtual FF333 {
+ int pg;
+ virtual void foo(); // _ZN9GG13133333fooEv
+ virtual void bar(); // _ZN9GG13133333barEv
+ ~GG1313333(); // tgen
+ GG1313333(); // tgen
+};
+//SIG(1 GG1313333) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1313333 ::foo(){vfunc_called(this, "_ZN9GG13133333fooEv");}
+void GG1313333 ::bar(){vfunc_called(this, "_ZN9GG13133333barEv");}
+GG1313333 ::~GG1313333(){ note_dtor("GG1313333", this);} // tgen
+GG1313333 ::GG1313333(){ note_ctor("GG1313333", this);} // tgen
+
+static void Test_GG1313333()
+{
+ extern Class_Descriptor cd_GG1313333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1313333, buf);
+ GG1313333 *dp, &lv = *(dp=new (buf) GG1313333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1313333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1313333)");
+ check_base_class_offset(lv, (AA1*)(EE131*), ABISELECT(32,16), "GG1313333");
+ check_base_class_offset(lv, (BB3*)(EE131*), ABISELECT(48,24), "GG1313333");
+ check_base_class_offset(lv, (BB3*)(FF333*), ABISELECT(48,24), "GG1313333");
+ check_base_class_offset(lv, (EE131*), ABISELECT(16,8), "GG1313333");
+ check_base_class_offset(lv, (AA3*)(FF333*), ABISELECT(80,40), "GG1313333");
+ check_base_class_offset(lv, (FF333*), ABISELECT(64,32), "GG1313333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1313333.pg");
+ test_class_info(&lv, &cd_GG1313333);
+ dp->~GG1313333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1313333(Test_GG1313333, "GG1313333", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1313333C1Ev();
+extern void _ZN9GG1313333D1Ev();
+Name_Map name_map_GG1313333[] = {
+ NSPAIR(_ZN9GG1313333C1Ev),
+ NSPAIR(_ZN9GG1313333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE131;
+extern VTBL_ENTRY _ZTI5EE131[];
+extern VTBL_ENTRY _ZTV5EE131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE131[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF333;
+extern VTBL_ENTRY _ZTI5FF333[];
+extern VTBL_ENTRY _ZTV5FF333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF333[];
+static Base_Class bases_GG1313333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE131, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF333, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1313333[];
+extern void _ZN9GG13133333fooEv();
+extern void _ZN9GG13133333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13133333fooEv,_ZTv0_n20_N9GG13133333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13133333fooEv,_ZThn8_N9GG13133333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13133333fooEv,_ZTv0_n12_N9GG13133333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13133333fooEv,_ZThn16_N9GG13133333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13133333fooEv,_ZTv0_n12_N9GG13133333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13133333fooEv,_ZThn24_N9GG13133333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13133333barEv,_ZTv0_n16_N9GG13133333barEv)();
+extern void ABISELECT(_ZThn48_N9GG13133333barEv,_ZThn24_N9GG13133333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13133333fooEv,_ZTv0_n20_N9GG13133333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13133333fooEv,_ZThn32_N9GG13133333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13133333barEv,_ZTv0_n24_N9GG13133333barEv)();
+extern void ABISELECT(_ZThn64_N9GG13133333barEv,_ZThn32_N9GG13133333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13133333fooEv,_ZTv0_n12_N9GG13133333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG13133333fooEv,_ZThn40_N9GG13133333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13133333barEv,_ZTv0_n16_N9GG13133333barEv)();
+extern void ABISELECT(_ZThn80_N9GG13133333barEv,_ZThn40_N9GG13133333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1313333[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1313333[0]),
+ (VTBL_ENTRY)&_ZN9GG13133333fooEv,
+ (VTBL_ENTRY)&_ZN9GG13133333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1313333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13133333fooEv,_ZTv0_n20_N9GG13133333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1313333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13133333fooEv,_ZTv0_n12_N9GG13133333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1313333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13133333fooEv,_ZTv0_n12_N9GG13133333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13133333barEv,_ZTv0_n16_N9GG13133333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1313333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13133333fooEv,_ZTv0_n20_N9GG13133333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13133333barEv,_ZTv0_n24_N9GG13133333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1313333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13133333fooEv,_ZTv0_n12_N9GG13133333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13133333barEv,_ZTv0_n16_N9GG13133333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1313333[];
+extern void _ZN5EE1313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE131__9GG1313333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&_ZN5EE1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE131__9GG1313333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE131__9GG1313333[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF3333fooEv();
+extern void _ZN5FF3333barEv();
+static VTBL_ENTRY _tg__ZTV5FF333__9GG1313333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&_ZN5FF3333fooEv,
+ (VTBL_ENTRY)&_ZN5FF3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+extern void ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF333__9GG1313333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF333__9GG1313333[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+static VTT_ENTRY vtt_GG1313333[] = {
+ {&(_ZTV9GG1313333[7]), 7,39},
+ {&(_ZTV9GG1313333[14]), 14,39},
+ {&(_ZTV9GG1313333[18]), 18,39},
+ {&(_ZTV9GG1313333[23]), 23,39},
+ {&(_ZTV9GG1313333[31]), 31,39},
+ {&(_ZTV9GG1313333[37]), 37,39},
+ {&(_tg__ZTV5EE131__9GG1313333[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE131__9GG1313333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE131__9GG1313333[4]), 4,6},
+ {&(_tg__ZTV5FF333__9GG1313333[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF333__9GG1313333[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF333__9GG1313333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1313333[];
+extern VTBL_ENTRY _ZTV9GG1313333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1313333[];
+static VTBL_ENTRY alt_thunk_names408[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1313fooEv,_ZTv0_n12_N5EE1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1313fooEv,_ZThn16_N5EE1313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1313fooEv,_ZThn8_N5EE1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG13133333barEv,_ZTv0_n24_N9GG13133333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13133333barEv,_ZThn32_N9GG13133333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13133333barEv,_ZTv0_n16_N9GG13133333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13133333barEv,_ZThn40_N9GG13133333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13133333barEv,_ZThn24_N9GG13133333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13133333fooEv,_ZTv0_n12_N9GG13133333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13133333fooEv,_ZThn40_N9GG13133333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13133333fooEv,_ZThn24_N9GG13133333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13133333fooEv,_ZThn16_N9GG13133333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13133333fooEv,_ZTv0_n20_N9GG13133333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13133333fooEv,_ZThn32_N9GG13133333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13133333fooEv,_ZThn8_N9GG13133333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1313333 = { "GG1313333", // class name
+ bases_GG1313333, 5,
+ &(vtc_GG1313333[0]), // expected_vtbl_contents
+ &(vtt_GG1313333[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1313333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1313333),39, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1313333),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names408,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1321111 : virtual EE132 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG13211113fooEv
+ ~GG1321111(); // tgen
+ GG1321111(); // tgen
+};
+//SIG(1 GG1321111) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v1 Fi} v1 Fi}
+
+
+void GG1321111 ::foo(){vfunc_called(this, "_ZN9GG13211113fooEv");}
+GG1321111 ::~GG1321111(){ note_dtor("GG1321111", this);} // tgen
+GG1321111 ::GG1321111(){ note_ctor("GG1321111", this);} // tgen
+
+static void Test_GG1321111()
+{
+ extern Class_Descriptor cd_GG1321111;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1321111, buf);
+ GG1321111 *dp, &lv = *(dp=new (buf) GG1321111());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1321111)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1321111)");
+ check_base_class_offset(lv, (AA1*)(EE132*), ABISELECT(32,16), "GG1321111");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(32,16), "GG1321111");
+ check_base_class_offset(lv, (BB3*)(EE132*), ABISELECT(48,24), "GG1321111");
+ check_base_class_offset(lv, (EE132*), ABISELECT(16,8), "GG1321111");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(80,40), "GG1321111");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG1321111");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1321111.pg");
+ test_class_info(&lv, &cd_GG1321111);
+ dp->~GG1321111();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1321111(Test_GG1321111, "GG1321111", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1321111C1Ev();
+extern void _ZN9GG1321111D1Ev();
+Name_Map name_map_GG1321111[] = {
+ NSPAIR(_ZN9GG1321111C1Ev),
+ NSPAIR(_ZN9GG1321111D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE132;
+extern VTBL_ENTRY _ZTI5EE132[];
+extern VTBL_ENTRY _ZTV5EE132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE132[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG1321111[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE132, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1321111[];
+extern void _ZN9GG13211113fooEv();
+extern void _ZN5EE1323barEv();
+extern void ABISELECT(_ZTv0_n24_N9GG13211113fooEv,_ZTv0_n12_N9GG13211113fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13211113fooEv,_ZThn16_N9GG13211113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13211113fooEv,_ZTv0_n12_N9GG13211113fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13211113fooEv,_ZThn24_N9GG13211113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv)();
+extern void ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13211113fooEv,_ZTv0_n20_N9GG13211113fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13211113fooEv,_ZThn32_N9GG13211113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13211113fooEv,_ZTv0_n12_N9GG13211113fooEv)();
+extern void ABISELECT(_ZThn80_N9GG13211113fooEv,_ZThn40_N9GG13211113fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1321111[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1321111[0]),
+ (VTBL_ENTRY)&_ZN9GG13211113fooEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1321111[0]),
+ (VTBL_ENTRY)&_ZN5EE1323barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1321111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13211113fooEv,_ZTv0_n12_N9GG13211113fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1321111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13211113fooEv,_ZTv0_n12_N9GG13211113fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1321111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13211113fooEv,_ZTv0_n20_N9GG13211113fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1321111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13211113fooEv,_ZTv0_n12_N9GG13211113fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1321111[];
+extern void _ZN5EE1323barEv();
+static VTBL_ENTRY _tg__ZTV5EE132__9GG1321111[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN5EE1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE132__9GG1321111[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv)();
+extern void ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE132__9GG1321111[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv),
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG1321111[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG1321111[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG1321111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG1321111[] = {
+ {&(_ZTV9GG1321111[7]), 7,34},
+ {&(_ZTV9GG1321111[13]), 13,34},
+ {&(_ZTV9GG1321111[17]), 17,34},
+ {&(_ZTV9GG1321111[22]), 22,34},
+ {&(_ZTV9GG1321111[29]), 29,34},
+ {&(_ZTV9GG1321111[33]), 33,34},
+ {&(_tg__ZTV5EE132__9GG1321111[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE132__9GG1321111[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE132__9GG1321111[4]), 4,6},
+ {&(_tg__ZTV5FF111__9GG1321111[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG1321111[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG1321111[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1321111[];
+extern VTBL_ENTRY _ZTV9GG1321111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1321111[];
+static VTBL_ENTRY alt_thunk_names409[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13211113fooEv,_ZTv0_n20_N9GG13211113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13211113fooEv,_ZThn32_N9GG13211113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13211113fooEv,_ZTv0_n12_N9GG13211113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13211113fooEv,_ZThn40_N9GG13211113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13211113fooEv,_ZThn24_N9GG13211113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13211113fooEv,_ZThn16_N9GG13211113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1321111 = { "GG1321111", // class name
+ bases_GG1321111, 5,
+ &(vtc_GG1321111[0]), // expected_vtbl_contents
+ &(vtt_GG1321111[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1321111),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1321111),34, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1321111),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names409,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1321113 : virtual EE132 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG13211133fooEv
+ virtual void bar(); // _ZN9GG13211133barEv
+ ~GG1321113(); // tgen
+ GG1321113(); // tgen
+};
+//SIG(1 GG1321113) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1321113 ::foo(){vfunc_called(this, "_ZN9GG13211133fooEv");}
+void GG1321113 ::bar(){vfunc_called(this, "_ZN9GG13211133barEv");}
+GG1321113 ::~GG1321113(){ note_dtor("GG1321113", this);} // tgen
+GG1321113 ::GG1321113(){ note_ctor("GG1321113", this);} // tgen
+
+static void Test_GG1321113()
+{
+ extern Class_Descriptor cd_GG1321113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1321113, buf);
+ GG1321113 *dp, &lv = *(dp=new (buf) GG1321113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1321113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1321113)");
+ check_base_class_offset(lv, (AA1*)(EE132*), ABISELECT(32,16), "GG1321113");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(32,16), "GG1321113");
+ check_base_class_offset(lv, (BB3*)(EE132*), ABISELECT(48,24), "GG1321113");
+ check_base_class_offset(lv, (EE132*), ABISELECT(16,8), "GG1321113");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(80,40), "GG1321113");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG1321113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1321113.pg");
+ test_class_info(&lv, &cd_GG1321113);
+ dp->~GG1321113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1321113(Test_GG1321113, "GG1321113", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1321113C1Ev();
+extern void _ZN9GG1321113D1Ev();
+Name_Map name_map_GG1321113[] = {
+ NSPAIR(_ZN9GG1321113C1Ev),
+ NSPAIR(_ZN9GG1321113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE132;
+extern VTBL_ENTRY _ZTI5EE132[];
+extern VTBL_ENTRY _ZTV5EE132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE132[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG1321113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE132, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1321113[];
+extern void _ZN9GG13211133fooEv();
+extern void _ZN9GG13211133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13211133barEv,_ZTv0_n20_N9GG13211133barEv)();
+extern void ABISELECT(_ZThn16_N9GG13211133barEv,_ZThn8_N9GG13211133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13211133fooEv,_ZTv0_n12_N9GG13211133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13211133fooEv,_ZThn16_N9GG13211133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13211133fooEv,_ZTv0_n12_N9GG13211133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13211133fooEv,_ZThn24_N9GG13211133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13211133barEv,_ZTv0_n16_N9GG13211133barEv)();
+extern void ABISELECT(_ZThn48_N9GG13211133barEv,_ZThn24_N9GG13211133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13211133fooEv,_ZTv0_n20_N9GG13211133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13211133fooEv,_ZThn32_N9GG13211133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13211133fooEv,_ZTv0_n12_N9GG13211133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG13211133fooEv,_ZThn40_N9GG13211133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1321113[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1321113[0]),
+ (VTBL_ENTRY)&_ZN9GG13211133fooEv,
+ (VTBL_ENTRY)&_ZN9GG13211133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1321113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13211133barEv,_ZTv0_n20_N9GG13211133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1321113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13211133fooEv,_ZTv0_n12_N9GG13211133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1321113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13211133fooEv,_ZTv0_n12_N9GG13211133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13211133barEv,_ZTv0_n16_N9GG13211133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1321113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13211133fooEv,_ZTv0_n20_N9GG13211133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1321113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13211133fooEv,_ZTv0_n12_N9GG13211133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1321113[];
+extern void _ZN5EE1323barEv();
+static VTBL_ENTRY _tg__ZTV5EE132__9GG1321113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN5EE1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE132__9GG1321113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv)();
+extern void ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE132__9GG1321113[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv),
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG1321113[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG1321113[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG1321113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG1321113[] = {
+ {&(_ZTV9GG1321113[7]), 7,35},
+ {&(_ZTV9GG1321113[14]), 14,35},
+ {&(_ZTV9GG1321113[18]), 18,35},
+ {&(_ZTV9GG1321113[23]), 23,35},
+ {&(_ZTV9GG1321113[30]), 30,35},
+ {&(_ZTV9GG1321113[34]), 34,35},
+ {&(_tg__ZTV5EE132__9GG1321113[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE132__9GG1321113[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE132__9GG1321113[4]), 4,6},
+ {&(_tg__ZTV5FF111__9GG1321113[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG1321113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG1321113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1321113[];
+extern VTBL_ENTRY _ZTV9GG1321113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1321113[];
+static VTBL_ENTRY alt_thunk_names410[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13211133fooEv,_ZTv0_n20_N9GG13211133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13211133fooEv,_ZThn32_N9GG13211133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13211133barEv,_ZTv0_n16_N9GG13211133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13211133barEv,_ZThn24_N9GG13211133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13211133fooEv,_ZTv0_n12_N9GG13211133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13211133fooEv,_ZThn40_N9GG13211133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13211133fooEv,_ZThn24_N9GG13211133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13211133fooEv,_ZThn16_N9GG13211133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13211133barEv,_ZTv0_n20_N9GG13211133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13211133barEv,_ZThn8_N9GG13211133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1321113 = { "GG1321113", // class name
+ bases_GG1321113, 5,
+ &(vtc_GG1321113[0]), // expected_vtbl_contents
+ &(vtt_GG1321113[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1321113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1321113),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1321113),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names410,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1321123 : virtual EE132 , virtual FF112 {
+ int pg;
+ virtual void foo(); // _ZN9GG13211233fooEv
+ virtual void bar(); // _ZN9GG13211233barEv
+ ~GG1321123(); // tgen
+ GG1321123(); // tgen
+};
+//SIG(1 GG1321123) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1321123 ::foo(){vfunc_called(this, "_ZN9GG13211233fooEv");}
+void GG1321123 ::bar(){vfunc_called(this, "_ZN9GG13211233barEv");}
+GG1321123 ::~GG1321123(){ note_dtor("GG1321123", this);} // tgen
+GG1321123 ::GG1321123(){ note_ctor("GG1321123", this);} // tgen
+
+static void Test_GG1321123()
+{
+ extern Class_Descriptor cd_GG1321123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1321123, buf);
+ GG1321123 *dp, &lv = *(dp=new (buf) GG1321123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1321123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1321123)");
+ check_base_class_offset(lv, (AA1*)(EE132*), ABISELECT(32,16), "GG1321123");
+ check_base_class_offset(lv, (AA1*)(FF112*), ABISELECT(32,16), "GG1321123");
+ check_base_class_offset(lv, (BB3*)(EE132*), ABISELECT(48,24), "GG1321123");
+ check_base_class_offset(lv, (EE132*), ABISELECT(16,8), "GG1321123");
+ check_base_class_offset(lv, (BB1*)(FF112*), ABISELECT(80,40), "GG1321123");
+ check_base_class_offset(lv, (FF112*), ABISELECT(64,32), "GG1321123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1321123.pg");
+ test_class_info(&lv, &cd_GG1321123);
+ dp->~GG1321123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1321123(Test_GG1321123, "GG1321123", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1321123C1Ev();
+extern void _ZN9GG1321123D1Ev();
+Name_Map name_map_GG1321123[] = {
+ NSPAIR(_ZN9GG1321123C1Ev),
+ NSPAIR(_ZN9GG1321123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE132;
+extern VTBL_ENTRY _ZTI5EE132[];
+extern VTBL_ENTRY _ZTV5EE132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE132[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF112;
+extern VTBL_ENTRY _ZTI5FF112[];
+extern VTBL_ENTRY _ZTV5FF112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF112[];
+static Base_Class bases_GG1321123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE132, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF112, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1321123[];
+extern void _ZN9GG13211233fooEv();
+extern void _ZN9GG13211233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13211233barEv,_ZTv0_n20_N9GG13211233barEv)();
+extern void ABISELECT(_ZThn16_N9GG13211233barEv,_ZThn8_N9GG13211233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13211233fooEv,_ZTv0_n12_N9GG13211233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13211233fooEv,_ZThn16_N9GG13211233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13211233fooEv,_ZTv0_n12_N9GG13211233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13211233fooEv,_ZThn24_N9GG13211233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13211233barEv,_ZTv0_n16_N9GG13211233barEv)();
+extern void ABISELECT(_ZThn48_N9GG13211233barEv,_ZThn24_N9GG13211233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13211233barEv,_ZTv0_n20_N9GG13211233barEv)();
+extern void ABISELECT(_ZThn64_N9GG13211233barEv,_ZThn32_N9GG13211233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13211233fooEv,_ZTv0_n12_N9GG13211233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG13211233fooEv,_ZThn40_N9GG13211233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1321123[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1321123[0]),
+ (VTBL_ENTRY)&_ZN9GG13211233fooEv,
+ (VTBL_ENTRY)&_ZN9GG13211233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1321123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13211233barEv,_ZTv0_n20_N9GG13211233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1321123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13211233fooEv,_ZTv0_n12_N9GG13211233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1321123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13211233fooEv,_ZTv0_n12_N9GG13211233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13211233barEv,_ZTv0_n16_N9GG13211233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1321123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13211233barEv,_ZTv0_n20_N9GG13211233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1321123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13211233fooEv,_ZTv0_n12_N9GG13211233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1321123[];
+extern void _ZN5EE1323barEv();
+static VTBL_ENTRY _tg__ZTV5EE132__9GG1321123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN5EE1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE132__9GG1321123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv)();
+extern void ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE132__9GG1321123[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv),
+};
+extern void _ZN5FF1123barEv();
+static VTBL_ENTRY _tg__ZTV5FF112__9GG1321123[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN5FF1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF112__9GG1321123[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF112__9GG1321123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG1321123[] = {
+ {&(_ZTV9GG1321123[7]), 7,35},
+ {&(_ZTV9GG1321123[14]), 14,35},
+ {&(_ZTV9GG1321123[18]), 18,35},
+ {&(_ZTV9GG1321123[23]), 23,35},
+ {&(_ZTV9GG1321123[30]), 30,35},
+ {&(_ZTV9GG1321123[34]), 34,35},
+ {&(_tg__ZTV5EE132__9GG1321123[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE132__9GG1321123[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE132__9GG1321123[4]), 4,6},
+ {&(_tg__ZTV5FF112__9GG1321123[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF112__9GG1321123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF112__9GG1321123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1321123[];
+extern VTBL_ENTRY _ZTV9GG1321123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1321123[];
+static VTBL_ENTRY alt_thunk_names411[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13211233barEv,_ZTv0_n16_N9GG13211233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13211233barEv,_ZThn24_N9GG13211233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13211233fooEv,_ZTv0_n12_N9GG13211233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13211233fooEv,_ZThn40_N9GG13211233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13211233fooEv,_ZThn24_N9GG13211233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13211233fooEv,_ZThn16_N9GG13211233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13211233barEv,_ZTv0_n20_N9GG13211233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13211233barEv,_ZThn32_N9GG13211233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13211233barEv,_ZThn8_N9GG13211233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1321123 = { "GG1321123", // class name
+ bases_GG1321123, 5,
+ &(vtc_GG1321123[0]), // expected_vtbl_contents
+ &(vtt_GG1321123[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1321123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1321123),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1321123),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names411,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1321133 : virtual EE132 , virtual FF113 {
+ int pg;
+ virtual void foo(); // _ZN9GG13211333fooEv
+ virtual void bar(); // _ZN9GG13211333barEv
+ ~GG1321133(); // tgen
+ GG1321133(); // tgen
+};
+//SIG(1 GG1321133) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1321133 ::foo(){vfunc_called(this, "_ZN9GG13211333fooEv");}
+void GG1321133 ::bar(){vfunc_called(this, "_ZN9GG13211333barEv");}
+GG1321133 ::~GG1321133(){ note_dtor("GG1321133", this);} // tgen
+GG1321133 ::GG1321133(){ note_ctor("GG1321133", this);} // tgen
+
+static void Test_GG1321133()
+{
+ extern Class_Descriptor cd_GG1321133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1321133, buf);
+ GG1321133 *dp, &lv = *(dp=new (buf) GG1321133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1321133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1321133)");
+ check_base_class_offset(lv, (AA1*)(EE132*), ABISELECT(32,16), "GG1321133");
+ check_base_class_offset(lv, (AA1*)(FF113*), ABISELECT(32,16), "GG1321133");
+ check_base_class_offset(lv, (BB3*)(EE132*), ABISELECT(48,24), "GG1321133");
+ check_base_class_offset(lv, (EE132*), ABISELECT(16,8), "GG1321133");
+ check_base_class_offset(lv, (BB1*)(FF113*), ABISELECT(80,40), "GG1321133");
+ check_base_class_offset(lv, (FF113*), ABISELECT(64,32), "GG1321133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1321133.pg");
+ test_class_info(&lv, &cd_GG1321133);
+ dp->~GG1321133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1321133(Test_GG1321133, "GG1321133", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1321133C1Ev();
+extern void _ZN9GG1321133D1Ev();
+Name_Map name_map_GG1321133[] = {
+ NSPAIR(_ZN9GG1321133C1Ev),
+ NSPAIR(_ZN9GG1321133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE132;
+extern VTBL_ENTRY _ZTI5EE132[];
+extern VTBL_ENTRY _ZTV5EE132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE132[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF113;
+extern VTBL_ENTRY _ZTI5FF113[];
+extern VTBL_ENTRY _ZTV5FF113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF113[];
+static Base_Class bases_GG1321133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE132, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF113, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1321133[];
+extern void _ZN9GG13211333fooEv();
+extern void _ZN9GG13211333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13211333barEv,_ZTv0_n20_N9GG13211333barEv)();
+extern void ABISELECT(_ZThn16_N9GG13211333barEv,_ZThn8_N9GG13211333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13211333fooEv,_ZTv0_n12_N9GG13211333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13211333fooEv,_ZThn16_N9GG13211333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13211333fooEv,_ZTv0_n12_N9GG13211333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13211333fooEv,_ZThn24_N9GG13211333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13211333barEv,_ZTv0_n16_N9GG13211333barEv)();
+extern void ABISELECT(_ZThn48_N9GG13211333barEv,_ZThn24_N9GG13211333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13211333fooEv,_ZTv0_n20_N9GG13211333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13211333fooEv,_ZThn32_N9GG13211333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13211333barEv,_ZTv0_n24_N9GG13211333barEv)();
+extern void ABISELECT(_ZThn64_N9GG13211333barEv,_ZThn32_N9GG13211333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13211333fooEv,_ZTv0_n12_N9GG13211333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG13211333fooEv,_ZThn40_N9GG13211333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1321133[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1321133[0]),
+ (VTBL_ENTRY)&_ZN9GG13211333fooEv,
+ (VTBL_ENTRY)&_ZN9GG13211333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1321133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13211333barEv,_ZTv0_n20_N9GG13211333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1321133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13211333fooEv,_ZTv0_n12_N9GG13211333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1321133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13211333fooEv,_ZTv0_n12_N9GG13211333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13211333barEv,_ZTv0_n16_N9GG13211333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1321133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13211333fooEv,_ZTv0_n20_N9GG13211333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13211333barEv,_ZTv0_n24_N9GG13211333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1321133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13211333fooEv,_ZTv0_n12_N9GG13211333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1321133[];
+extern void _ZN5EE1323barEv();
+static VTBL_ENTRY _tg__ZTV5EE132__9GG1321133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN5EE1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE132__9GG1321133[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv)();
+extern void ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE132__9GG1321133[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv),
+};
+extern void _ZN5FF1133fooEv();
+extern void _ZN5FF1133barEv();
+static VTBL_ENTRY _tg__ZTV5FF113__9GG1321133[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&_ZN5FF1133fooEv,
+ (VTBL_ENTRY)&_ZN5FF1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF113__9GG1321133[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF113__9GG1321133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+static VTT_ENTRY vtt_GG1321133[] = {
+ {&(_ZTV9GG1321133[7]), 7,37},
+ {&(_ZTV9GG1321133[14]), 14,37},
+ {&(_ZTV9GG1321133[18]), 18,37},
+ {&(_ZTV9GG1321133[23]), 23,37},
+ {&(_ZTV9GG1321133[31]), 31,37},
+ {&(_ZTV9GG1321133[36]), 36,37},
+ {&(_tg__ZTV5EE132__9GG1321133[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE132__9GG1321133[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE132__9GG1321133[4]), 4,6},
+ {&(_tg__ZTV5FF113__9GG1321133[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF113__9GG1321133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF113__9GG1321133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1321133[];
+extern VTBL_ENTRY _ZTV9GG1321133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1321133[];
+static VTBL_ENTRY alt_thunk_names412[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG13211333barEv,_ZTv0_n24_N9GG13211333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13211333barEv,_ZThn32_N9GG13211333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13211333fooEv,_ZTv0_n20_N9GG13211333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13211333fooEv,_ZThn32_N9GG13211333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13211333barEv,_ZTv0_n16_N9GG13211333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13211333barEv,_ZThn24_N9GG13211333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13211333fooEv,_ZTv0_n12_N9GG13211333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13211333fooEv,_ZThn40_N9GG13211333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13211333fooEv,_ZThn24_N9GG13211333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13211333fooEv,_ZThn16_N9GG13211333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13211333barEv,_ZTv0_n20_N9GG13211333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13211333barEv,_ZThn8_N9GG13211333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1321133 = { "GG1321133", // class name
+ bases_GG1321133, 5,
+ &(vtc_GG1321133[0]), // expected_vtbl_contents
+ &(vtt_GG1321133[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1321133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1321133),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1321133),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names412,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1321213 : virtual EE132 , virtual FF121 {
+ int pg;
+ virtual void foo(); // _ZN9GG13212133fooEv
+ virtual void bar(); // _ZN9GG13212133barEv
+ ~GG1321213(); // tgen
+ GG1321213(); // tgen
+};
+//SIG(1 GG1321213) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1321213 ::foo(){vfunc_called(this, "_ZN9GG13212133fooEv");}
+void GG1321213 ::bar(){vfunc_called(this, "_ZN9GG13212133barEv");}
+GG1321213 ::~GG1321213(){ note_dtor("GG1321213", this);} // tgen
+GG1321213 ::GG1321213(){ note_ctor("GG1321213", this);} // tgen
+
+static void Test_GG1321213()
+{
+ extern Class_Descriptor cd_GG1321213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1321213, buf);
+ GG1321213 *dp, &lv = *(dp=new (buf) GG1321213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1321213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1321213)");
+ check_base_class_offset(lv, (AA1*)(EE132*), ABISELECT(32,16), "GG1321213");
+ check_base_class_offset(lv, (AA1*)(FF121*), ABISELECT(32,16), "GG1321213");
+ check_base_class_offset(lv, (BB3*)(EE132*), ABISELECT(48,24), "GG1321213");
+ check_base_class_offset(lv, (EE132*), ABISELECT(16,8), "GG1321213");
+ check_base_class_offset(lv, (BB2*)(FF121*), ABISELECT(80,40), "GG1321213");
+ check_base_class_offset(lv, (FF121*), ABISELECT(64,32), "GG1321213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1321213.pg");
+ test_class_info(&lv, &cd_GG1321213);
+ dp->~GG1321213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1321213(Test_GG1321213, "GG1321213", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1321213C1Ev();
+extern void _ZN9GG1321213D1Ev();
+Name_Map name_map_GG1321213[] = {
+ NSPAIR(_ZN9GG1321213C1Ev),
+ NSPAIR(_ZN9GG1321213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE132;
+extern VTBL_ENTRY _ZTI5EE132[];
+extern VTBL_ENTRY _ZTV5EE132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE132[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF121;
+extern VTBL_ENTRY _ZTI5FF121[];
+extern VTBL_ENTRY _ZTV5FF121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF121[];
+static Base_Class bases_GG1321213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE132, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF121, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1321213[];
+extern void _ZN9GG13212133fooEv();
+extern void _ZN9GG13212133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13212133barEv,_ZTv0_n20_N9GG13212133barEv)();
+extern void ABISELECT(_ZThn16_N9GG13212133barEv,_ZThn8_N9GG13212133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13212133fooEv,_ZTv0_n12_N9GG13212133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13212133fooEv,_ZThn16_N9GG13212133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13212133fooEv,_ZTv0_n12_N9GG13212133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13212133fooEv,_ZThn24_N9GG13212133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13212133barEv,_ZTv0_n16_N9GG13212133barEv)();
+extern void ABISELECT(_ZThn48_N9GG13212133barEv,_ZThn24_N9GG13212133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13212133fooEv,_ZTv0_n20_N9GG13212133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13212133fooEv,_ZThn32_N9GG13212133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13212133barEv,_ZTv0_n12_N9GG13212133barEv)();
+extern void ABISELECT(_ZThn80_N9GG13212133barEv,_ZThn40_N9GG13212133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1321213[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1321213[0]),
+ (VTBL_ENTRY)&_ZN9GG13212133fooEv,
+ (VTBL_ENTRY)&_ZN9GG13212133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1321213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13212133barEv,_ZTv0_n20_N9GG13212133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1321213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13212133fooEv,_ZTv0_n12_N9GG13212133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1321213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13212133fooEv,_ZTv0_n12_N9GG13212133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13212133barEv,_ZTv0_n16_N9GG13212133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1321213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13212133fooEv,_ZTv0_n20_N9GG13212133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1321213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13212133barEv,_ZTv0_n12_N9GG13212133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1321213[];
+extern void _ZN5EE1323barEv();
+static VTBL_ENTRY _tg__ZTV5EE132__9GG1321213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN5EE1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE132__9GG1321213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv)();
+extern void ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE132__9GG1321213[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv),
+};
+extern void _ZN5FF1213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF121__9GG1321213[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN5FF1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF121__9GG1321213[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF121__9GG1321213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG1321213[] = {
+ {&(_ZTV9GG1321213[7]), 7,35},
+ {&(_ZTV9GG1321213[14]), 14,35},
+ {&(_ZTV9GG1321213[18]), 18,35},
+ {&(_ZTV9GG1321213[23]), 23,35},
+ {&(_ZTV9GG1321213[30]), 30,35},
+ {&(_ZTV9GG1321213[34]), 34,35},
+ {&(_tg__ZTV5EE132__9GG1321213[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE132__9GG1321213[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE132__9GG1321213[4]), 4,6},
+ {&(_tg__ZTV5FF121__9GG1321213[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF121__9GG1321213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF121__9GG1321213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1321213[];
+extern VTBL_ENTRY _ZTV9GG1321213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1321213[];
+static VTBL_ENTRY alt_thunk_names413[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13212133barEv,_ZTv0_n12_N9GG13212133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13212133barEv,_ZThn40_N9GG13212133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13212133fooEv,_ZTv0_n20_N9GG13212133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13212133fooEv,_ZThn32_N9GG13212133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13212133barEv,_ZTv0_n16_N9GG13212133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13212133barEv,_ZThn24_N9GG13212133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13212133fooEv,_ZTv0_n12_N9GG13212133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13212133fooEv,_ZThn24_N9GG13212133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13212133fooEv,_ZThn16_N9GG13212133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13212133barEv,_ZTv0_n20_N9GG13212133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13212133barEv,_ZThn8_N9GG13212133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1321213 = { "GG1321213", // class name
+ bases_GG1321213, 5,
+ &(vtc_GG1321213[0]), // expected_vtbl_contents
+ &(vtt_GG1321213[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1321213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1321213),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1321213),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names413,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1321223 : virtual EE132 , virtual FF122 {
+ int pg;
+ virtual void foo(); // _ZN9GG13212233fooEv
+ virtual void bar(); // _ZN9GG13212233barEv
+ ~GG1321223(); // tgen
+ GG1321223(); // tgen
+};
+//SIG(1 GG1321223) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1321223 ::foo(){vfunc_called(this, "_ZN9GG13212233fooEv");}
+void GG1321223 ::bar(){vfunc_called(this, "_ZN9GG13212233barEv");}
+GG1321223 ::~GG1321223(){ note_dtor("GG1321223", this);} // tgen
+GG1321223 ::GG1321223(){ note_ctor("GG1321223", this);} // tgen
+
+static void Test_GG1321223()
+{
+ extern Class_Descriptor cd_GG1321223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1321223, buf);
+ GG1321223 *dp, &lv = *(dp=new (buf) GG1321223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1321223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1321223)");
+ check_base_class_offset(lv, (AA1*)(EE132*), ABISELECT(32,16), "GG1321223");
+ check_base_class_offset(lv, (AA1*)(FF122*), ABISELECT(32,16), "GG1321223");
+ check_base_class_offset(lv, (BB3*)(EE132*), ABISELECT(48,24), "GG1321223");
+ check_base_class_offset(lv, (EE132*), ABISELECT(16,8), "GG1321223");
+ check_base_class_offset(lv, (BB2*)(FF122*), ABISELECT(80,40), "GG1321223");
+ check_base_class_offset(lv, (FF122*), ABISELECT(64,32), "GG1321223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1321223.pg");
+ test_class_info(&lv, &cd_GG1321223);
+ dp->~GG1321223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1321223(Test_GG1321223, "GG1321223", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1321223C1Ev();
+extern void _ZN9GG1321223D1Ev();
+Name_Map name_map_GG1321223[] = {
+ NSPAIR(_ZN9GG1321223C1Ev),
+ NSPAIR(_ZN9GG1321223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE132;
+extern VTBL_ENTRY _ZTI5EE132[];
+extern VTBL_ENTRY _ZTV5EE132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE132[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF122;
+extern VTBL_ENTRY _ZTI5FF122[];
+extern VTBL_ENTRY _ZTV5FF122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF122[];
+static Base_Class bases_GG1321223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE132, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF122, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1321223[];
+extern void _ZN9GG13212233fooEv();
+extern void _ZN9GG13212233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13212233barEv,_ZTv0_n20_N9GG13212233barEv)();
+extern void ABISELECT(_ZThn16_N9GG13212233barEv,_ZThn8_N9GG13212233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13212233fooEv,_ZTv0_n12_N9GG13212233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13212233fooEv,_ZThn16_N9GG13212233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13212233fooEv,_ZTv0_n12_N9GG13212233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13212233fooEv,_ZThn24_N9GG13212233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13212233barEv,_ZTv0_n16_N9GG13212233barEv)();
+extern void ABISELECT(_ZThn48_N9GG13212233barEv,_ZThn24_N9GG13212233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13212233barEv,_ZTv0_n20_N9GG13212233barEv)();
+extern void ABISELECT(_ZThn64_N9GG13212233barEv,_ZThn32_N9GG13212233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13212233barEv,_ZTv0_n12_N9GG13212233barEv)();
+extern void ABISELECT(_ZThn80_N9GG13212233barEv,_ZThn40_N9GG13212233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1321223[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1321223[0]),
+ (VTBL_ENTRY)&_ZN9GG13212233fooEv,
+ (VTBL_ENTRY)&_ZN9GG13212233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1321223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13212233barEv,_ZTv0_n20_N9GG13212233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1321223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13212233fooEv,_ZTv0_n12_N9GG13212233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1321223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13212233fooEv,_ZTv0_n12_N9GG13212233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13212233barEv,_ZTv0_n16_N9GG13212233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1321223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13212233barEv,_ZTv0_n20_N9GG13212233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1321223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13212233barEv,_ZTv0_n12_N9GG13212233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1321223[];
+extern void _ZN5EE1323barEv();
+static VTBL_ENTRY _tg__ZTV5EE132__9GG1321223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN5EE1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE132__9GG1321223[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv)();
+extern void ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE132__9GG1321223[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv),
+};
+extern void _ZN5FF1223barEv();
+static VTBL_ENTRY _tg__ZTV5FF122__9GG1321223[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN5FF1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF122__9GG1321223[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv)();
+extern void ABISELECT(_ZThn16_N5FF1223barEv,_ZThn8_N5FF1223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF122__9GG1321223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv),
+};
+static VTT_ENTRY vtt_GG1321223[] = {
+ {&(_ZTV9GG1321223[7]), 7,35},
+ {&(_ZTV9GG1321223[14]), 14,35},
+ {&(_ZTV9GG1321223[18]), 18,35},
+ {&(_ZTV9GG1321223[23]), 23,35},
+ {&(_ZTV9GG1321223[30]), 30,35},
+ {&(_ZTV9GG1321223[34]), 34,35},
+ {&(_tg__ZTV5EE132__9GG1321223[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE132__9GG1321223[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE132__9GG1321223[4]), 4,6},
+ {&(_tg__ZTV5FF122__9GG1321223[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF122__9GG1321223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF122__9GG1321223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1321223[];
+extern VTBL_ENTRY _ZTV9GG1321223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1321223[];
+static VTBL_ENTRY alt_thunk_names414[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1223barEv,_ZThn8_N5FF1223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13212233barEv,_ZTv0_n12_N9GG13212233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13212233barEv,_ZThn40_N9GG13212233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13212233barEv,_ZTv0_n16_N9GG13212233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13212233barEv,_ZThn24_N9GG13212233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13212233fooEv,_ZTv0_n12_N9GG13212233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13212233fooEv,_ZThn24_N9GG13212233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13212233fooEv,_ZThn16_N9GG13212233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13212233barEv,_ZTv0_n20_N9GG13212233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13212233barEv,_ZThn32_N9GG13212233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13212233barEv,_ZThn8_N9GG13212233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1321223 = { "GG1321223", // class name
+ bases_GG1321223, 5,
+ &(vtc_GG1321223[0]), // expected_vtbl_contents
+ &(vtt_GG1321223[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1321223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1321223),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1321223),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names414,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1321233 : virtual EE132 , virtual FF123 {
+ int pg;
+ virtual void foo(); // _ZN9GG13212333fooEv
+ virtual void bar(); // _ZN9GG13212333barEv
+ ~GG1321233(); // tgen
+ GG1321233(); // tgen
+};
+//SIG(1 GG1321233) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1321233 ::foo(){vfunc_called(this, "_ZN9GG13212333fooEv");}
+void GG1321233 ::bar(){vfunc_called(this, "_ZN9GG13212333barEv");}
+GG1321233 ::~GG1321233(){ note_dtor("GG1321233", this);} // tgen
+GG1321233 ::GG1321233(){ note_ctor("GG1321233", this);} // tgen
+
+static void Test_GG1321233()
+{
+ extern Class_Descriptor cd_GG1321233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1321233, buf);
+ GG1321233 *dp, &lv = *(dp=new (buf) GG1321233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1321233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1321233)");
+ check_base_class_offset(lv, (AA1*)(EE132*), ABISELECT(32,16), "GG1321233");
+ check_base_class_offset(lv, (AA1*)(FF123*), ABISELECT(32,16), "GG1321233");
+ check_base_class_offset(lv, (BB3*)(EE132*), ABISELECT(48,24), "GG1321233");
+ check_base_class_offset(lv, (EE132*), ABISELECT(16,8), "GG1321233");
+ check_base_class_offset(lv, (BB2*)(FF123*), ABISELECT(80,40), "GG1321233");
+ check_base_class_offset(lv, (FF123*), ABISELECT(64,32), "GG1321233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1321233.pg");
+ test_class_info(&lv, &cd_GG1321233);
+ dp->~GG1321233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1321233(Test_GG1321233, "GG1321233", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1321233C1Ev();
+extern void _ZN9GG1321233D1Ev();
+Name_Map name_map_GG1321233[] = {
+ NSPAIR(_ZN9GG1321233C1Ev),
+ NSPAIR(_ZN9GG1321233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE132;
+extern VTBL_ENTRY _ZTI5EE132[];
+extern VTBL_ENTRY _ZTV5EE132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE132[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF123;
+extern VTBL_ENTRY _ZTI5FF123[];
+extern VTBL_ENTRY _ZTV5FF123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF123[];
+static Base_Class bases_GG1321233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE132, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF123, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1321233[];
+extern void _ZN9GG13212333fooEv();
+extern void _ZN9GG13212333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13212333barEv,_ZTv0_n20_N9GG13212333barEv)();
+extern void ABISELECT(_ZThn16_N9GG13212333barEv,_ZThn8_N9GG13212333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13212333fooEv,_ZTv0_n12_N9GG13212333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13212333fooEv,_ZThn16_N9GG13212333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13212333fooEv,_ZTv0_n12_N9GG13212333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13212333fooEv,_ZThn24_N9GG13212333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13212333barEv,_ZTv0_n16_N9GG13212333barEv)();
+extern void ABISELECT(_ZThn48_N9GG13212333barEv,_ZThn24_N9GG13212333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13212333fooEv,_ZTv0_n20_N9GG13212333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13212333fooEv,_ZThn32_N9GG13212333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13212333barEv,_ZTv0_n24_N9GG13212333barEv)();
+extern void ABISELECT(_ZThn64_N9GG13212333barEv,_ZThn32_N9GG13212333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13212333barEv,_ZTv0_n12_N9GG13212333barEv)();
+extern void ABISELECT(_ZThn80_N9GG13212333barEv,_ZThn40_N9GG13212333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1321233[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1321233[0]),
+ (VTBL_ENTRY)&_ZN9GG13212333fooEv,
+ (VTBL_ENTRY)&_ZN9GG13212333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1321233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13212333barEv,_ZTv0_n20_N9GG13212333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1321233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13212333fooEv,_ZTv0_n12_N9GG13212333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1321233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13212333fooEv,_ZTv0_n12_N9GG13212333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13212333barEv,_ZTv0_n16_N9GG13212333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1321233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13212333fooEv,_ZTv0_n20_N9GG13212333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13212333barEv,_ZTv0_n24_N9GG13212333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1321233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13212333barEv,_ZTv0_n12_N9GG13212333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1321233[];
+extern void _ZN5EE1323barEv();
+static VTBL_ENTRY _tg__ZTV5EE132__9GG1321233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN5EE1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE132__9GG1321233[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv)();
+extern void ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE132__9GG1321233[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv),
+};
+extern void _ZN5FF1233fooEv();
+extern void _ZN5FF1233barEv();
+static VTBL_ENTRY _tg__ZTV5FF123__9GG1321233[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&_ZN5FF1233fooEv,
+ (VTBL_ENTRY)&_ZN5FF1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF123__9GG1321233[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv)();
+extern void ABISELECT(_ZThn16_N5FF1233barEv,_ZThn8_N5FF1233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF123__9GG1321233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv),
+};
+static VTT_ENTRY vtt_GG1321233[] = {
+ {&(_ZTV9GG1321233[7]), 7,37},
+ {&(_ZTV9GG1321233[14]), 14,37},
+ {&(_ZTV9GG1321233[18]), 18,37},
+ {&(_ZTV9GG1321233[23]), 23,37},
+ {&(_ZTV9GG1321233[31]), 31,37},
+ {&(_ZTV9GG1321233[36]), 36,37},
+ {&(_tg__ZTV5EE132__9GG1321233[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE132__9GG1321233[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE132__9GG1321233[4]), 4,6},
+ {&(_tg__ZTV5FF123__9GG1321233[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF123__9GG1321233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF123__9GG1321233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1321233[];
+extern VTBL_ENTRY _ZTV9GG1321233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1321233[];
+static VTBL_ENTRY alt_thunk_names415[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1233barEv,_ZThn8_N5FF1233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13212333barEv,_ZTv0_n12_N9GG13212333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13212333barEv,_ZThn40_N9GG13212333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG13212333barEv,_ZTv0_n24_N9GG13212333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13212333barEv,_ZThn32_N9GG13212333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13212333fooEv,_ZTv0_n20_N9GG13212333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13212333fooEv,_ZThn32_N9GG13212333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13212333barEv,_ZTv0_n16_N9GG13212333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13212333barEv,_ZThn24_N9GG13212333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13212333fooEv,_ZTv0_n12_N9GG13212333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13212333fooEv,_ZThn24_N9GG13212333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13212333fooEv,_ZThn16_N9GG13212333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13212333barEv,_ZTv0_n20_N9GG13212333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13212333barEv,_ZThn8_N9GG13212333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1321233 = { "GG1321233", // class name
+ bases_GG1321233, 5,
+ &(vtc_GG1321233[0]), // expected_vtbl_contents
+ &(vtt_GG1321233[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1321233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1321233),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1321233),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names415,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1321313 : virtual EE132 , virtual FF131 {
+ int pg;
+ virtual void foo(); // _ZN9GG13213133fooEv
+ virtual void bar(); // _ZN9GG13213133barEv
+ ~GG1321313(); // tgen
+ GG1321313(); // tgen
+};
+//SIG(1 GG1321313) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC3 VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG1321313 ::foo(){vfunc_called(this, "_ZN9GG13213133fooEv");}
+void GG1321313 ::bar(){vfunc_called(this, "_ZN9GG13213133barEv");}
+GG1321313 ::~GG1321313(){ note_dtor("GG1321313", this);} // tgen
+GG1321313 ::GG1321313(){ note_ctor("GG1321313", this);} // tgen
+
+static void Test_GG1321313()
+{
+ extern Class_Descriptor cd_GG1321313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG1321313, buf);
+ GG1321313 *dp, &lv = *(dp=new (buf) GG1321313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG1321313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1321313)");
+ check_base_class_offset(lv, (AA1*)(EE132*), ABISELECT(32,16), "GG1321313");
+ check_base_class_offset(lv, (AA1*)(FF131*), ABISELECT(32,16), "GG1321313");
+ check_base_class_offset(lv, (BB3*)(EE132*), ABISELECT(48,24), "GG1321313");
+ check_base_class_offset(lv, (BB3*)(FF131*), ABISELECT(48,24), "GG1321313");
+ check_base_class_offset(lv, (EE132*), ABISELECT(16,8), "GG1321313");
+ check_base_class_offset(lv, (FF131*), ABISELECT(64,32), "GG1321313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1321313.pg");
+ test_class_info(&lv, &cd_GG1321313);
+ dp->~GG1321313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1321313(Test_GG1321313, "GG1321313", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG1321313C1Ev();
+extern void _ZN9GG1321313D1Ev();
+Name_Map name_map_GG1321313[] = {
+ NSPAIR(_ZN9GG1321313C1Ev),
+ NSPAIR(_ZN9GG1321313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE132;
+extern VTBL_ENTRY _ZTI5EE132[];
+extern VTBL_ENTRY _ZTV5EE132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE132[];
+extern Class_Descriptor cd_FF131;
+extern VTBL_ENTRY _ZTI5FF131[];
+extern VTBL_ENTRY _ZTV5FF131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF131[];
+static Base_Class bases_GG1321313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE132, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF131, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1321313[];
+extern void _ZN9GG13213133fooEv();
+extern void _ZN9GG13213133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13213133barEv,_ZTv0_n20_N9GG13213133barEv)();
+extern void ABISELECT(_ZThn16_N9GG13213133barEv,_ZThn8_N9GG13213133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13213133fooEv,_ZTv0_n12_N9GG13213133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13213133fooEv,_ZThn16_N9GG13213133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13213133fooEv,_ZTv0_n12_N9GG13213133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13213133fooEv,_ZThn24_N9GG13213133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13213133barEv,_ZTv0_n16_N9GG13213133barEv)();
+extern void ABISELECT(_ZThn48_N9GG13213133barEv,_ZThn24_N9GG13213133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13213133fooEv,_ZTv0_n20_N9GG13213133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13213133fooEv,_ZThn32_N9GG13213133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1321313[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1321313[0]),
+ (VTBL_ENTRY)&_ZN9GG13213133fooEv,
+ (VTBL_ENTRY)&_ZN9GG13213133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1321313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13213133barEv,_ZTv0_n20_N9GG13213133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1321313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13213133fooEv,_ZTv0_n12_N9GG13213133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1321313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13213133fooEv,_ZTv0_n12_N9GG13213133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13213133barEv,_ZTv0_n16_N9GG13213133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1321313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13213133fooEv,_ZTv0_n20_N9GG13213133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1321313[];
+extern void _ZN5EE1323barEv();
+static VTBL_ENTRY _tg__ZTV5EE132__9GG1321313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN5EE1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE132__9GG1321313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv)();
+extern void ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE132__9GG1321313[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv),
+};
+extern void _ZN5FF1313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF131__9GG1321313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&_ZN5FF1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF131__9GG1321313[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF131__9GG1321313[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG1321313[] = {
+ {&(_ZTV9GG1321313[6]), 6,30},
+ {&(_ZTV9GG1321313[13]), 13,30},
+ {&(_ZTV9GG1321313[17]), 17,30},
+ {&(_ZTV9GG1321313[22]), 22,30},
+ {&(_ZTV9GG1321313[29]), 29,30},
+ {&(_tg__ZTV5EE132__9GG1321313[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE132__9GG1321313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE132__9GG1321313[4]), 4,6},
+ {&(_tg__ZTV5FF131__9GG1321313[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF131__9GG1321313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF131__9GG1321313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1321313[];
+extern VTBL_ENTRY _ZTV9GG1321313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1321313[];
+static VTBL_ENTRY alt_thunk_names416[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13213133fooEv,_ZTv0_n20_N9GG13213133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13213133fooEv,_ZThn32_N9GG13213133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13213133barEv,_ZTv0_n16_N9GG13213133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13213133barEv,_ZThn24_N9GG13213133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13213133fooEv,_ZTv0_n12_N9GG13213133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13213133fooEv,_ZThn24_N9GG13213133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13213133fooEv,_ZThn16_N9GG13213133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13213133barEv,_ZTv0_n20_N9GG13213133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13213133barEv,_ZThn8_N9GG13213133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1321313 = { "GG1321313", // class name
+ bases_GG1321313, 4,
+ &(vtc_GG1321313[0]), // expected_vtbl_contents
+ &(vtt_GG1321313[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG1321313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1321313),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1321313),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names416,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1321323 : virtual EE132 , virtual FF132 {
+ int pg;
+ virtual void foo(); // _ZN9GG13213233fooEv
+ virtual void bar(); // _ZN9GG13213233barEv
+ ~GG1321323(); // tgen
+ GG1321323(); // tgen
+};
+//SIG(1 GG1321323) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC3 VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG1321323 ::foo(){vfunc_called(this, "_ZN9GG13213233fooEv");}
+void GG1321323 ::bar(){vfunc_called(this, "_ZN9GG13213233barEv");}
+GG1321323 ::~GG1321323(){ note_dtor("GG1321323", this);} // tgen
+GG1321323 ::GG1321323(){ note_ctor("GG1321323", this);} // tgen
+
+static void Test_GG1321323()
+{
+ extern Class_Descriptor cd_GG1321323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG1321323, buf);
+ GG1321323 *dp, &lv = *(dp=new (buf) GG1321323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG1321323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1321323)");
+ check_base_class_offset(lv, (AA1*)(EE132*), ABISELECT(32,16), "GG1321323");
+ check_base_class_offset(lv, (AA1*)(FF132*), ABISELECT(32,16), "GG1321323");
+ check_base_class_offset(lv, (BB3*)(EE132*), ABISELECT(48,24), "GG1321323");
+ check_base_class_offset(lv, (BB3*)(FF132*), ABISELECT(48,24), "GG1321323");
+ check_base_class_offset(lv, (EE132*), ABISELECT(16,8), "GG1321323");
+ check_base_class_offset(lv, (FF132*), ABISELECT(64,32), "GG1321323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1321323.pg");
+ test_class_info(&lv, &cd_GG1321323);
+ dp->~GG1321323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1321323(Test_GG1321323, "GG1321323", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG1321323C1Ev();
+extern void _ZN9GG1321323D1Ev();
+Name_Map name_map_GG1321323[] = {
+ NSPAIR(_ZN9GG1321323C1Ev),
+ NSPAIR(_ZN9GG1321323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE132;
+extern VTBL_ENTRY _ZTI5EE132[];
+extern VTBL_ENTRY _ZTV5EE132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE132[];
+extern Class_Descriptor cd_FF132;
+extern VTBL_ENTRY _ZTI5FF132[];
+extern VTBL_ENTRY _ZTV5FF132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF132[];
+static Base_Class bases_GG1321323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE132, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF132, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1321323[];
+extern void _ZN9GG13213233fooEv();
+extern void _ZN9GG13213233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13213233barEv,_ZTv0_n20_N9GG13213233barEv)();
+extern void ABISELECT(_ZThn16_N9GG13213233barEv,_ZThn8_N9GG13213233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13213233fooEv,_ZTv0_n12_N9GG13213233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13213233fooEv,_ZThn16_N9GG13213233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13213233fooEv,_ZTv0_n12_N9GG13213233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13213233fooEv,_ZThn24_N9GG13213233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13213233barEv,_ZTv0_n16_N9GG13213233barEv)();
+extern void ABISELECT(_ZThn48_N9GG13213233barEv,_ZThn24_N9GG13213233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13213233barEv,_ZTv0_n20_N9GG13213233barEv)();
+extern void ABISELECT(_ZThn64_N9GG13213233barEv,_ZThn32_N9GG13213233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1321323[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1321323[0]),
+ (VTBL_ENTRY)&_ZN9GG13213233fooEv,
+ (VTBL_ENTRY)&_ZN9GG13213233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1321323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13213233barEv,_ZTv0_n20_N9GG13213233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1321323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13213233fooEv,_ZTv0_n12_N9GG13213233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1321323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13213233fooEv,_ZTv0_n12_N9GG13213233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13213233barEv,_ZTv0_n16_N9GG13213233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1321323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13213233barEv,_ZTv0_n20_N9GG13213233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1321323[];
+extern void _ZN5EE1323barEv();
+static VTBL_ENTRY _tg__ZTV5EE132__9GG1321323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN5EE1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE132__9GG1321323[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv)();
+extern void ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE132__9GG1321323[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv),
+};
+extern void _ZN5FF1323barEv();
+static VTBL_ENTRY _tg__ZTV5FF132__9GG1321323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN5FF1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF132__9GG1321323[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF132__9GG1321323[] = {
+ ABISELECT(16,8),
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv),
+};
+static VTT_ENTRY vtt_GG1321323[] = {
+ {&(_ZTV9GG1321323[6]), 6,30},
+ {&(_ZTV9GG1321323[13]), 13,30},
+ {&(_ZTV9GG1321323[17]), 17,30},
+ {&(_ZTV9GG1321323[22]), 22,30},
+ {&(_ZTV9GG1321323[29]), 29,30},
+ {&(_tg__ZTV5EE132__9GG1321323[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE132__9GG1321323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE132__9GG1321323[4]), 4,6},
+ {&(_tg__ZTV5FF132__9GG1321323[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF132__9GG1321323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF132__9GG1321323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1321323[];
+extern VTBL_ENTRY _ZTV9GG1321323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1321323[];
+static VTBL_ENTRY alt_thunk_names417[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13213233barEv,_ZTv0_n16_N9GG13213233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13213233barEv,_ZThn24_N9GG13213233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13213233fooEv,_ZTv0_n12_N9GG13213233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13213233fooEv,_ZThn24_N9GG13213233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13213233fooEv,_ZThn16_N9GG13213233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13213233barEv,_ZTv0_n20_N9GG13213233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13213233barEv,_ZThn32_N9GG13213233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13213233barEv,_ZThn8_N9GG13213233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1321323 = { "GG1321323", // class name
+ bases_GG1321323, 4,
+ &(vtc_GG1321323[0]), // expected_vtbl_contents
+ &(vtt_GG1321323[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG1321323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1321323),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1321323),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names417,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1321333 : virtual EE132 , virtual FF133 {
+ int pg;
+ virtual void foo(); // _ZN9GG13213333fooEv
+ virtual void bar(); // _ZN9GG13213333barEv
+ ~GG1321333(); // tgen
+ GG1321333(); // tgen
+};
+//SIG(1 GG1321333) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC3 VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1321333 ::foo(){vfunc_called(this, "_ZN9GG13213333fooEv");}
+void GG1321333 ::bar(){vfunc_called(this, "_ZN9GG13213333barEv");}
+GG1321333 ::~GG1321333(){ note_dtor("GG1321333", this);} // tgen
+GG1321333 ::GG1321333(){ note_ctor("GG1321333", this);} // tgen
+
+static void Test_GG1321333()
+{
+ extern Class_Descriptor cd_GG1321333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG1321333, buf);
+ GG1321333 *dp, &lv = *(dp=new (buf) GG1321333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG1321333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1321333)");
+ check_base_class_offset(lv, (AA1*)(EE132*), ABISELECT(32,16), "GG1321333");
+ check_base_class_offset(lv, (AA1*)(FF133*), ABISELECT(32,16), "GG1321333");
+ check_base_class_offset(lv, (BB3*)(EE132*), ABISELECT(48,24), "GG1321333");
+ check_base_class_offset(lv, (BB3*)(FF133*), ABISELECT(48,24), "GG1321333");
+ check_base_class_offset(lv, (EE132*), ABISELECT(16,8), "GG1321333");
+ check_base_class_offset(lv, (FF133*), ABISELECT(64,32), "GG1321333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1321333.pg");
+ test_class_info(&lv, &cd_GG1321333);
+ dp->~GG1321333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1321333(Test_GG1321333, "GG1321333", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG1321333C1Ev();
+extern void _ZN9GG1321333D1Ev();
+Name_Map name_map_GG1321333[] = {
+ NSPAIR(_ZN9GG1321333C1Ev),
+ NSPAIR(_ZN9GG1321333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE132;
+extern VTBL_ENTRY _ZTI5EE132[];
+extern VTBL_ENTRY _ZTV5EE132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE132[];
+extern Class_Descriptor cd_FF133;
+extern VTBL_ENTRY _ZTI5FF133[];
+extern VTBL_ENTRY _ZTV5FF133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF133[];
+static Base_Class bases_GG1321333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE132, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF133, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1321333[];
+extern void _ZN9GG13213333fooEv();
+extern void _ZN9GG13213333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13213333barEv,_ZTv0_n20_N9GG13213333barEv)();
+extern void ABISELECT(_ZThn16_N9GG13213333barEv,_ZThn8_N9GG13213333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13213333fooEv,_ZTv0_n12_N9GG13213333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13213333fooEv,_ZThn16_N9GG13213333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13213333fooEv,_ZTv0_n12_N9GG13213333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13213333fooEv,_ZThn24_N9GG13213333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13213333barEv,_ZTv0_n16_N9GG13213333barEv)();
+extern void ABISELECT(_ZThn48_N9GG13213333barEv,_ZThn24_N9GG13213333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13213333fooEv,_ZTv0_n20_N9GG13213333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13213333fooEv,_ZThn32_N9GG13213333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13213333barEv,_ZTv0_n24_N9GG13213333barEv)();
+extern void ABISELECT(_ZThn64_N9GG13213333barEv,_ZThn32_N9GG13213333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1321333[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1321333[0]),
+ (VTBL_ENTRY)&_ZN9GG13213333fooEv,
+ (VTBL_ENTRY)&_ZN9GG13213333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1321333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13213333barEv,_ZTv0_n20_N9GG13213333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1321333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13213333fooEv,_ZTv0_n12_N9GG13213333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1321333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13213333fooEv,_ZTv0_n12_N9GG13213333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13213333barEv,_ZTv0_n16_N9GG13213333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1321333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13213333fooEv,_ZTv0_n20_N9GG13213333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13213333barEv,_ZTv0_n24_N9GG13213333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1321333[];
+extern void _ZN5EE1323barEv();
+static VTBL_ENTRY _tg__ZTV5EE132__9GG1321333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN5EE1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE132__9GG1321333[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv)();
+extern void ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE132__9GG1321333[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv),
+};
+extern void _ZN5FF1333fooEv();
+extern void _ZN5FF1333barEv();
+static VTBL_ENTRY _tg__ZTV5FF133__9GG1321333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&_ZN5FF1333fooEv,
+ (VTBL_ENTRY)&_ZN5FF1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF133__9GG1321333[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF133__9GG1321333[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv),
+};
+static VTT_ENTRY vtt_GG1321333[] = {
+ {&(_ZTV9GG1321333[6]), 6,32},
+ {&(_ZTV9GG1321333[13]), 13,32},
+ {&(_ZTV9GG1321333[17]), 17,32},
+ {&(_ZTV9GG1321333[22]), 22,32},
+ {&(_ZTV9GG1321333[30]), 30,32},
+ {&(_tg__ZTV5EE132__9GG1321333[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE132__9GG1321333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE132__9GG1321333[4]), 4,6},
+ {&(_tg__ZTV5FF133__9GG1321333[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF133__9GG1321333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF133__9GG1321333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1321333[];
+extern VTBL_ENTRY _ZTV9GG1321333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1321333[];
+static VTBL_ENTRY alt_thunk_names418[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG13213333barEv,_ZTv0_n24_N9GG13213333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13213333barEv,_ZThn32_N9GG13213333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13213333fooEv,_ZTv0_n20_N9GG13213333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13213333fooEv,_ZThn32_N9GG13213333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13213333barEv,_ZTv0_n16_N9GG13213333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13213333barEv,_ZThn24_N9GG13213333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13213333fooEv,_ZTv0_n12_N9GG13213333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13213333fooEv,_ZThn24_N9GG13213333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13213333fooEv,_ZThn16_N9GG13213333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13213333barEv,_ZTv0_n20_N9GG13213333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13213333barEv,_ZThn8_N9GG13213333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1321333 = { "GG1321333", // class name
+ bases_GG1321333, 4,
+ &(vtc_GG1321333[0]), // expected_vtbl_contents
+ &(vtt_GG1321333[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG1321333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1321333),32, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1321333),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names418,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1322113 : virtual EE132 , virtual FF211 {
+ int pg;
+ virtual void foo(); // _ZN9GG13221133fooEv
+ virtual void bar(); // _ZN9GG13221133barEv
+ ~GG1322113(); // tgen
+ GG1322113(); // tgen
+};
+//SIG(1 GG1322113) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1322113 ::foo(){vfunc_called(this, "_ZN9GG13221133fooEv");}
+void GG1322113 ::bar(){vfunc_called(this, "_ZN9GG13221133barEv");}
+GG1322113 ::~GG1322113(){ note_dtor("GG1322113", this);} // tgen
+GG1322113 ::GG1322113(){ note_ctor("GG1322113", this);} // tgen
+
+static void Test_GG1322113()
+{
+ extern Class_Descriptor cd_GG1322113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1322113, buf);
+ GG1322113 *dp, &lv = *(dp=new (buf) GG1322113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1322113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1322113)");
+ check_base_class_offset(lv, (AA1*)(EE132*), ABISELECT(32,16), "GG1322113");
+ check_base_class_offset(lv, (BB3*)(EE132*), ABISELECT(48,24), "GG1322113");
+ check_base_class_offset(lv, (EE132*), ABISELECT(16,8), "GG1322113");
+ check_base_class_offset(lv, (AA2*)(FF211*), ABISELECT(80,40), "GG1322113");
+ check_base_class_offset(lv, (BB1*)(FF211*), ABISELECT(96,48), "GG1322113");
+ check_base_class_offset(lv, (FF211*), ABISELECT(64,32), "GG1322113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1322113.pg");
+ test_class_info(&lv, &cd_GG1322113);
+ dp->~GG1322113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1322113(Test_GG1322113, "GG1322113", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1322113C1Ev();
+extern void _ZN9GG1322113D1Ev();
+Name_Map name_map_GG1322113[] = {
+ NSPAIR(_ZN9GG1322113C1Ev),
+ NSPAIR(_ZN9GG1322113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE132;
+extern VTBL_ENTRY _ZTI5EE132[];
+extern VTBL_ENTRY _ZTV5EE132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE132[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF211;
+extern VTBL_ENTRY _ZTI5FF211[];
+extern VTBL_ENTRY _ZTV5FF211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF211[];
+static Base_Class bases_GG1322113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE132, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF211, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1322113[];
+extern void _ZN9GG13221133fooEv();
+extern void _ZN9GG13221133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13221133barEv,_ZTv0_n20_N9GG13221133barEv)();
+extern void ABISELECT(_ZThn16_N9GG13221133barEv,_ZThn8_N9GG13221133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13221133fooEv,_ZTv0_n12_N9GG13221133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13221133fooEv,_ZThn16_N9GG13221133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13221133fooEv,_ZTv0_n12_N9GG13221133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13221133fooEv,_ZThn24_N9GG13221133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13221133barEv,_ZTv0_n16_N9GG13221133barEv)();
+extern void ABISELECT(_ZThn48_N9GG13221133barEv,_ZThn24_N9GG13221133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13221133fooEv,_ZTv0_n20_N9GG13221133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13221133fooEv,_ZThn32_N9GG13221133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13221133barEv,_ZTv0_n12_N9GG13221133barEv)();
+extern void ABISELECT(_ZThn80_N9GG13221133barEv,_ZThn40_N9GG13221133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13221133fooEv,_ZTv0_n12_N9GG13221133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG13221133fooEv,_ZThn48_N9GG13221133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1322113[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1322113[0]),
+ (VTBL_ENTRY)&_ZN9GG13221133fooEv,
+ (VTBL_ENTRY)&_ZN9GG13221133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1322113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13221133barEv,_ZTv0_n20_N9GG13221133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1322113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13221133fooEv,_ZTv0_n12_N9GG13221133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1322113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13221133fooEv,_ZTv0_n12_N9GG13221133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13221133barEv,_ZTv0_n16_N9GG13221133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1322113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13221133fooEv,_ZTv0_n20_N9GG13221133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1322113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13221133barEv,_ZTv0_n12_N9GG13221133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1322113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13221133fooEv,_ZTv0_n12_N9GG13221133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1322113[];
+extern void _ZN5EE1323barEv();
+static VTBL_ENTRY _tg__ZTV5EE132__9GG1322113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN5EE1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE132__9GG1322113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv)();
+extern void ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE132__9GG1322113[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv),
+};
+extern void _ZN5FF2113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF211__9GG1322113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN5FF2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF211__9GG1322113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2113fooEv,_ZThn16_N5FF2113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF211__9GG1322113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv),
+};
+static VTT_ENTRY vtt_GG1322113[] = {
+ {&(_ZTV9GG1322113[8]), 8,40},
+ {&(_ZTV9GG1322113[15]), 15,40},
+ {&(_ZTV9GG1322113[19]), 19,40},
+ {&(_ZTV9GG1322113[24]), 24,40},
+ {&(_ZTV9GG1322113[31]), 31,40},
+ {&(_ZTV9GG1322113[35]), 35,40},
+ {&(_ZTV9GG1322113[39]), 39,40},
+ {&(_tg__ZTV5EE132__9GG1322113[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE132__9GG1322113[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE132__9GG1322113[4]), 4,6},
+ {&(_tg__ZTV5FF211__9GG1322113[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF211__9GG1322113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF211__9GG1322113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1322113[];
+extern VTBL_ENTRY _ZTV9GG1322113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1322113[];
+static VTBL_ENTRY alt_thunk_names419[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2113fooEv,_ZThn16_N5FF2113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13221133barEv,_ZTv0_n12_N9GG13221133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13221133barEv,_ZThn40_N9GG13221133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13221133fooEv,_ZTv0_n20_N9GG13221133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13221133fooEv,_ZThn32_N9GG13221133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13221133barEv,_ZTv0_n16_N9GG13221133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13221133barEv,_ZThn24_N9GG13221133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13221133fooEv,_ZTv0_n12_N9GG13221133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG13221133fooEv,_ZThn48_N9GG13221133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13221133fooEv,_ZThn24_N9GG13221133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13221133fooEv,_ZThn16_N9GG13221133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13221133barEv,_ZTv0_n20_N9GG13221133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13221133barEv,_ZThn8_N9GG13221133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1322113 = { "GG1322113", // class name
+ bases_GG1322113, 6,
+ &(vtc_GG1322113[0]), // expected_vtbl_contents
+ &(vtt_GG1322113[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1322113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1322113),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1322113),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names419,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1322123 : virtual EE132 , virtual FF212 {
+ int pg;
+ virtual void foo(); // _ZN9GG13221233fooEv
+ virtual void bar(); // _ZN9GG13221233barEv
+ ~GG1322123(); // tgen
+ GG1322123(); // tgen
+};
+//SIG(1 GG1322123) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1322123 ::foo(){vfunc_called(this, "_ZN9GG13221233fooEv");}
+void GG1322123 ::bar(){vfunc_called(this, "_ZN9GG13221233barEv");}
+GG1322123 ::~GG1322123(){ note_dtor("GG1322123", this);} // tgen
+GG1322123 ::GG1322123(){ note_ctor("GG1322123", this);} // tgen
+
+static void Test_GG1322123()
+{
+ extern Class_Descriptor cd_GG1322123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1322123, buf);
+ GG1322123 *dp, &lv = *(dp=new (buf) GG1322123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1322123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1322123)");
+ check_base_class_offset(lv, (AA1*)(EE132*), ABISELECT(32,16), "GG1322123");
+ check_base_class_offset(lv, (BB3*)(EE132*), ABISELECT(48,24), "GG1322123");
+ check_base_class_offset(lv, (EE132*), ABISELECT(16,8), "GG1322123");
+ check_base_class_offset(lv, (AA2*)(FF212*), ABISELECT(80,40), "GG1322123");
+ check_base_class_offset(lv, (BB1*)(FF212*), ABISELECT(96,48), "GG1322123");
+ check_base_class_offset(lv, (FF212*), ABISELECT(64,32), "GG1322123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1322123.pg");
+ test_class_info(&lv, &cd_GG1322123);
+ dp->~GG1322123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1322123(Test_GG1322123, "GG1322123", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1322123C1Ev();
+extern void _ZN9GG1322123D1Ev();
+Name_Map name_map_GG1322123[] = {
+ NSPAIR(_ZN9GG1322123C1Ev),
+ NSPAIR(_ZN9GG1322123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE132;
+extern VTBL_ENTRY _ZTI5EE132[];
+extern VTBL_ENTRY _ZTV5EE132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE132[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF212;
+extern VTBL_ENTRY _ZTI5FF212[];
+extern VTBL_ENTRY _ZTV5FF212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF212[];
+static Base_Class bases_GG1322123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE132, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF212, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1322123[];
+extern void _ZN9GG13221233fooEv();
+extern void _ZN9GG13221233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13221233barEv,_ZTv0_n20_N9GG13221233barEv)();
+extern void ABISELECT(_ZThn16_N9GG13221233barEv,_ZThn8_N9GG13221233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13221233fooEv,_ZTv0_n12_N9GG13221233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13221233fooEv,_ZThn16_N9GG13221233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13221233fooEv,_ZTv0_n12_N9GG13221233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13221233fooEv,_ZThn24_N9GG13221233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13221233barEv,_ZTv0_n16_N9GG13221233barEv)();
+extern void ABISELECT(_ZThn48_N9GG13221233barEv,_ZThn24_N9GG13221233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13221233barEv,_ZTv0_n20_N9GG13221233barEv)();
+extern void ABISELECT(_ZThn64_N9GG13221233barEv,_ZThn32_N9GG13221233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13221233barEv,_ZTv0_n12_N9GG13221233barEv)();
+extern void ABISELECT(_ZThn80_N9GG13221233barEv,_ZThn40_N9GG13221233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13221233fooEv,_ZTv0_n12_N9GG13221233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG13221233fooEv,_ZThn48_N9GG13221233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1322123[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1322123[0]),
+ (VTBL_ENTRY)&_ZN9GG13221233fooEv,
+ (VTBL_ENTRY)&_ZN9GG13221233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1322123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13221233barEv,_ZTv0_n20_N9GG13221233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1322123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13221233fooEv,_ZTv0_n12_N9GG13221233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1322123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13221233fooEv,_ZTv0_n12_N9GG13221233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13221233barEv,_ZTv0_n16_N9GG13221233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1322123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13221233barEv,_ZTv0_n20_N9GG13221233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1322123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13221233barEv,_ZTv0_n12_N9GG13221233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1322123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13221233fooEv,_ZTv0_n12_N9GG13221233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1322123[];
+extern void _ZN5EE1323barEv();
+static VTBL_ENTRY _tg__ZTV5EE132__9GG1322123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN5EE1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE132__9GG1322123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv)();
+extern void ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE132__9GG1322123[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv),
+};
+extern void _ZN5FF2123barEv();
+static VTBL_ENTRY _tg__ZTV5FF212__9GG1322123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN5FF2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv)();
+extern void ABISELECT(_ZThn16_N5FF2123barEv,_ZThn8_N5FF2123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF212__9GG1322123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF212__9GG1322123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG1322123[] = {
+ {&(_ZTV9GG1322123[8]), 8,40},
+ {&(_ZTV9GG1322123[15]), 15,40},
+ {&(_ZTV9GG1322123[19]), 19,40},
+ {&(_ZTV9GG1322123[24]), 24,40},
+ {&(_ZTV9GG1322123[31]), 31,40},
+ {&(_ZTV9GG1322123[35]), 35,40},
+ {&(_ZTV9GG1322123[39]), 39,40},
+ {&(_tg__ZTV5EE132__9GG1322123[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE132__9GG1322123[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE132__9GG1322123[4]), 4,6},
+ {&(_tg__ZTV5FF212__9GG1322123[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF212__9GG1322123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF212__9GG1322123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1322123[];
+extern VTBL_ENTRY _ZTV9GG1322123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1322123[];
+static VTBL_ENTRY alt_thunk_names420[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2123barEv,_ZThn8_N5FF2123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13221233barEv,_ZTv0_n12_N9GG13221233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13221233barEv,_ZThn40_N9GG13221233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13221233barEv,_ZTv0_n16_N9GG13221233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13221233barEv,_ZThn24_N9GG13221233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13221233fooEv,_ZTv0_n12_N9GG13221233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG13221233fooEv,_ZThn48_N9GG13221233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13221233fooEv,_ZThn24_N9GG13221233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13221233fooEv,_ZThn16_N9GG13221233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13221233barEv,_ZTv0_n20_N9GG13221233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13221233barEv,_ZThn32_N9GG13221233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13221233barEv,_ZThn8_N9GG13221233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1322123 = { "GG1322123", // class name
+ bases_GG1322123, 6,
+ &(vtc_GG1322123[0]), // expected_vtbl_contents
+ &(vtt_GG1322123[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1322123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1322123),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1322123),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names420,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1322133 : virtual EE132 , virtual FF213 {
+ int pg;
+ virtual void foo(); // _ZN9GG13221333fooEv
+ virtual void bar(); // _ZN9GG13221333barEv
+ ~GG1322133(); // tgen
+ GG1322133(); // tgen
+};
+//SIG(1 GG1322133) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1322133 ::foo(){vfunc_called(this, "_ZN9GG13221333fooEv");}
+void GG1322133 ::bar(){vfunc_called(this, "_ZN9GG13221333barEv");}
+GG1322133 ::~GG1322133(){ note_dtor("GG1322133", this);} // tgen
+GG1322133 ::GG1322133(){ note_ctor("GG1322133", this);} // tgen
+
+static void Test_GG1322133()
+{
+ extern Class_Descriptor cd_GG1322133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1322133, buf);
+ GG1322133 *dp, &lv = *(dp=new (buf) GG1322133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1322133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1322133)");
+ check_base_class_offset(lv, (AA1*)(EE132*), ABISELECT(32,16), "GG1322133");
+ check_base_class_offset(lv, (BB3*)(EE132*), ABISELECT(48,24), "GG1322133");
+ check_base_class_offset(lv, (EE132*), ABISELECT(16,8), "GG1322133");
+ check_base_class_offset(lv, (AA2*)(FF213*), ABISELECT(80,40), "GG1322133");
+ check_base_class_offset(lv, (BB1*)(FF213*), ABISELECT(96,48), "GG1322133");
+ check_base_class_offset(lv, (FF213*), ABISELECT(64,32), "GG1322133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1322133.pg");
+ test_class_info(&lv, &cd_GG1322133);
+ dp->~GG1322133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1322133(Test_GG1322133, "GG1322133", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1322133C1Ev();
+extern void _ZN9GG1322133D1Ev();
+Name_Map name_map_GG1322133[] = {
+ NSPAIR(_ZN9GG1322133C1Ev),
+ NSPAIR(_ZN9GG1322133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE132;
+extern VTBL_ENTRY _ZTI5EE132[];
+extern VTBL_ENTRY _ZTV5EE132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE132[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF213;
+extern VTBL_ENTRY _ZTI5FF213[];
+extern VTBL_ENTRY _ZTV5FF213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF213[];
+static Base_Class bases_GG1322133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE132, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF213, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1322133[];
+extern void _ZN9GG13221333fooEv();
+extern void _ZN9GG13221333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13221333barEv,_ZTv0_n20_N9GG13221333barEv)();
+extern void ABISELECT(_ZThn16_N9GG13221333barEv,_ZThn8_N9GG13221333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13221333fooEv,_ZTv0_n12_N9GG13221333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13221333fooEv,_ZThn16_N9GG13221333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13221333fooEv,_ZTv0_n12_N9GG13221333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13221333fooEv,_ZThn24_N9GG13221333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13221333barEv,_ZTv0_n16_N9GG13221333barEv)();
+extern void ABISELECT(_ZThn48_N9GG13221333barEv,_ZThn24_N9GG13221333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13221333fooEv,_ZTv0_n20_N9GG13221333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13221333fooEv,_ZThn32_N9GG13221333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13221333barEv,_ZTv0_n24_N9GG13221333barEv)();
+extern void ABISELECT(_ZThn64_N9GG13221333barEv,_ZThn32_N9GG13221333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13221333barEv,_ZTv0_n12_N9GG13221333barEv)();
+extern void ABISELECT(_ZThn80_N9GG13221333barEv,_ZThn40_N9GG13221333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13221333fooEv,_ZTv0_n12_N9GG13221333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG13221333fooEv,_ZThn48_N9GG13221333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1322133[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1322133[0]),
+ (VTBL_ENTRY)&_ZN9GG13221333fooEv,
+ (VTBL_ENTRY)&_ZN9GG13221333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1322133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13221333barEv,_ZTv0_n20_N9GG13221333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1322133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13221333fooEv,_ZTv0_n12_N9GG13221333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1322133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13221333fooEv,_ZTv0_n12_N9GG13221333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13221333barEv,_ZTv0_n16_N9GG13221333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1322133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13221333fooEv,_ZTv0_n20_N9GG13221333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13221333barEv,_ZTv0_n24_N9GG13221333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1322133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13221333barEv,_ZTv0_n12_N9GG13221333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1322133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13221333fooEv,_ZTv0_n12_N9GG13221333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1322133[];
+extern void _ZN5EE1323barEv();
+static VTBL_ENTRY _tg__ZTV5EE132__9GG1322133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN5EE1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE132__9GG1322133[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv)();
+extern void ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE132__9GG1322133[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv),
+};
+extern void _ZN5FF2133fooEv();
+extern void _ZN5FF2133barEv();
+static VTBL_ENTRY _tg__ZTV5FF213__9GG1322133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&_ZN5FF2133fooEv,
+ (VTBL_ENTRY)&_ZN5FF2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv)();
+extern void ABISELECT(_ZThn16_N5FF2133barEv,_ZThn8_N5FF2133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF213__9GG1322133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2133fooEv,_ZThn16_N5FF2133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF213__9GG1322133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv),
+};
+static VTT_ENTRY vtt_GG1322133[] = {
+ {&(_ZTV9GG1322133[8]), 8,42},
+ {&(_ZTV9GG1322133[15]), 15,42},
+ {&(_ZTV9GG1322133[19]), 19,42},
+ {&(_ZTV9GG1322133[24]), 24,42},
+ {&(_ZTV9GG1322133[32]), 32,42},
+ {&(_ZTV9GG1322133[37]), 37,42},
+ {&(_ZTV9GG1322133[41]), 41,42},
+ {&(_tg__ZTV5EE132__9GG1322133[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE132__9GG1322133[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE132__9GG1322133[4]), 4,6},
+ {&(_tg__ZTV5FF213__9GG1322133[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF213__9GG1322133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF213__9GG1322133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1322133[];
+extern VTBL_ENTRY _ZTV9GG1322133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1322133[];
+static VTBL_ENTRY alt_thunk_names421[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2133fooEv,_ZThn16_N5FF2133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2133barEv,_ZThn8_N5FF2133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13221333barEv,_ZTv0_n12_N9GG13221333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13221333barEv,_ZThn40_N9GG13221333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG13221333barEv,_ZTv0_n24_N9GG13221333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13221333barEv,_ZThn32_N9GG13221333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13221333fooEv,_ZTv0_n20_N9GG13221333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13221333fooEv,_ZThn32_N9GG13221333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13221333barEv,_ZTv0_n16_N9GG13221333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13221333barEv,_ZThn24_N9GG13221333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13221333fooEv,_ZTv0_n12_N9GG13221333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG13221333fooEv,_ZThn48_N9GG13221333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13221333fooEv,_ZThn24_N9GG13221333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13221333fooEv,_ZThn16_N9GG13221333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13221333barEv,_ZTv0_n20_N9GG13221333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13221333barEv,_ZThn8_N9GG13221333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1322133 = { "GG1322133", // class name
+ bases_GG1322133, 6,
+ &(vtc_GG1322133[0]), // expected_vtbl_contents
+ &(vtt_GG1322133[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1322133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1322133),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1322133),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names421,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1322213 : virtual EE132 , virtual FF221 {
+ int pg;
+ virtual void foo(); // _ZN9GG13222133fooEv
+ virtual void bar(); // _ZN9GG13222133barEv
+ ~GG1322213(); // tgen
+ GG1322213(); // tgen
+};
+//SIG(1 GG1322213) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1322213 ::foo(){vfunc_called(this, "_ZN9GG13222133fooEv");}
+void GG1322213 ::bar(){vfunc_called(this, "_ZN9GG13222133barEv");}
+GG1322213 ::~GG1322213(){ note_dtor("GG1322213", this);} // tgen
+GG1322213 ::GG1322213(){ note_ctor("GG1322213", this);} // tgen
+
+static void Test_GG1322213()
+{
+ extern Class_Descriptor cd_GG1322213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1322213, buf);
+ GG1322213 *dp, &lv = *(dp=new (buf) GG1322213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1322213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1322213)");
+ check_base_class_offset(lv, (AA1*)(EE132*), ABISELECT(32,16), "GG1322213");
+ check_base_class_offset(lv, (BB3*)(EE132*), ABISELECT(48,24), "GG1322213");
+ check_base_class_offset(lv, (EE132*), ABISELECT(16,8), "GG1322213");
+ check_base_class_offset(lv, (AA2*)(FF221*), ABISELECT(80,40), "GG1322213");
+ check_base_class_offset(lv, (BB2*)(FF221*), ABISELECT(96,48), "GG1322213");
+ check_base_class_offset(lv, (FF221*), ABISELECT(64,32), "GG1322213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1322213.pg");
+ test_class_info(&lv, &cd_GG1322213);
+ dp->~GG1322213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1322213(Test_GG1322213, "GG1322213", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1322213C1Ev();
+extern void _ZN9GG1322213D1Ev();
+Name_Map name_map_GG1322213[] = {
+ NSPAIR(_ZN9GG1322213C1Ev),
+ NSPAIR(_ZN9GG1322213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE132;
+extern VTBL_ENTRY _ZTI5EE132[];
+extern VTBL_ENTRY _ZTV5EE132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE132[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF221;
+extern VTBL_ENTRY _ZTI5FF221[];
+extern VTBL_ENTRY _ZTV5FF221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF221[];
+static Base_Class bases_GG1322213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE132, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF221, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1322213[];
+extern void _ZN9GG13222133fooEv();
+extern void _ZN9GG13222133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13222133barEv,_ZTv0_n20_N9GG13222133barEv)();
+extern void ABISELECT(_ZThn16_N9GG13222133barEv,_ZThn8_N9GG13222133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13222133fooEv,_ZTv0_n12_N9GG13222133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13222133fooEv,_ZThn16_N9GG13222133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13222133fooEv,_ZTv0_n12_N9GG13222133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13222133fooEv,_ZThn24_N9GG13222133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13222133barEv,_ZTv0_n16_N9GG13222133barEv)();
+extern void ABISELECT(_ZThn48_N9GG13222133barEv,_ZThn24_N9GG13222133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13222133fooEv,_ZTv0_n20_N9GG13222133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13222133fooEv,_ZThn32_N9GG13222133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13222133barEv,_ZTv0_n12_N9GG13222133barEv)();
+extern void ABISELECT(_ZThn80_N9GG13222133barEv,_ZThn40_N9GG13222133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13222133barEv,_ZTv0_n12_N9GG13222133barEv)();
+extern void ABISELECT(_ZThn96_N9GG13222133barEv,_ZThn48_N9GG13222133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1322213[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1322213[0]),
+ (VTBL_ENTRY)&_ZN9GG13222133fooEv,
+ (VTBL_ENTRY)&_ZN9GG13222133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1322213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13222133barEv,_ZTv0_n20_N9GG13222133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1322213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13222133fooEv,_ZTv0_n12_N9GG13222133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1322213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13222133fooEv,_ZTv0_n12_N9GG13222133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13222133barEv,_ZTv0_n16_N9GG13222133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1322213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13222133fooEv,_ZTv0_n20_N9GG13222133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1322213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13222133barEv,_ZTv0_n12_N9GG13222133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1322213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13222133barEv,_ZTv0_n12_N9GG13222133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1322213[];
+extern void _ZN5EE1323barEv();
+static VTBL_ENTRY _tg__ZTV5EE132__9GG1322213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN5EE1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE132__9GG1322213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv)();
+extern void ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE132__9GG1322213[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv),
+};
+extern void _ZN5FF2213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF221__9GG1322213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN5FF2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF221__9GG1322213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF221__9GG1322213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG1322213[] = {
+ {&(_ZTV9GG1322213[8]), 8,40},
+ {&(_ZTV9GG1322213[15]), 15,40},
+ {&(_ZTV9GG1322213[19]), 19,40},
+ {&(_ZTV9GG1322213[24]), 24,40},
+ {&(_ZTV9GG1322213[31]), 31,40},
+ {&(_ZTV9GG1322213[35]), 35,40},
+ {&(_ZTV9GG1322213[39]), 39,40},
+ {&(_tg__ZTV5EE132__9GG1322213[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE132__9GG1322213[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE132__9GG1322213[4]), 4,6},
+ {&(_tg__ZTV5FF221__9GG1322213[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF221__9GG1322213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF221__9GG1322213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1322213[];
+extern VTBL_ENTRY _ZTV9GG1322213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1322213[];
+static VTBL_ENTRY alt_thunk_names422[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13222133barEv,_ZTv0_n12_N9GG13222133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG13222133barEv,_ZThn48_N9GG13222133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13222133barEv,_ZThn40_N9GG13222133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13222133fooEv,_ZTv0_n20_N9GG13222133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13222133fooEv,_ZThn32_N9GG13222133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13222133barEv,_ZTv0_n16_N9GG13222133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13222133barEv,_ZThn24_N9GG13222133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13222133fooEv,_ZTv0_n12_N9GG13222133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13222133fooEv,_ZThn24_N9GG13222133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13222133fooEv,_ZThn16_N9GG13222133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13222133barEv,_ZTv0_n20_N9GG13222133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13222133barEv,_ZThn8_N9GG13222133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1322213 = { "GG1322213", // class name
+ bases_GG1322213, 6,
+ &(vtc_GG1322213[0]), // expected_vtbl_contents
+ &(vtt_GG1322213[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1322213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1322213),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1322213),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names422,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1322222 : virtual EE132 , virtual FF222 {
+ int pg;
+ virtual void bar(); // _ZN9GG13222223barEv
+ ~GG1322222(); // tgen
+ GG1322222(); // tgen
+};
+//SIG(1 GG1322222) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v3 v1 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+void GG1322222 ::bar(){vfunc_called(this, "_ZN9GG13222223barEv");}
+GG1322222 ::~GG1322222(){ note_dtor("GG1322222", this);} // tgen
+GG1322222 ::GG1322222(){ note_ctor("GG1322222", this);} // tgen
+
+static void Test_GG1322222()
+{
+ extern Class_Descriptor cd_GG1322222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1322222, buf);
+ GG1322222 *dp, &lv = *(dp=new (buf) GG1322222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1322222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1322222)");
+ check_base_class_offset(lv, (AA1*)(EE132*), ABISELECT(32,16), "GG1322222");
+ check_base_class_offset(lv, (BB3*)(EE132*), ABISELECT(48,24), "GG1322222");
+ check_base_class_offset(lv, (EE132*), ABISELECT(16,8), "GG1322222");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(80,40), "GG1322222");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(96,48), "GG1322222");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG1322222");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1322222.pg");
+ test_class_info(&lv, &cd_GG1322222);
+ dp->~GG1322222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1322222(Test_GG1322222, "GG1322222", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1322222C1Ev();
+extern void _ZN9GG1322222D1Ev();
+Name_Map name_map_GG1322222[] = {
+ NSPAIR(_ZN9GG1322222C1Ev),
+ NSPAIR(_ZN9GG1322222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE132;
+extern VTBL_ENTRY _ZTI5EE132[];
+extern VTBL_ENTRY _ZTV5EE132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE132[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG1322222[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE132, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1322222[];
+extern void _ZN9GG13222223barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13222223barEv,_ZTv0_n20_N9GG13222223barEv)();
+extern void ABISELECT(_ZThn16_N9GG13222223barEv,_ZThn8_N9GG13222223barEv)() __attribute__((weak));
+extern void _ZN3AA13fooEv();
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N9GG13222223barEv,_ZTv0_n16_N9GG13222223barEv)();
+extern void ABISELECT(_ZThn48_N9GG13222223barEv,_ZThn24_N9GG13222223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13222223barEv,_ZTv0_n20_N9GG13222223barEv)();
+extern void ABISELECT(_ZThn64_N9GG13222223barEv,_ZThn32_N9GG13222223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13222223barEv,_ZTv0_n12_N9GG13222223barEv)();
+extern void ABISELECT(_ZThn80_N9GG13222223barEv,_ZThn40_N9GG13222223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13222223barEv,_ZTv0_n12_N9GG13222223barEv)();
+extern void ABISELECT(_ZThn96_N9GG13222223barEv,_ZThn48_N9GG13222223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1322222[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1322222[0]),
+ (VTBL_ENTRY)&_ZN9GG13222223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1322222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13222223barEv,_ZTv0_n20_N9GG13222223barEv),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1322222[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+ ABISELECT(-48,-24),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1322222[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13222223barEv,_ZTv0_n16_N9GG13222223barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1322222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13222223barEv,_ZTv0_n20_N9GG13222223barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1322222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13222223barEv,_ZTv0_n12_N9GG13222223barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1322222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13222223barEv,_ZTv0_n12_N9GG13222223barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1322222[];
+extern void _ZN5EE1323barEv();
+static VTBL_ENTRY _tg__ZTV5EE132__9GG1322222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN5EE1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE132__9GG1322222[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv)();
+extern void ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE132__9GG1322222[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv),
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG1322222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG1322222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG1322222[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG1322222[] = {
+ {&(_ZTV9GG1322222[8]), 8,39},
+ {&(_ZTV9GG1322222[14]), 14,39},
+ {&(_ZTV9GG1322222[18]), 18,39},
+ {&(_ZTV9GG1322222[23]), 23,39},
+ {&(_ZTV9GG1322222[30]), 30,39},
+ {&(_ZTV9GG1322222[34]), 34,39},
+ {&(_ZTV9GG1322222[38]), 38,39},
+ {&(_tg__ZTV5EE132__9GG1322222[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE132__9GG1322222[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE132__9GG1322222[4]), 4,6},
+ {&(_tg__ZTV5FF222__9GG1322222[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG1322222[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG1322222[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1322222[];
+extern VTBL_ENTRY _ZTV9GG1322222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1322222[];
+static VTBL_ENTRY alt_thunk_names423[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13222223barEv,_ZTv0_n12_N9GG13222223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG13222223barEv,_ZThn48_N9GG13222223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13222223barEv,_ZThn40_N9GG13222223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13222223barEv,_ZTv0_n16_N9GG13222223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13222223barEv,_ZThn24_N9GG13222223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13222223barEv,_ZTv0_n20_N9GG13222223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13222223barEv,_ZThn32_N9GG13222223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13222223barEv,_ZThn8_N9GG13222223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1322222 = { "GG1322222", // class name
+ bases_GG1322222, 6,
+ &(vtc_GG1322222[0]), // expected_vtbl_contents
+ &(vtt_GG1322222[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1322222),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1322222),39, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1322222),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names423,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1322223 : virtual EE132 , virtual FF222 {
+ int pg;
+ virtual void foo(); // _ZN9GG13222233fooEv
+ virtual void bar(); // _ZN9GG13222233barEv
+ ~GG1322223(); // tgen
+ GG1322223(); // tgen
+};
+//SIG(1 GG1322223) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1322223 ::foo(){vfunc_called(this, "_ZN9GG13222233fooEv");}
+void GG1322223 ::bar(){vfunc_called(this, "_ZN9GG13222233barEv");}
+GG1322223 ::~GG1322223(){ note_dtor("GG1322223", this);} // tgen
+GG1322223 ::GG1322223(){ note_ctor("GG1322223", this);} // tgen
+
+static void Test_GG1322223()
+{
+ extern Class_Descriptor cd_GG1322223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1322223, buf);
+ GG1322223 *dp, &lv = *(dp=new (buf) GG1322223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1322223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1322223)");
+ check_base_class_offset(lv, (AA1*)(EE132*), ABISELECT(32,16), "GG1322223");
+ check_base_class_offset(lv, (BB3*)(EE132*), ABISELECT(48,24), "GG1322223");
+ check_base_class_offset(lv, (EE132*), ABISELECT(16,8), "GG1322223");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(80,40), "GG1322223");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(96,48), "GG1322223");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG1322223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1322223.pg");
+ test_class_info(&lv, &cd_GG1322223);
+ dp->~GG1322223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1322223(Test_GG1322223, "GG1322223", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1322223C1Ev();
+extern void _ZN9GG1322223D1Ev();
+Name_Map name_map_GG1322223[] = {
+ NSPAIR(_ZN9GG1322223C1Ev),
+ NSPAIR(_ZN9GG1322223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE132;
+extern VTBL_ENTRY _ZTI5EE132[];
+extern VTBL_ENTRY _ZTV5EE132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE132[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG1322223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE132, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1322223[];
+extern void _ZN9GG13222233fooEv();
+extern void _ZN9GG13222233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13222233barEv,_ZTv0_n20_N9GG13222233barEv)();
+extern void ABISELECT(_ZThn16_N9GG13222233barEv,_ZThn8_N9GG13222233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13222233fooEv,_ZTv0_n12_N9GG13222233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13222233fooEv,_ZThn16_N9GG13222233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13222233fooEv,_ZTv0_n12_N9GG13222233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13222233fooEv,_ZThn24_N9GG13222233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13222233barEv,_ZTv0_n16_N9GG13222233barEv)();
+extern void ABISELECT(_ZThn48_N9GG13222233barEv,_ZThn24_N9GG13222233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13222233barEv,_ZTv0_n20_N9GG13222233barEv)();
+extern void ABISELECT(_ZThn64_N9GG13222233barEv,_ZThn32_N9GG13222233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13222233barEv,_ZTv0_n12_N9GG13222233barEv)();
+extern void ABISELECT(_ZThn80_N9GG13222233barEv,_ZThn40_N9GG13222233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13222233barEv,_ZTv0_n12_N9GG13222233barEv)();
+extern void ABISELECT(_ZThn96_N9GG13222233barEv,_ZThn48_N9GG13222233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1322223[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1322223[0]),
+ (VTBL_ENTRY)&_ZN9GG13222233fooEv,
+ (VTBL_ENTRY)&_ZN9GG13222233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1322223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13222233barEv,_ZTv0_n20_N9GG13222233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1322223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13222233fooEv,_ZTv0_n12_N9GG13222233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1322223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13222233fooEv,_ZTv0_n12_N9GG13222233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13222233barEv,_ZTv0_n16_N9GG13222233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1322223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13222233barEv,_ZTv0_n20_N9GG13222233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1322223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13222233barEv,_ZTv0_n12_N9GG13222233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1322223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13222233barEv,_ZTv0_n12_N9GG13222233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1322223[];
+extern void _ZN5EE1323barEv();
+static VTBL_ENTRY _tg__ZTV5EE132__9GG1322223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN5EE1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE132__9GG1322223[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv)();
+extern void ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE132__9GG1322223[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv),
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG1322223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG1322223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG1322223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG1322223[] = {
+ {&(_ZTV9GG1322223[8]), 8,40},
+ {&(_ZTV9GG1322223[15]), 15,40},
+ {&(_ZTV9GG1322223[19]), 19,40},
+ {&(_ZTV9GG1322223[24]), 24,40},
+ {&(_ZTV9GG1322223[31]), 31,40},
+ {&(_ZTV9GG1322223[35]), 35,40},
+ {&(_ZTV9GG1322223[39]), 39,40},
+ {&(_tg__ZTV5EE132__9GG1322223[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE132__9GG1322223[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE132__9GG1322223[4]), 4,6},
+ {&(_tg__ZTV5FF222__9GG1322223[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG1322223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG1322223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1322223[];
+extern VTBL_ENTRY _ZTV9GG1322223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1322223[];
+static VTBL_ENTRY alt_thunk_names424[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13222233barEv,_ZTv0_n12_N9GG13222233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG13222233barEv,_ZThn48_N9GG13222233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13222233barEv,_ZThn40_N9GG13222233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13222233barEv,_ZTv0_n16_N9GG13222233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13222233barEv,_ZThn24_N9GG13222233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13222233fooEv,_ZTv0_n12_N9GG13222233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13222233fooEv,_ZThn24_N9GG13222233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13222233fooEv,_ZThn16_N9GG13222233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13222233barEv,_ZTv0_n20_N9GG13222233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13222233barEv,_ZThn32_N9GG13222233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13222233barEv,_ZThn8_N9GG13222233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1322223 = { "GG1322223", // class name
+ bases_GG1322223, 6,
+ &(vtc_GG1322223[0]), // expected_vtbl_contents
+ &(vtt_GG1322223[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1322223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1322223),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1322223),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names424,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1322233 : virtual EE132 , virtual FF223 {
+ int pg;
+ virtual void foo(); // _ZN9GG13222333fooEv
+ virtual void bar(); // _ZN9GG13222333barEv
+ ~GG1322233(); // tgen
+ GG1322233(); // tgen
+};
+//SIG(1 GG1322233) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1322233 ::foo(){vfunc_called(this, "_ZN9GG13222333fooEv");}
+void GG1322233 ::bar(){vfunc_called(this, "_ZN9GG13222333barEv");}
+GG1322233 ::~GG1322233(){ note_dtor("GG1322233", this);} // tgen
+GG1322233 ::GG1322233(){ note_ctor("GG1322233", this);} // tgen
+
+static void Test_GG1322233()
+{
+ extern Class_Descriptor cd_GG1322233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1322233, buf);
+ GG1322233 *dp, &lv = *(dp=new (buf) GG1322233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1322233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1322233)");
+ check_base_class_offset(lv, (AA1*)(EE132*), ABISELECT(32,16), "GG1322233");
+ check_base_class_offset(lv, (BB3*)(EE132*), ABISELECT(48,24), "GG1322233");
+ check_base_class_offset(lv, (EE132*), ABISELECT(16,8), "GG1322233");
+ check_base_class_offset(lv, (AA2*)(FF223*), ABISELECT(80,40), "GG1322233");
+ check_base_class_offset(lv, (BB2*)(FF223*), ABISELECT(96,48), "GG1322233");
+ check_base_class_offset(lv, (FF223*), ABISELECT(64,32), "GG1322233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1322233.pg");
+ test_class_info(&lv, &cd_GG1322233);
+ dp->~GG1322233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1322233(Test_GG1322233, "GG1322233", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1322233C1Ev();
+extern void _ZN9GG1322233D1Ev();
+Name_Map name_map_GG1322233[] = {
+ NSPAIR(_ZN9GG1322233C1Ev),
+ NSPAIR(_ZN9GG1322233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE132;
+extern VTBL_ENTRY _ZTI5EE132[];
+extern VTBL_ENTRY _ZTV5EE132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE132[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF223;
+extern VTBL_ENTRY _ZTI5FF223[];
+extern VTBL_ENTRY _ZTV5FF223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF223[];
+static Base_Class bases_GG1322233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE132, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF223, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1322233[];
+extern void _ZN9GG13222333fooEv();
+extern void _ZN9GG13222333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13222333barEv,_ZTv0_n20_N9GG13222333barEv)();
+extern void ABISELECT(_ZThn16_N9GG13222333barEv,_ZThn8_N9GG13222333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13222333fooEv,_ZTv0_n12_N9GG13222333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13222333fooEv,_ZThn16_N9GG13222333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13222333fooEv,_ZTv0_n12_N9GG13222333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13222333fooEv,_ZThn24_N9GG13222333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13222333barEv,_ZTv0_n16_N9GG13222333barEv)();
+extern void ABISELECT(_ZThn48_N9GG13222333barEv,_ZThn24_N9GG13222333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13222333fooEv,_ZTv0_n20_N9GG13222333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13222333fooEv,_ZThn32_N9GG13222333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13222333barEv,_ZTv0_n24_N9GG13222333barEv)();
+extern void ABISELECT(_ZThn64_N9GG13222333barEv,_ZThn32_N9GG13222333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13222333barEv,_ZTv0_n12_N9GG13222333barEv)();
+extern void ABISELECT(_ZThn80_N9GG13222333barEv,_ZThn40_N9GG13222333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13222333barEv,_ZTv0_n12_N9GG13222333barEv)();
+extern void ABISELECT(_ZThn96_N9GG13222333barEv,_ZThn48_N9GG13222333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1322233[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1322233[0]),
+ (VTBL_ENTRY)&_ZN9GG13222333fooEv,
+ (VTBL_ENTRY)&_ZN9GG13222333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1322233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13222333barEv,_ZTv0_n20_N9GG13222333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1322233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13222333fooEv,_ZTv0_n12_N9GG13222333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1322233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13222333fooEv,_ZTv0_n12_N9GG13222333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13222333barEv,_ZTv0_n16_N9GG13222333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1322233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13222333fooEv,_ZTv0_n20_N9GG13222333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13222333barEv,_ZTv0_n24_N9GG13222333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1322233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13222333barEv,_ZTv0_n12_N9GG13222333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1322233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13222333barEv,_ZTv0_n12_N9GG13222333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1322233[];
+extern void _ZN5EE1323barEv();
+static VTBL_ENTRY _tg__ZTV5EE132__9GG1322233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN5EE1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE132__9GG1322233[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv)();
+extern void ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE132__9GG1322233[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv),
+};
+extern void _ZN5FF2233fooEv();
+extern void _ZN5FF2233barEv();
+static VTBL_ENTRY _tg__ZTV5FF223__9GG1322233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&_ZN5FF2233fooEv,
+ (VTBL_ENTRY)&_ZN5FF2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+extern void ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF223__9GG1322233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+extern void ABISELECT(_ZThn32_N5FF2233barEv,_ZThn16_N5FF2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF223__9GG1322233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+static VTT_ENTRY vtt_GG1322233[] = {
+ {&(_ZTV9GG1322233[8]), 8,42},
+ {&(_ZTV9GG1322233[15]), 15,42},
+ {&(_ZTV9GG1322233[19]), 19,42},
+ {&(_ZTV9GG1322233[24]), 24,42},
+ {&(_ZTV9GG1322233[32]), 32,42},
+ {&(_ZTV9GG1322233[37]), 37,42},
+ {&(_ZTV9GG1322233[41]), 41,42},
+ {&(_tg__ZTV5EE132__9GG1322233[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE132__9GG1322233[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE132__9GG1322233[4]), 4,6},
+ {&(_tg__ZTV5FF223__9GG1322233[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF223__9GG1322233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF223__9GG1322233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1322233[];
+extern VTBL_ENTRY _ZTV9GG1322233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1322233[];
+static VTBL_ENTRY alt_thunk_names425[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2233barEv,_ZThn16_N5FF2233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13222333barEv,_ZTv0_n12_N9GG13222333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG13222333barEv,_ZThn48_N9GG13222333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13222333barEv,_ZThn40_N9GG13222333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG13222333barEv,_ZTv0_n24_N9GG13222333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13222333barEv,_ZThn32_N9GG13222333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13222333fooEv,_ZTv0_n20_N9GG13222333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13222333fooEv,_ZThn32_N9GG13222333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13222333barEv,_ZTv0_n16_N9GG13222333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13222333barEv,_ZThn24_N9GG13222333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13222333fooEv,_ZTv0_n12_N9GG13222333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13222333fooEv,_ZThn24_N9GG13222333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13222333fooEv,_ZThn16_N9GG13222333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13222333barEv,_ZTv0_n20_N9GG13222333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13222333barEv,_ZThn8_N9GG13222333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1322233 = { "GG1322233", // class name
+ bases_GG1322233, 6,
+ &(vtc_GG1322233[0]), // expected_vtbl_contents
+ &(vtt_GG1322233[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1322233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1322233),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1322233),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names425,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1322313 : virtual EE132 , virtual FF231 {
+ int pg;
+ virtual void foo(); // _ZN9GG13223133fooEv
+ virtual void bar(); // _ZN9GG13223133barEv
+ ~GG1322313(); // tgen
+ GG1322313(); // tgen
+};
+//SIG(1 GG1322313) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG1322313 ::foo(){vfunc_called(this, "_ZN9GG13223133fooEv");}
+void GG1322313 ::bar(){vfunc_called(this, "_ZN9GG13223133barEv");}
+GG1322313 ::~GG1322313(){ note_dtor("GG1322313", this);} // tgen
+GG1322313 ::GG1322313(){ note_ctor("GG1322313", this);} // tgen
+
+static void Test_GG1322313()
+{
+ extern Class_Descriptor cd_GG1322313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1322313, buf);
+ GG1322313 *dp, &lv = *(dp=new (buf) GG1322313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1322313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1322313)");
+ check_base_class_offset(lv, (AA1*)(EE132*), ABISELECT(32,16), "GG1322313");
+ check_base_class_offset(lv, (BB3*)(EE132*), ABISELECT(48,24), "GG1322313");
+ check_base_class_offset(lv, (BB3*)(FF231*), ABISELECT(48,24), "GG1322313");
+ check_base_class_offset(lv, (EE132*), ABISELECT(16,8), "GG1322313");
+ check_base_class_offset(lv, (AA2*)(FF231*), ABISELECT(80,40), "GG1322313");
+ check_base_class_offset(lv, (FF231*), ABISELECT(64,32), "GG1322313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1322313.pg");
+ test_class_info(&lv, &cd_GG1322313);
+ dp->~GG1322313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1322313(Test_GG1322313, "GG1322313", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1322313C1Ev();
+extern void _ZN9GG1322313D1Ev();
+Name_Map name_map_GG1322313[] = {
+ NSPAIR(_ZN9GG1322313C1Ev),
+ NSPAIR(_ZN9GG1322313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE132;
+extern VTBL_ENTRY _ZTI5EE132[];
+extern VTBL_ENTRY _ZTV5EE132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE132[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF231;
+extern VTBL_ENTRY _ZTI5FF231[];
+extern VTBL_ENTRY _ZTV5FF231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF231[];
+static Base_Class bases_GG1322313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE132, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF231, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1322313[];
+extern void _ZN9GG13223133fooEv();
+extern void _ZN9GG13223133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13223133barEv,_ZTv0_n20_N9GG13223133barEv)();
+extern void ABISELECT(_ZThn16_N9GG13223133barEv,_ZThn8_N9GG13223133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13223133fooEv,_ZTv0_n12_N9GG13223133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13223133fooEv,_ZThn16_N9GG13223133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13223133fooEv,_ZTv0_n12_N9GG13223133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13223133fooEv,_ZThn24_N9GG13223133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13223133barEv,_ZTv0_n16_N9GG13223133barEv)();
+extern void ABISELECT(_ZThn48_N9GG13223133barEv,_ZThn24_N9GG13223133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13223133fooEv,_ZTv0_n20_N9GG13223133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13223133fooEv,_ZThn32_N9GG13223133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13223133barEv,_ZTv0_n12_N9GG13223133barEv)();
+extern void ABISELECT(_ZThn80_N9GG13223133barEv,_ZThn40_N9GG13223133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1322313[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1322313[0]),
+ (VTBL_ENTRY)&_ZN9GG13223133fooEv,
+ (VTBL_ENTRY)&_ZN9GG13223133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1322313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13223133barEv,_ZTv0_n20_N9GG13223133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1322313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13223133fooEv,_ZTv0_n12_N9GG13223133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1322313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13223133fooEv,_ZTv0_n12_N9GG13223133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13223133barEv,_ZTv0_n16_N9GG13223133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1322313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13223133fooEv,_ZTv0_n20_N9GG13223133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1322313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13223133barEv,_ZTv0_n12_N9GG13223133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1322313[];
+extern void _ZN5EE1323barEv();
+static VTBL_ENTRY _tg__ZTV5EE132__9GG1322313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN5EE1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE132__9GG1322313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv)();
+extern void ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE132__9GG1322313[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv),
+};
+extern void _ZN5FF2313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF231__9GG1322313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN5FF2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF231__9GG1322313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv)();
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF231__9GG1322313[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG1322313[] = {
+ {&(_ZTV9GG1322313[7]), 7,35},
+ {&(_ZTV9GG1322313[14]), 14,35},
+ {&(_ZTV9GG1322313[18]), 18,35},
+ {&(_ZTV9GG1322313[23]), 23,35},
+ {&(_ZTV9GG1322313[30]), 30,35},
+ {&(_ZTV9GG1322313[34]), 34,35},
+ {&(_tg__ZTV5EE132__9GG1322313[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE132__9GG1322313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE132__9GG1322313[4]), 4,6},
+ {&(_tg__ZTV5FF231__9GG1322313[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF231__9GG1322313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF231__9GG1322313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1322313[];
+extern VTBL_ENTRY _ZTV9GG1322313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1322313[];
+static VTBL_ENTRY alt_thunk_names426[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13223133barEv,_ZTv0_n12_N9GG13223133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13223133barEv,_ZThn40_N9GG13223133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13223133fooEv,_ZTv0_n20_N9GG13223133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13223133fooEv,_ZThn32_N9GG13223133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13223133barEv,_ZTv0_n16_N9GG13223133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13223133barEv,_ZThn24_N9GG13223133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13223133fooEv,_ZTv0_n12_N9GG13223133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13223133fooEv,_ZThn24_N9GG13223133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13223133fooEv,_ZThn16_N9GG13223133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13223133barEv,_ZTv0_n20_N9GG13223133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13223133barEv,_ZThn8_N9GG13223133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1322313 = { "GG1322313", // class name
+ bases_GG1322313, 5,
+ &(vtc_GG1322313[0]), // expected_vtbl_contents
+ &(vtt_GG1322313[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1322313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1322313),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1322313),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names426,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1322323 : virtual EE132 , virtual FF232 {
+ int pg;
+ virtual void foo(); // _ZN9GG13223233fooEv
+ virtual void bar(); // _ZN9GG13223233barEv
+ ~GG1322323(); // tgen
+ GG1322323(); // tgen
+};
+//SIG(1 GG1322323) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG1322323 ::foo(){vfunc_called(this, "_ZN9GG13223233fooEv");}
+void GG1322323 ::bar(){vfunc_called(this, "_ZN9GG13223233barEv");}
+GG1322323 ::~GG1322323(){ note_dtor("GG1322323", this);} // tgen
+GG1322323 ::GG1322323(){ note_ctor("GG1322323", this);} // tgen
+
+static void Test_GG1322323()
+{
+ extern Class_Descriptor cd_GG1322323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1322323, buf);
+ GG1322323 *dp, &lv = *(dp=new (buf) GG1322323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1322323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1322323)");
+ check_base_class_offset(lv, (AA1*)(EE132*), ABISELECT(32,16), "GG1322323");
+ check_base_class_offset(lv, (BB3*)(EE132*), ABISELECT(48,24), "GG1322323");
+ check_base_class_offset(lv, (BB3*)(FF232*), ABISELECT(48,24), "GG1322323");
+ check_base_class_offset(lv, (EE132*), ABISELECT(16,8), "GG1322323");
+ check_base_class_offset(lv, (AA2*)(FF232*), ABISELECT(80,40), "GG1322323");
+ check_base_class_offset(lv, (FF232*), ABISELECT(64,32), "GG1322323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1322323.pg");
+ test_class_info(&lv, &cd_GG1322323);
+ dp->~GG1322323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1322323(Test_GG1322323, "GG1322323", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1322323C1Ev();
+extern void _ZN9GG1322323D1Ev();
+Name_Map name_map_GG1322323[] = {
+ NSPAIR(_ZN9GG1322323C1Ev),
+ NSPAIR(_ZN9GG1322323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE132;
+extern VTBL_ENTRY _ZTI5EE132[];
+extern VTBL_ENTRY _ZTV5EE132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE132[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF232;
+extern VTBL_ENTRY _ZTI5FF232[];
+extern VTBL_ENTRY _ZTV5FF232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF232[];
+static Base_Class bases_GG1322323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE132, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF232, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1322323[];
+extern void _ZN9GG13223233fooEv();
+extern void _ZN9GG13223233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13223233barEv,_ZTv0_n20_N9GG13223233barEv)();
+extern void ABISELECT(_ZThn16_N9GG13223233barEv,_ZThn8_N9GG13223233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13223233fooEv,_ZTv0_n12_N9GG13223233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13223233fooEv,_ZThn16_N9GG13223233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13223233fooEv,_ZTv0_n12_N9GG13223233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13223233fooEv,_ZThn24_N9GG13223233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13223233barEv,_ZTv0_n16_N9GG13223233barEv)();
+extern void ABISELECT(_ZThn48_N9GG13223233barEv,_ZThn24_N9GG13223233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13223233barEv,_ZTv0_n20_N9GG13223233barEv)();
+extern void ABISELECT(_ZThn64_N9GG13223233barEv,_ZThn32_N9GG13223233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13223233barEv,_ZTv0_n12_N9GG13223233barEv)();
+extern void ABISELECT(_ZThn80_N9GG13223233barEv,_ZThn40_N9GG13223233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1322323[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1322323[0]),
+ (VTBL_ENTRY)&_ZN9GG13223233fooEv,
+ (VTBL_ENTRY)&_ZN9GG13223233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1322323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13223233barEv,_ZTv0_n20_N9GG13223233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1322323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13223233fooEv,_ZTv0_n12_N9GG13223233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1322323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13223233fooEv,_ZTv0_n12_N9GG13223233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13223233barEv,_ZTv0_n16_N9GG13223233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1322323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13223233barEv,_ZTv0_n20_N9GG13223233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1322323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13223233barEv,_ZTv0_n12_N9GG13223233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1322323[];
+extern void _ZN5EE1323barEv();
+static VTBL_ENTRY _tg__ZTV5EE132__9GG1322323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN5EE1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE132__9GG1322323[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv)();
+extern void ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE132__9GG1322323[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv),
+};
+extern void _ZN5FF2323barEv();
+static VTBL_ENTRY _tg__ZTV5FF232__9GG1322323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN5FF2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv)();
+extern void ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF232__9GG1322323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF232__9GG1322323[] = {
+ ABISELECT(16,8),
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv),
+};
+static VTT_ENTRY vtt_GG1322323[] = {
+ {&(_ZTV9GG1322323[7]), 7,35},
+ {&(_ZTV9GG1322323[14]), 14,35},
+ {&(_ZTV9GG1322323[18]), 18,35},
+ {&(_ZTV9GG1322323[23]), 23,35},
+ {&(_ZTV9GG1322323[30]), 30,35},
+ {&(_ZTV9GG1322323[34]), 34,35},
+ {&(_tg__ZTV5EE132__9GG1322323[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE132__9GG1322323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE132__9GG1322323[4]), 4,6},
+ {&(_tg__ZTV5FF232__9GG1322323[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF232__9GG1322323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF232__9GG1322323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1322323[];
+extern VTBL_ENTRY _ZTV9GG1322323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1322323[];
+static VTBL_ENTRY alt_thunk_names427[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13223233barEv,_ZTv0_n12_N9GG13223233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13223233barEv,_ZThn40_N9GG13223233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13223233barEv,_ZTv0_n16_N9GG13223233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13223233barEv,_ZThn24_N9GG13223233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13223233fooEv,_ZTv0_n12_N9GG13223233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13223233fooEv,_ZThn24_N9GG13223233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13223233fooEv,_ZThn16_N9GG13223233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13223233barEv,_ZTv0_n20_N9GG13223233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13223233barEv,_ZThn32_N9GG13223233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13223233barEv,_ZThn8_N9GG13223233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1322323 = { "GG1322323", // class name
+ bases_GG1322323, 5,
+ &(vtc_GG1322323[0]), // expected_vtbl_contents
+ &(vtt_GG1322323[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1322323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1322323),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1322323),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names427,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1322333 : virtual EE132 , virtual FF233 {
+ int pg;
+ virtual void foo(); // _ZN9GG13223333fooEv
+ virtual void bar(); // _ZN9GG13223333barEv
+ ~GG1322333(); // tgen
+ GG1322333(); // tgen
+};
+//SIG(1 GG1322333) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1322333 ::foo(){vfunc_called(this, "_ZN9GG13223333fooEv");}
+void GG1322333 ::bar(){vfunc_called(this, "_ZN9GG13223333barEv");}
+GG1322333 ::~GG1322333(){ note_dtor("GG1322333", this);} // tgen
+GG1322333 ::GG1322333(){ note_ctor("GG1322333", this);} // tgen
+
+static void Test_GG1322333()
+{
+ extern Class_Descriptor cd_GG1322333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1322333, buf);
+ GG1322333 *dp, &lv = *(dp=new (buf) GG1322333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1322333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1322333)");
+ check_base_class_offset(lv, (AA1*)(EE132*), ABISELECT(32,16), "GG1322333");
+ check_base_class_offset(lv, (BB3*)(EE132*), ABISELECT(48,24), "GG1322333");
+ check_base_class_offset(lv, (BB3*)(FF233*), ABISELECT(48,24), "GG1322333");
+ check_base_class_offset(lv, (EE132*), ABISELECT(16,8), "GG1322333");
+ check_base_class_offset(lv, (AA2*)(FF233*), ABISELECT(80,40), "GG1322333");
+ check_base_class_offset(lv, (FF233*), ABISELECT(64,32), "GG1322333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1322333.pg");
+ test_class_info(&lv, &cd_GG1322333);
+ dp->~GG1322333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1322333(Test_GG1322333, "GG1322333", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1322333C1Ev();
+extern void _ZN9GG1322333D1Ev();
+Name_Map name_map_GG1322333[] = {
+ NSPAIR(_ZN9GG1322333C1Ev),
+ NSPAIR(_ZN9GG1322333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE132;
+extern VTBL_ENTRY _ZTI5EE132[];
+extern VTBL_ENTRY _ZTV5EE132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE132[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF233;
+extern VTBL_ENTRY _ZTI5FF233[];
+extern VTBL_ENTRY _ZTV5FF233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF233[];
+static Base_Class bases_GG1322333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE132, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF233, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1322333[];
+extern void _ZN9GG13223333fooEv();
+extern void _ZN9GG13223333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13223333barEv,_ZTv0_n20_N9GG13223333barEv)();
+extern void ABISELECT(_ZThn16_N9GG13223333barEv,_ZThn8_N9GG13223333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13223333fooEv,_ZTv0_n12_N9GG13223333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13223333fooEv,_ZThn16_N9GG13223333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13223333fooEv,_ZTv0_n12_N9GG13223333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13223333fooEv,_ZThn24_N9GG13223333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13223333barEv,_ZTv0_n16_N9GG13223333barEv)();
+extern void ABISELECT(_ZThn48_N9GG13223333barEv,_ZThn24_N9GG13223333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13223333fooEv,_ZTv0_n20_N9GG13223333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13223333fooEv,_ZThn32_N9GG13223333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13223333barEv,_ZTv0_n24_N9GG13223333barEv)();
+extern void ABISELECT(_ZThn64_N9GG13223333barEv,_ZThn32_N9GG13223333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13223333barEv,_ZTv0_n12_N9GG13223333barEv)();
+extern void ABISELECT(_ZThn80_N9GG13223333barEv,_ZThn40_N9GG13223333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1322333[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1322333[0]),
+ (VTBL_ENTRY)&_ZN9GG13223333fooEv,
+ (VTBL_ENTRY)&_ZN9GG13223333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1322333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13223333barEv,_ZTv0_n20_N9GG13223333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1322333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13223333fooEv,_ZTv0_n12_N9GG13223333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1322333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13223333fooEv,_ZTv0_n12_N9GG13223333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13223333barEv,_ZTv0_n16_N9GG13223333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1322333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13223333fooEv,_ZTv0_n20_N9GG13223333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13223333barEv,_ZTv0_n24_N9GG13223333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1322333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13223333barEv,_ZTv0_n12_N9GG13223333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1322333[];
+extern void _ZN5EE1323barEv();
+static VTBL_ENTRY _tg__ZTV5EE132__9GG1322333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN5EE1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE132__9GG1322333[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv)();
+extern void ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE132__9GG1322333[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv),
+};
+extern void _ZN5FF2333fooEv();
+extern void _ZN5FF2333barEv();
+static VTBL_ENTRY _tg__ZTV5FF233__9GG1322333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&_ZN5FF2333fooEv,
+ (VTBL_ENTRY)&_ZN5FF2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv)();
+extern void ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF233__9GG1322333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF233__9GG1322333[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv),
+};
+static VTT_ENTRY vtt_GG1322333[] = {
+ {&(_ZTV9GG1322333[7]), 7,37},
+ {&(_ZTV9GG1322333[14]), 14,37},
+ {&(_ZTV9GG1322333[18]), 18,37},
+ {&(_ZTV9GG1322333[23]), 23,37},
+ {&(_ZTV9GG1322333[31]), 31,37},
+ {&(_ZTV9GG1322333[36]), 36,37},
+ {&(_tg__ZTV5EE132__9GG1322333[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE132__9GG1322333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE132__9GG1322333[4]), 4,6},
+ {&(_tg__ZTV5FF233__9GG1322333[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF233__9GG1322333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF233__9GG1322333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1322333[];
+extern VTBL_ENTRY _ZTV9GG1322333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1322333[];
+static VTBL_ENTRY alt_thunk_names428[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13223333barEv,_ZTv0_n12_N9GG13223333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13223333barEv,_ZThn40_N9GG13223333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG13223333barEv,_ZTv0_n24_N9GG13223333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13223333barEv,_ZThn32_N9GG13223333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13223333fooEv,_ZTv0_n20_N9GG13223333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13223333fooEv,_ZThn32_N9GG13223333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13223333barEv,_ZTv0_n16_N9GG13223333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13223333barEv,_ZThn24_N9GG13223333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13223333fooEv,_ZTv0_n12_N9GG13223333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13223333fooEv,_ZThn24_N9GG13223333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13223333fooEv,_ZThn16_N9GG13223333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13223333barEv,_ZTv0_n20_N9GG13223333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13223333barEv,_ZThn8_N9GG13223333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1322333 = { "GG1322333", // class name
+ bases_GG1322333, 5,
+ &(vtc_GG1322333[0]), // expected_vtbl_contents
+ &(vtt_GG1322333[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1322333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1322333),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1322333),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names428,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1323113 : virtual EE132 , virtual FF311 {
+ int pg;
+ virtual void foo(); // _ZN9GG13231133fooEv
+ virtual void bar(); // _ZN9GG13231133barEv
+ ~GG1323113(); // tgen
+ GG1323113(); // tgen
+};
+//SIG(1 GG1323113) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1323113 ::foo(){vfunc_called(this, "_ZN9GG13231133fooEv");}
+void GG1323113 ::bar(){vfunc_called(this, "_ZN9GG13231133barEv");}
+GG1323113 ::~GG1323113(){ note_dtor("GG1323113", this);} // tgen
+GG1323113 ::GG1323113(){ note_ctor("GG1323113", this);} // tgen
+
+static void Test_GG1323113()
+{
+ extern Class_Descriptor cd_GG1323113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1323113, buf);
+ GG1323113 *dp, &lv = *(dp=new (buf) GG1323113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1323113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1323113)");
+ check_base_class_offset(lv, (AA1*)(EE132*), ABISELECT(32,16), "GG1323113");
+ check_base_class_offset(lv, (BB3*)(EE132*), ABISELECT(48,24), "GG1323113");
+ check_base_class_offset(lv, (EE132*), ABISELECT(16,8), "GG1323113");
+ check_base_class_offset(lv, (AA3*)(FF311*), ABISELECT(80,40), "GG1323113");
+ check_base_class_offset(lv, (BB1*)(FF311*), ABISELECT(96,48), "GG1323113");
+ check_base_class_offset(lv, (FF311*), ABISELECT(64,32), "GG1323113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1323113.pg");
+ test_class_info(&lv, &cd_GG1323113);
+ dp->~GG1323113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1323113(Test_GG1323113, "GG1323113", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1323113C1Ev();
+extern void _ZN9GG1323113D1Ev();
+Name_Map name_map_GG1323113[] = {
+ NSPAIR(_ZN9GG1323113C1Ev),
+ NSPAIR(_ZN9GG1323113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE132;
+extern VTBL_ENTRY _ZTI5EE132[];
+extern VTBL_ENTRY _ZTV5EE132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE132[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF311;
+extern VTBL_ENTRY _ZTI5FF311[];
+extern VTBL_ENTRY _ZTV5FF311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF311[];
+static Base_Class bases_GG1323113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE132, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF311, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1323113[];
+extern void _ZN9GG13231133fooEv();
+extern void _ZN9GG13231133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13231133barEv,_ZTv0_n20_N9GG13231133barEv)();
+extern void ABISELECT(_ZThn16_N9GG13231133barEv,_ZThn8_N9GG13231133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13231133fooEv,_ZTv0_n12_N9GG13231133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13231133fooEv,_ZThn16_N9GG13231133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13231133fooEv,_ZTv0_n12_N9GG13231133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13231133fooEv,_ZThn24_N9GG13231133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13231133barEv,_ZTv0_n16_N9GG13231133barEv)();
+extern void ABISELECT(_ZThn48_N9GG13231133barEv,_ZThn24_N9GG13231133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13231133fooEv,_ZTv0_n20_N9GG13231133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13231133fooEv,_ZThn32_N9GG13231133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13231133fooEv,_ZTv0_n12_N9GG13231133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG13231133fooEv,_ZThn40_N9GG13231133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13231133barEv,_ZTv0_n16_N9GG13231133barEv)();
+extern void ABISELECT(_ZThn80_N9GG13231133barEv,_ZThn40_N9GG13231133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13231133fooEv,_ZTv0_n12_N9GG13231133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG13231133fooEv,_ZThn48_N9GG13231133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1323113[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1323113[0]),
+ (VTBL_ENTRY)&_ZN9GG13231133fooEv,
+ (VTBL_ENTRY)&_ZN9GG13231133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1323113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13231133barEv,_ZTv0_n20_N9GG13231133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1323113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13231133fooEv,_ZTv0_n12_N9GG13231133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1323113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13231133fooEv,_ZTv0_n12_N9GG13231133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13231133barEv,_ZTv0_n16_N9GG13231133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1323113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13231133fooEv,_ZTv0_n20_N9GG13231133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1323113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13231133fooEv,_ZTv0_n12_N9GG13231133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13231133barEv,_ZTv0_n16_N9GG13231133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1323113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13231133fooEv,_ZTv0_n12_N9GG13231133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1323113[];
+extern void _ZN5EE1323barEv();
+static VTBL_ENTRY _tg__ZTV5EE132__9GG1323113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN5EE1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE132__9GG1323113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv)();
+extern void ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE132__9GG1323113[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv),
+};
+extern void _ZN5FF3113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF311__9GG1323113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&_ZN5FF3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF311__9GG1323113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3113fooEv,_ZThn16_N5FF3113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF311__9GG1323113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+};
+static VTT_ENTRY vtt_GG1323113[] = {
+ {&(_ZTV9GG1323113[8]), 8,42},
+ {&(_ZTV9GG1323113[15]), 15,42},
+ {&(_ZTV9GG1323113[19]), 19,42},
+ {&(_ZTV9GG1323113[24]), 24,42},
+ {&(_ZTV9GG1323113[31]), 31,42},
+ {&(_ZTV9GG1323113[36]), 36,42},
+ {&(_ZTV9GG1323113[41]), 41,42},
+ {&(_tg__ZTV5EE132__9GG1323113[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE132__9GG1323113[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE132__9GG1323113[4]), 4,6},
+ {&(_tg__ZTV5FF311__9GG1323113[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF311__9GG1323113[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF311__9GG1323113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1323113[];
+extern VTBL_ENTRY _ZTV9GG1323113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1323113[];
+static VTBL_ENTRY alt_thunk_names429[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3113fooEv,_ZThn16_N5FF3113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13231133fooEv,_ZTv0_n20_N9GG13231133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13231133fooEv,_ZThn32_N9GG13231133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13231133barEv,_ZTv0_n16_N9GG13231133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13231133barEv,_ZThn40_N9GG13231133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13231133barEv,_ZThn24_N9GG13231133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13231133fooEv,_ZTv0_n12_N9GG13231133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG13231133fooEv,_ZThn48_N9GG13231133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13231133fooEv,_ZThn40_N9GG13231133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13231133fooEv,_ZThn24_N9GG13231133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13231133fooEv,_ZThn16_N9GG13231133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13231133barEv,_ZTv0_n20_N9GG13231133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13231133barEv,_ZThn8_N9GG13231133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1323113 = { "GG1323113", // class name
+ bases_GG1323113, 6,
+ &(vtc_GG1323113[0]), // expected_vtbl_contents
+ &(vtt_GG1323113[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1323113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1323113),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1323113),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names429,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1323123 : virtual EE132 , virtual FF312 {
+ int pg;
+ virtual void foo(); // _ZN9GG13231233fooEv
+ virtual void bar(); // _ZN9GG13231233barEv
+ ~GG1323123(); // tgen
+ GG1323123(); // tgen
+};
+//SIG(1 GG1323123) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1323123 ::foo(){vfunc_called(this, "_ZN9GG13231233fooEv");}
+void GG1323123 ::bar(){vfunc_called(this, "_ZN9GG13231233barEv");}
+GG1323123 ::~GG1323123(){ note_dtor("GG1323123", this);} // tgen
+GG1323123 ::GG1323123(){ note_ctor("GG1323123", this);} // tgen
+
+static void Test_GG1323123()
+{
+ extern Class_Descriptor cd_GG1323123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1323123, buf);
+ GG1323123 *dp, &lv = *(dp=new (buf) GG1323123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1323123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1323123)");
+ check_base_class_offset(lv, (AA1*)(EE132*), ABISELECT(32,16), "GG1323123");
+ check_base_class_offset(lv, (BB3*)(EE132*), ABISELECT(48,24), "GG1323123");
+ check_base_class_offset(lv, (EE132*), ABISELECT(16,8), "GG1323123");
+ check_base_class_offset(lv, (AA3*)(FF312*), ABISELECT(80,40), "GG1323123");
+ check_base_class_offset(lv, (BB1*)(FF312*), ABISELECT(96,48), "GG1323123");
+ check_base_class_offset(lv, (FF312*), ABISELECT(64,32), "GG1323123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1323123.pg");
+ test_class_info(&lv, &cd_GG1323123);
+ dp->~GG1323123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1323123(Test_GG1323123, "GG1323123", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1323123C1Ev();
+extern void _ZN9GG1323123D1Ev();
+Name_Map name_map_GG1323123[] = {
+ NSPAIR(_ZN9GG1323123C1Ev),
+ NSPAIR(_ZN9GG1323123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE132;
+extern VTBL_ENTRY _ZTI5EE132[];
+extern VTBL_ENTRY _ZTV5EE132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE132[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF312;
+extern VTBL_ENTRY _ZTI5FF312[];
+extern VTBL_ENTRY _ZTV5FF312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF312[];
+static Base_Class bases_GG1323123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE132, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF312, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1323123[];
+extern void _ZN9GG13231233fooEv();
+extern void _ZN9GG13231233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13231233barEv,_ZTv0_n20_N9GG13231233barEv)();
+extern void ABISELECT(_ZThn16_N9GG13231233barEv,_ZThn8_N9GG13231233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13231233fooEv,_ZTv0_n12_N9GG13231233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13231233fooEv,_ZThn16_N9GG13231233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13231233fooEv,_ZTv0_n12_N9GG13231233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13231233fooEv,_ZThn24_N9GG13231233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13231233barEv,_ZTv0_n16_N9GG13231233barEv)();
+extern void ABISELECT(_ZThn48_N9GG13231233barEv,_ZThn24_N9GG13231233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13231233barEv,_ZTv0_n20_N9GG13231233barEv)();
+extern void ABISELECT(_ZThn64_N9GG13231233barEv,_ZThn32_N9GG13231233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13231233fooEv,_ZTv0_n12_N9GG13231233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG13231233fooEv,_ZThn40_N9GG13231233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13231233barEv,_ZTv0_n16_N9GG13231233barEv)();
+extern void ABISELECT(_ZThn80_N9GG13231233barEv,_ZThn40_N9GG13231233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13231233fooEv,_ZTv0_n12_N9GG13231233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG13231233fooEv,_ZThn48_N9GG13231233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1323123[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1323123[0]),
+ (VTBL_ENTRY)&_ZN9GG13231233fooEv,
+ (VTBL_ENTRY)&_ZN9GG13231233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1323123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13231233barEv,_ZTv0_n20_N9GG13231233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1323123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13231233fooEv,_ZTv0_n12_N9GG13231233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1323123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13231233fooEv,_ZTv0_n12_N9GG13231233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13231233barEv,_ZTv0_n16_N9GG13231233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1323123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13231233barEv,_ZTv0_n20_N9GG13231233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1323123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13231233fooEv,_ZTv0_n12_N9GG13231233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13231233barEv,_ZTv0_n16_N9GG13231233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1323123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13231233fooEv,_ZTv0_n12_N9GG13231233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1323123[];
+extern void _ZN5EE1323barEv();
+static VTBL_ENTRY _tg__ZTV5EE132__9GG1323123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN5EE1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE132__9GG1323123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv)();
+extern void ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE132__9GG1323123[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv),
+};
+extern void _ZN5FF3123barEv();
+static VTBL_ENTRY _tg__ZTV5FF312__9GG1323123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN5FF3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv)();
+extern void ABISELECT(_ZThn16_N5FF3123barEv,_ZThn8_N5FF3123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF312__9GG1323123[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF312__9GG1323123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG1323123[] = {
+ {&(_ZTV9GG1323123[8]), 8,42},
+ {&(_ZTV9GG1323123[15]), 15,42},
+ {&(_ZTV9GG1323123[19]), 19,42},
+ {&(_ZTV9GG1323123[24]), 24,42},
+ {&(_ZTV9GG1323123[31]), 31,42},
+ {&(_ZTV9GG1323123[36]), 36,42},
+ {&(_ZTV9GG1323123[41]), 41,42},
+ {&(_tg__ZTV5EE132__9GG1323123[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE132__9GG1323123[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE132__9GG1323123[4]), 4,6},
+ {&(_tg__ZTV5FF312__9GG1323123[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF312__9GG1323123[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF312__9GG1323123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1323123[];
+extern VTBL_ENTRY _ZTV9GG1323123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1323123[];
+static VTBL_ENTRY alt_thunk_names430[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3123barEv,_ZThn8_N5FF3123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13231233barEv,_ZTv0_n16_N9GG13231233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13231233barEv,_ZThn40_N9GG13231233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13231233barEv,_ZThn24_N9GG13231233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13231233fooEv,_ZTv0_n12_N9GG13231233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG13231233fooEv,_ZThn48_N9GG13231233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13231233fooEv,_ZThn40_N9GG13231233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13231233fooEv,_ZThn24_N9GG13231233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13231233fooEv,_ZThn16_N9GG13231233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13231233barEv,_ZTv0_n20_N9GG13231233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13231233barEv,_ZThn32_N9GG13231233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13231233barEv,_ZThn8_N9GG13231233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1323123 = { "GG1323123", // class name
+ bases_GG1323123, 6,
+ &(vtc_GG1323123[0]), // expected_vtbl_contents
+ &(vtt_GG1323123[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1323123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1323123),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1323123),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names430,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1323133 : virtual EE132 , virtual FF313 {
+ int pg;
+ virtual void foo(); // _ZN9GG13231333fooEv
+ virtual void bar(); // _ZN9GG13231333barEv
+ ~GG1323133(); // tgen
+ GG1323133(); // tgen
+};
+//SIG(1 GG1323133) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1323133 ::foo(){vfunc_called(this, "_ZN9GG13231333fooEv");}
+void GG1323133 ::bar(){vfunc_called(this, "_ZN9GG13231333barEv");}
+GG1323133 ::~GG1323133(){ note_dtor("GG1323133", this);} // tgen
+GG1323133 ::GG1323133(){ note_ctor("GG1323133", this);} // tgen
+
+static void Test_GG1323133()
+{
+ extern Class_Descriptor cd_GG1323133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1323133, buf);
+ GG1323133 *dp, &lv = *(dp=new (buf) GG1323133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1323133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1323133)");
+ check_base_class_offset(lv, (AA1*)(EE132*), ABISELECT(32,16), "GG1323133");
+ check_base_class_offset(lv, (BB3*)(EE132*), ABISELECT(48,24), "GG1323133");
+ check_base_class_offset(lv, (EE132*), ABISELECT(16,8), "GG1323133");
+ check_base_class_offset(lv, (AA3*)(FF313*), ABISELECT(80,40), "GG1323133");
+ check_base_class_offset(lv, (BB1*)(FF313*), ABISELECT(96,48), "GG1323133");
+ check_base_class_offset(lv, (FF313*), ABISELECT(64,32), "GG1323133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1323133.pg");
+ test_class_info(&lv, &cd_GG1323133);
+ dp->~GG1323133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1323133(Test_GG1323133, "GG1323133", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1323133C1Ev();
+extern void _ZN9GG1323133D1Ev();
+Name_Map name_map_GG1323133[] = {
+ NSPAIR(_ZN9GG1323133C1Ev),
+ NSPAIR(_ZN9GG1323133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE132;
+extern VTBL_ENTRY _ZTI5EE132[];
+extern VTBL_ENTRY _ZTV5EE132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE132[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF313;
+extern VTBL_ENTRY _ZTI5FF313[];
+extern VTBL_ENTRY _ZTV5FF313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF313[];
+static Base_Class bases_GG1323133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE132, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 40, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF313, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1323133[];
+extern void _ZN9GG13231333fooEv();
+extern void _ZN9GG13231333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13231333barEv,_ZTv0_n20_N9GG13231333barEv)();
+extern void ABISELECT(_ZThn16_N9GG13231333barEv,_ZThn8_N9GG13231333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13231333fooEv,_ZTv0_n12_N9GG13231333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13231333fooEv,_ZThn16_N9GG13231333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13231333fooEv,_ZTv0_n12_N9GG13231333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13231333fooEv,_ZThn24_N9GG13231333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13231333barEv,_ZTv0_n16_N9GG13231333barEv)();
+extern void ABISELECT(_ZThn48_N9GG13231333barEv,_ZThn24_N9GG13231333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13231333fooEv,_ZTv0_n20_N9GG13231333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13231333fooEv,_ZThn32_N9GG13231333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13231333barEv,_ZTv0_n24_N9GG13231333barEv)();
+extern void ABISELECT(_ZThn64_N9GG13231333barEv,_ZThn32_N9GG13231333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13231333fooEv,_ZTv0_n12_N9GG13231333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG13231333fooEv,_ZThn40_N9GG13231333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13231333barEv,_ZTv0_n16_N9GG13231333barEv)();
+extern void ABISELECT(_ZThn80_N9GG13231333barEv,_ZThn40_N9GG13231333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13231333fooEv,_ZTv0_n12_N9GG13231333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG13231333fooEv,_ZThn48_N9GG13231333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1323133[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1323133[0]),
+ (VTBL_ENTRY)&_ZN9GG13231333fooEv,
+ (VTBL_ENTRY)&_ZN9GG13231333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1323133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13231333barEv,_ZTv0_n20_N9GG13231333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1323133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13231333fooEv,_ZTv0_n12_N9GG13231333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1323133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13231333fooEv,_ZTv0_n12_N9GG13231333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13231333barEv,_ZTv0_n16_N9GG13231333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1323133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13231333fooEv,_ZTv0_n20_N9GG13231333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13231333barEv,_ZTv0_n24_N9GG13231333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1323133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13231333fooEv,_ZTv0_n12_N9GG13231333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13231333barEv,_ZTv0_n16_N9GG13231333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1323133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13231333fooEv,_ZTv0_n12_N9GG13231333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1323133[];
+extern void _ZN5EE1323barEv();
+static VTBL_ENTRY _tg__ZTV5EE132__9GG1323133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN5EE1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE132__9GG1323133[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv)();
+extern void ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE132__9GG1323133[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv),
+};
+extern void _ZN5FF3133fooEv();
+extern void _ZN5FF3133barEv();
+static VTBL_ENTRY _tg__ZTV5FF313__9GG1323133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&_ZN5FF3133fooEv,
+ (VTBL_ENTRY)&_ZN5FF3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv)();
+extern void ABISELECT(_ZThn16_N5FF3133barEv,_ZThn8_N5FF3133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF313__9GG1323133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3133fooEv,_ZThn16_N5FF3133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF313__9GG1323133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+};
+static VTT_ENTRY vtt_GG1323133[] = {
+ {&(_ZTV9GG1323133[8]), 8,44},
+ {&(_ZTV9GG1323133[15]), 15,44},
+ {&(_ZTV9GG1323133[19]), 19,44},
+ {&(_ZTV9GG1323133[24]), 24,44},
+ {&(_ZTV9GG1323133[32]), 32,44},
+ {&(_ZTV9GG1323133[38]), 38,44},
+ {&(_ZTV9GG1323133[43]), 43,44},
+ {&(_tg__ZTV5EE132__9GG1323133[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE132__9GG1323133[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE132__9GG1323133[4]), 4,6},
+ {&(_tg__ZTV5FF313__9GG1323133[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF313__9GG1323133[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF313__9GG1323133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1323133[];
+extern VTBL_ENTRY _ZTV9GG1323133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1323133[];
+static VTBL_ENTRY alt_thunk_names431[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3133barEv,_ZThn8_N5FF3133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3133fooEv,_ZThn16_N5FF3133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG13231333barEv,_ZTv0_n24_N9GG13231333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13231333barEv,_ZThn32_N9GG13231333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13231333fooEv,_ZTv0_n20_N9GG13231333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13231333fooEv,_ZThn32_N9GG13231333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13231333barEv,_ZTv0_n16_N9GG13231333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13231333barEv,_ZThn40_N9GG13231333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13231333barEv,_ZThn24_N9GG13231333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13231333fooEv,_ZTv0_n12_N9GG13231333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG13231333fooEv,_ZThn48_N9GG13231333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13231333fooEv,_ZThn40_N9GG13231333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13231333fooEv,_ZThn24_N9GG13231333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13231333fooEv,_ZThn16_N9GG13231333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13231333barEv,_ZTv0_n20_N9GG13231333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13231333barEv,_ZThn8_N9GG13231333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1323133 = { "GG1323133", // class name
+ bases_GG1323133, 6,
+ &(vtc_GG1323133[0]), // expected_vtbl_contents
+ &(vtt_GG1323133[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1323133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1323133),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1323133),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names431,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1323213 : virtual EE132 , virtual FF321 {
+ int pg;
+ virtual void foo(); // _ZN9GG13232133fooEv
+ virtual void bar(); // _ZN9GG13232133barEv
+ ~GG1323213(); // tgen
+ GG1323213(); // tgen
+};
+//SIG(1 GG1323213) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1323213 ::foo(){vfunc_called(this, "_ZN9GG13232133fooEv");}
+void GG1323213 ::bar(){vfunc_called(this, "_ZN9GG13232133barEv");}
+GG1323213 ::~GG1323213(){ note_dtor("GG1323213", this);} // tgen
+GG1323213 ::GG1323213(){ note_ctor("GG1323213", this);} // tgen
+
+static void Test_GG1323213()
+{
+ extern Class_Descriptor cd_GG1323213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1323213, buf);
+ GG1323213 *dp, &lv = *(dp=new (buf) GG1323213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1323213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1323213)");
+ check_base_class_offset(lv, (AA1*)(EE132*), ABISELECT(32,16), "GG1323213");
+ check_base_class_offset(lv, (BB3*)(EE132*), ABISELECT(48,24), "GG1323213");
+ check_base_class_offset(lv, (EE132*), ABISELECT(16,8), "GG1323213");
+ check_base_class_offset(lv, (AA3*)(FF321*), ABISELECT(80,40), "GG1323213");
+ check_base_class_offset(lv, (BB2*)(FF321*), ABISELECT(96,48), "GG1323213");
+ check_base_class_offset(lv, (FF321*), ABISELECT(64,32), "GG1323213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1323213.pg");
+ test_class_info(&lv, &cd_GG1323213);
+ dp->~GG1323213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1323213(Test_GG1323213, "GG1323213", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1323213C1Ev();
+extern void _ZN9GG1323213D1Ev();
+Name_Map name_map_GG1323213[] = {
+ NSPAIR(_ZN9GG1323213C1Ev),
+ NSPAIR(_ZN9GG1323213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE132;
+extern VTBL_ENTRY _ZTI5EE132[];
+extern VTBL_ENTRY _ZTV5EE132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE132[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF321;
+extern VTBL_ENTRY _ZTI5FF321[];
+extern VTBL_ENTRY _ZTV5FF321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF321[];
+static Base_Class bases_GG1323213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE132, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF321, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1323213[];
+extern void _ZN9GG13232133fooEv();
+extern void _ZN9GG13232133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13232133barEv,_ZTv0_n20_N9GG13232133barEv)();
+extern void ABISELECT(_ZThn16_N9GG13232133barEv,_ZThn8_N9GG13232133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13232133fooEv,_ZTv0_n12_N9GG13232133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13232133fooEv,_ZThn16_N9GG13232133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13232133fooEv,_ZTv0_n12_N9GG13232133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13232133fooEv,_ZThn24_N9GG13232133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13232133barEv,_ZTv0_n16_N9GG13232133barEv)();
+extern void ABISELECT(_ZThn48_N9GG13232133barEv,_ZThn24_N9GG13232133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13232133fooEv,_ZTv0_n20_N9GG13232133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13232133fooEv,_ZThn32_N9GG13232133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13232133fooEv,_ZTv0_n12_N9GG13232133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG13232133fooEv,_ZThn40_N9GG13232133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13232133barEv,_ZTv0_n16_N9GG13232133barEv)();
+extern void ABISELECT(_ZThn80_N9GG13232133barEv,_ZThn40_N9GG13232133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13232133barEv,_ZTv0_n12_N9GG13232133barEv)();
+extern void ABISELECT(_ZThn96_N9GG13232133barEv,_ZThn48_N9GG13232133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1323213[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1323213[0]),
+ (VTBL_ENTRY)&_ZN9GG13232133fooEv,
+ (VTBL_ENTRY)&_ZN9GG13232133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1323213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13232133barEv,_ZTv0_n20_N9GG13232133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1323213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13232133fooEv,_ZTv0_n12_N9GG13232133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1323213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13232133fooEv,_ZTv0_n12_N9GG13232133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13232133barEv,_ZTv0_n16_N9GG13232133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1323213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13232133fooEv,_ZTv0_n20_N9GG13232133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1323213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13232133fooEv,_ZTv0_n12_N9GG13232133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13232133barEv,_ZTv0_n16_N9GG13232133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1323213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13232133barEv,_ZTv0_n12_N9GG13232133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1323213[];
+extern void _ZN5EE1323barEv();
+static VTBL_ENTRY _tg__ZTV5EE132__9GG1323213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN5EE1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE132__9GG1323213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv)();
+extern void ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE132__9GG1323213[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv),
+};
+extern void _ZN5FF3213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF321__9GG1323213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN5FF3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3213fooEv,_ZThn8_N5FF3213fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF321__9GG1323213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF321__9GG1323213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG1323213[] = {
+ {&(_ZTV9GG1323213[8]), 8,42},
+ {&(_ZTV9GG1323213[15]), 15,42},
+ {&(_ZTV9GG1323213[19]), 19,42},
+ {&(_ZTV9GG1323213[24]), 24,42},
+ {&(_ZTV9GG1323213[31]), 31,42},
+ {&(_ZTV9GG1323213[36]), 36,42},
+ {&(_ZTV9GG1323213[41]), 41,42},
+ {&(_tg__ZTV5EE132__9GG1323213[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE132__9GG1323213[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE132__9GG1323213[4]), 4,6},
+ {&(_tg__ZTV5FF321__9GG1323213[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF321__9GG1323213[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF321__9GG1323213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1323213[];
+extern VTBL_ENTRY _ZTV9GG1323213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1323213[];
+static VTBL_ENTRY alt_thunk_names432[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3213fooEv,_ZThn8_N5FF3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13232133barEv,_ZTv0_n12_N9GG13232133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG13232133barEv,_ZThn48_N9GG13232133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13232133fooEv,_ZTv0_n20_N9GG13232133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13232133fooEv,_ZThn32_N9GG13232133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13232133barEv,_ZTv0_n16_N9GG13232133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13232133barEv,_ZThn40_N9GG13232133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13232133barEv,_ZThn24_N9GG13232133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13232133fooEv,_ZTv0_n12_N9GG13232133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13232133fooEv,_ZThn40_N9GG13232133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13232133fooEv,_ZThn24_N9GG13232133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13232133fooEv,_ZThn16_N9GG13232133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13232133barEv,_ZTv0_n20_N9GG13232133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13232133barEv,_ZThn8_N9GG13232133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1323213 = { "GG1323213", // class name
+ bases_GG1323213, 6,
+ &(vtc_GG1323213[0]), // expected_vtbl_contents
+ &(vtt_GG1323213[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1323213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1323213),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1323213),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names432,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1323223 : virtual EE132 , virtual FF322 {
+ int pg;
+ virtual void foo(); // _ZN9GG13232233fooEv
+ virtual void bar(); // _ZN9GG13232233barEv
+ ~GG1323223(); // tgen
+ GG1323223(); // tgen
+};
+//SIG(1 GG1323223) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1323223 ::foo(){vfunc_called(this, "_ZN9GG13232233fooEv");}
+void GG1323223 ::bar(){vfunc_called(this, "_ZN9GG13232233barEv");}
+GG1323223 ::~GG1323223(){ note_dtor("GG1323223", this);} // tgen
+GG1323223 ::GG1323223(){ note_ctor("GG1323223", this);} // tgen
+
+static void Test_GG1323223()
+{
+ extern Class_Descriptor cd_GG1323223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1323223, buf);
+ GG1323223 *dp, &lv = *(dp=new (buf) GG1323223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1323223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1323223)");
+ check_base_class_offset(lv, (AA1*)(EE132*), ABISELECT(32,16), "GG1323223");
+ check_base_class_offset(lv, (BB3*)(EE132*), ABISELECT(48,24), "GG1323223");
+ check_base_class_offset(lv, (EE132*), ABISELECT(16,8), "GG1323223");
+ check_base_class_offset(lv, (AA3*)(FF322*), ABISELECT(80,40), "GG1323223");
+ check_base_class_offset(lv, (BB2*)(FF322*), ABISELECT(96,48), "GG1323223");
+ check_base_class_offset(lv, (FF322*), ABISELECT(64,32), "GG1323223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1323223.pg");
+ test_class_info(&lv, &cd_GG1323223);
+ dp->~GG1323223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1323223(Test_GG1323223, "GG1323223", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1323223C1Ev();
+extern void _ZN9GG1323223D1Ev();
+Name_Map name_map_GG1323223[] = {
+ NSPAIR(_ZN9GG1323223C1Ev),
+ NSPAIR(_ZN9GG1323223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE132;
+extern VTBL_ENTRY _ZTI5EE132[];
+extern VTBL_ENTRY _ZTV5EE132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE132[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF322;
+extern VTBL_ENTRY _ZTI5FF322[];
+extern VTBL_ENTRY _ZTV5FF322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF322[];
+static Base_Class bases_GG1323223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE132, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF322, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1323223[];
+extern void _ZN9GG13232233fooEv();
+extern void _ZN9GG13232233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13232233barEv,_ZTv0_n20_N9GG13232233barEv)();
+extern void ABISELECT(_ZThn16_N9GG13232233barEv,_ZThn8_N9GG13232233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13232233fooEv,_ZTv0_n12_N9GG13232233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13232233fooEv,_ZThn16_N9GG13232233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13232233fooEv,_ZTv0_n12_N9GG13232233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13232233fooEv,_ZThn24_N9GG13232233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13232233barEv,_ZTv0_n16_N9GG13232233barEv)();
+extern void ABISELECT(_ZThn48_N9GG13232233barEv,_ZThn24_N9GG13232233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13232233barEv,_ZTv0_n20_N9GG13232233barEv)();
+extern void ABISELECT(_ZThn64_N9GG13232233barEv,_ZThn32_N9GG13232233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13232233fooEv,_ZTv0_n12_N9GG13232233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG13232233fooEv,_ZThn40_N9GG13232233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13232233barEv,_ZTv0_n16_N9GG13232233barEv)();
+extern void ABISELECT(_ZThn80_N9GG13232233barEv,_ZThn40_N9GG13232233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13232233barEv,_ZTv0_n12_N9GG13232233barEv)();
+extern void ABISELECT(_ZThn96_N9GG13232233barEv,_ZThn48_N9GG13232233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1323223[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1323223[0]),
+ (VTBL_ENTRY)&_ZN9GG13232233fooEv,
+ (VTBL_ENTRY)&_ZN9GG13232233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1323223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13232233barEv,_ZTv0_n20_N9GG13232233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1323223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13232233fooEv,_ZTv0_n12_N9GG13232233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1323223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13232233fooEv,_ZTv0_n12_N9GG13232233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13232233barEv,_ZTv0_n16_N9GG13232233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1323223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13232233barEv,_ZTv0_n20_N9GG13232233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1323223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13232233fooEv,_ZTv0_n12_N9GG13232233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13232233barEv,_ZTv0_n16_N9GG13232233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1323223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13232233barEv,_ZTv0_n12_N9GG13232233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1323223[];
+extern void _ZN5EE1323barEv();
+static VTBL_ENTRY _tg__ZTV5EE132__9GG1323223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN5EE1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE132__9GG1323223[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv)();
+extern void ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE132__9GG1323223[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv),
+};
+extern void _ZN5FF3223barEv();
+static VTBL_ENTRY _tg__ZTV5FF322__9GG1323223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN5FF3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv)();
+extern void ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF322__9GG1323223[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv)();
+extern void ABISELECT(_ZThn32_N5FF3223barEv,_ZThn16_N5FF3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF322__9GG1323223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv),
+};
+static VTT_ENTRY vtt_GG1323223[] = {
+ {&(_ZTV9GG1323223[8]), 8,42},
+ {&(_ZTV9GG1323223[15]), 15,42},
+ {&(_ZTV9GG1323223[19]), 19,42},
+ {&(_ZTV9GG1323223[24]), 24,42},
+ {&(_ZTV9GG1323223[31]), 31,42},
+ {&(_ZTV9GG1323223[36]), 36,42},
+ {&(_ZTV9GG1323223[41]), 41,42},
+ {&(_tg__ZTV5EE132__9GG1323223[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE132__9GG1323223[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE132__9GG1323223[4]), 4,6},
+ {&(_tg__ZTV5FF322__9GG1323223[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF322__9GG1323223[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF322__9GG1323223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1323223[];
+extern VTBL_ENTRY _ZTV9GG1323223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1323223[];
+static VTBL_ENTRY alt_thunk_names433[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3223barEv,_ZThn16_N5FF3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13232233barEv,_ZTv0_n12_N9GG13232233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG13232233barEv,_ZThn48_N9GG13232233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13232233barEv,_ZTv0_n16_N9GG13232233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13232233barEv,_ZThn40_N9GG13232233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13232233barEv,_ZThn24_N9GG13232233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13232233fooEv,_ZTv0_n12_N9GG13232233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13232233fooEv,_ZThn40_N9GG13232233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13232233fooEv,_ZThn24_N9GG13232233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13232233fooEv,_ZThn16_N9GG13232233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13232233barEv,_ZTv0_n20_N9GG13232233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13232233barEv,_ZThn32_N9GG13232233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13232233barEv,_ZThn8_N9GG13232233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1323223 = { "GG1323223", // class name
+ bases_GG1323223, 6,
+ &(vtc_GG1323223[0]), // expected_vtbl_contents
+ &(vtt_GG1323223[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1323223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1323223),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1323223),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names433,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1323233 : virtual EE132 , virtual FF323 {
+ int pg;
+ virtual void foo(); // _ZN9GG13232333fooEv
+ virtual void bar(); // _ZN9GG13232333barEv
+ ~GG1323233(); // tgen
+ GG1323233(); // tgen
+};
+//SIG(1 GG1323233) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1323233 ::foo(){vfunc_called(this, "_ZN9GG13232333fooEv");}
+void GG1323233 ::bar(){vfunc_called(this, "_ZN9GG13232333barEv");}
+GG1323233 ::~GG1323233(){ note_dtor("GG1323233", this);} // tgen
+GG1323233 ::GG1323233(){ note_ctor("GG1323233", this);} // tgen
+
+static void Test_GG1323233()
+{
+ extern Class_Descriptor cd_GG1323233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1323233, buf);
+ GG1323233 *dp, &lv = *(dp=new (buf) GG1323233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1323233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1323233)");
+ check_base_class_offset(lv, (AA1*)(EE132*), ABISELECT(32,16), "GG1323233");
+ check_base_class_offset(lv, (BB3*)(EE132*), ABISELECT(48,24), "GG1323233");
+ check_base_class_offset(lv, (EE132*), ABISELECT(16,8), "GG1323233");
+ check_base_class_offset(lv, (AA3*)(FF323*), ABISELECT(80,40), "GG1323233");
+ check_base_class_offset(lv, (BB2*)(FF323*), ABISELECT(96,48), "GG1323233");
+ check_base_class_offset(lv, (FF323*), ABISELECT(64,32), "GG1323233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1323233.pg");
+ test_class_info(&lv, &cd_GG1323233);
+ dp->~GG1323233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1323233(Test_GG1323233, "GG1323233", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1323233C1Ev();
+extern void _ZN9GG1323233D1Ev();
+Name_Map name_map_GG1323233[] = {
+ NSPAIR(_ZN9GG1323233C1Ev),
+ NSPAIR(_ZN9GG1323233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE132;
+extern VTBL_ENTRY _ZTI5EE132[];
+extern VTBL_ENTRY _ZTV5EE132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE132[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF323;
+extern VTBL_ENTRY _ZTI5FF323[];
+extern VTBL_ENTRY _ZTV5FF323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF323[];
+static Base_Class bases_GG1323233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE132, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 40, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF323, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1323233[];
+extern void _ZN9GG13232333fooEv();
+extern void _ZN9GG13232333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13232333barEv,_ZTv0_n20_N9GG13232333barEv)();
+extern void ABISELECT(_ZThn16_N9GG13232333barEv,_ZThn8_N9GG13232333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13232333fooEv,_ZTv0_n12_N9GG13232333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13232333fooEv,_ZThn16_N9GG13232333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13232333fooEv,_ZTv0_n12_N9GG13232333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13232333fooEv,_ZThn24_N9GG13232333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13232333barEv,_ZTv0_n16_N9GG13232333barEv)();
+extern void ABISELECT(_ZThn48_N9GG13232333barEv,_ZThn24_N9GG13232333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13232333fooEv,_ZTv0_n20_N9GG13232333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13232333fooEv,_ZThn32_N9GG13232333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13232333barEv,_ZTv0_n24_N9GG13232333barEv)();
+extern void ABISELECT(_ZThn64_N9GG13232333barEv,_ZThn32_N9GG13232333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13232333fooEv,_ZTv0_n12_N9GG13232333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG13232333fooEv,_ZThn40_N9GG13232333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13232333barEv,_ZTv0_n16_N9GG13232333barEv)();
+extern void ABISELECT(_ZThn80_N9GG13232333barEv,_ZThn40_N9GG13232333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13232333barEv,_ZTv0_n12_N9GG13232333barEv)();
+extern void ABISELECT(_ZThn96_N9GG13232333barEv,_ZThn48_N9GG13232333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1323233[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1323233[0]),
+ (VTBL_ENTRY)&_ZN9GG13232333fooEv,
+ (VTBL_ENTRY)&_ZN9GG13232333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1323233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13232333barEv,_ZTv0_n20_N9GG13232333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1323233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13232333fooEv,_ZTv0_n12_N9GG13232333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1323233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13232333fooEv,_ZTv0_n12_N9GG13232333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13232333barEv,_ZTv0_n16_N9GG13232333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1323233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13232333fooEv,_ZTv0_n20_N9GG13232333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13232333barEv,_ZTv0_n24_N9GG13232333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1323233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13232333fooEv,_ZTv0_n12_N9GG13232333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13232333barEv,_ZTv0_n16_N9GG13232333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1323233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13232333barEv,_ZTv0_n12_N9GG13232333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1323233[];
+extern void _ZN5EE1323barEv();
+static VTBL_ENTRY _tg__ZTV5EE132__9GG1323233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN5EE1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE132__9GG1323233[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv)();
+extern void ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE132__9GG1323233[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv),
+};
+extern void _ZN5FF3233fooEv();
+extern void _ZN5FF3233barEv();
+static VTBL_ENTRY _tg__ZTV5FF323__9GG1323233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&_ZN5FF3233fooEv,
+ (VTBL_ENTRY)&_ZN5FF3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3233fooEv,_ZThn8_N5FF3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv)();
+extern void ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF323__9GG1323233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv)();
+extern void ABISELECT(_ZThn32_N5FF3233barEv,_ZThn16_N5FF3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF323__9GG1323233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv),
+};
+static VTT_ENTRY vtt_GG1323233[] = {
+ {&(_ZTV9GG1323233[8]), 8,44},
+ {&(_ZTV9GG1323233[15]), 15,44},
+ {&(_ZTV9GG1323233[19]), 19,44},
+ {&(_ZTV9GG1323233[24]), 24,44},
+ {&(_ZTV9GG1323233[32]), 32,44},
+ {&(_ZTV9GG1323233[38]), 38,44},
+ {&(_ZTV9GG1323233[43]), 43,44},
+ {&(_tg__ZTV5EE132__9GG1323233[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE132__9GG1323233[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE132__9GG1323233[4]), 4,6},
+ {&(_tg__ZTV5FF323__9GG1323233[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF323__9GG1323233[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF323__9GG1323233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1323233[];
+extern VTBL_ENTRY _ZTV9GG1323233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1323233[];
+static VTBL_ENTRY alt_thunk_names434[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3233barEv,_ZThn16_N5FF3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3233fooEv,_ZThn8_N5FF3233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13232333barEv,_ZTv0_n12_N9GG13232333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG13232333barEv,_ZThn48_N9GG13232333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG13232333barEv,_ZTv0_n24_N9GG13232333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13232333barEv,_ZThn32_N9GG13232333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13232333fooEv,_ZTv0_n20_N9GG13232333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13232333fooEv,_ZThn32_N9GG13232333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13232333barEv,_ZTv0_n16_N9GG13232333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13232333barEv,_ZThn40_N9GG13232333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13232333barEv,_ZThn24_N9GG13232333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13232333fooEv,_ZTv0_n12_N9GG13232333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13232333fooEv,_ZThn40_N9GG13232333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13232333fooEv,_ZThn24_N9GG13232333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13232333fooEv,_ZThn16_N9GG13232333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13232333barEv,_ZTv0_n20_N9GG13232333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13232333barEv,_ZThn8_N9GG13232333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1323233 = { "GG1323233", // class name
+ bases_GG1323233, 6,
+ &(vtc_GG1323233[0]), // expected_vtbl_contents
+ &(vtt_GG1323233[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1323233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1323233),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1323233),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names434,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1323313 : virtual EE132 , virtual FF331 {
+ int pg;
+ virtual void foo(); // _ZN9GG13233133fooEv
+ virtual void bar(); // _ZN9GG13233133barEv
+ ~GG1323313(); // tgen
+ GG1323313(); // tgen
+};
+//SIG(1 GG1323313) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG1323313 ::foo(){vfunc_called(this, "_ZN9GG13233133fooEv");}
+void GG1323313 ::bar(){vfunc_called(this, "_ZN9GG13233133barEv");}
+GG1323313 ::~GG1323313(){ note_dtor("GG1323313", this);} // tgen
+GG1323313 ::GG1323313(){ note_ctor("GG1323313", this);} // tgen
+
+static void Test_GG1323313()
+{
+ extern Class_Descriptor cd_GG1323313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1323313, buf);
+ GG1323313 *dp, &lv = *(dp=new (buf) GG1323313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1323313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1323313)");
+ check_base_class_offset(lv, (AA1*)(EE132*), ABISELECT(32,16), "GG1323313");
+ check_base_class_offset(lv, (BB3*)(EE132*), ABISELECT(48,24), "GG1323313");
+ check_base_class_offset(lv, (BB3*)(FF331*), ABISELECT(48,24), "GG1323313");
+ check_base_class_offset(lv, (EE132*), ABISELECT(16,8), "GG1323313");
+ check_base_class_offset(lv, (AA3*)(FF331*), ABISELECT(80,40), "GG1323313");
+ check_base_class_offset(lv, (FF331*), ABISELECT(64,32), "GG1323313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1323313.pg");
+ test_class_info(&lv, &cd_GG1323313);
+ dp->~GG1323313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1323313(Test_GG1323313, "GG1323313", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1323313C1Ev();
+extern void _ZN9GG1323313D1Ev();
+Name_Map name_map_GG1323313[] = {
+ NSPAIR(_ZN9GG1323313C1Ev),
+ NSPAIR(_ZN9GG1323313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE132;
+extern VTBL_ENTRY _ZTI5EE132[];
+extern VTBL_ENTRY _ZTV5EE132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE132[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF331;
+extern VTBL_ENTRY _ZTI5FF331[];
+extern VTBL_ENTRY _ZTV5FF331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF331[];
+static Base_Class bases_GG1323313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE132, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF331, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1323313[];
+extern void _ZN9GG13233133fooEv();
+extern void _ZN9GG13233133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13233133barEv,_ZTv0_n20_N9GG13233133barEv)();
+extern void ABISELECT(_ZThn16_N9GG13233133barEv,_ZThn8_N9GG13233133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13233133fooEv,_ZTv0_n12_N9GG13233133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13233133fooEv,_ZThn16_N9GG13233133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13233133fooEv,_ZTv0_n12_N9GG13233133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13233133fooEv,_ZThn24_N9GG13233133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13233133barEv,_ZTv0_n16_N9GG13233133barEv)();
+extern void ABISELECT(_ZThn48_N9GG13233133barEv,_ZThn24_N9GG13233133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13233133fooEv,_ZTv0_n20_N9GG13233133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13233133fooEv,_ZThn32_N9GG13233133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13233133fooEv,_ZTv0_n12_N9GG13233133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG13233133fooEv,_ZThn40_N9GG13233133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13233133barEv,_ZTv0_n16_N9GG13233133barEv)();
+extern void ABISELECT(_ZThn80_N9GG13233133barEv,_ZThn40_N9GG13233133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1323313[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1323313[0]),
+ (VTBL_ENTRY)&_ZN9GG13233133fooEv,
+ (VTBL_ENTRY)&_ZN9GG13233133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1323313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13233133barEv,_ZTv0_n20_N9GG13233133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1323313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13233133fooEv,_ZTv0_n12_N9GG13233133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1323313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13233133fooEv,_ZTv0_n12_N9GG13233133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13233133barEv,_ZTv0_n16_N9GG13233133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1323313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13233133fooEv,_ZTv0_n20_N9GG13233133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1323313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13233133fooEv,_ZTv0_n12_N9GG13233133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13233133barEv,_ZTv0_n16_N9GG13233133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1323313[];
+extern void _ZN5EE1323barEv();
+static VTBL_ENTRY _tg__ZTV5EE132__9GG1323313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN5EE1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE132__9GG1323313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv)();
+extern void ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE132__9GG1323313[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv),
+};
+extern void _ZN5FF3313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF331__9GG1323313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&_ZN5FF3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF331__9GG1323313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF331__9GG1323313[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG1323313[] = {
+ {&(_ZTV9GG1323313[7]), 7,37},
+ {&(_ZTV9GG1323313[14]), 14,37},
+ {&(_ZTV9GG1323313[18]), 18,37},
+ {&(_ZTV9GG1323313[23]), 23,37},
+ {&(_ZTV9GG1323313[30]), 30,37},
+ {&(_ZTV9GG1323313[35]), 35,37},
+ {&(_tg__ZTV5EE132__9GG1323313[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE132__9GG1323313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE132__9GG1323313[4]), 4,6},
+ {&(_tg__ZTV5FF331__9GG1323313[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF331__9GG1323313[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF331__9GG1323313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1323313[];
+extern VTBL_ENTRY _ZTV9GG1323313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1323313[];
+static VTBL_ENTRY alt_thunk_names435[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13233133fooEv,_ZTv0_n20_N9GG13233133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13233133fooEv,_ZThn32_N9GG13233133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13233133barEv,_ZTv0_n16_N9GG13233133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13233133barEv,_ZThn40_N9GG13233133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13233133barEv,_ZThn24_N9GG13233133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13233133fooEv,_ZTv0_n12_N9GG13233133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13233133fooEv,_ZThn40_N9GG13233133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13233133fooEv,_ZThn24_N9GG13233133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13233133fooEv,_ZThn16_N9GG13233133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13233133barEv,_ZTv0_n20_N9GG13233133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13233133barEv,_ZThn8_N9GG13233133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1323313 = { "GG1323313", // class name
+ bases_GG1323313, 5,
+ &(vtc_GG1323313[0]), // expected_vtbl_contents
+ &(vtt_GG1323313[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1323313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1323313),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1323313),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names435,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1323323 : virtual EE132 , virtual FF332 {
+ int pg;
+ virtual void foo(); // _ZN9GG13233233fooEv
+ virtual void bar(); // _ZN9GG13233233barEv
+ ~GG1323323(); // tgen
+ GG1323323(); // tgen
+};
+//SIG(1 GG1323323) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG1323323 ::foo(){vfunc_called(this, "_ZN9GG13233233fooEv");}
+void GG1323323 ::bar(){vfunc_called(this, "_ZN9GG13233233barEv");}
+GG1323323 ::~GG1323323(){ note_dtor("GG1323323", this);} // tgen
+GG1323323 ::GG1323323(){ note_ctor("GG1323323", this);} // tgen
+
+static void Test_GG1323323()
+{
+ extern Class_Descriptor cd_GG1323323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1323323, buf);
+ GG1323323 *dp, &lv = *(dp=new (buf) GG1323323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1323323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1323323)");
+ check_base_class_offset(lv, (AA1*)(EE132*), ABISELECT(32,16), "GG1323323");
+ check_base_class_offset(lv, (BB3*)(EE132*), ABISELECT(48,24), "GG1323323");
+ check_base_class_offset(lv, (BB3*)(FF332*), ABISELECT(48,24), "GG1323323");
+ check_base_class_offset(lv, (EE132*), ABISELECT(16,8), "GG1323323");
+ check_base_class_offset(lv, (AA3*)(FF332*), ABISELECT(80,40), "GG1323323");
+ check_base_class_offset(lv, (FF332*), ABISELECT(64,32), "GG1323323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1323323.pg");
+ test_class_info(&lv, &cd_GG1323323);
+ dp->~GG1323323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1323323(Test_GG1323323, "GG1323323", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1323323C1Ev();
+extern void _ZN9GG1323323D1Ev();
+Name_Map name_map_GG1323323[] = {
+ NSPAIR(_ZN9GG1323323C1Ev),
+ NSPAIR(_ZN9GG1323323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE132;
+extern VTBL_ENTRY _ZTI5EE132[];
+extern VTBL_ENTRY _ZTV5EE132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE132[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF332;
+extern VTBL_ENTRY _ZTI5FF332[];
+extern VTBL_ENTRY _ZTV5FF332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF332[];
+static Base_Class bases_GG1323323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE132, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF332, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1323323[];
+extern void _ZN9GG13233233fooEv();
+extern void _ZN9GG13233233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13233233barEv,_ZTv0_n20_N9GG13233233barEv)();
+extern void ABISELECT(_ZThn16_N9GG13233233barEv,_ZThn8_N9GG13233233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13233233fooEv,_ZTv0_n12_N9GG13233233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13233233fooEv,_ZThn16_N9GG13233233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13233233fooEv,_ZTv0_n12_N9GG13233233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13233233fooEv,_ZThn24_N9GG13233233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13233233barEv,_ZTv0_n16_N9GG13233233barEv)();
+extern void ABISELECT(_ZThn48_N9GG13233233barEv,_ZThn24_N9GG13233233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13233233barEv,_ZTv0_n20_N9GG13233233barEv)();
+extern void ABISELECT(_ZThn64_N9GG13233233barEv,_ZThn32_N9GG13233233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13233233fooEv,_ZTv0_n12_N9GG13233233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG13233233fooEv,_ZThn40_N9GG13233233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13233233barEv,_ZTv0_n16_N9GG13233233barEv)();
+extern void ABISELECT(_ZThn80_N9GG13233233barEv,_ZThn40_N9GG13233233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1323323[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1323323[0]),
+ (VTBL_ENTRY)&_ZN9GG13233233fooEv,
+ (VTBL_ENTRY)&_ZN9GG13233233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1323323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13233233barEv,_ZTv0_n20_N9GG13233233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1323323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13233233fooEv,_ZTv0_n12_N9GG13233233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1323323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13233233fooEv,_ZTv0_n12_N9GG13233233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13233233barEv,_ZTv0_n16_N9GG13233233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1323323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13233233barEv,_ZTv0_n20_N9GG13233233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1323323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13233233fooEv,_ZTv0_n12_N9GG13233233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13233233barEv,_ZTv0_n16_N9GG13233233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1323323[];
+extern void _ZN5EE1323barEv();
+static VTBL_ENTRY _tg__ZTV5EE132__9GG1323323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN5EE1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE132__9GG1323323[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv)();
+extern void ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE132__9GG1323323[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv),
+};
+extern void _ZN5FF3323barEv();
+static VTBL_ENTRY _tg__ZTV5FF332__9GG1323323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN5FF3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+extern void ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF332__9GG1323323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF332__9GG1323323[] = {
+ ABISELECT(16,8),
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+static VTT_ENTRY vtt_GG1323323[] = {
+ {&(_ZTV9GG1323323[7]), 7,37},
+ {&(_ZTV9GG1323323[14]), 14,37},
+ {&(_ZTV9GG1323323[18]), 18,37},
+ {&(_ZTV9GG1323323[23]), 23,37},
+ {&(_ZTV9GG1323323[30]), 30,37},
+ {&(_ZTV9GG1323323[35]), 35,37},
+ {&(_tg__ZTV5EE132__9GG1323323[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE132__9GG1323323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE132__9GG1323323[4]), 4,6},
+ {&(_tg__ZTV5FF332__9GG1323323[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF332__9GG1323323[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF332__9GG1323323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1323323[];
+extern VTBL_ENTRY _ZTV9GG1323323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1323323[];
+static VTBL_ENTRY alt_thunk_names436[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13233233barEv,_ZTv0_n16_N9GG13233233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13233233barEv,_ZThn40_N9GG13233233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13233233barEv,_ZThn24_N9GG13233233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13233233fooEv,_ZTv0_n12_N9GG13233233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13233233fooEv,_ZThn40_N9GG13233233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13233233fooEv,_ZThn24_N9GG13233233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13233233fooEv,_ZThn16_N9GG13233233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13233233barEv,_ZTv0_n20_N9GG13233233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13233233barEv,_ZThn32_N9GG13233233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13233233barEv,_ZThn8_N9GG13233233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1323323 = { "GG1323323", // class name
+ bases_GG1323323, 5,
+ &(vtc_GG1323323[0]), // expected_vtbl_contents
+ &(vtt_GG1323323[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1323323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1323323),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1323323),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names436,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1323333 : virtual EE132 , virtual FF333 {
+ int pg;
+ virtual void foo(); // _ZN9GG13233333fooEv
+ virtual void bar(); // _ZN9GG13233333barEv
+ ~GG1323333(); // tgen
+ GG1323333(); // tgen
+};
+//SIG(1 GG1323333) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1323333 ::foo(){vfunc_called(this, "_ZN9GG13233333fooEv");}
+void GG1323333 ::bar(){vfunc_called(this, "_ZN9GG13233333barEv");}
+GG1323333 ::~GG1323333(){ note_dtor("GG1323333", this);} // tgen
+GG1323333 ::GG1323333(){ note_ctor("GG1323333", this);} // tgen
+
+static void Test_GG1323333()
+{
+ extern Class_Descriptor cd_GG1323333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1323333, buf);
+ GG1323333 *dp, &lv = *(dp=new (buf) GG1323333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1323333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1323333)");
+ check_base_class_offset(lv, (AA1*)(EE132*), ABISELECT(32,16), "GG1323333");
+ check_base_class_offset(lv, (BB3*)(EE132*), ABISELECT(48,24), "GG1323333");
+ check_base_class_offset(lv, (BB3*)(FF333*), ABISELECT(48,24), "GG1323333");
+ check_base_class_offset(lv, (EE132*), ABISELECT(16,8), "GG1323333");
+ check_base_class_offset(lv, (AA3*)(FF333*), ABISELECT(80,40), "GG1323333");
+ check_base_class_offset(lv, (FF333*), ABISELECT(64,32), "GG1323333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1323333.pg");
+ test_class_info(&lv, &cd_GG1323333);
+ dp->~GG1323333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1323333(Test_GG1323333, "GG1323333", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1323333C1Ev();
+extern void _ZN9GG1323333D1Ev();
+Name_Map name_map_GG1323333[] = {
+ NSPAIR(_ZN9GG1323333C1Ev),
+ NSPAIR(_ZN9GG1323333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE132;
+extern VTBL_ENTRY _ZTI5EE132[];
+extern VTBL_ENTRY _ZTV5EE132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE132[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF333;
+extern VTBL_ENTRY _ZTI5FF333[];
+extern VTBL_ENTRY _ZTV5FF333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF333[];
+static Base_Class bases_GG1323333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE132, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF333, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1323333[];
+extern void _ZN9GG13233333fooEv();
+extern void _ZN9GG13233333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13233333barEv,_ZTv0_n20_N9GG13233333barEv)();
+extern void ABISELECT(_ZThn16_N9GG13233333barEv,_ZThn8_N9GG13233333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13233333fooEv,_ZTv0_n12_N9GG13233333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13233333fooEv,_ZThn16_N9GG13233333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13233333fooEv,_ZTv0_n12_N9GG13233333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13233333fooEv,_ZThn24_N9GG13233333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13233333barEv,_ZTv0_n16_N9GG13233333barEv)();
+extern void ABISELECT(_ZThn48_N9GG13233333barEv,_ZThn24_N9GG13233333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13233333fooEv,_ZTv0_n20_N9GG13233333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13233333fooEv,_ZThn32_N9GG13233333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13233333barEv,_ZTv0_n24_N9GG13233333barEv)();
+extern void ABISELECT(_ZThn64_N9GG13233333barEv,_ZThn32_N9GG13233333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13233333fooEv,_ZTv0_n12_N9GG13233333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG13233333fooEv,_ZThn40_N9GG13233333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13233333barEv,_ZTv0_n16_N9GG13233333barEv)();
+extern void ABISELECT(_ZThn80_N9GG13233333barEv,_ZThn40_N9GG13233333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1323333[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1323333[0]),
+ (VTBL_ENTRY)&_ZN9GG13233333fooEv,
+ (VTBL_ENTRY)&_ZN9GG13233333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1323333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13233333barEv,_ZTv0_n20_N9GG13233333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1323333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13233333fooEv,_ZTv0_n12_N9GG13233333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1323333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13233333fooEv,_ZTv0_n12_N9GG13233333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13233333barEv,_ZTv0_n16_N9GG13233333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1323333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13233333fooEv,_ZTv0_n20_N9GG13233333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13233333barEv,_ZTv0_n24_N9GG13233333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1323333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13233333fooEv,_ZTv0_n12_N9GG13233333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13233333barEv,_ZTv0_n16_N9GG13233333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1323333[];
+extern void _ZN5EE1323barEv();
+static VTBL_ENTRY _tg__ZTV5EE132__9GG1323333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN5EE1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5EE132__9GG1323333[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv)();
+extern void ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE132__9GG1323333[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv),
+};
+extern void _ZN5FF3333fooEv();
+extern void _ZN5FF3333barEv();
+static VTBL_ENTRY _tg__ZTV5FF333__9GG1323333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&_ZN5FF3333fooEv,
+ (VTBL_ENTRY)&_ZN5FF3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+extern void ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF333__9GG1323333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF333__9GG1323333[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+static VTT_ENTRY vtt_GG1323333[] = {
+ {&(_ZTV9GG1323333[7]), 7,39},
+ {&(_ZTV9GG1323333[14]), 14,39},
+ {&(_ZTV9GG1323333[18]), 18,39},
+ {&(_ZTV9GG1323333[23]), 23,39},
+ {&(_ZTV9GG1323333[31]), 31,39},
+ {&(_ZTV9GG1323333[37]), 37,39},
+ {&(_tg__ZTV5EE132__9GG1323333[4]), 4,5},
+ {&(_tg__ZTV3AA1__5EE132__9GG1323333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE132__9GG1323333[4]), 4,6},
+ {&(_tg__ZTV5FF333__9GG1323333[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF333__9GG1323333[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF333__9GG1323333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1323333[];
+extern VTBL_ENTRY _ZTV9GG1323333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1323333[];
+static VTBL_ENTRY alt_thunk_names437[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1323barEv,_ZTv0_n16_N5EE1323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1323barEv,_ZThn16_N5EE1323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG13233333barEv,_ZTv0_n24_N9GG13233333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13233333barEv,_ZThn32_N9GG13233333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13233333fooEv,_ZTv0_n20_N9GG13233333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13233333fooEv,_ZThn32_N9GG13233333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13233333barEv,_ZTv0_n16_N9GG13233333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13233333barEv,_ZThn40_N9GG13233333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13233333barEv,_ZThn24_N9GG13233333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13233333fooEv,_ZTv0_n12_N9GG13233333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13233333fooEv,_ZThn40_N9GG13233333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13233333fooEv,_ZThn24_N9GG13233333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13233333fooEv,_ZThn16_N9GG13233333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13233333barEv,_ZTv0_n20_N9GG13233333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13233333barEv,_ZThn8_N9GG13233333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1323333 = { "GG1323333", // class name
+ bases_GG1323333, 5,
+ &(vtc_GG1323333[0]), // expected_vtbl_contents
+ &(vtt_GG1323333[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1323333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1323333),39, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1323333),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names437,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1331111 : virtual EE133 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG13311113fooEv
+ ~GG1331111(); // tgen
+ GG1331111(); // tgen
+};
+//SIG(1 GG1331111) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v1 Fi} v1 Fi}
+
+
+void GG1331111 ::foo(){vfunc_called(this, "_ZN9GG13311113fooEv");}
+GG1331111 ::~GG1331111(){ note_dtor("GG1331111", this);} // tgen
+GG1331111 ::GG1331111(){ note_ctor("GG1331111", this);} // tgen
+
+static void Test_GG1331111()
+{
+ extern Class_Descriptor cd_GG1331111;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1331111, buf);
+ GG1331111 *dp, &lv = *(dp=new (buf) GG1331111());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1331111)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1331111)");
+ check_base_class_offset(lv, (AA1*)(EE133*), ABISELECT(32,16), "GG1331111");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(32,16), "GG1331111");
+ check_base_class_offset(lv, (BB3*)(EE133*), ABISELECT(48,24), "GG1331111");
+ check_base_class_offset(lv, (EE133*), ABISELECT(16,8), "GG1331111");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(80,40), "GG1331111");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG1331111");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1331111.pg");
+ test_class_info(&lv, &cd_GG1331111);
+ dp->~GG1331111();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1331111(Test_GG1331111, "GG1331111", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1331111C1Ev();
+extern void _ZN9GG1331111D1Ev();
+Name_Map name_map_GG1331111[] = {
+ NSPAIR(_ZN9GG1331111C1Ev),
+ NSPAIR(_ZN9GG1331111D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE133;
+extern VTBL_ENTRY _ZTI5EE133[];
+extern VTBL_ENTRY _ZTV5EE133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE133[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG1331111[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE133, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1331111[];
+extern void _ZN9GG13311113fooEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13311113fooEv,_ZTv0_n20_N9GG13311113fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13311113fooEv,_ZThn8_N9GG13311113fooEv)() __attribute__((weak));
+extern void _ZN5EE1333barEv();
+extern void ABISELECT(_ZTv0_n24_N9GG13311113fooEv,_ZTv0_n12_N9GG13311113fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13311113fooEv,_ZThn16_N9GG13311113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13311113fooEv,_ZTv0_n12_N9GG13311113fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13311113fooEv,_ZThn24_N9GG13311113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv)();
+extern void ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13311113fooEv,_ZTv0_n20_N9GG13311113fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13311113fooEv,_ZThn32_N9GG13311113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13311113fooEv,_ZTv0_n12_N9GG13311113fooEv)();
+extern void ABISELECT(_ZThn80_N9GG13311113fooEv,_ZThn40_N9GG13311113fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1331111[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1331111[0]),
+ (VTBL_ENTRY)&_ZN9GG13311113fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1331111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13311113fooEv,_ZTv0_n20_N9GG13311113fooEv),
+ (VTBL_ENTRY)&_ZN5EE1333barEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1331111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13311113fooEv,_ZTv0_n12_N9GG13311113fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1331111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13311113fooEv,_ZTv0_n12_N9GG13311113fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1331111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13311113fooEv,_ZTv0_n20_N9GG13311113fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1331111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13311113fooEv,_ZTv0_n12_N9GG13311113fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1331111[];
+extern void _ZN5EE1333fooEv();
+extern void _ZN5EE1333barEv();
+static VTBL_ENTRY _tg__ZTV5EE133__9GG1331111[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&_ZN5EE1333fooEv,
+ (VTBL_ENTRY)&_ZN5EE1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE133__9GG1331111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv)();
+extern void ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE133__9GG1331111[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv),
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG1331111[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG1331111[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG1331111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG1331111[] = {
+ {&(_ZTV9GG1331111[7]), 7,36},
+ {&(_ZTV9GG1331111[14]), 14,36},
+ {&(_ZTV9GG1331111[19]), 19,36},
+ {&(_ZTV9GG1331111[24]), 24,36},
+ {&(_ZTV9GG1331111[31]), 31,36},
+ {&(_ZTV9GG1331111[35]), 35,36},
+ {&(_tg__ZTV5EE133__9GG1331111[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE133__9GG1331111[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE133__9GG1331111[4]), 4,6},
+ {&(_tg__ZTV5FF111__9GG1331111[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG1331111[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG1331111[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1331111[];
+extern VTBL_ENTRY _ZTV9GG1331111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1331111[];
+static VTBL_ENTRY alt_thunk_names438[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13311113fooEv,_ZTv0_n12_N9GG13311113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13311113fooEv,_ZThn40_N9GG13311113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13311113fooEv,_ZThn24_N9GG13311113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13311113fooEv,_ZThn16_N9GG13311113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13311113fooEv,_ZTv0_n20_N9GG13311113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13311113fooEv,_ZThn32_N9GG13311113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13311113fooEv,_ZThn8_N9GG13311113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1331111 = { "GG1331111", // class name
+ bases_GG1331111, 5,
+ &(vtc_GG1331111[0]), // expected_vtbl_contents
+ &(vtt_GG1331111[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1331111),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1331111),36, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1331111),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names438,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1331113 : virtual EE133 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG13311133fooEv
+ virtual void bar(); // _ZN9GG13311133barEv
+ ~GG1331113(); // tgen
+ GG1331113(); // tgen
+};
+//SIG(1 GG1331113) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1331113 ::foo(){vfunc_called(this, "_ZN9GG13311133fooEv");}
+void GG1331113 ::bar(){vfunc_called(this, "_ZN9GG13311133barEv");}
+GG1331113 ::~GG1331113(){ note_dtor("GG1331113", this);} // tgen
+GG1331113 ::GG1331113(){ note_ctor("GG1331113", this);} // tgen
+
+static void Test_GG1331113()
+{
+ extern Class_Descriptor cd_GG1331113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1331113, buf);
+ GG1331113 *dp, &lv = *(dp=new (buf) GG1331113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1331113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1331113)");
+ check_base_class_offset(lv, (AA1*)(EE133*), ABISELECT(32,16), "GG1331113");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(32,16), "GG1331113");
+ check_base_class_offset(lv, (BB3*)(EE133*), ABISELECT(48,24), "GG1331113");
+ check_base_class_offset(lv, (EE133*), ABISELECT(16,8), "GG1331113");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(80,40), "GG1331113");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG1331113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1331113.pg");
+ test_class_info(&lv, &cd_GG1331113);
+ dp->~GG1331113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1331113(Test_GG1331113, "GG1331113", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1331113C1Ev();
+extern void _ZN9GG1331113D1Ev();
+Name_Map name_map_GG1331113[] = {
+ NSPAIR(_ZN9GG1331113C1Ev),
+ NSPAIR(_ZN9GG1331113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE133;
+extern VTBL_ENTRY _ZTI5EE133[];
+extern VTBL_ENTRY _ZTV5EE133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE133[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG1331113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE133, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1331113[];
+extern void _ZN9GG13311133fooEv();
+extern void _ZN9GG13311133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13311133fooEv,_ZTv0_n20_N9GG13311133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13311133fooEv,_ZThn8_N9GG13311133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13311133barEv,_ZTv0_n24_N9GG13311133barEv)();
+extern void ABISELECT(_ZThn16_N9GG13311133barEv,_ZThn8_N9GG13311133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13311133fooEv,_ZTv0_n12_N9GG13311133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13311133fooEv,_ZThn16_N9GG13311133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13311133fooEv,_ZTv0_n12_N9GG13311133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13311133fooEv,_ZThn24_N9GG13311133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13311133barEv,_ZTv0_n16_N9GG13311133barEv)();
+extern void ABISELECT(_ZThn48_N9GG13311133barEv,_ZThn24_N9GG13311133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13311133fooEv,_ZTv0_n20_N9GG13311133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13311133fooEv,_ZThn32_N9GG13311133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13311133fooEv,_ZTv0_n12_N9GG13311133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG13311133fooEv,_ZThn40_N9GG13311133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1331113[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1331113[0]),
+ (VTBL_ENTRY)&_ZN9GG13311133fooEv,
+ (VTBL_ENTRY)&_ZN9GG13311133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1331113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13311133fooEv,_ZTv0_n20_N9GG13311133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13311133barEv,_ZTv0_n24_N9GG13311133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1331113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13311133fooEv,_ZTv0_n12_N9GG13311133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1331113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13311133fooEv,_ZTv0_n12_N9GG13311133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13311133barEv,_ZTv0_n16_N9GG13311133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1331113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13311133fooEv,_ZTv0_n20_N9GG13311133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1331113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13311133fooEv,_ZTv0_n12_N9GG13311133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1331113[];
+extern void _ZN5EE1333fooEv();
+extern void _ZN5EE1333barEv();
+static VTBL_ENTRY _tg__ZTV5EE133__9GG1331113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&_ZN5EE1333fooEv,
+ (VTBL_ENTRY)&_ZN5EE1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE133__9GG1331113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv)();
+extern void ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE133__9GG1331113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv),
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG1331113[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG1331113[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG1331113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG1331113[] = {
+ {&(_ZTV9GG1331113[7]), 7,37},
+ {&(_ZTV9GG1331113[15]), 15,37},
+ {&(_ZTV9GG1331113[20]), 20,37},
+ {&(_ZTV9GG1331113[25]), 25,37},
+ {&(_ZTV9GG1331113[32]), 32,37},
+ {&(_ZTV9GG1331113[36]), 36,37},
+ {&(_tg__ZTV5EE133__9GG1331113[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE133__9GG1331113[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE133__9GG1331113[4]), 4,6},
+ {&(_tg__ZTV5FF111__9GG1331113[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG1331113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG1331113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1331113[];
+extern VTBL_ENTRY _ZTV9GG1331113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1331113[];
+static VTBL_ENTRY alt_thunk_names439[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13311133barEv,_ZTv0_n16_N9GG13311133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13311133barEv,_ZThn24_N9GG13311133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13311133fooEv,_ZTv0_n12_N9GG13311133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13311133fooEv,_ZThn40_N9GG13311133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13311133fooEv,_ZThn24_N9GG13311133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13311133fooEv,_ZThn16_N9GG13311133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG13311133barEv,_ZTv0_n24_N9GG13311133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13311133barEv,_ZThn8_N9GG13311133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13311133fooEv,_ZTv0_n20_N9GG13311133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13311133fooEv,_ZThn32_N9GG13311133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13311133fooEv,_ZThn8_N9GG13311133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1331113 = { "GG1331113", // class name
+ bases_GG1331113, 5,
+ &(vtc_GG1331113[0]), // expected_vtbl_contents
+ &(vtt_GG1331113[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1331113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1331113),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1331113),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names439,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1331123 : virtual EE133 , virtual FF112 {
+ int pg;
+ virtual void foo(); // _ZN9GG13311233fooEv
+ virtual void bar(); // _ZN9GG13311233barEv
+ ~GG1331123(); // tgen
+ GG1331123(); // tgen
+};
+//SIG(1 GG1331123) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1331123 ::foo(){vfunc_called(this, "_ZN9GG13311233fooEv");}
+void GG1331123 ::bar(){vfunc_called(this, "_ZN9GG13311233barEv");}
+GG1331123 ::~GG1331123(){ note_dtor("GG1331123", this);} // tgen
+GG1331123 ::GG1331123(){ note_ctor("GG1331123", this);} // tgen
+
+static void Test_GG1331123()
+{
+ extern Class_Descriptor cd_GG1331123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1331123, buf);
+ GG1331123 *dp, &lv = *(dp=new (buf) GG1331123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1331123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1331123)");
+ check_base_class_offset(lv, (AA1*)(EE133*), ABISELECT(32,16), "GG1331123");
+ check_base_class_offset(lv, (AA1*)(FF112*), ABISELECT(32,16), "GG1331123");
+ check_base_class_offset(lv, (BB3*)(EE133*), ABISELECT(48,24), "GG1331123");
+ check_base_class_offset(lv, (EE133*), ABISELECT(16,8), "GG1331123");
+ check_base_class_offset(lv, (BB1*)(FF112*), ABISELECT(80,40), "GG1331123");
+ check_base_class_offset(lv, (FF112*), ABISELECT(64,32), "GG1331123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1331123.pg");
+ test_class_info(&lv, &cd_GG1331123);
+ dp->~GG1331123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1331123(Test_GG1331123, "GG1331123", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1331123C1Ev();
+extern void _ZN9GG1331123D1Ev();
+Name_Map name_map_GG1331123[] = {
+ NSPAIR(_ZN9GG1331123C1Ev),
+ NSPAIR(_ZN9GG1331123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE133;
+extern VTBL_ENTRY _ZTI5EE133[];
+extern VTBL_ENTRY _ZTV5EE133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE133[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF112;
+extern VTBL_ENTRY _ZTI5FF112[];
+extern VTBL_ENTRY _ZTV5FF112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF112[];
+static Base_Class bases_GG1331123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE133, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF112, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1331123[];
+extern void _ZN9GG13311233fooEv();
+extern void _ZN9GG13311233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13311233fooEv,_ZTv0_n20_N9GG13311233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13311233fooEv,_ZThn8_N9GG13311233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13311233barEv,_ZTv0_n24_N9GG13311233barEv)();
+extern void ABISELECT(_ZThn16_N9GG13311233barEv,_ZThn8_N9GG13311233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13311233fooEv,_ZTv0_n12_N9GG13311233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13311233fooEv,_ZThn16_N9GG13311233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13311233fooEv,_ZTv0_n12_N9GG13311233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13311233fooEv,_ZThn24_N9GG13311233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13311233barEv,_ZTv0_n16_N9GG13311233barEv)();
+extern void ABISELECT(_ZThn48_N9GG13311233barEv,_ZThn24_N9GG13311233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13311233barEv,_ZTv0_n20_N9GG13311233barEv)();
+extern void ABISELECT(_ZThn64_N9GG13311233barEv,_ZThn32_N9GG13311233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13311233fooEv,_ZTv0_n12_N9GG13311233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG13311233fooEv,_ZThn40_N9GG13311233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1331123[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1331123[0]),
+ (VTBL_ENTRY)&_ZN9GG13311233fooEv,
+ (VTBL_ENTRY)&_ZN9GG13311233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1331123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13311233fooEv,_ZTv0_n20_N9GG13311233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13311233barEv,_ZTv0_n24_N9GG13311233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1331123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13311233fooEv,_ZTv0_n12_N9GG13311233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1331123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13311233fooEv,_ZTv0_n12_N9GG13311233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13311233barEv,_ZTv0_n16_N9GG13311233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1331123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13311233barEv,_ZTv0_n20_N9GG13311233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1331123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13311233fooEv,_ZTv0_n12_N9GG13311233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1331123[];
+extern void _ZN5EE1333fooEv();
+extern void _ZN5EE1333barEv();
+static VTBL_ENTRY _tg__ZTV5EE133__9GG1331123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&_ZN5EE1333fooEv,
+ (VTBL_ENTRY)&_ZN5EE1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE133__9GG1331123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv)();
+extern void ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE133__9GG1331123[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv),
+};
+extern void _ZN5FF1123barEv();
+static VTBL_ENTRY _tg__ZTV5FF112__9GG1331123[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN5FF1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF112__9GG1331123[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF112__9GG1331123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG1331123[] = {
+ {&(_ZTV9GG1331123[7]), 7,37},
+ {&(_ZTV9GG1331123[15]), 15,37},
+ {&(_ZTV9GG1331123[20]), 20,37},
+ {&(_ZTV9GG1331123[25]), 25,37},
+ {&(_ZTV9GG1331123[32]), 32,37},
+ {&(_ZTV9GG1331123[36]), 36,37},
+ {&(_tg__ZTV5EE133__9GG1331123[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE133__9GG1331123[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE133__9GG1331123[4]), 4,6},
+ {&(_tg__ZTV5FF112__9GG1331123[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF112__9GG1331123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF112__9GG1331123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1331123[];
+extern VTBL_ENTRY _ZTV9GG1331123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1331123[];
+static VTBL_ENTRY alt_thunk_names440[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13311233barEv,_ZTv0_n20_N9GG13311233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13311233barEv,_ZThn32_N9GG13311233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13311233barEv,_ZTv0_n16_N9GG13311233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13311233barEv,_ZThn24_N9GG13311233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13311233fooEv,_ZTv0_n12_N9GG13311233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13311233fooEv,_ZThn40_N9GG13311233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13311233fooEv,_ZThn24_N9GG13311233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13311233fooEv,_ZThn16_N9GG13311233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG13311233barEv,_ZTv0_n24_N9GG13311233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13311233barEv,_ZThn8_N9GG13311233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13311233fooEv,_ZTv0_n20_N9GG13311233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13311233fooEv,_ZThn8_N9GG13311233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1331123 = { "GG1331123", // class name
+ bases_GG1331123, 5,
+ &(vtc_GG1331123[0]), // expected_vtbl_contents
+ &(vtt_GG1331123[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1331123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1331123),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1331123),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names440,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1331133 : virtual EE133 , virtual FF113 {
+ int pg;
+ virtual void foo(); // _ZN9GG13311333fooEv
+ virtual void bar(); // _ZN9GG13311333barEv
+ ~GG1331133(); // tgen
+ GG1331133(); // tgen
+};
+//SIG(1 GG1331133) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1331133 ::foo(){vfunc_called(this, "_ZN9GG13311333fooEv");}
+void GG1331133 ::bar(){vfunc_called(this, "_ZN9GG13311333barEv");}
+GG1331133 ::~GG1331133(){ note_dtor("GG1331133", this);} // tgen
+GG1331133 ::GG1331133(){ note_ctor("GG1331133", this);} // tgen
+
+static void Test_GG1331133()
+{
+ extern Class_Descriptor cd_GG1331133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1331133, buf);
+ GG1331133 *dp, &lv = *(dp=new (buf) GG1331133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1331133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1331133)");
+ check_base_class_offset(lv, (AA1*)(EE133*), ABISELECT(32,16), "GG1331133");
+ check_base_class_offset(lv, (AA1*)(FF113*), ABISELECT(32,16), "GG1331133");
+ check_base_class_offset(lv, (BB3*)(EE133*), ABISELECT(48,24), "GG1331133");
+ check_base_class_offset(lv, (EE133*), ABISELECT(16,8), "GG1331133");
+ check_base_class_offset(lv, (BB1*)(FF113*), ABISELECT(80,40), "GG1331133");
+ check_base_class_offset(lv, (FF113*), ABISELECT(64,32), "GG1331133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1331133.pg");
+ test_class_info(&lv, &cd_GG1331133);
+ dp->~GG1331133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1331133(Test_GG1331133, "GG1331133", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1331133C1Ev();
+extern void _ZN9GG1331133D1Ev();
+Name_Map name_map_GG1331133[] = {
+ NSPAIR(_ZN9GG1331133C1Ev),
+ NSPAIR(_ZN9GG1331133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE133;
+extern VTBL_ENTRY _ZTI5EE133[];
+extern VTBL_ENTRY _ZTV5EE133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE133[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF113;
+extern VTBL_ENTRY _ZTI5FF113[];
+extern VTBL_ENTRY _ZTV5FF113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF113[];
+static Base_Class bases_GG1331133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE133, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF113, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1331133[];
+extern void _ZN9GG13311333fooEv();
+extern void _ZN9GG13311333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13311333fooEv,_ZTv0_n20_N9GG13311333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13311333fooEv,_ZThn8_N9GG13311333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13311333barEv,_ZTv0_n24_N9GG13311333barEv)();
+extern void ABISELECT(_ZThn16_N9GG13311333barEv,_ZThn8_N9GG13311333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13311333fooEv,_ZTv0_n12_N9GG13311333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13311333fooEv,_ZThn16_N9GG13311333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13311333fooEv,_ZTv0_n12_N9GG13311333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13311333fooEv,_ZThn24_N9GG13311333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13311333barEv,_ZTv0_n16_N9GG13311333barEv)();
+extern void ABISELECT(_ZThn48_N9GG13311333barEv,_ZThn24_N9GG13311333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13311333fooEv,_ZTv0_n20_N9GG13311333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13311333fooEv,_ZThn32_N9GG13311333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13311333barEv,_ZTv0_n24_N9GG13311333barEv)();
+extern void ABISELECT(_ZThn64_N9GG13311333barEv,_ZThn32_N9GG13311333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13311333fooEv,_ZTv0_n12_N9GG13311333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG13311333fooEv,_ZThn40_N9GG13311333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1331133[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1331133[0]),
+ (VTBL_ENTRY)&_ZN9GG13311333fooEv,
+ (VTBL_ENTRY)&_ZN9GG13311333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1331133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13311333fooEv,_ZTv0_n20_N9GG13311333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13311333barEv,_ZTv0_n24_N9GG13311333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1331133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13311333fooEv,_ZTv0_n12_N9GG13311333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1331133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13311333fooEv,_ZTv0_n12_N9GG13311333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13311333barEv,_ZTv0_n16_N9GG13311333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1331133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13311333fooEv,_ZTv0_n20_N9GG13311333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13311333barEv,_ZTv0_n24_N9GG13311333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1331133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13311333fooEv,_ZTv0_n12_N9GG13311333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1331133[];
+extern void _ZN5EE1333fooEv();
+extern void _ZN5EE1333barEv();
+static VTBL_ENTRY _tg__ZTV5EE133__9GG1331133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&_ZN5EE1333fooEv,
+ (VTBL_ENTRY)&_ZN5EE1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE133__9GG1331133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv)();
+extern void ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE133__9GG1331133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv),
+};
+extern void _ZN5FF1133fooEv();
+extern void _ZN5FF1133barEv();
+static VTBL_ENTRY _tg__ZTV5FF113__9GG1331133[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&_ZN5FF1133fooEv,
+ (VTBL_ENTRY)&_ZN5FF1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF113__9GG1331133[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF113__9GG1331133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+static VTT_ENTRY vtt_GG1331133[] = {
+ {&(_ZTV9GG1331133[7]), 7,39},
+ {&(_ZTV9GG1331133[15]), 15,39},
+ {&(_ZTV9GG1331133[20]), 20,39},
+ {&(_ZTV9GG1331133[25]), 25,39},
+ {&(_ZTV9GG1331133[33]), 33,39},
+ {&(_ZTV9GG1331133[38]), 38,39},
+ {&(_tg__ZTV5EE133__9GG1331133[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE133__9GG1331133[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE133__9GG1331133[4]), 4,6},
+ {&(_tg__ZTV5FF113__9GG1331133[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF113__9GG1331133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF113__9GG1331133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1331133[];
+extern VTBL_ENTRY _ZTV9GG1331133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1331133[];
+static VTBL_ENTRY alt_thunk_names441[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13311333barEv,_ZTv0_n16_N9GG13311333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13311333barEv,_ZThn24_N9GG13311333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13311333fooEv,_ZTv0_n12_N9GG13311333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13311333fooEv,_ZThn40_N9GG13311333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13311333fooEv,_ZThn24_N9GG13311333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13311333fooEv,_ZThn16_N9GG13311333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG13311333barEv,_ZTv0_n24_N9GG13311333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13311333barEv,_ZThn32_N9GG13311333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13311333barEv,_ZThn8_N9GG13311333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13311333fooEv,_ZTv0_n20_N9GG13311333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13311333fooEv,_ZThn32_N9GG13311333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13311333fooEv,_ZThn8_N9GG13311333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1331133 = { "GG1331133", // class name
+ bases_GG1331133, 5,
+ &(vtc_GG1331133[0]), // expected_vtbl_contents
+ &(vtt_GG1331133[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1331133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1331133),39, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1331133),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names441,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1331213 : virtual EE133 , virtual FF121 {
+ int pg;
+ virtual void foo(); // _ZN9GG13312133fooEv
+ virtual void bar(); // _ZN9GG13312133barEv
+ ~GG1331213(); // tgen
+ GG1331213(); // tgen
+};
+//SIG(1 GG1331213) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1331213 ::foo(){vfunc_called(this, "_ZN9GG13312133fooEv");}
+void GG1331213 ::bar(){vfunc_called(this, "_ZN9GG13312133barEv");}
+GG1331213 ::~GG1331213(){ note_dtor("GG1331213", this);} // tgen
+GG1331213 ::GG1331213(){ note_ctor("GG1331213", this);} // tgen
+
+static void Test_GG1331213()
+{
+ extern Class_Descriptor cd_GG1331213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1331213, buf);
+ GG1331213 *dp, &lv = *(dp=new (buf) GG1331213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1331213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1331213)");
+ check_base_class_offset(lv, (AA1*)(EE133*), ABISELECT(32,16), "GG1331213");
+ check_base_class_offset(lv, (AA1*)(FF121*), ABISELECT(32,16), "GG1331213");
+ check_base_class_offset(lv, (BB3*)(EE133*), ABISELECT(48,24), "GG1331213");
+ check_base_class_offset(lv, (EE133*), ABISELECT(16,8), "GG1331213");
+ check_base_class_offset(lv, (BB2*)(FF121*), ABISELECT(80,40), "GG1331213");
+ check_base_class_offset(lv, (FF121*), ABISELECT(64,32), "GG1331213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1331213.pg");
+ test_class_info(&lv, &cd_GG1331213);
+ dp->~GG1331213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1331213(Test_GG1331213, "GG1331213", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1331213C1Ev();
+extern void _ZN9GG1331213D1Ev();
+Name_Map name_map_GG1331213[] = {
+ NSPAIR(_ZN9GG1331213C1Ev),
+ NSPAIR(_ZN9GG1331213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE133;
+extern VTBL_ENTRY _ZTI5EE133[];
+extern VTBL_ENTRY _ZTV5EE133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE133[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF121;
+extern VTBL_ENTRY _ZTI5FF121[];
+extern VTBL_ENTRY _ZTV5FF121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF121[];
+static Base_Class bases_GG1331213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE133, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF121, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1331213[];
+extern void _ZN9GG13312133fooEv();
+extern void _ZN9GG13312133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13312133fooEv,_ZTv0_n20_N9GG13312133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13312133fooEv,_ZThn8_N9GG13312133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13312133barEv,_ZTv0_n24_N9GG13312133barEv)();
+extern void ABISELECT(_ZThn16_N9GG13312133barEv,_ZThn8_N9GG13312133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13312133fooEv,_ZTv0_n12_N9GG13312133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13312133fooEv,_ZThn16_N9GG13312133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13312133fooEv,_ZTv0_n12_N9GG13312133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13312133fooEv,_ZThn24_N9GG13312133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13312133barEv,_ZTv0_n16_N9GG13312133barEv)();
+extern void ABISELECT(_ZThn48_N9GG13312133barEv,_ZThn24_N9GG13312133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13312133fooEv,_ZTv0_n20_N9GG13312133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13312133fooEv,_ZThn32_N9GG13312133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13312133barEv,_ZTv0_n12_N9GG13312133barEv)();
+extern void ABISELECT(_ZThn80_N9GG13312133barEv,_ZThn40_N9GG13312133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1331213[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1331213[0]),
+ (VTBL_ENTRY)&_ZN9GG13312133fooEv,
+ (VTBL_ENTRY)&_ZN9GG13312133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1331213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13312133fooEv,_ZTv0_n20_N9GG13312133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13312133barEv,_ZTv0_n24_N9GG13312133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1331213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13312133fooEv,_ZTv0_n12_N9GG13312133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1331213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13312133fooEv,_ZTv0_n12_N9GG13312133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13312133barEv,_ZTv0_n16_N9GG13312133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1331213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13312133fooEv,_ZTv0_n20_N9GG13312133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1331213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13312133barEv,_ZTv0_n12_N9GG13312133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1331213[];
+extern void _ZN5EE1333fooEv();
+extern void _ZN5EE1333barEv();
+static VTBL_ENTRY _tg__ZTV5EE133__9GG1331213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&_ZN5EE1333fooEv,
+ (VTBL_ENTRY)&_ZN5EE1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE133__9GG1331213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv)();
+extern void ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE133__9GG1331213[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv),
+};
+extern void _ZN5FF1213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF121__9GG1331213[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN5FF1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF121__9GG1331213[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF121__9GG1331213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG1331213[] = {
+ {&(_ZTV9GG1331213[7]), 7,37},
+ {&(_ZTV9GG1331213[15]), 15,37},
+ {&(_ZTV9GG1331213[20]), 20,37},
+ {&(_ZTV9GG1331213[25]), 25,37},
+ {&(_ZTV9GG1331213[32]), 32,37},
+ {&(_ZTV9GG1331213[36]), 36,37},
+ {&(_tg__ZTV5EE133__9GG1331213[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE133__9GG1331213[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE133__9GG1331213[4]), 4,6},
+ {&(_tg__ZTV5FF121__9GG1331213[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF121__9GG1331213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF121__9GG1331213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1331213[];
+extern VTBL_ENTRY _ZTV9GG1331213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1331213[];
+static VTBL_ENTRY alt_thunk_names442[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13312133barEv,_ZTv0_n12_N9GG13312133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13312133barEv,_ZThn40_N9GG13312133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13312133barEv,_ZTv0_n16_N9GG13312133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13312133barEv,_ZThn24_N9GG13312133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13312133fooEv,_ZTv0_n12_N9GG13312133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13312133fooEv,_ZThn24_N9GG13312133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13312133fooEv,_ZThn16_N9GG13312133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG13312133barEv,_ZTv0_n24_N9GG13312133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13312133barEv,_ZThn8_N9GG13312133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13312133fooEv,_ZTv0_n20_N9GG13312133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13312133fooEv,_ZThn32_N9GG13312133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13312133fooEv,_ZThn8_N9GG13312133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1331213 = { "GG1331213", // class name
+ bases_GG1331213, 5,
+ &(vtc_GG1331213[0]), // expected_vtbl_contents
+ &(vtt_GG1331213[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1331213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1331213),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1331213),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names442,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1331223 : virtual EE133 , virtual FF122 {
+ int pg;
+ virtual void foo(); // _ZN9GG13312233fooEv
+ virtual void bar(); // _ZN9GG13312233barEv
+ ~GG1331223(); // tgen
+ GG1331223(); // tgen
+};
+//SIG(1 GG1331223) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1331223 ::foo(){vfunc_called(this, "_ZN9GG13312233fooEv");}
+void GG1331223 ::bar(){vfunc_called(this, "_ZN9GG13312233barEv");}
+GG1331223 ::~GG1331223(){ note_dtor("GG1331223", this);} // tgen
+GG1331223 ::GG1331223(){ note_ctor("GG1331223", this);} // tgen
+
+static void Test_GG1331223()
+{
+ extern Class_Descriptor cd_GG1331223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1331223, buf);
+ GG1331223 *dp, &lv = *(dp=new (buf) GG1331223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1331223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1331223)");
+ check_base_class_offset(lv, (AA1*)(EE133*), ABISELECT(32,16), "GG1331223");
+ check_base_class_offset(lv, (AA1*)(FF122*), ABISELECT(32,16), "GG1331223");
+ check_base_class_offset(lv, (BB3*)(EE133*), ABISELECT(48,24), "GG1331223");
+ check_base_class_offset(lv, (EE133*), ABISELECT(16,8), "GG1331223");
+ check_base_class_offset(lv, (BB2*)(FF122*), ABISELECT(80,40), "GG1331223");
+ check_base_class_offset(lv, (FF122*), ABISELECT(64,32), "GG1331223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1331223.pg");
+ test_class_info(&lv, &cd_GG1331223);
+ dp->~GG1331223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1331223(Test_GG1331223, "GG1331223", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1331223C1Ev();
+extern void _ZN9GG1331223D1Ev();
+Name_Map name_map_GG1331223[] = {
+ NSPAIR(_ZN9GG1331223C1Ev),
+ NSPAIR(_ZN9GG1331223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE133;
+extern VTBL_ENTRY _ZTI5EE133[];
+extern VTBL_ENTRY _ZTV5EE133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE133[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF122;
+extern VTBL_ENTRY _ZTI5FF122[];
+extern VTBL_ENTRY _ZTV5FF122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF122[];
+static Base_Class bases_GG1331223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE133, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF122, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1331223[];
+extern void _ZN9GG13312233fooEv();
+extern void _ZN9GG13312233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13312233fooEv,_ZTv0_n20_N9GG13312233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13312233fooEv,_ZThn8_N9GG13312233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13312233barEv,_ZTv0_n24_N9GG13312233barEv)();
+extern void ABISELECT(_ZThn16_N9GG13312233barEv,_ZThn8_N9GG13312233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13312233fooEv,_ZTv0_n12_N9GG13312233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13312233fooEv,_ZThn16_N9GG13312233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13312233fooEv,_ZTv0_n12_N9GG13312233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13312233fooEv,_ZThn24_N9GG13312233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13312233barEv,_ZTv0_n16_N9GG13312233barEv)();
+extern void ABISELECT(_ZThn48_N9GG13312233barEv,_ZThn24_N9GG13312233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13312233barEv,_ZTv0_n20_N9GG13312233barEv)();
+extern void ABISELECT(_ZThn64_N9GG13312233barEv,_ZThn32_N9GG13312233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13312233barEv,_ZTv0_n12_N9GG13312233barEv)();
+extern void ABISELECT(_ZThn80_N9GG13312233barEv,_ZThn40_N9GG13312233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1331223[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1331223[0]),
+ (VTBL_ENTRY)&_ZN9GG13312233fooEv,
+ (VTBL_ENTRY)&_ZN9GG13312233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1331223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13312233fooEv,_ZTv0_n20_N9GG13312233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13312233barEv,_ZTv0_n24_N9GG13312233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1331223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13312233fooEv,_ZTv0_n12_N9GG13312233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1331223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13312233fooEv,_ZTv0_n12_N9GG13312233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13312233barEv,_ZTv0_n16_N9GG13312233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1331223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13312233barEv,_ZTv0_n20_N9GG13312233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1331223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13312233barEv,_ZTv0_n12_N9GG13312233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1331223[];
+extern void _ZN5EE1333fooEv();
+extern void _ZN5EE1333barEv();
+static VTBL_ENTRY _tg__ZTV5EE133__9GG1331223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&_ZN5EE1333fooEv,
+ (VTBL_ENTRY)&_ZN5EE1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE133__9GG1331223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv)();
+extern void ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE133__9GG1331223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv),
+};
+extern void _ZN5FF1223barEv();
+static VTBL_ENTRY _tg__ZTV5FF122__9GG1331223[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN5FF1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF122__9GG1331223[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv)();
+extern void ABISELECT(_ZThn16_N5FF1223barEv,_ZThn8_N5FF1223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF122__9GG1331223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv),
+};
+static VTT_ENTRY vtt_GG1331223[] = {
+ {&(_ZTV9GG1331223[7]), 7,37},
+ {&(_ZTV9GG1331223[15]), 15,37},
+ {&(_ZTV9GG1331223[20]), 20,37},
+ {&(_ZTV9GG1331223[25]), 25,37},
+ {&(_ZTV9GG1331223[32]), 32,37},
+ {&(_ZTV9GG1331223[36]), 36,37},
+ {&(_tg__ZTV5EE133__9GG1331223[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE133__9GG1331223[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE133__9GG1331223[4]), 4,6},
+ {&(_tg__ZTV5FF122__9GG1331223[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF122__9GG1331223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF122__9GG1331223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1331223[];
+extern VTBL_ENTRY _ZTV9GG1331223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1331223[];
+static VTBL_ENTRY alt_thunk_names443[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1223barEv,_ZThn8_N5FF1223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13312233barEv,_ZTv0_n12_N9GG13312233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13312233barEv,_ZThn40_N9GG13312233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13312233barEv,_ZTv0_n20_N9GG13312233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13312233barEv,_ZThn32_N9GG13312233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13312233barEv,_ZTv0_n16_N9GG13312233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13312233barEv,_ZThn24_N9GG13312233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13312233fooEv,_ZTv0_n12_N9GG13312233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13312233fooEv,_ZThn24_N9GG13312233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13312233fooEv,_ZThn16_N9GG13312233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG13312233barEv,_ZTv0_n24_N9GG13312233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13312233barEv,_ZThn8_N9GG13312233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13312233fooEv,_ZTv0_n20_N9GG13312233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13312233fooEv,_ZThn8_N9GG13312233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1331223 = { "GG1331223", // class name
+ bases_GG1331223, 5,
+ &(vtc_GG1331223[0]), // expected_vtbl_contents
+ &(vtt_GG1331223[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1331223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1331223),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1331223),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names443,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1331233 : virtual EE133 , virtual FF123 {
+ int pg;
+ virtual void foo(); // _ZN9GG13312333fooEv
+ virtual void bar(); // _ZN9GG13312333barEv
+ ~GG1331233(); // tgen
+ GG1331233(); // tgen
+};
+//SIG(1 GG1331233) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1331233 ::foo(){vfunc_called(this, "_ZN9GG13312333fooEv");}
+void GG1331233 ::bar(){vfunc_called(this, "_ZN9GG13312333barEv");}
+GG1331233 ::~GG1331233(){ note_dtor("GG1331233", this);} // tgen
+GG1331233 ::GG1331233(){ note_ctor("GG1331233", this);} // tgen
+
+static void Test_GG1331233()
+{
+ extern Class_Descriptor cd_GG1331233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1331233, buf);
+ GG1331233 *dp, &lv = *(dp=new (buf) GG1331233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1331233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1331233)");
+ check_base_class_offset(lv, (AA1*)(EE133*), ABISELECT(32,16), "GG1331233");
+ check_base_class_offset(lv, (AA1*)(FF123*), ABISELECT(32,16), "GG1331233");
+ check_base_class_offset(lv, (BB3*)(EE133*), ABISELECT(48,24), "GG1331233");
+ check_base_class_offset(lv, (EE133*), ABISELECT(16,8), "GG1331233");
+ check_base_class_offset(lv, (BB2*)(FF123*), ABISELECT(80,40), "GG1331233");
+ check_base_class_offset(lv, (FF123*), ABISELECT(64,32), "GG1331233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1331233.pg");
+ test_class_info(&lv, &cd_GG1331233);
+ dp->~GG1331233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1331233(Test_GG1331233, "GG1331233", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1331233C1Ev();
+extern void _ZN9GG1331233D1Ev();
+Name_Map name_map_GG1331233[] = {
+ NSPAIR(_ZN9GG1331233C1Ev),
+ NSPAIR(_ZN9GG1331233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE133;
+extern VTBL_ENTRY _ZTI5EE133[];
+extern VTBL_ENTRY _ZTV5EE133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE133[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF123;
+extern VTBL_ENTRY _ZTI5FF123[];
+extern VTBL_ENTRY _ZTV5FF123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF123[];
+static Base_Class bases_GG1331233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE133, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF123, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1331233[];
+extern void _ZN9GG13312333fooEv();
+extern void _ZN9GG13312333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13312333fooEv,_ZTv0_n20_N9GG13312333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13312333fooEv,_ZThn8_N9GG13312333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13312333barEv,_ZTv0_n24_N9GG13312333barEv)();
+extern void ABISELECT(_ZThn16_N9GG13312333barEv,_ZThn8_N9GG13312333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13312333fooEv,_ZTv0_n12_N9GG13312333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13312333fooEv,_ZThn16_N9GG13312333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13312333fooEv,_ZTv0_n12_N9GG13312333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13312333fooEv,_ZThn24_N9GG13312333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13312333barEv,_ZTv0_n16_N9GG13312333barEv)();
+extern void ABISELECT(_ZThn48_N9GG13312333barEv,_ZThn24_N9GG13312333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13312333fooEv,_ZTv0_n20_N9GG13312333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13312333fooEv,_ZThn32_N9GG13312333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13312333barEv,_ZTv0_n24_N9GG13312333barEv)();
+extern void ABISELECT(_ZThn64_N9GG13312333barEv,_ZThn32_N9GG13312333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13312333barEv,_ZTv0_n12_N9GG13312333barEv)();
+extern void ABISELECT(_ZThn80_N9GG13312333barEv,_ZThn40_N9GG13312333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1331233[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1331233[0]),
+ (VTBL_ENTRY)&_ZN9GG13312333fooEv,
+ (VTBL_ENTRY)&_ZN9GG13312333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1331233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13312333fooEv,_ZTv0_n20_N9GG13312333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13312333barEv,_ZTv0_n24_N9GG13312333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1331233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13312333fooEv,_ZTv0_n12_N9GG13312333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1331233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13312333fooEv,_ZTv0_n12_N9GG13312333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13312333barEv,_ZTv0_n16_N9GG13312333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1331233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13312333fooEv,_ZTv0_n20_N9GG13312333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13312333barEv,_ZTv0_n24_N9GG13312333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1331233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13312333barEv,_ZTv0_n12_N9GG13312333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1331233[];
+extern void _ZN5EE1333fooEv();
+extern void _ZN5EE1333barEv();
+static VTBL_ENTRY _tg__ZTV5EE133__9GG1331233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&_ZN5EE1333fooEv,
+ (VTBL_ENTRY)&_ZN5EE1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE133__9GG1331233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv)();
+extern void ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE133__9GG1331233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv),
+};
+extern void _ZN5FF1233fooEv();
+extern void _ZN5FF1233barEv();
+static VTBL_ENTRY _tg__ZTV5FF123__9GG1331233[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&_ZN5FF1233fooEv,
+ (VTBL_ENTRY)&_ZN5FF1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF123__9GG1331233[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv)();
+extern void ABISELECT(_ZThn16_N5FF1233barEv,_ZThn8_N5FF1233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF123__9GG1331233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv),
+};
+static VTT_ENTRY vtt_GG1331233[] = {
+ {&(_ZTV9GG1331233[7]), 7,39},
+ {&(_ZTV9GG1331233[15]), 15,39},
+ {&(_ZTV9GG1331233[20]), 20,39},
+ {&(_ZTV9GG1331233[25]), 25,39},
+ {&(_ZTV9GG1331233[33]), 33,39},
+ {&(_ZTV9GG1331233[38]), 38,39},
+ {&(_tg__ZTV5EE133__9GG1331233[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE133__9GG1331233[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE133__9GG1331233[4]), 4,6},
+ {&(_tg__ZTV5FF123__9GG1331233[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF123__9GG1331233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF123__9GG1331233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1331233[];
+extern VTBL_ENTRY _ZTV9GG1331233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1331233[];
+static VTBL_ENTRY alt_thunk_names444[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1233barEv,_ZThn8_N5FF1233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13312333barEv,_ZTv0_n12_N9GG13312333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13312333barEv,_ZThn40_N9GG13312333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13312333barEv,_ZTv0_n16_N9GG13312333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13312333barEv,_ZThn24_N9GG13312333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13312333fooEv,_ZTv0_n12_N9GG13312333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13312333fooEv,_ZThn24_N9GG13312333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13312333fooEv,_ZThn16_N9GG13312333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG13312333barEv,_ZTv0_n24_N9GG13312333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13312333barEv,_ZThn32_N9GG13312333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13312333barEv,_ZThn8_N9GG13312333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13312333fooEv,_ZTv0_n20_N9GG13312333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13312333fooEv,_ZThn32_N9GG13312333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13312333fooEv,_ZThn8_N9GG13312333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1331233 = { "GG1331233", // class name
+ bases_GG1331233, 5,
+ &(vtc_GG1331233[0]), // expected_vtbl_contents
+ &(vtt_GG1331233[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1331233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1331233),39, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1331233),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names444,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1331313 : virtual EE133 , virtual FF131 {
+ int pg;
+ virtual void foo(); // _ZN9GG13313133fooEv
+ virtual void bar(); // _ZN9GG13313133barEv
+ ~GG1331313(); // tgen
+ GG1331313(); // tgen
+};
+//SIG(1 GG1331313) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG1331313 ::foo(){vfunc_called(this, "_ZN9GG13313133fooEv");}
+void GG1331313 ::bar(){vfunc_called(this, "_ZN9GG13313133barEv");}
+GG1331313 ::~GG1331313(){ note_dtor("GG1331313", this);} // tgen
+GG1331313 ::GG1331313(){ note_ctor("GG1331313", this);} // tgen
+
+static void Test_GG1331313()
+{
+ extern Class_Descriptor cd_GG1331313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG1331313, buf);
+ GG1331313 *dp, &lv = *(dp=new (buf) GG1331313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG1331313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1331313)");
+ check_base_class_offset(lv, (AA1*)(EE133*), ABISELECT(32,16), "GG1331313");
+ check_base_class_offset(lv, (AA1*)(FF131*), ABISELECT(32,16), "GG1331313");
+ check_base_class_offset(lv, (BB3*)(EE133*), ABISELECT(48,24), "GG1331313");
+ check_base_class_offset(lv, (BB3*)(FF131*), ABISELECT(48,24), "GG1331313");
+ check_base_class_offset(lv, (EE133*), ABISELECT(16,8), "GG1331313");
+ check_base_class_offset(lv, (FF131*), ABISELECT(64,32), "GG1331313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1331313.pg");
+ test_class_info(&lv, &cd_GG1331313);
+ dp->~GG1331313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1331313(Test_GG1331313, "GG1331313", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG1331313C1Ev();
+extern void _ZN9GG1331313D1Ev();
+Name_Map name_map_GG1331313[] = {
+ NSPAIR(_ZN9GG1331313C1Ev),
+ NSPAIR(_ZN9GG1331313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE133;
+extern VTBL_ENTRY _ZTI5EE133[];
+extern VTBL_ENTRY _ZTV5EE133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE133[];
+extern Class_Descriptor cd_FF131;
+extern VTBL_ENTRY _ZTI5FF131[];
+extern VTBL_ENTRY _ZTV5FF131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF131[];
+static Base_Class bases_GG1331313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE133, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF131, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1331313[];
+extern void _ZN9GG13313133fooEv();
+extern void _ZN9GG13313133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13313133fooEv,_ZTv0_n20_N9GG13313133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13313133fooEv,_ZThn8_N9GG13313133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13313133barEv,_ZTv0_n24_N9GG13313133barEv)();
+extern void ABISELECT(_ZThn16_N9GG13313133barEv,_ZThn8_N9GG13313133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13313133fooEv,_ZTv0_n12_N9GG13313133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13313133fooEv,_ZThn16_N9GG13313133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13313133fooEv,_ZTv0_n12_N9GG13313133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13313133fooEv,_ZThn24_N9GG13313133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13313133barEv,_ZTv0_n16_N9GG13313133barEv)();
+extern void ABISELECT(_ZThn48_N9GG13313133barEv,_ZThn24_N9GG13313133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13313133fooEv,_ZTv0_n20_N9GG13313133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13313133fooEv,_ZThn32_N9GG13313133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1331313[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1331313[0]),
+ (VTBL_ENTRY)&_ZN9GG13313133fooEv,
+ (VTBL_ENTRY)&_ZN9GG13313133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1331313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13313133fooEv,_ZTv0_n20_N9GG13313133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13313133barEv,_ZTv0_n24_N9GG13313133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1331313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13313133fooEv,_ZTv0_n12_N9GG13313133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1331313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13313133fooEv,_ZTv0_n12_N9GG13313133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13313133barEv,_ZTv0_n16_N9GG13313133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1331313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13313133fooEv,_ZTv0_n20_N9GG13313133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1331313[];
+extern void _ZN5EE1333fooEv();
+extern void _ZN5EE1333barEv();
+static VTBL_ENTRY _tg__ZTV5EE133__9GG1331313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&_ZN5EE1333fooEv,
+ (VTBL_ENTRY)&_ZN5EE1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE133__9GG1331313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv)();
+extern void ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE133__9GG1331313[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv),
+};
+extern void _ZN5FF1313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF131__9GG1331313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&_ZN5FF1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF131__9GG1331313[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF131__9GG1331313[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG1331313[] = {
+ {&(_ZTV9GG1331313[6]), 6,32},
+ {&(_ZTV9GG1331313[14]), 14,32},
+ {&(_ZTV9GG1331313[19]), 19,32},
+ {&(_ZTV9GG1331313[24]), 24,32},
+ {&(_ZTV9GG1331313[31]), 31,32},
+ {&(_tg__ZTV5EE133__9GG1331313[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE133__9GG1331313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE133__9GG1331313[4]), 4,6},
+ {&(_tg__ZTV5FF131__9GG1331313[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF131__9GG1331313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF131__9GG1331313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1331313[];
+extern VTBL_ENTRY _ZTV9GG1331313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1331313[];
+static VTBL_ENTRY alt_thunk_names445[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13313133barEv,_ZTv0_n16_N9GG13313133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13313133barEv,_ZThn24_N9GG13313133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13313133fooEv,_ZTv0_n12_N9GG13313133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13313133fooEv,_ZThn24_N9GG13313133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13313133fooEv,_ZThn16_N9GG13313133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG13313133barEv,_ZTv0_n24_N9GG13313133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13313133barEv,_ZThn8_N9GG13313133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13313133fooEv,_ZTv0_n20_N9GG13313133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13313133fooEv,_ZThn32_N9GG13313133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13313133fooEv,_ZThn8_N9GG13313133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1331313 = { "GG1331313", // class name
+ bases_GG1331313, 4,
+ &(vtc_GG1331313[0]), // expected_vtbl_contents
+ &(vtt_GG1331313[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG1331313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1331313),32, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1331313),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names445,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1331323 : virtual EE133 , virtual FF132 {
+ int pg;
+ virtual void foo(); // _ZN9GG13313233fooEv
+ virtual void bar(); // _ZN9GG13313233barEv
+ ~GG1331323(); // tgen
+ GG1331323(); // tgen
+};
+//SIG(1 GG1331323) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG1331323 ::foo(){vfunc_called(this, "_ZN9GG13313233fooEv");}
+void GG1331323 ::bar(){vfunc_called(this, "_ZN9GG13313233barEv");}
+GG1331323 ::~GG1331323(){ note_dtor("GG1331323", this);} // tgen
+GG1331323 ::GG1331323(){ note_ctor("GG1331323", this);} // tgen
+
+static void Test_GG1331323()
+{
+ extern Class_Descriptor cd_GG1331323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG1331323, buf);
+ GG1331323 *dp, &lv = *(dp=new (buf) GG1331323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG1331323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1331323)");
+ check_base_class_offset(lv, (AA1*)(EE133*), ABISELECT(32,16), "GG1331323");
+ check_base_class_offset(lv, (AA1*)(FF132*), ABISELECT(32,16), "GG1331323");
+ check_base_class_offset(lv, (BB3*)(EE133*), ABISELECT(48,24), "GG1331323");
+ check_base_class_offset(lv, (BB3*)(FF132*), ABISELECT(48,24), "GG1331323");
+ check_base_class_offset(lv, (EE133*), ABISELECT(16,8), "GG1331323");
+ check_base_class_offset(lv, (FF132*), ABISELECT(64,32), "GG1331323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1331323.pg");
+ test_class_info(&lv, &cd_GG1331323);
+ dp->~GG1331323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1331323(Test_GG1331323, "GG1331323", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG1331323C1Ev();
+extern void _ZN9GG1331323D1Ev();
+Name_Map name_map_GG1331323[] = {
+ NSPAIR(_ZN9GG1331323C1Ev),
+ NSPAIR(_ZN9GG1331323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE133;
+extern VTBL_ENTRY _ZTI5EE133[];
+extern VTBL_ENTRY _ZTV5EE133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE133[];
+extern Class_Descriptor cd_FF132;
+extern VTBL_ENTRY _ZTI5FF132[];
+extern VTBL_ENTRY _ZTV5FF132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF132[];
+static Base_Class bases_GG1331323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE133, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF132, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1331323[];
+extern void _ZN9GG13313233fooEv();
+extern void _ZN9GG13313233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13313233fooEv,_ZTv0_n20_N9GG13313233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13313233fooEv,_ZThn8_N9GG13313233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13313233barEv,_ZTv0_n24_N9GG13313233barEv)();
+extern void ABISELECT(_ZThn16_N9GG13313233barEv,_ZThn8_N9GG13313233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13313233fooEv,_ZTv0_n12_N9GG13313233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13313233fooEv,_ZThn16_N9GG13313233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13313233fooEv,_ZTv0_n12_N9GG13313233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13313233fooEv,_ZThn24_N9GG13313233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13313233barEv,_ZTv0_n16_N9GG13313233barEv)();
+extern void ABISELECT(_ZThn48_N9GG13313233barEv,_ZThn24_N9GG13313233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13313233barEv,_ZTv0_n20_N9GG13313233barEv)();
+extern void ABISELECT(_ZThn64_N9GG13313233barEv,_ZThn32_N9GG13313233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1331323[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1331323[0]),
+ (VTBL_ENTRY)&_ZN9GG13313233fooEv,
+ (VTBL_ENTRY)&_ZN9GG13313233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1331323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13313233fooEv,_ZTv0_n20_N9GG13313233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13313233barEv,_ZTv0_n24_N9GG13313233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1331323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13313233fooEv,_ZTv0_n12_N9GG13313233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1331323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13313233fooEv,_ZTv0_n12_N9GG13313233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13313233barEv,_ZTv0_n16_N9GG13313233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1331323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13313233barEv,_ZTv0_n20_N9GG13313233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1331323[];
+extern void _ZN5EE1333fooEv();
+extern void _ZN5EE1333barEv();
+static VTBL_ENTRY _tg__ZTV5EE133__9GG1331323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&_ZN5EE1333fooEv,
+ (VTBL_ENTRY)&_ZN5EE1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE133__9GG1331323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv)();
+extern void ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE133__9GG1331323[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv),
+};
+extern void _ZN5FF1323barEv();
+static VTBL_ENTRY _tg__ZTV5FF132__9GG1331323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN5FF1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF132__9GG1331323[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF132__9GG1331323[] = {
+ ABISELECT(16,8),
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv),
+};
+static VTT_ENTRY vtt_GG1331323[] = {
+ {&(_ZTV9GG1331323[6]), 6,32},
+ {&(_ZTV9GG1331323[14]), 14,32},
+ {&(_ZTV9GG1331323[19]), 19,32},
+ {&(_ZTV9GG1331323[24]), 24,32},
+ {&(_ZTV9GG1331323[31]), 31,32},
+ {&(_tg__ZTV5EE133__9GG1331323[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE133__9GG1331323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE133__9GG1331323[4]), 4,6},
+ {&(_tg__ZTV5FF132__9GG1331323[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF132__9GG1331323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF132__9GG1331323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1331323[];
+extern VTBL_ENTRY _ZTV9GG1331323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1331323[];
+static VTBL_ENTRY alt_thunk_names446[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13313233barEv,_ZTv0_n20_N9GG13313233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13313233barEv,_ZThn32_N9GG13313233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13313233barEv,_ZTv0_n16_N9GG13313233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13313233barEv,_ZThn24_N9GG13313233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13313233fooEv,_ZTv0_n12_N9GG13313233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13313233fooEv,_ZThn24_N9GG13313233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13313233fooEv,_ZThn16_N9GG13313233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG13313233barEv,_ZTv0_n24_N9GG13313233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13313233barEv,_ZThn8_N9GG13313233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13313233fooEv,_ZTv0_n20_N9GG13313233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13313233fooEv,_ZThn8_N9GG13313233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1331323 = { "GG1331323", // class name
+ bases_GG1331323, 4,
+ &(vtc_GG1331323[0]), // expected_vtbl_contents
+ &(vtt_GG1331323[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG1331323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1331323),32, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1331323),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names446,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1331333 : virtual EE133 , virtual FF133 {
+ int pg;
+ virtual void foo(); // _ZN9GG13313333fooEv
+ virtual void bar(); // _ZN9GG13313333barEv
+ ~GG1331333(); // tgen
+ GG1331333(); // tgen
+};
+//SIG(1 GG1331333) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1331333 ::foo(){vfunc_called(this, "_ZN9GG13313333fooEv");}
+void GG1331333 ::bar(){vfunc_called(this, "_ZN9GG13313333barEv");}
+GG1331333 ::~GG1331333(){ note_dtor("GG1331333", this);} // tgen
+GG1331333 ::GG1331333(){ note_ctor("GG1331333", this);} // tgen
+
+static void Test_GG1331333()
+{
+ extern Class_Descriptor cd_GG1331333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG1331333, buf);
+ GG1331333 *dp, &lv = *(dp=new (buf) GG1331333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG1331333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1331333)");
+ check_base_class_offset(lv, (AA1*)(EE133*), ABISELECT(32,16), "GG1331333");
+ check_base_class_offset(lv, (AA1*)(FF133*), ABISELECT(32,16), "GG1331333");
+ check_base_class_offset(lv, (BB3*)(EE133*), ABISELECT(48,24), "GG1331333");
+ check_base_class_offset(lv, (BB3*)(FF133*), ABISELECT(48,24), "GG1331333");
+ check_base_class_offset(lv, (EE133*), ABISELECT(16,8), "GG1331333");
+ check_base_class_offset(lv, (FF133*), ABISELECT(64,32), "GG1331333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1331333.pg");
+ test_class_info(&lv, &cd_GG1331333);
+ dp->~GG1331333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1331333(Test_GG1331333, "GG1331333", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG1331333C1Ev();
+extern void _ZN9GG1331333D1Ev();
+Name_Map name_map_GG1331333[] = {
+ NSPAIR(_ZN9GG1331333C1Ev),
+ NSPAIR(_ZN9GG1331333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE133;
+extern VTBL_ENTRY _ZTI5EE133[];
+extern VTBL_ENTRY _ZTV5EE133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE133[];
+extern Class_Descriptor cd_FF133;
+extern VTBL_ENTRY _ZTI5FF133[];
+extern VTBL_ENTRY _ZTV5FF133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF133[];
+static Base_Class bases_GG1331333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE133, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF133, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1331333[];
+extern void _ZN9GG13313333fooEv();
+extern void _ZN9GG13313333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13313333fooEv,_ZTv0_n20_N9GG13313333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13313333fooEv,_ZThn8_N9GG13313333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13313333barEv,_ZTv0_n24_N9GG13313333barEv)();
+extern void ABISELECT(_ZThn16_N9GG13313333barEv,_ZThn8_N9GG13313333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13313333fooEv,_ZTv0_n12_N9GG13313333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13313333fooEv,_ZThn16_N9GG13313333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13313333fooEv,_ZTv0_n12_N9GG13313333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13313333fooEv,_ZThn24_N9GG13313333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13313333barEv,_ZTv0_n16_N9GG13313333barEv)();
+extern void ABISELECT(_ZThn48_N9GG13313333barEv,_ZThn24_N9GG13313333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13313333fooEv,_ZTv0_n20_N9GG13313333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13313333fooEv,_ZThn32_N9GG13313333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13313333barEv,_ZTv0_n24_N9GG13313333barEv)();
+extern void ABISELECT(_ZThn64_N9GG13313333barEv,_ZThn32_N9GG13313333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1331333[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1331333[0]),
+ (VTBL_ENTRY)&_ZN9GG13313333fooEv,
+ (VTBL_ENTRY)&_ZN9GG13313333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1331333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13313333fooEv,_ZTv0_n20_N9GG13313333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13313333barEv,_ZTv0_n24_N9GG13313333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1331333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13313333fooEv,_ZTv0_n12_N9GG13313333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1331333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13313333fooEv,_ZTv0_n12_N9GG13313333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13313333barEv,_ZTv0_n16_N9GG13313333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1331333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13313333fooEv,_ZTv0_n20_N9GG13313333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13313333barEv,_ZTv0_n24_N9GG13313333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1331333[];
+extern void _ZN5EE1333fooEv();
+extern void _ZN5EE1333barEv();
+static VTBL_ENTRY _tg__ZTV5EE133__9GG1331333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&_ZN5EE1333fooEv,
+ (VTBL_ENTRY)&_ZN5EE1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE133__9GG1331333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv)();
+extern void ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE133__9GG1331333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv),
+};
+extern void _ZN5FF1333fooEv();
+extern void _ZN5FF1333barEv();
+static VTBL_ENTRY _tg__ZTV5FF133__9GG1331333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&_ZN5FF1333fooEv,
+ (VTBL_ENTRY)&_ZN5FF1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF133__9GG1331333[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF133__9GG1331333[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv),
+};
+static VTT_ENTRY vtt_GG1331333[] = {
+ {&(_ZTV9GG1331333[6]), 6,34},
+ {&(_ZTV9GG1331333[14]), 14,34},
+ {&(_ZTV9GG1331333[19]), 19,34},
+ {&(_ZTV9GG1331333[24]), 24,34},
+ {&(_ZTV9GG1331333[32]), 32,34},
+ {&(_tg__ZTV5EE133__9GG1331333[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE133__9GG1331333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE133__9GG1331333[4]), 4,6},
+ {&(_tg__ZTV5FF133__9GG1331333[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF133__9GG1331333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF133__9GG1331333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1331333[];
+extern VTBL_ENTRY _ZTV9GG1331333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1331333[];
+static VTBL_ENTRY alt_thunk_names447[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13313333barEv,_ZTv0_n16_N9GG13313333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13313333barEv,_ZThn24_N9GG13313333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13313333fooEv,_ZTv0_n12_N9GG13313333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13313333fooEv,_ZThn24_N9GG13313333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13313333fooEv,_ZThn16_N9GG13313333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG13313333barEv,_ZTv0_n24_N9GG13313333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13313333barEv,_ZThn32_N9GG13313333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13313333barEv,_ZThn8_N9GG13313333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13313333fooEv,_ZTv0_n20_N9GG13313333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13313333fooEv,_ZThn32_N9GG13313333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13313333fooEv,_ZThn8_N9GG13313333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1331333 = { "GG1331333", // class name
+ bases_GG1331333, 4,
+ &(vtc_GG1331333[0]), // expected_vtbl_contents
+ &(vtt_GG1331333[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG1331333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1331333),34, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1331333),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names447,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1332113 : virtual EE133 , virtual FF211 {
+ int pg;
+ virtual void foo(); // _ZN9GG13321133fooEv
+ virtual void bar(); // _ZN9GG13321133barEv
+ ~GG1332113(); // tgen
+ GG1332113(); // tgen
+};
+//SIG(1 GG1332113) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1332113 ::foo(){vfunc_called(this, "_ZN9GG13321133fooEv");}
+void GG1332113 ::bar(){vfunc_called(this, "_ZN9GG13321133barEv");}
+GG1332113 ::~GG1332113(){ note_dtor("GG1332113", this);} // tgen
+GG1332113 ::GG1332113(){ note_ctor("GG1332113", this);} // tgen
+
+static void Test_GG1332113()
+{
+ extern Class_Descriptor cd_GG1332113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1332113, buf);
+ GG1332113 *dp, &lv = *(dp=new (buf) GG1332113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1332113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1332113)");
+ check_base_class_offset(lv, (AA1*)(EE133*), ABISELECT(32,16), "GG1332113");
+ check_base_class_offset(lv, (BB3*)(EE133*), ABISELECT(48,24), "GG1332113");
+ check_base_class_offset(lv, (EE133*), ABISELECT(16,8), "GG1332113");
+ check_base_class_offset(lv, (AA2*)(FF211*), ABISELECT(80,40), "GG1332113");
+ check_base_class_offset(lv, (BB1*)(FF211*), ABISELECT(96,48), "GG1332113");
+ check_base_class_offset(lv, (FF211*), ABISELECT(64,32), "GG1332113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1332113.pg");
+ test_class_info(&lv, &cd_GG1332113);
+ dp->~GG1332113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1332113(Test_GG1332113, "GG1332113", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1332113C1Ev();
+extern void _ZN9GG1332113D1Ev();
+Name_Map name_map_GG1332113[] = {
+ NSPAIR(_ZN9GG1332113C1Ev),
+ NSPAIR(_ZN9GG1332113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE133;
+extern VTBL_ENTRY _ZTI5EE133[];
+extern VTBL_ENTRY _ZTV5EE133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE133[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF211;
+extern VTBL_ENTRY _ZTI5FF211[];
+extern VTBL_ENTRY _ZTV5FF211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF211[];
+static Base_Class bases_GG1332113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE133, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF211, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1332113[];
+extern void _ZN9GG13321133fooEv();
+extern void _ZN9GG13321133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13321133fooEv,_ZTv0_n20_N9GG13321133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13321133fooEv,_ZThn8_N9GG13321133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13321133barEv,_ZTv0_n24_N9GG13321133barEv)();
+extern void ABISELECT(_ZThn16_N9GG13321133barEv,_ZThn8_N9GG13321133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13321133fooEv,_ZTv0_n12_N9GG13321133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13321133fooEv,_ZThn16_N9GG13321133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13321133fooEv,_ZTv0_n12_N9GG13321133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13321133fooEv,_ZThn24_N9GG13321133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13321133barEv,_ZTv0_n16_N9GG13321133barEv)();
+extern void ABISELECT(_ZThn48_N9GG13321133barEv,_ZThn24_N9GG13321133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13321133fooEv,_ZTv0_n20_N9GG13321133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13321133fooEv,_ZThn32_N9GG13321133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13321133barEv,_ZTv0_n12_N9GG13321133barEv)();
+extern void ABISELECT(_ZThn80_N9GG13321133barEv,_ZThn40_N9GG13321133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13321133fooEv,_ZTv0_n12_N9GG13321133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG13321133fooEv,_ZThn48_N9GG13321133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1332113[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1332113[0]),
+ (VTBL_ENTRY)&_ZN9GG13321133fooEv,
+ (VTBL_ENTRY)&_ZN9GG13321133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1332113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13321133fooEv,_ZTv0_n20_N9GG13321133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13321133barEv,_ZTv0_n24_N9GG13321133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1332113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13321133fooEv,_ZTv0_n12_N9GG13321133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1332113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13321133fooEv,_ZTv0_n12_N9GG13321133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13321133barEv,_ZTv0_n16_N9GG13321133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1332113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13321133fooEv,_ZTv0_n20_N9GG13321133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1332113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13321133barEv,_ZTv0_n12_N9GG13321133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1332113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13321133fooEv,_ZTv0_n12_N9GG13321133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1332113[];
+extern void _ZN5EE1333fooEv();
+extern void _ZN5EE1333barEv();
+static VTBL_ENTRY _tg__ZTV5EE133__9GG1332113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&_ZN5EE1333fooEv,
+ (VTBL_ENTRY)&_ZN5EE1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE133__9GG1332113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv)();
+extern void ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE133__9GG1332113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv),
+};
+extern void _ZN5FF2113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF211__9GG1332113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN5FF2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF211__9GG1332113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2113fooEv,_ZThn16_N5FF2113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF211__9GG1332113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv),
+};
+static VTT_ENTRY vtt_GG1332113[] = {
+ {&(_ZTV9GG1332113[8]), 8,42},
+ {&(_ZTV9GG1332113[16]), 16,42},
+ {&(_ZTV9GG1332113[21]), 21,42},
+ {&(_ZTV9GG1332113[26]), 26,42},
+ {&(_ZTV9GG1332113[33]), 33,42},
+ {&(_ZTV9GG1332113[37]), 37,42},
+ {&(_ZTV9GG1332113[41]), 41,42},
+ {&(_tg__ZTV5EE133__9GG1332113[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE133__9GG1332113[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE133__9GG1332113[4]), 4,6},
+ {&(_tg__ZTV5FF211__9GG1332113[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF211__9GG1332113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF211__9GG1332113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1332113[];
+extern VTBL_ENTRY _ZTV9GG1332113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1332113[];
+static VTBL_ENTRY alt_thunk_names448[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2113fooEv,_ZThn16_N5FF2113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13321133barEv,_ZTv0_n12_N9GG13321133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13321133barEv,_ZThn40_N9GG13321133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13321133barEv,_ZTv0_n16_N9GG13321133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13321133barEv,_ZThn24_N9GG13321133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13321133fooEv,_ZTv0_n12_N9GG13321133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG13321133fooEv,_ZThn48_N9GG13321133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13321133fooEv,_ZThn24_N9GG13321133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13321133fooEv,_ZThn16_N9GG13321133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG13321133barEv,_ZTv0_n24_N9GG13321133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13321133barEv,_ZThn8_N9GG13321133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13321133fooEv,_ZTv0_n20_N9GG13321133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13321133fooEv,_ZThn32_N9GG13321133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13321133fooEv,_ZThn8_N9GG13321133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1332113 = { "GG1332113", // class name
+ bases_GG1332113, 6,
+ &(vtc_GG1332113[0]), // expected_vtbl_contents
+ &(vtt_GG1332113[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1332113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1332113),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1332113),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names448,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1332123 : virtual EE133 , virtual FF212 {
+ int pg;
+ virtual void foo(); // _ZN9GG13321233fooEv
+ virtual void bar(); // _ZN9GG13321233barEv
+ ~GG1332123(); // tgen
+ GG1332123(); // tgen
+};
+//SIG(1 GG1332123) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1332123 ::foo(){vfunc_called(this, "_ZN9GG13321233fooEv");}
+void GG1332123 ::bar(){vfunc_called(this, "_ZN9GG13321233barEv");}
+GG1332123 ::~GG1332123(){ note_dtor("GG1332123", this);} // tgen
+GG1332123 ::GG1332123(){ note_ctor("GG1332123", this);} // tgen
+
+static void Test_GG1332123()
+{
+ extern Class_Descriptor cd_GG1332123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1332123, buf);
+ GG1332123 *dp, &lv = *(dp=new (buf) GG1332123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1332123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1332123)");
+ check_base_class_offset(lv, (AA1*)(EE133*), ABISELECT(32,16), "GG1332123");
+ check_base_class_offset(lv, (BB3*)(EE133*), ABISELECT(48,24), "GG1332123");
+ check_base_class_offset(lv, (EE133*), ABISELECT(16,8), "GG1332123");
+ check_base_class_offset(lv, (AA2*)(FF212*), ABISELECT(80,40), "GG1332123");
+ check_base_class_offset(lv, (BB1*)(FF212*), ABISELECT(96,48), "GG1332123");
+ check_base_class_offset(lv, (FF212*), ABISELECT(64,32), "GG1332123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1332123.pg");
+ test_class_info(&lv, &cd_GG1332123);
+ dp->~GG1332123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1332123(Test_GG1332123, "GG1332123", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1332123C1Ev();
+extern void _ZN9GG1332123D1Ev();
+Name_Map name_map_GG1332123[] = {
+ NSPAIR(_ZN9GG1332123C1Ev),
+ NSPAIR(_ZN9GG1332123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE133;
+extern VTBL_ENTRY _ZTI5EE133[];
+extern VTBL_ENTRY _ZTV5EE133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE133[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF212;
+extern VTBL_ENTRY _ZTI5FF212[];
+extern VTBL_ENTRY _ZTV5FF212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF212[];
+static Base_Class bases_GG1332123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE133, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF212, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1332123[];
+extern void _ZN9GG13321233fooEv();
+extern void _ZN9GG13321233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13321233fooEv,_ZTv0_n20_N9GG13321233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13321233fooEv,_ZThn8_N9GG13321233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13321233barEv,_ZTv0_n24_N9GG13321233barEv)();
+extern void ABISELECT(_ZThn16_N9GG13321233barEv,_ZThn8_N9GG13321233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13321233fooEv,_ZTv0_n12_N9GG13321233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13321233fooEv,_ZThn16_N9GG13321233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13321233fooEv,_ZTv0_n12_N9GG13321233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13321233fooEv,_ZThn24_N9GG13321233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13321233barEv,_ZTv0_n16_N9GG13321233barEv)();
+extern void ABISELECT(_ZThn48_N9GG13321233barEv,_ZThn24_N9GG13321233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13321233barEv,_ZTv0_n20_N9GG13321233barEv)();
+extern void ABISELECT(_ZThn64_N9GG13321233barEv,_ZThn32_N9GG13321233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13321233barEv,_ZTv0_n12_N9GG13321233barEv)();
+extern void ABISELECT(_ZThn80_N9GG13321233barEv,_ZThn40_N9GG13321233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13321233fooEv,_ZTv0_n12_N9GG13321233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG13321233fooEv,_ZThn48_N9GG13321233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1332123[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1332123[0]),
+ (VTBL_ENTRY)&_ZN9GG13321233fooEv,
+ (VTBL_ENTRY)&_ZN9GG13321233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1332123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13321233fooEv,_ZTv0_n20_N9GG13321233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13321233barEv,_ZTv0_n24_N9GG13321233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1332123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13321233fooEv,_ZTv0_n12_N9GG13321233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1332123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13321233fooEv,_ZTv0_n12_N9GG13321233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13321233barEv,_ZTv0_n16_N9GG13321233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1332123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13321233barEv,_ZTv0_n20_N9GG13321233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1332123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13321233barEv,_ZTv0_n12_N9GG13321233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1332123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13321233fooEv,_ZTv0_n12_N9GG13321233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1332123[];
+extern void _ZN5EE1333fooEv();
+extern void _ZN5EE1333barEv();
+static VTBL_ENTRY _tg__ZTV5EE133__9GG1332123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&_ZN5EE1333fooEv,
+ (VTBL_ENTRY)&_ZN5EE1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE133__9GG1332123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv)();
+extern void ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE133__9GG1332123[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv),
+};
+extern void _ZN5FF2123barEv();
+static VTBL_ENTRY _tg__ZTV5FF212__9GG1332123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN5FF2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv)();
+extern void ABISELECT(_ZThn16_N5FF2123barEv,_ZThn8_N5FF2123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF212__9GG1332123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF212__9GG1332123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG1332123[] = {
+ {&(_ZTV9GG1332123[8]), 8,42},
+ {&(_ZTV9GG1332123[16]), 16,42},
+ {&(_ZTV9GG1332123[21]), 21,42},
+ {&(_ZTV9GG1332123[26]), 26,42},
+ {&(_ZTV9GG1332123[33]), 33,42},
+ {&(_ZTV9GG1332123[37]), 37,42},
+ {&(_ZTV9GG1332123[41]), 41,42},
+ {&(_tg__ZTV5EE133__9GG1332123[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE133__9GG1332123[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE133__9GG1332123[4]), 4,6},
+ {&(_tg__ZTV5FF212__9GG1332123[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF212__9GG1332123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF212__9GG1332123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1332123[];
+extern VTBL_ENTRY _ZTV9GG1332123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1332123[];
+static VTBL_ENTRY alt_thunk_names449[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2123barEv,_ZThn8_N5FF2123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13321233barEv,_ZTv0_n12_N9GG13321233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13321233barEv,_ZThn40_N9GG13321233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13321233barEv,_ZTv0_n20_N9GG13321233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13321233barEv,_ZThn32_N9GG13321233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13321233barEv,_ZTv0_n16_N9GG13321233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13321233barEv,_ZThn24_N9GG13321233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13321233fooEv,_ZTv0_n12_N9GG13321233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG13321233fooEv,_ZThn48_N9GG13321233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13321233fooEv,_ZThn24_N9GG13321233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13321233fooEv,_ZThn16_N9GG13321233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG13321233barEv,_ZTv0_n24_N9GG13321233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13321233barEv,_ZThn8_N9GG13321233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13321233fooEv,_ZTv0_n20_N9GG13321233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13321233fooEv,_ZThn8_N9GG13321233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1332123 = { "GG1332123", // class name
+ bases_GG1332123, 6,
+ &(vtc_GG1332123[0]), // expected_vtbl_contents
+ &(vtt_GG1332123[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1332123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1332123),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1332123),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names449,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1332133 : virtual EE133 , virtual FF213 {
+ int pg;
+ virtual void foo(); // _ZN9GG13321333fooEv
+ virtual void bar(); // _ZN9GG13321333barEv
+ ~GG1332133(); // tgen
+ GG1332133(); // tgen
+};
+//SIG(1 GG1332133) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1332133 ::foo(){vfunc_called(this, "_ZN9GG13321333fooEv");}
+void GG1332133 ::bar(){vfunc_called(this, "_ZN9GG13321333barEv");}
+GG1332133 ::~GG1332133(){ note_dtor("GG1332133", this);} // tgen
+GG1332133 ::GG1332133(){ note_ctor("GG1332133", this);} // tgen
+
+static void Test_GG1332133()
+{
+ extern Class_Descriptor cd_GG1332133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1332133, buf);
+ GG1332133 *dp, &lv = *(dp=new (buf) GG1332133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1332133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1332133)");
+ check_base_class_offset(lv, (AA1*)(EE133*), ABISELECT(32,16), "GG1332133");
+ check_base_class_offset(lv, (BB3*)(EE133*), ABISELECT(48,24), "GG1332133");
+ check_base_class_offset(lv, (EE133*), ABISELECT(16,8), "GG1332133");
+ check_base_class_offset(lv, (AA2*)(FF213*), ABISELECT(80,40), "GG1332133");
+ check_base_class_offset(lv, (BB1*)(FF213*), ABISELECT(96,48), "GG1332133");
+ check_base_class_offset(lv, (FF213*), ABISELECT(64,32), "GG1332133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1332133.pg");
+ test_class_info(&lv, &cd_GG1332133);
+ dp->~GG1332133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1332133(Test_GG1332133, "GG1332133", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1332133C1Ev();
+extern void _ZN9GG1332133D1Ev();
+Name_Map name_map_GG1332133[] = {
+ NSPAIR(_ZN9GG1332133C1Ev),
+ NSPAIR(_ZN9GG1332133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE133;
+extern VTBL_ENTRY _ZTI5EE133[];
+extern VTBL_ENTRY _ZTV5EE133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE133[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF213;
+extern VTBL_ENTRY _ZTI5FF213[];
+extern VTBL_ENTRY _ZTV5FF213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF213[];
+static Base_Class bases_GG1332133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE133, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 40, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF213, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1332133[];
+extern void _ZN9GG13321333fooEv();
+extern void _ZN9GG13321333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13321333fooEv,_ZTv0_n20_N9GG13321333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13321333fooEv,_ZThn8_N9GG13321333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13321333barEv,_ZTv0_n24_N9GG13321333barEv)();
+extern void ABISELECT(_ZThn16_N9GG13321333barEv,_ZThn8_N9GG13321333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13321333fooEv,_ZTv0_n12_N9GG13321333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13321333fooEv,_ZThn16_N9GG13321333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13321333fooEv,_ZTv0_n12_N9GG13321333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13321333fooEv,_ZThn24_N9GG13321333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13321333barEv,_ZTv0_n16_N9GG13321333barEv)();
+extern void ABISELECT(_ZThn48_N9GG13321333barEv,_ZThn24_N9GG13321333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13321333fooEv,_ZTv0_n20_N9GG13321333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13321333fooEv,_ZThn32_N9GG13321333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13321333barEv,_ZTv0_n24_N9GG13321333barEv)();
+extern void ABISELECT(_ZThn64_N9GG13321333barEv,_ZThn32_N9GG13321333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13321333barEv,_ZTv0_n12_N9GG13321333barEv)();
+extern void ABISELECT(_ZThn80_N9GG13321333barEv,_ZThn40_N9GG13321333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13321333fooEv,_ZTv0_n12_N9GG13321333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG13321333fooEv,_ZThn48_N9GG13321333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1332133[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1332133[0]),
+ (VTBL_ENTRY)&_ZN9GG13321333fooEv,
+ (VTBL_ENTRY)&_ZN9GG13321333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1332133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13321333fooEv,_ZTv0_n20_N9GG13321333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13321333barEv,_ZTv0_n24_N9GG13321333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1332133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13321333fooEv,_ZTv0_n12_N9GG13321333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1332133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13321333fooEv,_ZTv0_n12_N9GG13321333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13321333barEv,_ZTv0_n16_N9GG13321333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1332133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13321333fooEv,_ZTv0_n20_N9GG13321333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13321333barEv,_ZTv0_n24_N9GG13321333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1332133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13321333barEv,_ZTv0_n12_N9GG13321333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1332133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13321333fooEv,_ZTv0_n12_N9GG13321333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1332133[];
+extern void _ZN5EE1333fooEv();
+extern void _ZN5EE1333barEv();
+static VTBL_ENTRY _tg__ZTV5EE133__9GG1332133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&_ZN5EE1333fooEv,
+ (VTBL_ENTRY)&_ZN5EE1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE133__9GG1332133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv)();
+extern void ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE133__9GG1332133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv),
+};
+extern void _ZN5FF2133fooEv();
+extern void _ZN5FF2133barEv();
+static VTBL_ENTRY _tg__ZTV5FF213__9GG1332133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&_ZN5FF2133fooEv,
+ (VTBL_ENTRY)&_ZN5FF2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv)();
+extern void ABISELECT(_ZThn16_N5FF2133barEv,_ZThn8_N5FF2133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF213__9GG1332133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2133fooEv,_ZThn16_N5FF2133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF213__9GG1332133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv),
+};
+static VTT_ENTRY vtt_GG1332133[] = {
+ {&(_ZTV9GG1332133[8]), 8,44},
+ {&(_ZTV9GG1332133[16]), 16,44},
+ {&(_ZTV9GG1332133[21]), 21,44},
+ {&(_ZTV9GG1332133[26]), 26,44},
+ {&(_ZTV9GG1332133[34]), 34,44},
+ {&(_ZTV9GG1332133[39]), 39,44},
+ {&(_ZTV9GG1332133[43]), 43,44},
+ {&(_tg__ZTV5EE133__9GG1332133[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE133__9GG1332133[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE133__9GG1332133[4]), 4,6},
+ {&(_tg__ZTV5FF213__9GG1332133[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF213__9GG1332133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF213__9GG1332133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1332133[];
+extern VTBL_ENTRY _ZTV9GG1332133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1332133[];
+static VTBL_ENTRY alt_thunk_names450[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2133fooEv,_ZThn16_N5FF2133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2133barEv,_ZThn8_N5FF2133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13321333barEv,_ZTv0_n12_N9GG13321333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13321333barEv,_ZThn40_N9GG13321333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13321333barEv,_ZTv0_n16_N9GG13321333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13321333barEv,_ZThn24_N9GG13321333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13321333fooEv,_ZTv0_n12_N9GG13321333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG13321333fooEv,_ZThn48_N9GG13321333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13321333fooEv,_ZThn24_N9GG13321333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13321333fooEv,_ZThn16_N9GG13321333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG13321333barEv,_ZTv0_n24_N9GG13321333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13321333barEv,_ZThn32_N9GG13321333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13321333barEv,_ZThn8_N9GG13321333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13321333fooEv,_ZTv0_n20_N9GG13321333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13321333fooEv,_ZThn32_N9GG13321333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13321333fooEv,_ZThn8_N9GG13321333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1332133 = { "GG1332133", // class name
+ bases_GG1332133, 6,
+ &(vtc_GG1332133[0]), // expected_vtbl_contents
+ &(vtt_GG1332133[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1332133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1332133),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1332133),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names450,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1332213 : virtual EE133 , virtual FF221 {
+ int pg;
+ virtual void foo(); // _ZN9GG13322133fooEv
+ virtual void bar(); // _ZN9GG13322133barEv
+ ~GG1332213(); // tgen
+ GG1332213(); // tgen
+};
+//SIG(1 GG1332213) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1332213 ::foo(){vfunc_called(this, "_ZN9GG13322133fooEv");}
+void GG1332213 ::bar(){vfunc_called(this, "_ZN9GG13322133barEv");}
+GG1332213 ::~GG1332213(){ note_dtor("GG1332213", this);} // tgen
+GG1332213 ::GG1332213(){ note_ctor("GG1332213", this);} // tgen
+
+static void Test_GG1332213()
+{
+ extern Class_Descriptor cd_GG1332213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1332213, buf);
+ GG1332213 *dp, &lv = *(dp=new (buf) GG1332213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1332213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1332213)");
+ check_base_class_offset(lv, (AA1*)(EE133*), ABISELECT(32,16), "GG1332213");
+ check_base_class_offset(lv, (BB3*)(EE133*), ABISELECT(48,24), "GG1332213");
+ check_base_class_offset(lv, (EE133*), ABISELECT(16,8), "GG1332213");
+ check_base_class_offset(lv, (AA2*)(FF221*), ABISELECT(80,40), "GG1332213");
+ check_base_class_offset(lv, (BB2*)(FF221*), ABISELECT(96,48), "GG1332213");
+ check_base_class_offset(lv, (FF221*), ABISELECT(64,32), "GG1332213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1332213.pg");
+ test_class_info(&lv, &cd_GG1332213);
+ dp->~GG1332213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1332213(Test_GG1332213, "GG1332213", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1332213C1Ev();
+extern void _ZN9GG1332213D1Ev();
+Name_Map name_map_GG1332213[] = {
+ NSPAIR(_ZN9GG1332213C1Ev),
+ NSPAIR(_ZN9GG1332213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE133;
+extern VTBL_ENTRY _ZTI5EE133[];
+extern VTBL_ENTRY _ZTV5EE133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE133[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF221;
+extern VTBL_ENTRY _ZTI5FF221[];
+extern VTBL_ENTRY _ZTV5FF221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF221[];
+static Base_Class bases_GG1332213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE133, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF221, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1332213[];
+extern void _ZN9GG13322133fooEv();
+extern void _ZN9GG13322133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13322133fooEv,_ZTv0_n20_N9GG13322133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13322133fooEv,_ZThn8_N9GG13322133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13322133barEv,_ZTv0_n24_N9GG13322133barEv)();
+extern void ABISELECT(_ZThn16_N9GG13322133barEv,_ZThn8_N9GG13322133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13322133fooEv,_ZTv0_n12_N9GG13322133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13322133fooEv,_ZThn16_N9GG13322133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13322133fooEv,_ZTv0_n12_N9GG13322133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13322133fooEv,_ZThn24_N9GG13322133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13322133barEv,_ZTv0_n16_N9GG13322133barEv)();
+extern void ABISELECT(_ZThn48_N9GG13322133barEv,_ZThn24_N9GG13322133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13322133fooEv,_ZTv0_n20_N9GG13322133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13322133fooEv,_ZThn32_N9GG13322133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13322133barEv,_ZTv0_n12_N9GG13322133barEv)();
+extern void ABISELECT(_ZThn80_N9GG13322133barEv,_ZThn40_N9GG13322133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13322133barEv,_ZTv0_n12_N9GG13322133barEv)();
+extern void ABISELECT(_ZThn96_N9GG13322133barEv,_ZThn48_N9GG13322133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1332213[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1332213[0]),
+ (VTBL_ENTRY)&_ZN9GG13322133fooEv,
+ (VTBL_ENTRY)&_ZN9GG13322133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1332213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13322133fooEv,_ZTv0_n20_N9GG13322133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13322133barEv,_ZTv0_n24_N9GG13322133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1332213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13322133fooEv,_ZTv0_n12_N9GG13322133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1332213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13322133fooEv,_ZTv0_n12_N9GG13322133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13322133barEv,_ZTv0_n16_N9GG13322133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1332213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13322133fooEv,_ZTv0_n20_N9GG13322133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1332213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13322133barEv,_ZTv0_n12_N9GG13322133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1332213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13322133barEv,_ZTv0_n12_N9GG13322133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1332213[];
+extern void _ZN5EE1333fooEv();
+extern void _ZN5EE1333barEv();
+static VTBL_ENTRY _tg__ZTV5EE133__9GG1332213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&_ZN5EE1333fooEv,
+ (VTBL_ENTRY)&_ZN5EE1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE133__9GG1332213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv)();
+extern void ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE133__9GG1332213[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv),
+};
+extern void _ZN5FF2213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF221__9GG1332213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN5FF2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF221__9GG1332213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF221__9GG1332213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG1332213[] = {
+ {&(_ZTV9GG1332213[8]), 8,42},
+ {&(_ZTV9GG1332213[16]), 16,42},
+ {&(_ZTV9GG1332213[21]), 21,42},
+ {&(_ZTV9GG1332213[26]), 26,42},
+ {&(_ZTV9GG1332213[33]), 33,42},
+ {&(_ZTV9GG1332213[37]), 37,42},
+ {&(_ZTV9GG1332213[41]), 41,42},
+ {&(_tg__ZTV5EE133__9GG1332213[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE133__9GG1332213[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE133__9GG1332213[4]), 4,6},
+ {&(_tg__ZTV5FF221__9GG1332213[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF221__9GG1332213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF221__9GG1332213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1332213[];
+extern VTBL_ENTRY _ZTV9GG1332213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1332213[];
+static VTBL_ENTRY alt_thunk_names451[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13322133barEv,_ZTv0_n12_N9GG13322133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG13322133barEv,_ZThn48_N9GG13322133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13322133barEv,_ZThn40_N9GG13322133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13322133barEv,_ZTv0_n16_N9GG13322133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13322133barEv,_ZThn24_N9GG13322133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13322133fooEv,_ZTv0_n12_N9GG13322133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13322133fooEv,_ZThn24_N9GG13322133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13322133fooEv,_ZThn16_N9GG13322133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG13322133barEv,_ZTv0_n24_N9GG13322133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13322133barEv,_ZThn8_N9GG13322133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13322133fooEv,_ZTv0_n20_N9GG13322133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13322133fooEv,_ZThn32_N9GG13322133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13322133fooEv,_ZThn8_N9GG13322133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1332213 = { "GG1332213", // class name
+ bases_GG1332213, 6,
+ &(vtc_GG1332213[0]), // expected_vtbl_contents
+ &(vtt_GG1332213[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1332213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1332213),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1332213),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names451,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1332222 : virtual EE133 , virtual FF222 {
+ int pg;
+ virtual void bar(); // _ZN9GG13322223barEv
+ ~GG1332222(); // tgen
+ GG1332222(); // tgen
+};
+//SIG(1 GG1332222) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 v1 Fi} v2 v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+void GG1332222 ::bar(){vfunc_called(this, "_ZN9GG13322223barEv");}
+GG1332222 ::~GG1332222(){ note_dtor("GG1332222", this);} // tgen
+GG1332222 ::GG1332222(){ note_ctor("GG1332222", this);} // tgen
+
+static void Test_GG1332222()
+{
+ extern Class_Descriptor cd_GG1332222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1332222, buf);
+ GG1332222 *dp, &lv = *(dp=new (buf) GG1332222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1332222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1332222)");
+ check_base_class_offset(lv, (AA1*)(EE133*), ABISELECT(32,16), "GG1332222");
+ check_base_class_offset(lv, (BB3*)(EE133*), ABISELECT(48,24), "GG1332222");
+ check_base_class_offset(lv, (EE133*), ABISELECT(16,8), "GG1332222");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(80,40), "GG1332222");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(96,48), "GG1332222");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG1332222");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1332222.pg");
+ test_class_info(&lv, &cd_GG1332222);
+ dp->~GG1332222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1332222(Test_GG1332222, "GG1332222", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1332222C1Ev();
+extern void _ZN9GG1332222D1Ev();
+Name_Map name_map_GG1332222[] = {
+ NSPAIR(_ZN9GG1332222C1Ev),
+ NSPAIR(_ZN9GG1332222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE133;
+extern VTBL_ENTRY _ZTI5EE133[];
+extern VTBL_ENTRY _ZTV5EE133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE133[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG1332222[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE133, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 37, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1332222[];
+extern void _ZN9GG13322223barEv();
+extern void _ZN5EE1333fooEv();
+extern void ABISELECT(_ZTv0_n48_N9GG13322223barEv,_ZTv0_n24_N9GG13322223barEv)();
+extern void ABISELECT(_ZThn16_N9GG13322223barEv,_ZThn8_N9GG13322223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13322223barEv,_ZTv0_n16_N9GG13322223barEv)();
+extern void ABISELECT(_ZThn48_N9GG13322223barEv,_ZThn24_N9GG13322223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13322223barEv,_ZTv0_n20_N9GG13322223barEv)();
+extern void ABISELECT(_ZThn64_N9GG13322223barEv,_ZThn32_N9GG13322223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13322223barEv,_ZTv0_n12_N9GG13322223barEv)();
+extern void ABISELECT(_ZThn80_N9GG13322223barEv,_ZThn40_N9GG13322223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13322223barEv,_ZTv0_n12_N9GG13322223barEv)();
+extern void ABISELECT(_ZThn96_N9GG13322223barEv,_ZThn48_N9GG13322223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1332222[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1332222[0]),
+ (VTBL_ENTRY)&_ZN9GG13322223barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1332222[0]),
+ (VTBL_ENTRY)&_ZN5EE1333fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13322223barEv,_ZTv0_n24_N9GG13322223barEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1332222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1332222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13322223barEv,_ZTv0_n16_N9GG13322223barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1332222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13322223barEv,_ZTv0_n20_N9GG13322223barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1332222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13322223barEv,_ZTv0_n12_N9GG13322223barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1332222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13322223barEv,_ZTv0_n12_N9GG13322223barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1332222[];
+extern void _ZN5EE1333fooEv();
+extern void _ZN5EE1333barEv();
+static VTBL_ENTRY _tg__ZTV5EE133__9GG1332222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&_ZN5EE1333fooEv,
+ (VTBL_ENTRY)&_ZN5EE1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE133__9GG1332222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv)();
+extern void ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE133__9GG1332222[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv),
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG1332222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG1332222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG1332222[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG1332222[] = {
+ {&(_ZTV9GG1332222[8]), 8,41},
+ {&(_ZTV9GG1332222[15]), 15,41},
+ {&(_ZTV9GG1332222[20]), 20,41},
+ {&(_ZTV9GG1332222[25]), 25,41},
+ {&(_ZTV9GG1332222[32]), 32,41},
+ {&(_ZTV9GG1332222[36]), 36,41},
+ {&(_ZTV9GG1332222[40]), 40,41},
+ {&(_tg__ZTV5EE133__9GG1332222[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE133__9GG1332222[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE133__9GG1332222[4]), 4,6},
+ {&(_tg__ZTV5FF222__9GG1332222[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG1332222[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG1332222[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1332222[];
+extern VTBL_ENTRY _ZTV9GG1332222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1332222[];
+static VTBL_ENTRY alt_thunk_names452[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13322223barEv,_ZTv0_n12_N9GG13322223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG13322223barEv,_ZThn48_N9GG13322223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13322223barEv,_ZThn40_N9GG13322223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13322223barEv,_ZTv0_n20_N9GG13322223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13322223barEv,_ZThn32_N9GG13322223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13322223barEv,_ZTv0_n16_N9GG13322223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13322223barEv,_ZThn24_N9GG13322223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG13322223barEv,_ZTv0_n24_N9GG13322223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13322223barEv,_ZThn8_N9GG13322223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1332222 = { "GG1332222", // class name
+ bases_GG1332222, 6,
+ &(vtc_GG1332222[0]), // expected_vtbl_contents
+ &(vtt_GG1332222[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1332222),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1332222),41, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1332222),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names452,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1332223 : virtual EE133 , virtual FF222 {
+ int pg;
+ virtual void foo(); // _ZN9GG13322233fooEv
+ virtual void bar(); // _ZN9GG13322233barEv
+ ~GG1332223(); // tgen
+ GG1332223(); // tgen
+};
+//SIG(1 GG1332223) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1332223 ::foo(){vfunc_called(this, "_ZN9GG13322233fooEv");}
+void GG1332223 ::bar(){vfunc_called(this, "_ZN9GG13322233barEv");}
+GG1332223 ::~GG1332223(){ note_dtor("GG1332223", this);} // tgen
+GG1332223 ::GG1332223(){ note_ctor("GG1332223", this);} // tgen
+
+static void Test_GG1332223()
+{
+ extern Class_Descriptor cd_GG1332223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1332223, buf);
+ GG1332223 *dp, &lv = *(dp=new (buf) GG1332223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1332223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1332223)");
+ check_base_class_offset(lv, (AA1*)(EE133*), ABISELECT(32,16), "GG1332223");
+ check_base_class_offset(lv, (BB3*)(EE133*), ABISELECT(48,24), "GG1332223");
+ check_base_class_offset(lv, (EE133*), ABISELECT(16,8), "GG1332223");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(80,40), "GG1332223");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(96,48), "GG1332223");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG1332223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1332223.pg");
+ test_class_info(&lv, &cd_GG1332223);
+ dp->~GG1332223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1332223(Test_GG1332223, "GG1332223", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1332223C1Ev();
+extern void _ZN9GG1332223D1Ev();
+Name_Map name_map_GG1332223[] = {
+ NSPAIR(_ZN9GG1332223C1Ev),
+ NSPAIR(_ZN9GG1332223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE133;
+extern VTBL_ENTRY _ZTI5EE133[];
+extern VTBL_ENTRY _ZTV5EE133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE133[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG1332223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE133, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1332223[];
+extern void _ZN9GG13322233fooEv();
+extern void _ZN9GG13322233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13322233fooEv,_ZTv0_n20_N9GG13322233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13322233fooEv,_ZThn8_N9GG13322233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13322233barEv,_ZTv0_n24_N9GG13322233barEv)();
+extern void ABISELECT(_ZThn16_N9GG13322233barEv,_ZThn8_N9GG13322233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13322233fooEv,_ZTv0_n12_N9GG13322233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13322233fooEv,_ZThn16_N9GG13322233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13322233fooEv,_ZTv0_n12_N9GG13322233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13322233fooEv,_ZThn24_N9GG13322233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13322233barEv,_ZTv0_n16_N9GG13322233barEv)();
+extern void ABISELECT(_ZThn48_N9GG13322233barEv,_ZThn24_N9GG13322233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13322233barEv,_ZTv0_n20_N9GG13322233barEv)();
+extern void ABISELECT(_ZThn64_N9GG13322233barEv,_ZThn32_N9GG13322233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13322233barEv,_ZTv0_n12_N9GG13322233barEv)();
+extern void ABISELECT(_ZThn80_N9GG13322233barEv,_ZThn40_N9GG13322233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13322233barEv,_ZTv0_n12_N9GG13322233barEv)();
+extern void ABISELECT(_ZThn96_N9GG13322233barEv,_ZThn48_N9GG13322233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1332223[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1332223[0]),
+ (VTBL_ENTRY)&_ZN9GG13322233fooEv,
+ (VTBL_ENTRY)&_ZN9GG13322233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1332223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13322233fooEv,_ZTv0_n20_N9GG13322233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13322233barEv,_ZTv0_n24_N9GG13322233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1332223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13322233fooEv,_ZTv0_n12_N9GG13322233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1332223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13322233fooEv,_ZTv0_n12_N9GG13322233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13322233barEv,_ZTv0_n16_N9GG13322233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1332223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13322233barEv,_ZTv0_n20_N9GG13322233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1332223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13322233barEv,_ZTv0_n12_N9GG13322233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1332223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13322233barEv,_ZTv0_n12_N9GG13322233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1332223[];
+extern void _ZN5EE1333fooEv();
+extern void _ZN5EE1333barEv();
+static VTBL_ENTRY _tg__ZTV5EE133__9GG1332223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&_ZN5EE1333fooEv,
+ (VTBL_ENTRY)&_ZN5EE1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE133__9GG1332223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv)();
+extern void ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE133__9GG1332223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv),
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG1332223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG1332223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG1332223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG1332223[] = {
+ {&(_ZTV9GG1332223[8]), 8,42},
+ {&(_ZTV9GG1332223[16]), 16,42},
+ {&(_ZTV9GG1332223[21]), 21,42},
+ {&(_ZTV9GG1332223[26]), 26,42},
+ {&(_ZTV9GG1332223[33]), 33,42},
+ {&(_ZTV9GG1332223[37]), 37,42},
+ {&(_ZTV9GG1332223[41]), 41,42},
+ {&(_tg__ZTV5EE133__9GG1332223[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE133__9GG1332223[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE133__9GG1332223[4]), 4,6},
+ {&(_tg__ZTV5FF222__9GG1332223[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG1332223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG1332223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1332223[];
+extern VTBL_ENTRY _ZTV9GG1332223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1332223[];
+static VTBL_ENTRY alt_thunk_names453[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13322233barEv,_ZTv0_n12_N9GG13322233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG13322233barEv,_ZThn48_N9GG13322233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13322233barEv,_ZThn40_N9GG13322233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13322233barEv,_ZTv0_n20_N9GG13322233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13322233barEv,_ZThn32_N9GG13322233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13322233barEv,_ZTv0_n16_N9GG13322233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13322233barEv,_ZThn24_N9GG13322233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13322233fooEv,_ZTv0_n12_N9GG13322233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13322233fooEv,_ZThn24_N9GG13322233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13322233fooEv,_ZThn16_N9GG13322233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG13322233barEv,_ZTv0_n24_N9GG13322233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13322233barEv,_ZThn8_N9GG13322233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13322233fooEv,_ZTv0_n20_N9GG13322233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13322233fooEv,_ZThn8_N9GG13322233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1332223 = { "GG1332223", // class name
+ bases_GG1332223, 6,
+ &(vtc_GG1332223[0]), // expected_vtbl_contents
+ &(vtt_GG1332223[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1332223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1332223),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1332223),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names453,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1332233 : virtual EE133 , virtual FF223 {
+ int pg;
+ virtual void foo(); // _ZN9GG13322333fooEv
+ virtual void bar(); // _ZN9GG13322333barEv
+ ~GG1332233(); // tgen
+ GG1332233(); // tgen
+};
+//SIG(1 GG1332233) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1332233 ::foo(){vfunc_called(this, "_ZN9GG13322333fooEv");}
+void GG1332233 ::bar(){vfunc_called(this, "_ZN9GG13322333barEv");}
+GG1332233 ::~GG1332233(){ note_dtor("GG1332233", this);} // tgen
+GG1332233 ::GG1332233(){ note_ctor("GG1332233", this);} // tgen
+
+static void Test_GG1332233()
+{
+ extern Class_Descriptor cd_GG1332233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1332233, buf);
+ GG1332233 *dp, &lv = *(dp=new (buf) GG1332233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1332233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1332233)");
+ check_base_class_offset(lv, (AA1*)(EE133*), ABISELECT(32,16), "GG1332233");
+ check_base_class_offset(lv, (BB3*)(EE133*), ABISELECT(48,24), "GG1332233");
+ check_base_class_offset(lv, (EE133*), ABISELECT(16,8), "GG1332233");
+ check_base_class_offset(lv, (AA2*)(FF223*), ABISELECT(80,40), "GG1332233");
+ check_base_class_offset(lv, (BB2*)(FF223*), ABISELECT(96,48), "GG1332233");
+ check_base_class_offset(lv, (FF223*), ABISELECT(64,32), "GG1332233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1332233.pg");
+ test_class_info(&lv, &cd_GG1332233);
+ dp->~GG1332233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1332233(Test_GG1332233, "GG1332233", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1332233C1Ev();
+extern void _ZN9GG1332233D1Ev();
+Name_Map name_map_GG1332233[] = {
+ NSPAIR(_ZN9GG1332233C1Ev),
+ NSPAIR(_ZN9GG1332233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE133;
+extern VTBL_ENTRY _ZTI5EE133[];
+extern VTBL_ENTRY _ZTV5EE133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE133[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF223;
+extern VTBL_ENTRY _ZTI5FF223[];
+extern VTBL_ENTRY _ZTV5FF223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF223[];
+static Base_Class bases_GG1332233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE133, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 40, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF223, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1332233[];
+extern void _ZN9GG13322333fooEv();
+extern void _ZN9GG13322333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13322333fooEv,_ZTv0_n20_N9GG13322333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13322333fooEv,_ZThn8_N9GG13322333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13322333barEv,_ZTv0_n24_N9GG13322333barEv)();
+extern void ABISELECT(_ZThn16_N9GG13322333barEv,_ZThn8_N9GG13322333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13322333fooEv,_ZTv0_n12_N9GG13322333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13322333fooEv,_ZThn16_N9GG13322333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13322333fooEv,_ZTv0_n12_N9GG13322333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13322333fooEv,_ZThn24_N9GG13322333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13322333barEv,_ZTv0_n16_N9GG13322333barEv)();
+extern void ABISELECT(_ZThn48_N9GG13322333barEv,_ZThn24_N9GG13322333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13322333fooEv,_ZTv0_n20_N9GG13322333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13322333fooEv,_ZThn32_N9GG13322333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13322333barEv,_ZTv0_n24_N9GG13322333barEv)();
+extern void ABISELECT(_ZThn64_N9GG13322333barEv,_ZThn32_N9GG13322333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13322333barEv,_ZTv0_n12_N9GG13322333barEv)();
+extern void ABISELECT(_ZThn80_N9GG13322333barEv,_ZThn40_N9GG13322333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13322333barEv,_ZTv0_n12_N9GG13322333barEv)();
+extern void ABISELECT(_ZThn96_N9GG13322333barEv,_ZThn48_N9GG13322333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1332233[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1332233[0]),
+ (VTBL_ENTRY)&_ZN9GG13322333fooEv,
+ (VTBL_ENTRY)&_ZN9GG13322333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1332233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13322333fooEv,_ZTv0_n20_N9GG13322333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13322333barEv,_ZTv0_n24_N9GG13322333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1332233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13322333fooEv,_ZTv0_n12_N9GG13322333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1332233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13322333fooEv,_ZTv0_n12_N9GG13322333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13322333barEv,_ZTv0_n16_N9GG13322333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1332233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13322333fooEv,_ZTv0_n20_N9GG13322333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13322333barEv,_ZTv0_n24_N9GG13322333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1332233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13322333barEv,_ZTv0_n12_N9GG13322333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1332233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13322333barEv,_ZTv0_n12_N9GG13322333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1332233[];
+extern void _ZN5EE1333fooEv();
+extern void _ZN5EE1333barEv();
+static VTBL_ENTRY _tg__ZTV5EE133__9GG1332233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&_ZN5EE1333fooEv,
+ (VTBL_ENTRY)&_ZN5EE1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE133__9GG1332233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv)();
+extern void ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE133__9GG1332233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv),
+};
+extern void _ZN5FF2233fooEv();
+extern void _ZN5FF2233barEv();
+static VTBL_ENTRY _tg__ZTV5FF223__9GG1332233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&_ZN5FF2233fooEv,
+ (VTBL_ENTRY)&_ZN5FF2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+extern void ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF223__9GG1332233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+extern void ABISELECT(_ZThn32_N5FF2233barEv,_ZThn16_N5FF2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF223__9GG1332233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+static VTT_ENTRY vtt_GG1332233[] = {
+ {&(_ZTV9GG1332233[8]), 8,44},
+ {&(_ZTV9GG1332233[16]), 16,44},
+ {&(_ZTV9GG1332233[21]), 21,44},
+ {&(_ZTV9GG1332233[26]), 26,44},
+ {&(_ZTV9GG1332233[34]), 34,44},
+ {&(_ZTV9GG1332233[39]), 39,44},
+ {&(_ZTV9GG1332233[43]), 43,44},
+ {&(_tg__ZTV5EE133__9GG1332233[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE133__9GG1332233[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE133__9GG1332233[4]), 4,6},
+ {&(_tg__ZTV5FF223__9GG1332233[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF223__9GG1332233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF223__9GG1332233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1332233[];
+extern VTBL_ENTRY _ZTV9GG1332233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1332233[];
+static VTBL_ENTRY alt_thunk_names454[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2233barEv,_ZThn16_N5FF2233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13322333barEv,_ZTv0_n12_N9GG13322333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG13322333barEv,_ZThn48_N9GG13322333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13322333barEv,_ZThn40_N9GG13322333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13322333barEv,_ZTv0_n16_N9GG13322333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13322333barEv,_ZThn24_N9GG13322333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13322333fooEv,_ZTv0_n12_N9GG13322333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13322333fooEv,_ZThn24_N9GG13322333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13322333fooEv,_ZThn16_N9GG13322333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG13322333barEv,_ZTv0_n24_N9GG13322333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13322333barEv,_ZThn32_N9GG13322333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13322333barEv,_ZThn8_N9GG13322333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13322333fooEv,_ZTv0_n20_N9GG13322333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13322333fooEv,_ZThn32_N9GG13322333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13322333fooEv,_ZThn8_N9GG13322333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1332233 = { "GG1332233", // class name
+ bases_GG1332233, 6,
+ &(vtc_GG1332233[0]), // expected_vtbl_contents
+ &(vtt_GG1332233[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1332233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1332233),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1332233),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names454,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1332313 : virtual EE133 , virtual FF231 {
+ int pg;
+ virtual void foo(); // _ZN9GG13323133fooEv
+ virtual void bar(); // _ZN9GG13323133barEv
+ ~GG1332313(); // tgen
+ GG1332313(); // tgen
+};
+//SIG(1 GG1332313) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG1332313 ::foo(){vfunc_called(this, "_ZN9GG13323133fooEv");}
+void GG1332313 ::bar(){vfunc_called(this, "_ZN9GG13323133barEv");}
+GG1332313 ::~GG1332313(){ note_dtor("GG1332313", this);} // tgen
+GG1332313 ::GG1332313(){ note_ctor("GG1332313", this);} // tgen
+
+static void Test_GG1332313()
+{
+ extern Class_Descriptor cd_GG1332313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1332313, buf);
+ GG1332313 *dp, &lv = *(dp=new (buf) GG1332313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1332313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1332313)");
+ check_base_class_offset(lv, (AA1*)(EE133*), ABISELECT(32,16), "GG1332313");
+ check_base_class_offset(lv, (BB3*)(EE133*), ABISELECT(48,24), "GG1332313");
+ check_base_class_offset(lv, (BB3*)(FF231*), ABISELECT(48,24), "GG1332313");
+ check_base_class_offset(lv, (EE133*), ABISELECT(16,8), "GG1332313");
+ check_base_class_offset(lv, (AA2*)(FF231*), ABISELECT(80,40), "GG1332313");
+ check_base_class_offset(lv, (FF231*), ABISELECT(64,32), "GG1332313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1332313.pg");
+ test_class_info(&lv, &cd_GG1332313);
+ dp->~GG1332313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1332313(Test_GG1332313, "GG1332313", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1332313C1Ev();
+extern void _ZN9GG1332313D1Ev();
+Name_Map name_map_GG1332313[] = {
+ NSPAIR(_ZN9GG1332313C1Ev),
+ NSPAIR(_ZN9GG1332313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE133;
+extern VTBL_ENTRY _ZTI5EE133[];
+extern VTBL_ENTRY _ZTV5EE133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE133[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF231;
+extern VTBL_ENTRY _ZTI5FF231[];
+extern VTBL_ENTRY _ZTV5FF231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF231[];
+static Base_Class bases_GG1332313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE133, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF231, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1332313[];
+extern void _ZN9GG13323133fooEv();
+extern void _ZN9GG13323133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13323133fooEv,_ZTv0_n20_N9GG13323133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13323133fooEv,_ZThn8_N9GG13323133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13323133barEv,_ZTv0_n24_N9GG13323133barEv)();
+extern void ABISELECT(_ZThn16_N9GG13323133barEv,_ZThn8_N9GG13323133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13323133fooEv,_ZTv0_n12_N9GG13323133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13323133fooEv,_ZThn16_N9GG13323133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13323133fooEv,_ZTv0_n12_N9GG13323133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13323133fooEv,_ZThn24_N9GG13323133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13323133barEv,_ZTv0_n16_N9GG13323133barEv)();
+extern void ABISELECT(_ZThn48_N9GG13323133barEv,_ZThn24_N9GG13323133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13323133fooEv,_ZTv0_n20_N9GG13323133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13323133fooEv,_ZThn32_N9GG13323133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13323133barEv,_ZTv0_n12_N9GG13323133barEv)();
+extern void ABISELECT(_ZThn80_N9GG13323133barEv,_ZThn40_N9GG13323133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1332313[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1332313[0]),
+ (VTBL_ENTRY)&_ZN9GG13323133fooEv,
+ (VTBL_ENTRY)&_ZN9GG13323133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1332313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13323133fooEv,_ZTv0_n20_N9GG13323133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13323133barEv,_ZTv0_n24_N9GG13323133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1332313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13323133fooEv,_ZTv0_n12_N9GG13323133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1332313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13323133fooEv,_ZTv0_n12_N9GG13323133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13323133barEv,_ZTv0_n16_N9GG13323133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1332313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13323133fooEv,_ZTv0_n20_N9GG13323133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1332313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13323133barEv,_ZTv0_n12_N9GG13323133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1332313[];
+extern void _ZN5EE1333fooEv();
+extern void _ZN5EE1333barEv();
+static VTBL_ENTRY _tg__ZTV5EE133__9GG1332313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&_ZN5EE1333fooEv,
+ (VTBL_ENTRY)&_ZN5EE1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE133__9GG1332313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv)();
+extern void ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE133__9GG1332313[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv),
+};
+extern void _ZN5FF2313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF231__9GG1332313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN5FF2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF231__9GG1332313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv)();
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF231__9GG1332313[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG1332313[] = {
+ {&(_ZTV9GG1332313[7]), 7,37},
+ {&(_ZTV9GG1332313[15]), 15,37},
+ {&(_ZTV9GG1332313[20]), 20,37},
+ {&(_ZTV9GG1332313[25]), 25,37},
+ {&(_ZTV9GG1332313[32]), 32,37},
+ {&(_ZTV9GG1332313[36]), 36,37},
+ {&(_tg__ZTV5EE133__9GG1332313[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE133__9GG1332313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE133__9GG1332313[4]), 4,6},
+ {&(_tg__ZTV5FF231__9GG1332313[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF231__9GG1332313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF231__9GG1332313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1332313[];
+extern VTBL_ENTRY _ZTV9GG1332313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1332313[];
+static VTBL_ENTRY alt_thunk_names455[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13323133barEv,_ZTv0_n12_N9GG13323133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13323133barEv,_ZThn40_N9GG13323133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13323133barEv,_ZTv0_n16_N9GG13323133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13323133barEv,_ZThn24_N9GG13323133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13323133fooEv,_ZTv0_n12_N9GG13323133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13323133fooEv,_ZThn24_N9GG13323133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13323133fooEv,_ZThn16_N9GG13323133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG13323133barEv,_ZTv0_n24_N9GG13323133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13323133barEv,_ZThn8_N9GG13323133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13323133fooEv,_ZTv0_n20_N9GG13323133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13323133fooEv,_ZThn32_N9GG13323133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13323133fooEv,_ZThn8_N9GG13323133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1332313 = { "GG1332313", // class name
+ bases_GG1332313, 5,
+ &(vtc_GG1332313[0]), // expected_vtbl_contents
+ &(vtt_GG1332313[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1332313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1332313),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1332313),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names455,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1332323 : virtual EE133 , virtual FF232 {
+ int pg;
+ virtual void foo(); // _ZN9GG13323233fooEv
+ virtual void bar(); // _ZN9GG13323233barEv
+ ~GG1332323(); // tgen
+ GG1332323(); // tgen
+};
+//SIG(1 GG1332323) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG1332323 ::foo(){vfunc_called(this, "_ZN9GG13323233fooEv");}
+void GG1332323 ::bar(){vfunc_called(this, "_ZN9GG13323233barEv");}
+GG1332323 ::~GG1332323(){ note_dtor("GG1332323", this);} // tgen
+GG1332323 ::GG1332323(){ note_ctor("GG1332323", this);} // tgen
+
+static void Test_GG1332323()
+{
+ extern Class_Descriptor cd_GG1332323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1332323, buf);
+ GG1332323 *dp, &lv = *(dp=new (buf) GG1332323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1332323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1332323)");
+ check_base_class_offset(lv, (AA1*)(EE133*), ABISELECT(32,16), "GG1332323");
+ check_base_class_offset(lv, (BB3*)(EE133*), ABISELECT(48,24), "GG1332323");
+ check_base_class_offset(lv, (BB3*)(FF232*), ABISELECT(48,24), "GG1332323");
+ check_base_class_offset(lv, (EE133*), ABISELECT(16,8), "GG1332323");
+ check_base_class_offset(lv, (AA2*)(FF232*), ABISELECT(80,40), "GG1332323");
+ check_base_class_offset(lv, (FF232*), ABISELECT(64,32), "GG1332323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1332323.pg");
+ test_class_info(&lv, &cd_GG1332323);
+ dp->~GG1332323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1332323(Test_GG1332323, "GG1332323", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1332323C1Ev();
+extern void _ZN9GG1332323D1Ev();
+Name_Map name_map_GG1332323[] = {
+ NSPAIR(_ZN9GG1332323C1Ev),
+ NSPAIR(_ZN9GG1332323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE133;
+extern VTBL_ENTRY _ZTI5EE133[];
+extern VTBL_ENTRY _ZTV5EE133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE133[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF232;
+extern VTBL_ENTRY _ZTI5FF232[];
+extern VTBL_ENTRY _ZTV5FF232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF232[];
+static Base_Class bases_GG1332323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE133, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF232, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1332323[];
+extern void _ZN9GG13323233fooEv();
+extern void _ZN9GG13323233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13323233fooEv,_ZTv0_n20_N9GG13323233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13323233fooEv,_ZThn8_N9GG13323233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13323233barEv,_ZTv0_n24_N9GG13323233barEv)();
+extern void ABISELECT(_ZThn16_N9GG13323233barEv,_ZThn8_N9GG13323233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13323233fooEv,_ZTv0_n12_N9GG13323233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13323233fooEv,_ZThn16_N9GG13323233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13323233fooEv,_ZTv0_n12_N9GG13323233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13323233fooEv,_ZThn24_N9GG13323233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13323233barEv,_ZTv0_n16_N9GG13323233barEv)();
+extern void ABISELECT(_ZThn48_N9GG13323233barEv,_ZThn24_N9GG13323233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13323233barEv,_ZTv0_n20_N9GG13323233barEv)();
+extern void ABISELECT(_ZThn64_N9GG13323233barEv,_ZThn32_N9GG13323233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13323233barEv,_ZTv0_n12_N9GG13323233barEv)();
+extern void ABISELECT(_ZThn80_N9GG13323233barEv,_ZThn40_N9GG13323233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1332323[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1332323[0]),
+ (VTBL_ENTRY)&_ZN9GG13323233fooEv,
+ (VTBL_ENTRY)&_ZN9GG13323233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1332323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13323233fooEv,_ZTv0_n20_N9GG13323233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13323233barEv,_ZTv0_n24_N9GG13323233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1332323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13323233fooEv,_ZTv0_n12_N9GG13323233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1332323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13323233fooEv,_ZTv0_n12_N9GG13323233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13323233barEv,_ZTv0_n16_N9GG13323233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1332323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13323233barEv,_ZTv0_n20_N9GG13323233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1332323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13323233barEv,_ZTv0_n12_N9GG13323233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1332323[];
+extern void _ZN5EE1333fooEv();
+extern void _ZN5EE1333barEv();
+static VTBL_ENTRY _tg__ZTV5EE133__9GG1332323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&_ZN5EE1333fooEv,
+ (VTBL_ENTRY)&_ZN5EE1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE133__9GG1332323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv)();
+extern void ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE133__9GG1332323[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv),
+};
+extern void _ZN5FF2323barEv();
+static VTBL_ENTRY _tg__ZTV5FF232__9GG1332323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN5FF2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv)();
+extern void ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF232__9GG1332323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF232__9GG1332323[] = {
+ ABISELECT(16,8),
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv),
+};
+static VTT_ENTRY vtt_GG1332323[] = {
+ {&(_ZTV9GG1332323[7]), 7,37},
+ {&(_ZTV9GG1332323[15]), 15,37},
+ {&(_ZTV9GG1332323[20]), 20,37},
+ {&(_ZTV9GG1332323[25]), 25,37},
+ {&(_ZTV9GG1332323[32]), 32,37},
+ {&(_ZTV9GG1332323[36]), 36,37},
+ {&(_tg__ZTV5EE133__9GG1332323[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE133__9GG1332323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE133__9GG1332323[4]), 4,6},
+ {&(_tg__ZTV5FF232__9GG1332323[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF232__9GG1332323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF232__9GG1332323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1332323[];
+extern VTBL_ENTRY _ZTV9GG1332323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1332323[];
+static VTBL_ENTRY alt_thunk_names456[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13323233barEv,_ZTv0_n12_N9GG13323233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13323233barEv,_ZThn40_N9GG13323233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13323233barEv,_ZTv0_n20_N9GG13323233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13323233barEv,_ZThn32_N9GG13323233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13323233barEv,_ZTv0_n16_N9GG13323233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13323233barEv,_ZThn24_N9GG13323233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13323233fooEv,_ZTv0_n12_N9GG13323233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13323233fooEv,_ZThn24_N9GG13323233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13323233fooEv,_ZThn16_N9GG13323233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG13323233barEv,_ZTv0_n24_N9GG13323233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13323233barEv,_ZThn8_N9GG13323233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13323233fooEv,_ZTv0_n20_N9GG13323233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13323233fooEv,_ZThn8_N9GG13323233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1332323 = { "GG1332323", // class name
+ bases_GG1332323, 5,
+ &(vtc_GG1332323[0]), // expected_vtbl_contents
+ &(vtt_GG1332323[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1332323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1332323),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1332323),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names456,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1332333 : virtual EE133 , virtual FF233 {
+ int pg;
+ virtual void foo(); // _ZN9GG13323333fooEv
+ virtual void bar(); // _ZN9GG13323333barEv
+ ~GG1332333(); // tgen
+ GG1332333(); // tgen
+};
+//SIG(1 GG1332333) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1332333 ::foo(){vfunc_called(this, "_ZN9GG13323333fooEv");}
+void GG1332333 ::bar(){vfunc_called(this, "_ZN9GG13323333barEv");}
+GG1332333 ::~GG1332333(){ note_dtor("GG1332333", this);} // tgen
+GG1332333 ::GG1332333(){ note_ctor("GG1332333", this);} // tgen
+
+static void Test_GG1332333()
+{
+ extern Class_Descriptor cd_GG1332333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1332333, buf);
+ GG1332333 *dp, &lv = *(dp=new (buf) GG1332333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1332333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1332333)");
+ check_base_class_offset(lv, (AA1*)(EE133*), ABISELECT(32,16), "GG1332333");
+ check_base_class_offset(lv, (BB3*)(EE133*), ABISELECT(48,24), "GG1332333");
+ check_base_class_offset(lv, (BB3*)(FF233*), ABISELECT(48,24), "GG1332333");
+ check_base_class_offset(lv, (EE133*), ABISELECT(16,8), "GG1332333");
+ check_base_class_offset(lv, (AA2*)(FF233*), ABISELECT(80,40), "GG1332333");
+ check_base_class_offset(lv, (FF233*), ABISELECT(64,32), "GG1332333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1332333.pg");
+ test_class_info(&lv, &cd_GG1332333);
+ dp->~GG1332333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1332333(Test_GG1332333, "GG1332333", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1332333C1Ev();
+extern void _ZN9GG1332333D1Ev();
+Name_Map name_map_GG1332333[] = {
+ NSPAIR(_ZN9GG1332333C1Ev),
+ NSPAIR(_ZN9GG1332333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE133;
+extern VTBL_ENTRY _ZTI5EE133[];
+extern VTBL_ENTRY _ZTV5EE133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE133[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF233;
+extern VTBL_ENTRY _ZTI5FF233[];
+extern VTBL_ENTRY _ZTV5FF233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF233[];
+static Base_Class bases_GG1332333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE133, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF233, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1332333[];
+extern void _ZN9GG13323333fooEv();
+extern void _ZN9GG13323333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13323333fooEv,_ZTv0_n20_N9GG13323333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13323333fooEv,_ZThn8_N9GG13323333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13323333barEv,_ZTv0_n24_N9GG13323333barEv)();
+extern void ABISELECT(_ZThn16_N9GG13323333barEv,_ZThn8_N9GG13323333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13323333fooEv,_ZTv0_n12_N9GG13323333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13323333fooEv,_ZThn16_N9GG13323333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13323333fooEv,_ZTv0_n12_N9GG13323333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13323333fooEv,_ZThn24_N9GG13323333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13323333barEv,_ZTv0_n16_N9GG13323333barEv)();
+extern void ABISELECT(_ZThn48_N9GG13323333barEv,_ZThn24_N9GG13323333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13323333fooEv,_ZTv0_n20_N9GG13323333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13323333fooEv,_ZThn32_N9GG13323333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13323333barEv,_ZTv0_n24_N9GG13323333barEv)();
+extern void ABISELECT(_ZThn64_N9GG13323333barEv,_ZThn32_N9GG13323333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13323333barEv,_ZTv0_n12_N9GG13323333barEv)();
+extern void ABISELECT(_ZThn80_N9GG13323333barEv,_ZThn40_N9GG13323333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1332333[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1332333[0]),
+ (VTBL_ENTRY)&_ZN9GG13323333fooEv,
+ (VTBL_ENTRY)&_ZN9GG13323333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1332333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13323333fooEv,_ZTv0_n20_N9GG13323333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13323333barEv,_ZTv0_n24_N9GG13323333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1332333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13323333fooEv,_ZTv0_n12_N9GG13323333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1332333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13323333fooEv,_ZTv0_n12_N9GG13323333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13323333barEv,_ZTv0_n16_N9GG13323333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1332333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13323333fooEv,_ZTv0_n20_N9GG13323333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13323333barEv,_ZTv0_n24_N9GG13323333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1332333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13323333barEv,_ZTv0_n12_N9GG13323333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1332333[];
+extern void _ZN5EE1333fooEv();
+extern void _ZN5EE1333barEv();
+static VTBL_ENTRY _tg__ZTV5EE133__9GG1332333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&_ZN5EE1333fooEv,
+ (VTBL_ENTRY)&_ZN5EE1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE133__9GG1332333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv)();
+extern void ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE133__9GG1332333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv),
+};
+extern void _ZN5FF2333fooEv();
+extern void _ZN5FF2333barEv();
+static VTBL_ENTRY _tg__ZTV5FF233__9GG1332333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&_ZN5FF2333fooEv,
+ (VTBL_ENTRY)&_ZN5FF2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv)();
+extern void ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF233__9GG1332333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF233__9GG1332333[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv),
+};
+static VTT_ENTRY vtt_GG1332333[] = {
+ {&(_ZTV9GG1332333[7]), 7,39},
+ {&(_ZTV9GG1332333[15]), 15,39},
+ {&(_ZTV9GG1332333[20]), 20,39},
+ {&(_ZTV9GG1332333[25]), 25,39},
+ {&(_ZTV9GG1332333[33]), 33,39},
+ {&(_ZTV9GG1332333[38]), 38,39},
+ {&(_tg__ZTV5EE133__9GG1332333[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE133__9GG1332333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE133__9GG1332333[4]), 4,6},
+ {&(_tg__ZTV5FF233__9GG1332333[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF233__9GG1332333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF233__9GG1332333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1332333[];
+extern VTBL_ENTRY _ZTV9GG1332333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1332333[];
+static VTBL_ENTRY alt_thunk_names457[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13323333barEv,_ZTv0_n12_N9GG13323333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13323333barEv,_ZThn40_N9GG13323333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13323333barEv,_ZTv0_n16_N9GG13323333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13323333barEv,_ZThn24_N9GG13323333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13323333fooEv,_ZTv0_n12_N9GG13323333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13323333fooEv,_ZThn24_N9GG13323333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13323333fooEv,_ZThn16_N9GG13323333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG13323333barEv,_ZTv0_n24_N9GG13323333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13323333barEv,_ZThn32_N9GG13323333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13323333barEv,_ZThn8_N9GG13323333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13323333fooEv,_ZTv0_n20_N9GG13323333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13323333fooEv,_ZThn32_N9GG13323333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13323333fooEv,_ZThn8_N9GG13323333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1332333 = { "GG1332333", // class name
+ bases_GG1332333, 5,
+ &(vtc_GG1332333[0]), // expected_vtbl_contents
+ &(vtt_GG1332333[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1332333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1332333),39, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1332333),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names457,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1333113 : virtual EE133 , virtual FF311 {
+ int pg;
+ virtual void foo(); // _ZN9GG13331133fooEv
+ virtual void bar(); // _ZN9GG13331133barEv
+ ~GG1333113(); // tgen
+ GG1333113(); // tgen
+};
+//SIG(1 GG1333113) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1333113 ::foo(){vfunc_called(this, "_ZN9GG13331133fooEv");}
+void GG1333113 ::bar(){vfunc_called(this, "_ZN9GG13331133barEv");}
+GG1333113 ::~GG1333113(){ note_dtor("GG1333113", this);} // tgen
+GG1333113 ::GG1333113(){ note_ctor("GG1333113", this);} // tgen
+
+static void Test_GG1333113()
+{
+ extern Class_Descriptor cd_GG1333113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1333113, buf);
+ GG1333113 *dp, &lv = *(dp=new (buf) GG1333113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1333113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1333113)");
+ check_base_class_offset(lv, (AA1*)(EE133*), ABISELECT(32,16), "GG1333113");
+ check_base_class_offset(lv, (BB3*)(EE133*), ABISELECT(48,24), "GG1333113");
+ check_base_class_offset(lv, (EE133*), ABISELECT(16,8), "GG1333113");
+ check_base_class_offset(lv, (AA3*)(FF311*), ABISELECT(80,40), "GG1333113");
+ check_base_class_offset(lv, (BB1*)(FF311*), ABISELECT(96,48), "GG1333113");
+ check_base_class_offset(lv, (FF311*), ABISELECT(64,32), "GG1333113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1333113.pg");
+ test_class_info(&lv, &cd_GG1333113);
+ dp->~GG1333113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1333113(Test_GG1333113, "GG1333113", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1333113C1Ev();
+extern void _ZN9GG1333113D1Ev();
+Name_Map name_map_GG1333113[] = {
+ NSPAIR(_ZN9GG1333113C1Ev),
+ NSPAIR(_ZN9GG1333113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE133;
+extern VTBL_ENTRY _ZTI5EE133[];
+extern VTBL_ENTRY _ZTV5EE133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE133[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF311;
+extern VTBL_ENTRY _ZTI5FF311[];
+extern VTBL_ENTRY _ZTV5FF311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF311[];
+static Base_Class bases_GG1333113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE133, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 40, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF311, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1333113[];
+extern void _ZN9GG13331133fooEv();
+extern void _ZN9GG13331133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13331133fooEv,_ZTv0_n20_N9GG13331133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13331133fooEv,_ZThn8_N9GG13331133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13331133barEv,_ZTv0_n24_N9GG13331133barEv)();
+extern void ABISELECT(_ZThn16_N9GG13331133barEv,_ZThn8_N9GG13331133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13331133fooEv,_ZTv0_n12_N9GG13331133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13331133fooEv,_ZThn16_N9GG13331133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13331133fooEv,_ZTv0_n12_N9GG13331133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13331133fooEv,_ZThn24_N9GG13331133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13331133barEv,_ZTv0_n16_N9GG13331133barEv)();
+extern void ABISELECT(_ZThn48_N9GG13331133barEv,_ZThn24_N9GG13331133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13331133fooEv,_ZTv0_n20_N9GG13331133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13331133fooEv,_ZThn32_N9GG13331133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13331133fooEv,_ZTv0_n12_N9GG13331133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG13331133fooEv,_ZThn40_N9GG13331133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13331133barEv,_ZTv0_n16_N9GG13331133barEv)();
+extern void ABISELECT(_ZThn80_N9GG13331133barEv,_ZThn40_N9GG13331133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13331133fooEv,_ZTv0_n12_N9GG13331133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG13331133fooEv,_ZThn48_N9GG13331133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1333113[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1333113[0]),
+ (VTBL_ENTRY)&_ZN9GG13331133fooEv,
+ (VTBL_ENTRY)&_ZN9GG13331133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1333113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13331133fooEv,_ZTv0_n20_N9GG13331133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13331133barEv,_ZTv0_n24_N9GG13331133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1333113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13331133fooEv,_ZTv0_n12_N9GG13331133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1333113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13331133fooEv,_ZTv0_n12_N9GG13331133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13331133barEv,_ZTv0_n16_N9GG13331133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1333113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13331133fooEv,_ZTv0_n20_N9GG13331133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1333113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13331133fooEv,_ZTv0_n12_N9GG13331133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13331133barEv,_ZTv0_n16_N9GG13331133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1333113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13331133fooEv,_ZTv0_n12_N9GG13331133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1333113[];
+extern void _ZN5EE1333fooEv();
+extern void _ZN5EE1333barEv();
+static VTBL_ENTRY _tg__ZTV5EE133__9GG1333113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&_ZN5EE1333fooEv,
+ (VTBL_ENTRY)&_ZN5EE1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE133__9GG1333113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv)();
+extern void ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE133__9GG1333113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv),
+};
+extern void _ZN5FF3113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF311__9GG1333113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&_ZN5FF3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF311__9GG1333113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3113fooEv,_ZThn16_N5FF3113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF311__9GG1333113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+};
+static VTT_ENTRY vtt_GG1333113[] = {
+ {&(_ZTV9GG1333113[8]), 8,44},
+ {&(_ZTV9GG1333113[16]), 16,44},
+ {&(_ZTV9GG1333113[21]), 21,44},
+ {&(_ZTV9GG1333113[26]), 26,44},
+ {&(_ZTV9GG1333113[33]), 33,44},
+ {&(_ZTV9GG1333113[38]), 38,44},
+ {&(_ZTV9GG1333113[43]), 43,44},
+ {&(_tg__ZTV5EE133__9GG1333113[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE133__9GG1333113[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE133__9GG1333113[4]), 4,6},
+ {&(_tg__ZTV5FF311__9GG1333113[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF311__9GG1333113[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF311__9GG1333113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1333113[];
+extern VTBL_ENTRY _ZTV9GG1333113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1333113[];
+static VTBL_ENTRY alt_thunk_names458[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3113fooEv,_ZThn16_N5FF3113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13331133barEv,_ZTv0_n16_N9GG13331133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13331133barEv,_ZThn40_N9GG13331133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13331133barEv,_ZThn24_N9GG13331133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13331133fooEv,_ZTv0_n12_N9GG13331133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG13331133fooEv,_ZThn48_N9GG13331133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13331133fooEv,_ZThn40_N9GG13331133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13331133fooEv,_ZThn24_N9GG13331133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13331133fooEv,_ZThn16_N9GG13331133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG13331133barEv,_ZTv0_n24_N9GG13331133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13331133barEv,_ZThn8_N9GG13331133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13331133fooEv,_ZTv0_n20_N9GG13331133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13331133fooEv,_ZThn32_N9GG13331133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13331133fooEv,_ZThn8_N9GG13331133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1333113 = { "GG1333113", // class name
+ bases_GG1333113, 6,
+ &(vtc_GG1333113[0]), // expected_vtbl_contents
+ &(vtt_GG1333113[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1333113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1333113),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1333113),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names458,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1333123 : virtual EE133 , virtual FF312 {
+ int pg;
+ virtual void foo(); // _ZN9GG13331233fooEv
+ virtual void bar(); // _ZN9GG13331233barEv
+ ~GG1333123(); // tgen
+ GG1333123(); // tgen
+};
+//SIG(1 GG1333123) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1333123 ::foo(){vfunc_called(this, "_ZN9GG13331233fooEv");}
+void GG1333123 ::bar(){vfunc_called(this, "_ZN9GG13331233barEv");}
+GG1333123 ::~GG1333123(){ note_dtor("GG1333123", this);} // tgen
+GG1333123 ::GG1333123(){ note_ctor("GG1333123", this);} // tgen
+
+static void Test_GG1333123()
+{
+ extern Class_Descriptor cd_GG1333123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1333123, buf);
+ GG1333123 *dp, &lv = *(dp=new (buf) GG1333123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1333123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1333123)");
+ check_base_class_offset(lv, (AA1*)(EE133*), ABISELECT(32,16), "GG1333123");
+ check_base_class_offset(lv, (BB3*)(EE133*), ABISELECT(48,24), "GG1333123");
+ check_base_class_offset(lv, (EE133*), ABISELECT(16,8), "GG1333123");
+ check_base_class_offset(lv, (AA3*)(FF312*), ABISELECT(80,40), "GG1333123");
+ check_base_class_offset(lv, (BB1*)(FF312*), ABISELECT(96,48), "GG1333123");
+ check_base_class_offset(lv, (FF312*), ABISELECT(64,32), "GG1333123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1333123.pg");
+ test_class_info(&lv, &cd_GG1333123);
+ dp->~GG1333123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1333123(Test_GG1333123, "GG1333123", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1333123C1Ev();
+extern void _ZN9GG1333123D1Ev();
+Name_Map name_map_GG1333123[] = {
+ NSPAIR(_ZN9GG1333123C1Ev),
+ NSPAIR(_ZN9GG1333123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE133;
+extern VTBL_ENTRY _ZTI5EE133[];
+extern VTBL_ENTRY _ZTV5EE133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE133[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF312;
+extern VTBL_ENTRY _ZTI5FF312[];
+extern VTBL_ENTRY _ZTV5FF312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF312[];
+static Base_Class bases_GG1333123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE133, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 40, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF312, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1333123[];
+extern void _ZN9GG13331233fooEv();
+extern void _ZN9GG13331233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13331233fooEv,_ZTv0_n20_N9GG13331233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13331233fooEv,_ZThn8_N9GG13331233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13331233barEv,_ZTv0_n24_N9GG13331233barEv)();
+extern void ABISELECT(_ZThn16_N9GG13331233barEv,_ZThn8_N9GG13331233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13331233fooEv,_ZTv0_n12_N9GG13331233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13331233fooEv,_ZThn16_N9GG13331233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13331233fooEv,_ZTv0_n12_N9GG13331233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13331233fooEv,_ZThn24_N9GG13331233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13331233barEv,_ZTv0_n16_N9GG13331233barEv)();
+extern void ABISELECT(_ZThn48_N9GG13331233barEv,_ZThn24_N9GG13331233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13331233barEv,_ZTv0_n20_N9GG13331233barEv)();
+extern void ABISELECT(_ZThn64_N9GG13331233barEv,_ZThn32_N9GG13331233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13331233fooEv,_ZTv0_n12_N9GG13331233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG13331233fooEv,_ZThn40_N9GG13331233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13331233barEv,_ZTv0_n16_N9GG13331233barEv)();
+extern void ABISELECT(_ZThn80_N9GG13331233barEv,_ZThn40_N9GG13331233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13331233fooEv,_ZTv0_n12_N9GG13331233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG13331233fooEv,_ZThn48_N9GG13331233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1333123[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1333123[0]),
+ (VTBL_ENTRY)&_ZN9GG13331233fooEv,
+ (VTBL_ENTRY)&_ZN9GG13331233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1333123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13331233fooEv,_ZTv0_n20_N9GG13331233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13331233barEv,_ZTv0_n24_N9GG13331233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1333123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13331233fooEv,_ZTv0_n12_N9GG13331233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1333123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13331233fooEv,_ZTv0_n12_N9GG13331233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13331233barEv,_ZTv0_n16_N9GG13331233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1333123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13331233barEv,_ZTv0_n20_N9GG13331233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1333123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13331233fooEv,_ZTv0_n12_N9GG13331233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13331233barEv,_ZTv0_n16_N9GG13331233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1333123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13331233fooEv,_ZTv0_n12_N9GG13331233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1333123[];
+extern void _ZN5EE1333fooEv();
+extern void _ZN5EE1333barEv();
+static VTBL_ENTRY _tg__ZTV5EE133__9GG1333123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&_ZN5EE1333fooEv,
+ (VTBL_ENTRY)&_ZN5EE1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE133__9GG1333123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv)();
+extern void ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE133__9GG1333123[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv),
+};
+extern void _ZN5FF3123barEv();
+static VTBL_ENTRY _tg__ZTV5FF312__9GG1333123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN5FF3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv)();
+extern void ABISELECT(_ZThn16_N5FF3123barEv,_ZThn8_N5FF3123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF312__9GG1333123[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF312__9GG1333123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG1333123[] = {
+ {&(_ZTV9GG1333123[8]), 8,44},
+ {&(_ZTV9GG1333123[16]), 16,44},
+ {&(_ZTV9GG1333123[21]), 21,44},
+ {&(_ZTV9GG1333123[26]), 26,44},
+ {&(_ZTV9GG1333123[33]), 33,44},
+ {&(_ZTV9GG1333123[38]), 38,44},
+ {&(_ZTV9GG1333123[43]), 43,44},
+ {&(_tg__ZTV5EE133__9GG1333123[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE133__9GG1333123[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE133__9GG1333123[4]), 4,6},
+ {&(_tg__ZTV5FF312__9GG1333123[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF312__9GG1333123[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF312__9GG1333123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1333123[];
+extern VTBL_ENTRY _ZTV9GG1333123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1333123[];
+static VTBL_ENTRY alt_thunk_names459[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3123barEv,_ZThn8_N5FF3123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13331233barEv,_ZTv0_n20_N9GG13331233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13331233barEv,_ZThn32_N9GG13331233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13331233barEv,_ZTv0_n16_N9GG13331233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13331233barEv,_ZThn40_N9GG13331233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13331233barEv,_ZThn24_N9GG13331233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13331233fooEv,_ZTv0_n12_N9GG13331233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG13331233fooEv,_ZThn48_N9GG13331233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13331233fooEv,_ZThn40_N9GG13331233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13331233fooEv,_ZThn24_N9GG13331233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13331233fooEv,_ZThn16_N9GG13331233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG13331233barEv,_ZTv0_n24_N9GG13331233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13331233barEv,_ZThn8_N9GG13331233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13331233fooEv,_ZTv0_n20_N9GG13331233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13331233fooEv,_ZThn8_N9GG13331233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1333123 = { "GG1333123", // class name
+ bases_GG1333123, 6,
+ &(vtc_GG1333123[0]), // expected_vtbl_contents
+ &(vtt_GG1333123[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1333123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1333123),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1333123),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names459,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1333133 : virtual EE133 , virtual FF313 {
+ int pg;
+ virtual void foo(); // _ZN9GG13331333fooEv
+ virtual void bar(); // _ZN9GG13331333barEv
+ ~GG1333133(); // tgen
+ GG1333133(); // tgen
+};
+//SIG(1 GG1333133) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1333133 ::foo(){vfunc_called(this, "_ZN9GG13331333fooEv");}
+void GG1333133 ::bar(){vfunc_called(this, "_ZN9GG13331333barEv");}
+GG1333133 ::~GG1333133(){ note_dtor("GG1333133", this);} // tgen
+GG1333133 ::GG1333133(){ note_ctor("GG1333133", this);} // tgen
+
+static void Test_GG1333133()
+{
+ extern Class_Descriptor cd_GG1333133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1333133, buf);
+ GG1333133 *dp, &lv = *(dp=new (buf) GG1333133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1333133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1333133)");
+ check_base_class_offset(lv, (AA1*)(EE133*), ABISELECT(32,16), "GG1333133");
+ check_base_class_offset(lv, (BB3*)(EE133*), ABISELECT(48,24), "GG1333133");
+ check_base_class_offset(lv, (EE133*), ABISELECT(16,8), "GG1333133");
+ check_base_class_offset(lv, (AA3*)(FF313*), ABISELECT(80,40), "GG1333133");
+ check_base_class_offset(lv, (BB1*)(FF313*), ABISELECT(96,48), "GG1333133");
+ check_base_class_offset(lv, (FF313*), ABISELECT(64,32), "GG1333133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1333133.pg");
+ test_class_info(&lv, &cd_GG1333133);
+ dp->~GG1333133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1333133(Test_GG1333133, "GG1333133", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1333133C1Ev();
+extern void _ZN9GG1333133D1Ev();
+Name_Map name_map_GG1333133[] = {
+ NSPAIR(_ZN9GG1333133C1Ev),
+ NSPAIR(_ZN9GG1333133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE133;
+extern VTBL_ENTRY _ZTI5EE133[];
+extern VTBL_ENTRY _ZTV5EE133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE133[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF313;
+extern VTBL_ENTRY _ZTI5FF313[];
+extern VTBL_ENTRY _ZTV5FF313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF313[];
+static Base_Class bases_GG1333133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE133, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 42, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF313, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1333133[];
+extern void _ZN9GG13331333fooEv();
+extern void _ZN9GG13331333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13331333fooEv,_ZTv0_n20_N9GG13331333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13331333fooEv,_ZThn8_N9GG13331333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13331333barEv,_ZTv0_n24_N9GG13331333barEv)();
+extern void ABISELECT(_ZThn16_N9GG13331333barEv,_ZThn8_N9GG13331333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13331333fooEv,_ZTv0_n12_N9GG13331333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13331333fooEv,_ZThn16_N9GG13331333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13331333fooEv,_ZTv0_n12_N9GG13331333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13331333fooEv,_ZThn24_N9GG13331333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13331333barEv,_ZTv0_n16_N9GG13331333barEv)();
+extern void ABISELECT(_ZThn48_N9GG13331333barEv,_ZThn24_N9GG13331333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13331333fooEv,_ZTv0_n20_N9GG13331333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13331333fooEv,_ZThn32_N9GG13331333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13331333barEv,_ZTv0_n24_N9GG13331333barEv)();
+extern void ABISELECT(_ZThn64_N9GG13331333barEv,_ZThn32_N9GG13331333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13331333fooEv,_ZTv0_n12_N9GG13331333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG13331333fooEv,_ZThn40_N9GG13331333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13331333barEv,_ZTv0_n16_N9GG13331333barEv)();
+extern void ABISELECT(_ZThn80_N9GG13331333barEv,_ZThn40_N9GG13331333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13331333fooEv,_ZTv0_n12_N9GG13331333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG13331333fooEv,_ZThn48_N9GG13331333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1333133[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1333133[0]),
+ (VTBL_ENTRY)&_ZN9GG13331333fooEv,
+ (VTBL_ENTRY)&_ZN9GG13331333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1333133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13331333fooEv,_ZTv0_n20_N9GG13331333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13331333barEv,_ZTv0_n24_N9GG13331333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1333133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13331333fooEv,_ZTv0_n12_N9GG13331333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1333133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13331333fooEv,_ZTv0_n12_N9GG13331333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13331333barEv,_ZTv0_n16_N9GG13331333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1333133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13331333fooEv,_ZTv0_n20_N9GG13331333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13331333barEv,_ZTv0_n24_N9GG13331333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1333133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13331333fooEv,_ZTv0_n12_N9GG13331333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13331333barEv,_ZTv0_n16_N9GG13331333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1333133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13331333fooEv,_ZTv0_n12_N9GG13331333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG1333133[];
+extern void _ZN5EE1333fooEv();
+extern void _ZN5EE1333barEv();
+static VTBL_ENTRY _tg__ZTV5EE133__9GG1333133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&_ZN5EE1333fooEv,
+ (VTBL_ENTRY)&_ZN5EE1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE133__9GG1333133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv)();
+extern void ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE133__9GG1333133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv),
+};
+extern void _ZN5FF3133fooEv();
+extern void _ZN5FF3133barEv();
+static VTBL_ENTRY _tg__ZTV5FF313__9GG1333133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&_ZN5FF3133fooEv,
+ (VTBL_ENTRY)&_ZN5FF3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv)();
+extern void ABISELECT(_ZThn16_N5FF3133barEv,_ZThn8_N5FF3133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF313__9GG1333133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3133fooEv,_ZThn16_N5FF3133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF313__9GG1333133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+};
+static VTT_ENTRY vtt_GG1333133[] = {
+ {&(_ZTV9GG1333133[8]), 8,46},
+ {&(_ZTV9GG1333133[16]), 16,46},
+ {&(_ZTV9GG1333133[21]), 21,46},
+ {&(_ZTV9GG1333133[26]), 26,46},
+ {&(_ZTV9GG1333133[34]), 34,46},
+ {&(_ZTV9GG1333133[40]), 40,46},
+ {&(_ZTV9GG1333133[45]), 45,46},
+ {&(_tg__ZTV5EE133__9GG1333133[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE133__9GG1333133[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE133__9GG1333133[4]), 4,6},
+ {&(_tg__ZTV5FF313__9GG1333133[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF313__9GG1333133[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF313__9GG1333133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1333133[];
+extern VTBL_ENTRY _ZTV9GG1333133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1333133[];
+static VTBL_ENTRY alt_thunk_names460[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3133barEv,_ZThn8_N5FF3133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3133fooEv,_ZThn16_N5FF3133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13331333barEv,_ZTv0_n16_N9GG13331333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13331333barEv,_ZThn40_N9GG13331333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13331333barEv,_ZThn24_N9GG13331333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13331333fooEv,_ZTv0_n12_N9GG13331333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG13331333fooEv,_ZThn48_N9GG13331333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13331333fooEv,_ZThn40_N9GG13331333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13331333fooEv,_ZThn24_N9GG13331333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13331333fooEv,_ZThn16_N9GG13331333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG13331333barEv,_ZTv0_n24_N9GG13331333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13331333barEv,_ZThn32_N9GG13331333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13331333barEv,_ZThn8_N9GG13331333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13331333fooEv,_ZTv0_n20_N9GG13331333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13331333fooEv,_ZThn32_N9GG13331333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13331333fooEv,_ZThn8_N9GG13331333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1333133 = { "GG1333133", // class name
+ bases_GG1333133, 6,
+ &(vtc_GG1333133[0]), // expected_vtbl_contents
+ &(vtt_GG1333133[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1333133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1333133),46, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1333133),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names460,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1333213 : virtual EE133 , virtual FF321 {
+ int pg;
+ virtual void foo(); // _ZN9GG13332133fooEv
+ virtual void bar(); // _ZN9GG13332133barEv
+ ~GG1333213(); // tgen
+ GG1333213(); // tgen
+};
+//SIG(1 GG1333213) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG1333213 ::foo(){vfunc_called(this, "_ZN9GG13332133fooEv");}
+void GG1333213 ::bar(){vfunc_called(this, "_ZN9GG13332133barEv");}
+GG1333213 ::~GG1333213(){ note_dtor("GG1333213", this);} // tgen
+GG1333213 ::GG1333213(){ note_ctor("GG1333213", this);} // tgen
+
+static void Test_GG1333213()
+{
+ extern Class_Descriptor cd_GG1333213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1333213, buf);
+ GG1333213 *dp, &lv = *(dp=new (buf) GG1333213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1333213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1333213)");
+ check_base_class_offset(lv, (AA1*)(EE133*), ABISELECT(32,16), "GG1333213");
+ check_base_class_offset(lv, (BB3*)(EE133*), ABISELECT(48,24), "GG1333213");
+ check_base_class_offset(lv, (EE133*), ABISELECT(16,8), "GG1333213");
+ check_base_class_offset(lv, (AA3*)(FF321*), ABISELECT(80,40), "GG1333213");
+ check_base_class_offset(lv, (BB2*)(FF321*), ABISELECT(96,48), "GG1333213");
+ check_base_class_offset(lv, (FF321*), ABISELECT(64,32), "GG1333213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1333213.pg");
+ test_class_info(&lv, &cd_GG1333213);
+ dp->~GG1333213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1333213(Test_GG1333213, "GG1333213", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1333213C1Ev();
+extern void _ZN9GG1333213D1Ev();
+Name_Map name_map_GG1333213[] = {
+ NSPAIR(_ZN9GG1333213C1Ev),
+ NSPAIR(_ZN9GG1333213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE133;
+extern VTBL_ENTRY _ZTI5EE133[];
+extern VTBL_ENTRY _ZTV5EE133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE133[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF321;
+extern VTBL_ENTRY _ZTI5FF321[];
+extern VTBL_ENTRY _ZTV5FF321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF321[];
+static Base_Class bases_GG1333213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE133, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 40, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF321, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1333213[];
+extern void _ZN9GG13332133fooEv();
+extern void _ZN9GG13332133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13332133fooEv,_ZTv0_n20_N9GG13332133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13332133fooEv,_ZThn8_N9GG13332133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13332133barEv,_ZTv0_n24_N9GG13332133barEv)();
+extern void ABISELECT(_ZThn16_N9GG13332133barEv,_ZThn8_N9GG13332133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13332133fooEv,_ZTv0_n12_N9GG13332133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13332133fooEv,_ZThn16_N9GG13332133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13332133fooEv,_ZTv0_n12_N9GG13332133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13332133fooEv,_ZThn24_N9GG13332133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13332133barEv,_ZTv0_n16_N9GG13332133barEv)();
+extern void ABISELECT(_ZThn48_N9GG13332133barEv,_ZThn24_N9GG13332133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13332133fooEv,_ZTv0_n20_N9GG13332133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13332133fooEv,_ZThn32_N9GG13332133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13332133fooEv,_ZTv0_n12_N9GG13332133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG13332133fooEv,_ZThn40_N9GG13332133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13332133barEv,_ZTv0_n16_N9GG13332133barEv)();
+extern void ABISELECT(_ZThn80_N9GG13332133barEv,_ZThn40_N9GG13332133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13332133barEv,_ZTv0_n12_N9GG13332133barEv)();
+extern void ABISELECT(_ZThn96_N9GG13332133barEv,_ZThn48_N9GG13332133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1333213[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1333213[0]),
+ (VTBL_ENTRY)&_ZN9GG13332133fooEv,
+ (VTBL_ENTRY)&_ZN9GG13332133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1333213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13332133fooEv,_ZTv0_n20_N9GG13332133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13332133barEv,_ZTv0_n24_N9GG13332133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1333213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13332133fooEv,_ZTv0_n12_N9GG13332133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1333213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13332133fooEv,_ZTv0_n12_N9GG13332133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13332133barEv,_ZTv0_n16_N9GG13332133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1333213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13332133fooEv,_ZTv0_n20_N9GG13332133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1333213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13332133fooEv,_ZTv0_n12_N9GG13332133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13332133barEv,_ZTv0_n16_N9GG13332133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1333213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13332133barEv,_ZTv0_n12_N9GG13332133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1333213[];
+extern void _ZN5EE1333fooEv();
+extern void _ZN5EE1333barEv();
+static VTBL_ENTRY _tg__ZTV5EE133__9GG1333213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&_ZN5EE1333fooEv,
+ (VTBL_ENTRY)&_ZN5EE1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE133__9GG1333213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv)();
+extern void ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE133__9GG1333213[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv),
+};
+extern void _ZN5FF3213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF321__9GG1333213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN5FF3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3213fooEv,_ZThn8_N5FF3213fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF321__9GG1333213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF321__9GG1333213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG1333213[] = {
+ {&(_ZTV9GG1333213[8]), 8,44},
+ {&(_ZTV9GG1333213[16]), 16,44},
+ {&(_ZTV9GG1333213[21]), 21,44},
+ {&(_ZTV9GG1333213[26]), 26,44},
+ {&(_ZTV9GG1333213[33]), 33,44},
+ {&(_ZTV9GG1333213[38]), 38,44},
+ {&(_ZTV9GG1333213[43]), 43,44},
+ {&(_tg__ZTV5EE133__9GG1333213[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE133__9GG1333213[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE133__9GG1333213[4]), 4,6},
+ {&(_tg__ZTV5FF321__9GG1333213[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF321__9GG1333213[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF321__9GG1333213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1333213[];
+extern VTBL_ENTRY _ZTV9GG1333213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1333213[];
+static VTBL_ENTRY alt_thunk_names461[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3213fooEv,_ZThn8_N5FF3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13332133barEv,_ZTv0_n12_N9GG13332133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG13332133barEv,_ZThn48_N9GG13332133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13332133barEv,_ZTv0_n16_N9GG13332133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13332133barEv,_ZThn40_N9GG13332133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13332133barEv,_ZThn24_N9GG13332133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13332133fooEv,_ZTv0_n12_N9GG13332133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13332133fooEv,_ZThn40_N9GG13332133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13332133fooEv,_ZThn24_N9GG13332133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13332133fooEv,_ZThn16_N9GG13332133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG13332133barEv,_ZTv0_n24_N9GG13332133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13332133barEv,_ZThn8_N9GG13332133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13332133fooEv,_ZTv0_n20_N9GG13332133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13332133fooEv,_ZThn32_N9GG13332133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13332133fooEv,_ZThn8_N9GG13332133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1333213 = { "GG1333213", // class name
+ bases_GG1333213, 6,
+ &(vtc_GG1333213[0]), // expected_vtbl_contents
+ &(vtt_GG1333213[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1333213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1333213),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1333213),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names461,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1333223 : virtual EE133 , virtual FF322 {
+ int pg;
+ virtual void foo(); // _ZN9GG13332233fooEv
+ virtual void bar(); // _ZN9GG13332233barEv
+ ~GG1333223(); // tgen
+ GG1333223(); // tgen
+};
+//SIG(1 GG1333223) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG1333223 ::foo(){vfunc_called(this, "_ZN9GG13332233fooEv");}
+void GG1333223 ::bar(){vfunc_called(this, "_ZN9GG13332233barEv");}
+GG1333223 ::~GG1333223(){ note_dtor("GG1333223", this);} // tgen
+GG1333223 ::GG1333223(){ note_ctor("GG1333223", this);} // tgen
+
+static void Test_GG1333223()
+{
+ extern Class_Descriptor cd_GG1333223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1333223, buf);
+ GG1333223 *dp, &lv = *(dp=new (buf) GG1333223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1333223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1333223)");
+ check_base_class_offset(lv, (AA1*)(EE133*), ABISELECT(32,16), "GG1333223");
+ check_base_class_offset(lv, (BB3*)(EE133*), ABISELECT(48,24), "GG1333223");
+ check_base_class_offset(lv, (EE133*), ABISELECT(16,8), "GG1333223");
+ check_base_class_offset(lv, (AA3*)(FF322*), ABISELECT(80,40), "GG1333223");
+ check_base_class_offset(lv, (BB2*)(FF322*), ABISELECT(96,48), "GG1333223");
+ check_base_class_offset(lv, (FF322*), ABISELECT(64,32), "GG1333223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1333223.pg");
+ test_class_info(&lv, &cd_GG1333223);
+ dp->~GG1333223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1333223(Test_GG1333223, "GG1333223", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1333223C1Ev();
+extern void _ZN9GG1333223D1Ev();
+Name_Map name_map_GG1333223[] = {
+ NSPAIR(_ZN9GG1333223C1Ev),
+ NSPAIR(_ZN9GG1333223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE133;
+extern VTBL_ENTRY _ZTI5EE133[];
+extern VTBL_ENTRY _ZTV5EE133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE133[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF322;
+extern VTBL_ENTRY _ZTI5FF322[];
+extern VTBL_ENTRY _ZTV5FF322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF322[];
+static Base_Class bases_GG1333223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE133, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 40, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF322, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1333223[];
+extern void _ZN9GG13332233fooEv();
+extern void _ZN9GG13332233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13332233fooEv,_ZTv0_n20_N9GG13332233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13332233fooEv,_ZThn8_N9GG13332233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13332233barEv,_ZTv0_n24_N9GG13332233barEv)();
+extern void ABISELECT(_ZThn16_N9GG13332233barEv,_ZThn8_N9GG13332233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13332233fooEv,_ZTv0_n12_N9GG13332233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13332233fooEv,_ZThn16_N9GG13332233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13332233fooEv,_ZTv0_n12_N9GG13332233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13332233fooEv,_ZThn24_N9GG13332233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13332233barEv,_ZTv0_n16_N9GG13332233barEv)();
+extern void ABISELECT(_ZThn48_N9GG13332233barEv,_ZThn24_N9GG13332233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13332233barEv,_ZTv0_n20_N9GG13332233barEv)();
+extern void ABISELECT(_ZThn64_N9GG13332233barEv,_ZThn32_N9GG13332233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13332233fooEv,_ZTv0_n12_N9GG13332233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG13332233fooEv,_ZThn40_N9GG13332233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13332233barEv,_ZTv0_n16_N9GG13332233barEv)();
+extern void ABISELECT(_ZThn80_N9GG13332233barEv,_ZThn40_N9GG13332233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13332233barEv,_ZTv0_n12_N9GG13332233barEv)();
+extern void ABISELECT(_ZThn96_N9GG13332233barEv,_ZThn48_N9GG13332233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1333223[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1333223[0]),
+ (VTBL_ENTRY)&_ZN9GG13332233fooEv,
+ (VTBL_ENTRY)&_ZN9GG13332233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1333223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13332233fooEv,_ZTv0_n20_N9GG13332233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13332233barEv,_ZTv0_n24_N9GG13332233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1333223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13332233fooEv,_ZTv0_n12_N9GG13332233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1333223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13332233fooEv,_ZTv0_n12_N9GG13332233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13332233barEv,_ZTv0_n16_N9GG13332233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1333223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13332233barEv,_ZTv0_n20_N9GG13332233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1333223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13332233fooEv,_ZTv0_n12_N9GG13332233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13332233barEv,_ZTv0_n16_N9GG13332233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1333223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13332233barEv,_ZTv0_n12_N9GG13332233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1333223[];
+extern void _ZN5EE1333fooEv();
+extern void _ZN5EE1333barEv();
+static VTBL_ENTRY _tg__ZTV5EE133__9GG1333223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&_ZN5EE1333fooEv,
+ (VTBL_ENTRY)&_ZN5EE1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE133__9GG1333223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv)();
+extern void ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE133__9GG1333223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv),
+};
+extern void _ZN5FF3223barEv();
+static VTBL_ENTRY _tg__ZTV5FF322__9GG1333223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN5FF3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv)();
+extern void ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF322__9GG1333223[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv)();
+extern void ABISELECT(_ZThn32_N5FF3223barEv,_ZThn16_N5FF3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF322__9GG1333223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv),
+};
+static VTT_ENTRY vtt_GG1333223[] = {
+ {&(_ZTV9GG1333223[8]), 8,44},
+ {&(_ZTV9GG1333223[16]), 16,44},
+ {&(_ZTV9GG1333223[21]), 21,44},
+ {&(_ZTV9GG1333223[26]), 26,44},
+ {&(_ZTV9GG1333223[33]), 33,44},
+ {&(_ZTV9GG1333223[38]), 38,44},
+ {&(_ZTV9GG1333223[43]), 43,44},
+ {&(_tg__ZTV5EE133__9GG1333223[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE133__9GG1333223[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE133__9GG1333223[4]), 4,6},
+ {&(_tg__ZTV5FF322__9GG1333223[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF322__9GG1333223[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF322__9GG1333223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1333223[];
+extern VTBL_ENTRY _ZTV9GG1333223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1333223[];
+static VTBL_ENTRY alt_thunk_names462[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3223barEv,_ZThn16_N5FF3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13332233barEv,_ZTv0_n12_N9GG13332233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG13332233barEv,_ZThn48_N9GG13332233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13332233barEv,_ZTv0_n20_N9GG13332233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13332233barEv,_ZThn32_N9GG13332233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13332233barEv,_ZTv0_n16_N9GG13332233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13332233barEv,_ZThn40_N9GG13332233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13332233barEv,_ZThn24_N9GG13332233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13332233fooEv,_ZTv0_n12_N9GG13332233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13332233fooEv,_ZThn40_N9GG13332233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13332233fooEv,_ZThn24_N9GG13332233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13332233fooEv,_ZThn16_N9GG13332233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG13332233barEv,_ZTv0_n24_N9GG13332233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13332233barEv,_ZThn8_N9GG13332233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13332233fooEv,_ZTv0_n20_N9GG13332233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13332233fooEv,_ZThn8_N9GG13332233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1333223 = { "GG1333223", // class name
+ bases_GG1333223, 6,
+ &(vtc_GG1333223[0]), // expected_vtbl_contents
+ &(vtt_GG1333223[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1333223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1333223),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1333223),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names462,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1333233 : virtual EE133 , virtual FF323 {
+ int pg;
+ virtual void foo(); // _ZN9GG13332333fooEv
+ virtual void bar(); // _ZN9GG13332333barEv
+ ~GG1333233(); // tgen
+ GG1333233(); // tgen
+};
+//SIG(1 GG1333233) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1333233 ::foo(){vfunc_called(this, "_ZN9GG13332333fooEv");}
+void GG1333233 ::bar(){vfunc_called(this, "_ZN9GG13332333barEv");}
+GG1333233 ::~GG1333233(){ note_dtor("GG1333233", this);} // tgen
+GG1333233 ::GG1333233(){ note_ctor("GG1333233", this);} // tgen
+
+static void Test_GG1333233()
+{
+ extern Class_Descriptor cd_GG1333233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG1333233, buf);
+ GG1333233 *dp, &lv = *(dp=new (buf) GG1333233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG1333233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1333233)");
+ check_base_class_offset(lv, (AA1*)(EE133*), ABISELECT(32,16), "GG1333233");
+ check_base_class_offset(lv, (BB3*)(EE133*), ABISELECT(48,24), "GG1333233");
+ check_base_class_offset(lv, (EE133*), ABISELECT(16,8), "GG1333233");
+ check_base_class_offset(lv, (AA3*)(FF323*), ABISELECT(80,40), "GG1333233");
+ check_base_class_offset(lv, (BB2*)(FF323*), ABISELECT(96,48), "GG1333233");
+ check_base_class_offset(lv, (FF323*), ABISELECT(64,32), "GG1333233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1333233.pg");
+ test_class_info(&lv, &cd_GG1333233);
+ dp->~GG1333233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1333233(Test_GG1333233, "GG1333233", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG1333233C1Ev();
+extern void _ZN9GG1333233D1Ev();
+Name_Map name_map_GG1333233[] = {
+ NSPAIR(_ZN9GG1333233C1Ev),
+ NSPAIR(_ZN9GG1333233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE133;
+extern VTBL_ENTRY _ZTI5EE133[];
+extern VTBL_ENTRY _ZTV5EE133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE133[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF323;
+extern VTBL_ENTRY _ZTI5FF323[];
+extern VTBL_ENTRY _ZTV5FF323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF323[];
+static Base_Class bases_GG1333233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE133, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 42, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF323, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1333233[];
+extern void _ZN9GG13332333fooEv();
+extern void _ZN9GG13332333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13332333fooEv,_ZTv0_n20_N9GG13332333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13332333fooEv,_ZThn8_N9GG13332333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13332333barEv,_ZTv0_n24_N9GG13332333barEv)();
+extern void ABISELECT(_ZThn16_N9GG13332333barEv,_ZThn8_N9GG13332333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13332333fooEv,_ZTv0_n12_N9GG13332333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13332333fooEv,_ZThn16_N9GG13332333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13332333fooEv,_ZTv0_n12_N9GG13332333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13332333fooEv,_ZThn24_N9GG13332333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13332333barEv,_ZTv0_n16_N9GG13332333barEv)();
+extern void ABISELECT(_ZThn48_N9GG13332333barEv,_ZThn24_N9GG13332333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13332333fooEv,_ZTv0_n20_N9GG13332333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13332333fooEv,_ZThn32_N9GG13332333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13332333barEv,_ZTv0_n24_N9GG13332333barEv)();
+extern void ABISELECT(_ZThn64_N9GG13332333barEv,_ZThn32_N9GG13332333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13332333fooEv,_ZTv0_n12_N9GG13332333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG13332333fooEv,_ZThn40_N9GG13332333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13332333barEv,_ZTv0_n16_N9GG13332333barEv)();
+extern void ABISELECT(_ZThn80_N9GG13332333barEv,_ZThn40_N9GG13332333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13332333barEv,_ZTv0_n12_N9GG13332333barEv)();
+extern void ABISELECT(_ZThn96_N9GG13332333barEv,_ZThn48_N9GG13332333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1333233[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1333233[0]),
+ (VTBL_ENTRY)&_ZN9GG13332333fooEv,
+ (VTBL_ENTRY)&_ZN9GG13332333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1333233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13332333fooEv,_ZTv0_n20_N9GG13332333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13332333barEv,_ZTv0_n24_N9GG13332333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1333233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13332333fooEv,_ZTv0_n12_N9GG13332333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1333233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13332333fooEv,_ZTv0_n12_N9GG13332333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13332333barEv,_ZTv0_n16_N9GG13332333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1333233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13332333fooEv,_ZTv0_n20_N9GG13332333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13332333barEv,_ZTv0_n24_N9GG13332333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1333233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13332333fooEv,_ZTv0_n12_N9GG13332333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13332333barEv,_ZTv0_n16_N9GG13332333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG1333233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13332333barEv,_ZTv0_n12_N9GG13332333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1333233[];
+extern void _ZN5EE1333fooEv();
+extern void _ZN5EE1333barEv();
+static VTBL_ENTRY _tg__ZTV5EE133__9GG1333233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&_ZN5EE1333fooEv,
+ (VTBL_ENTRY)&_ZN5EE1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE133__9GG1333233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv)();
+extern void ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE133__9GG1333233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv),
+};
+extern void _ZN5FF3233fooEv();
+extern void _ZN5FF3233barEv();
+static VTBL_ENTRY _tg__ZTV5FF323__9GG1333233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&_ZN5FF3233fooEv,
+ (VTBL_ENTRY)&_ZN5FF3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3233fooEv,_ZThn8_N5FF3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv)();
+extern void ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF323__9GG1333233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv)();
+extern void ABISELECT(_ZThn32_N5FF3233barEv,_ZThn16_N5FF3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF323__9GG1333233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv),
+};
+static VTT_ENTRY vtt_GG1333233[] = {
+ {&(_ZTV9GG1333233[8]), 8,46},
+ {&(_ZTV9GG1333233[16]), 16,46},
+ {&(_ZTV9GG1333233[21]), 21,46},
+ {&(_ZTV9GG1333233[26]), 26,46},
+ {&(_ZTV9GG1333233[34]), 34,46},
+ {&(_ZTV9GG1333233[40]), 40,46},
+ {&(_ZTV9GG1333233[45]), 45,46},
+ {&(_tg__ZTV5EE133__9GG1333233[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE133__9GG1333233[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE133__9GG1333233[4]), 4,6},
+ {&(_tg__ZTV5FF323__9GG1333233[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF323__9GG1333233[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF323__9GG1333233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG1333233[];
+extern VTBL_ENTRY _ZTV9GG1333233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1333233[];
+static VTBL_ENTRY alt_thunk_names463[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3233barEv,_ZThn16_N5FF3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3233fooEv,_ZThn8_N5FF3233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13332333barEv,_ZTv0_n12_N9GG13332333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG13332333barEv,_ZThn48_N9GG13332333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13332333barEv,_ZTv0_n16_N9GG13332333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13332333barEv,_ZThn40_N9GG13332333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13332333barEv,_ZThn24_N9GG13332333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13332333fooEv,_ZTv0_n12_N9GG13332333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13332333fooEv,_ZThn40_N9GG13332333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13332333fooEv,_ZThn24_N9GG13332333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13332333fooEv,_ZThn16_N9GG13332333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG13332333barEv,_ZTv0_n24_N9GG13332333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13332333barEv,_ZThn32_N9GG13332333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13332333barEv,_ZThn8_N9GG13332333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13332333fooEv,_ZTv0_n20_N9GG13332333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13332333fooEv,_ZThn32_N9GG13332333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13332333fooEv,_ZThn8_N9GG13332333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1333233 = { "GG1333233", // class name
+ bases_GG1333233, 6,
+ &(vtc_GG1333233[0]), // expected_vtbl_contents
+ &(vtt_GG1333233[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG1333233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1333233),46, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1333233),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names463,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1333313 : virtual EE133 , virtual FF331 {
+ int pg;
+ virtual void foo(); // _ZN9GG13333133fooEv
+ virtual void bar(); // _ZN9GG13333133barEv
+ ~GG1333313(); // tgen
+ GG1333313(); // tgen
+};
+//SIG(1 GG1333313) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG1333313 ::foo(){vfunc_called(this, "_ZN9GG13333133fooEv");}
+void GG1333313 ::bar(){vfunc_called(this, "_ZN9GG13333133barEv");}
+GG1333313 ::~GG1333313(){ note_dtor("GG1333313", this);} // tgen
+GG1333313 ::GG1333313(){ note_ctor("GG1333313", this);} // tgen
+
+static void Test_GG1333313()
+{
+ extern Class_Descriptor cd_GG1333313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1333313, buf);
+ GG1333313 *dp, &lv = *(dp=new (buf) GG1333313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1333313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1333313)");
+ check_base_class_offset(lv, (AA1*)(EE133*), ABISELECT(32,16), "GG1333313");
+ check_base_class_offset(lv, (BB3*)(EE133*), ABISELECT(48,24), "GG1333313");
+ check_base_class_offset(lv, (BB3*)(FF331*), ABISELECT(48,24), "GG1333313");
+ check_base_class_offset(lv, (EE133*), ABISELECT(16,8), "GG1333313");
+ check_base_class_offset(lv, (AA3*)(FF331*), ABISELECT(80,40), "GG1333313");
+ check_base_class_offset(lv, (FF331*), ABISELECT(64,32), "GG1333313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1333313.pg");
+ test_class_info(&lv, &cd_GG1333313);
+ dp->~GG1333313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1333313(Test_GG1333313, "GG1333313", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1333313C1Ev();
+extern void _ZN9GG1333313D1Ev();
+Name_Map name_map_GG1333313[] = {
+ NSPAIR(_ZN9GG1333313C1Ev),
+ NSPAIR(_ZN9GG1333313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE133;
+extern VTBL_ENTRY _ZTI5EE133[];
+extern VTBL_ENTRY _ZTV5EE133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE133[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF331;
+extern VTBL_ENTRY _ZTI5FF331[];
+extern VTBL_ENTRY _ZTV5FF331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF331[];
+static Base_Class bases_GG1333313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE133, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF331, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1333313[];
+extern void _ZN9GG13333133fooEv();
+extern void _ZN9GG13333133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13333133fooEv,_ZTv0_n20_N9GG13333133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13333133fooEv,_ZThn8_N9GG13333133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13333133barEv,_ZTv0_n24_N9GG13333133barEv)();
+extern void ABISELECT(_ZThn16_N9GG13333133barEv,_ZThn8_N9GG13333133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13333133fooEv,_ZTv0_n12_N9GG13333133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13333133fooEv,_ZThn16_N9GG13333133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13333133fooEv,_ZTv0_n12_N9GG13333133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13333133fooEv,_ZThn24_N9GG13333133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13333133barEv,_ZTv0_n16_N9GG13333133barEv)();
+extern void ABISELECT(_ZThn48_N9GG13333133barEv,_ZThn24_N9GG13333133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13333133fooEv,_ZTv0_n20_N9GG13333133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13333133fooEv,_ZThn32_N9GG13333133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13333133fooEv,_ZTv0_n12_N9GG13333133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG13333133fooEv,_ZThn40_N9GG13333133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13333133barEv,_ZTv0_n16_N9GG13333133barEv)();
+extern void ABISELECT(_ZThn80_N9GG13333133barEv,_ZThn40_N9GG13333133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1333313[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1333313[0]),
+ (VTBL_ENTRY)&_ZN9GG13333133fooEv,
+ (VTBL_ENTRY)&_ZN9GG13333133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1333313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13333133fooEv,_ZTv0_n20_N9GG13333133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13333133barEv,_ZTv0_n24_N9GG13333133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1333313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13333133fooEv,_ZTv0_n12_N9GG13333133fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1333313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13333133fooEv,_ZTv0_n12_N9GG13333133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13333133barEv,_ZTv0_n16_N9GG13333133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1333313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13333133fooEv,_ZTv0_n20_N9GG13333133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1333313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13333133fooEv,_ZTv0_n12_N9GG13333133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13333133barEv,_ZTv0_n16_N9GG13333133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1333313[];
+extern void _ZN5EE1333fooEv();
+extern void _ZN5EE1333barEv();
+static VTBL_ENTRY _tg__ZTV5EE133__9GG1333313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&_ZN5EE1333fooEv,
+ (VTBL_ENTRY)&_ZN5EE1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE133__9GG1333313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv)();
+extern void ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE133__9GG1333313[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv),
+};
+extern void _ZN5FF3313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF331__9GG1333313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&_ZN5FF3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF331__9GG1333313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF331__9GG1333313[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG1333313[] = {
+ {&(_ZTV9GG1333313[7]), 7,39},
+ {&(_ZTV9GG1333313[15]), 15,39},
+ {&(_ZTV9GG1333313[20]), 20,39},
+ {&(_ZTV9GG1333313[25]), 25,39},
+ {&(_ZTV9GG1333313[32]), 32,39},
+ {&(_ZTV9GG1333313[37]), 37,39},
+ {&(_tg__ZTV5EE133__9GG1333313[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE133__9GG1333313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE133__9GG1333313[4]), 4,6},
+ {&(_tg__ZTV5FF331__9GG1333313[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF331__9GG1333313[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF331__9GG1333313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1333313[];
+extern VTBL_ENTRY _ZTV9GG1333313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1333313[];
+static VTBL_ENTRY alt_thunk_names464[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13333133barEv,_ZTv0_n16_N9GG13333133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13333133barEv,_ZThn40_N9GG13333133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13333133barEv,_ZThn24_N9GG13333133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13333133fooEv,_ZTv0_n12_N9GG13333133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13333133fooEv,_ZThn40_N9GG13333133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13333133fooEv,_ZThn24_N9GG13333133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13333133fooEv,_ZThn16_N9GG13333133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG13333133barEv,_ZTv0_n24_N9GG13333133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13333133barEv,_ZThn8_N9GG13333133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13333133fooEv,_ZTv0_n20_N9GG13333133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13333133fooEv,_ZThn32_N9GG13333133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13333133fooEv,_ZThn8_N9GG13333133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1333313 = { "GG1333313", // class name
+ bases_GG1333313, 5,
+ &(vtc_GG1333313[0]), // expected_vtbl_contents
+ &(vtt_GG1333313[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1333313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1333313),39, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1333313),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names464,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1333323 : virtual EE133 , virtual FF332 {
+ int pg;
+ virtual void foo(); // _ZN9GG13333233fooEv
+ virtual void bar(); // _ZN9GG13333233barEv
+ ~GG1333323(); // tgen
+ GG1333323(); // tgen
+};
+//SIG(1 GG1333323) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG1333323 ::foo(){vfunc_called(this, "_ZN9GG13333233fooEv");}
+void GG1333323 ::bar(){vfunc_called(this, "_ZN9GG13333233barEv");}
+GG1333323 ::~GG1333323(){ note_dtor("GG1333323", this);} // tgen
+GG1333323 ::GG1333323(){ note_ctor("GG1333323", this);} // tgen
+
+static void Test_GG1333323()
+{
+ extern Class_Descriptor cd_GG1333323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1333323, buf);
+ GG1333323 *dp, &lv = *(dp=new (buf) GG1333323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1333323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1333323)");
+ check_base_class_offset(lv, (AA1*)(EE133*), ABISELECT(32,16), "GG1333323");
+ check_base_class_offset(lv, (BB3*)(EE133*), ABISELECT(48,24), "GG1333323");
+ check_base_class_offset(lv, (BB3*)(FF332*), ABISELECT(48,24), "GG1333323");
+ check_base_class_offset(lv, (EE133*), ABISELECT(16,8), "GG1333323");
+ check_base_class_offset(lv, (AA3*)(FF332*), ABISELECT(80,40), "GG1333323");
+ check_base_class_offset(lv, (FF332*), ABISELECT(64,32), "GG1333323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1333323.pg");
+ test_class_info(&lv, &cd_GG1333323);
+ dp->~GG1333323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1333323(Test_GG1333323, "GG1333323", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1333323C1Ev();
+extern void _ZN9GG1333323D1Ev();
+Name_Map name_map_GG1333323[] = {
+ NSPAIR(_ZN9GG1333323C1Ev),
+ NSPAIR(_ZN9GG1333323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE133;
+extern VTBL_ENTRY _ZTI5EE133[];
+extern VTBL_ENTRY _ZTV5EE133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE133[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF332;
+extern VTBL_ENTRY _ZTI5FF332[];
+extern VTBL_ENTRY _ZTV5FF332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF332[];
+static Base_Class bases_GG1333323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE133, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF332, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1333323[];
+extern void _ZN9GG13333233fooEv();
+extern void _ZN9GG13333233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13333233fooEv,_ZTv0_n20_N9GG13333233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13333233fooEv,_ZThn8_N9GG13333233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13333233barEv,_ZTv0_n24_N9GG13333233barEv)();
+extern void ABISELECT(_ZThn16_N9GG13333233barEv,_ZThn8_N9GG13333233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13333233fooEv,_ZTv0_n12_N9GG13333233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13333233fooEv,_ZThn16_N9GG13333233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13333233fooEv,_ZTv0_n12_N9GG13333233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13333233fooEv,_ZThn24_N9GG13333233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13333233barEv,_ZTv0_n16_N9GG13333233barEv)();
+extern void ABISELECT(_ZThn48_N9GG13333233barEv,_ZThn24_N9GG13333233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13333233barEv,_ZTv0_n20_N9GG13333233barEv)();
+extern void ABISELECT(_ZThn64_N9GG13333233barEv,_ZThn32_N9GG13333233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13333233fooEv,_ZTv0_n12_N9GG13333233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG13333233fooEv,_ZThn40_N9GG13333233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13333233barEv,_ZTv0_n16_N9GG13333233barEv)();
+extern void ABISELECT(_ZThn80_N9GG13333233barEv,_ZThn40_N9GG13333233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1333323[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1333323[0]),
+ (VTBL_ENTRY)&_ZN9GG13333233fooEv,
+ (VTBL_ENTRY)&_ZN9GG13333233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1333323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13333233fooEv,_ZTv0_n20_N9GG13333233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13333233barEv,_ZTv0_n24_N9GG13333233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1333323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13333233fooEv,_ZTv0_n12_N9GG13333233fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1333323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13333233fooEv,_ZTv0_n12_N9GG13333233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13333233barEv,_ZTv0_n16_N9GG13333233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1333323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13333233barEv,_ZTv0_n20_N9GG13333233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1333323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13333233fooEv,_ZTv0_n12_N9GG13333233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13333233barEv,_ZTv0_n16_N9GG13333233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1333323[];
+extern void _ZN5EE1333fooEv();
+extern void _ZN5EE1333barEv();
+static VTBL_ENTRY _tg__ZTV5EE133__9GG1333323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&_ZN5EE1333fooEv,
+ (VTBL_ENTRY)&_ZN5EE1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE133__9GG1333323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv)();
+extern void ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE133__9GG1333323[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv),
+};
+extern void _ZN5FF3323barEv();
+static VTBL_ENTRY _tg__ZTV5FF332__9GG1333323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN5FF3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+extern void ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF332__9GG1333323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF332__9GG1333323[] = {
+ ABISELECT(16,8),
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+static VTT_ENTRY vtt_GG1333323[] = {
+ {&(_ZTV9GG1333323[7]), 7,39},
+ {&(_ZTV9GG1333323[15]), 15,39},
+ {&(_ZTV9GG1333323[20]), 20,39},
+ {&(_ZTV9GG1333323[25]), 25,39},
+ {&(_ZTV9GG1333323[32]), 32,39},
+ {&(_ZTV9GG1333323[37]), 37,39},
+ {&(_tg__ZTV5EE133__9GG1333323[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE133__9GG1333323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE133__9GG1333323[4]), 4,6},
+ {&(_tg__ZTV5FF332__9GG1333323[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF332__9GG1333323[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF332__9GG1333323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1333323[];
+extern VTBL_ENTRY _ZTV9GG1333323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1333323[];
+static VTBL_ENTRY alt_thunk_names465[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13333233barEv,_ZTv0_n20_N9GG13333233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13333233barEv,_ZThn32_N9GG13333233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13333233barEv,_ZTv0_n16_N9GG13333233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13333233barEv,_ZThn40_N9GG13333233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13333233barEv,_ZThn24_N9GG13333233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13333233fooEv,_ZTv0_n12_N9GG13333233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13333233fooEv,_ZThn40_N9GG13333233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13333233fooEv,_ZThn24_N9GG13333233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13333233fooEv,_ZThn16_N9GG13333233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG13333233barEv,_ZTv0_n24_N9GG13333233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13333233barEv,_ZThn8_N9GG13333233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13333233fooEv,_ZTv0_n20_N9GG13333233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13333233fooEv,_ZThn8_N9GG13333233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1333323 = { "GG1333323", // class name
+ bases_GG1333323, 5,
+ &(vtc_GG1333323[0]), // expected_vtbl_contents
+ &(vtt_GG1333323[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1333323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1333323),39, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1333323),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names465,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG1333333 : virtual EE133 , virtual FF333 {
+ int pg;
+ virtual void foo(); // _ZN9GG13333333fooEv
+ virtual void bar(); // _ZN9GG13333333barEv
+ ~GG1333333(); // tgen
+ GG1333333(); // tgen
+};
+//SIG(1 GG1333333) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG1333333 ::foo(){vfunc_called(this, "_ZN9GG13333333fooEv");}
+void GG1333333 ::bar(){vfunc_called(this, "_ZN9GG13333333barEv");}
+GG1333333 ::~GG1333333(){ note_dtor("GG1333333", this);} // tgen
+GG1333333 ::GG1333333(){ note_ctor("GG1333333", this);} // tgen
+
+static void Test_GG1333333()
+{
+ extern Class_Descriptor cd_GG1333333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG1333333, buf);
+ GG1333333 *dp, &lv = *(dp=new (buf) GG1333333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG1333333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG1333333)");
+ check_base_class_offset(lv, (AA1*)(EE133*), ABISELECT(32,16), "GG1333333");
+ check_base_class_offset(lv, (BB3*)(EE133*), ABISELECT(48,24), "GG1333333");
+ check_base_class_offset(lv, (BB3*)(FF333*), ABISELECT(48,24), "GG1333333");
+ check_base_class_offset(lv, (EE133*), ABISELECT(16,8), "GG1333333");
+ check_base_class_offset(lv, (AA3*)(FF333*), ABISELECT(80,40), "GG1333333");
+ check_base_class_offset(lv, (FF333*), ABISELECT(64,32), "GG1333333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG1333333.pg");
+ test_class_info(&lv, &cd_GG1333333);
+ dp->~GG1333333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG1333333(Test_GG1333333, "GG1333333", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG1333333C1Ev();
+extern void _ZN9GG1333333D1Ev();
+Name_Map name_map_GG1333333[] = {
+ NSPAIR(_ZN9GG1333333C1Ev),
+ NSPAIR(_ZN9GG1333333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE133;
+extern VTBL_ENTRY _ZTI5EE133[];
+extern VTBL_ENTRY _ZTV5EE133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE133[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF333;
+extern VTBL_ENTRY _ZTI5FF333[];
+extern VTBL_ENTRY _ZTV5FF333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF333[];
+static Base_Class bases_GG1333333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA1, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE133, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF333, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG1333333[];
+extern void _ZN9GG13333333fooEv();
+extern void _ZN9GG13333333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG13333333fooEv,_ZTv0_n20_N9GG13333333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG13333333fooEv,_ZThn8_N9GG13333333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13333333barEv,_ZTv0_n24_N9GG13333333barEv)();
+extern void ABISELECT(_ZThn16_N9GG13333333barEv,_ZThn8_N9GG13333333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13333333fooEv,_ZTv0_n12_N9GG13333333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG13333333fooEv,_ZThn16_N9GG13333333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13333333fooEv,_ZTv0_n12_N9GG13333333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG13333333fooEv,_ZThn24_N9GG13333333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13333333barEv,_ZTv0_n16_N9GG13333333barEv)();
+extern void ABISELECT(_ZThn48_N9GG13333333barEv,_ZThn24_N9GG13333333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG13333333fooEv,_ZTv0_n20_N9GG13333333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG13333333fooEv,_ZThn32_N9GG13333333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG13333333barEv,_ZTv0_n24_N9GG13333333barEv)();
+extern void ABISELECT(_ZThn64_N9GG13333333barEv,_ZThn32_N9GG13333333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG13333333fooEv,_ZTv0_n12_N9GG13333333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG13333333fooEv,_ZThn40_N9GG13333333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG13333333barEv,_ZTv0_n16_N9GG13333333barEv)();
+extern void ABISELECT(_ZThn80_N9GG13333333barEv,_ZThn40_N9GG13333333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG1333333[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG1333333[0]),
+ (VTBL_ENTRY)&_ZN9GG13333333fooEv,
+ (VTBL_ENTRY)&_ZN9GG13333333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG1333333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13333333fooEv,_ZTv0_n20_N9GG13333333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13333333barEv,_ZTv0_n24_N9GG13333333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG1333333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13333333fooEv,_ZTv0_n12_N9GG13333333fooEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG1333333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13333333fooEv,_ZTv0_n12_N9GG13333333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13333333barEv,_ZTv0_n16_N9GG13333333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG1333333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG13333333fooEv,_ZTv0_n20_N9GG13333333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG13333333barEv,_ZTv0_n24_N9GG13333333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG1333333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG13333333fooEv,_ZTv0_n12_N9GG13333333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG13333333barEv,_ZTv0_n16_N9GG13333333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG1333333[];
+extern void _ZN5EE1333fooEv();
+extern void _ZN5EE1333barEv();
+static VTBL_ENTRY _tg__ZTV5EE133__9GG1333333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&_ZN5EE1333fooEv,
+ (VTBL_ENTRY)&_ZN5EE1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5EE133__9GG1333333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv)();
+extern void ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE133__9GG1333333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv),
+};
+extern void _ZN5FF3333fooEv();
+extern void _ZN5FF3333barEv();
+static VTBL_ENTRY _tg__ZTV5FF333__9GG1333333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&_ZN5FF3333fooEv,
+ (VTBL_ENTRY)&_ZN5FF3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+extern void ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF333__9GG1333333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF333__9GG1333333[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+static VTT_ENTRY vtt_GG1333333[] = {
+ {&(_ZTV9GG1333333[7]), 7,41},
+ {&(_ZTV9GG1333333[15]), 15,41},
+ {&(_ZTV9GG1333333[20]), 20,41},
+ {&(_ZTV9GG1333333[25]), 25,41},
+ {&(_ZTV9GG1333333[33]), 33,41},
+ {&(_ZTV9GG1333333[39]), 39,41},
+ {&(_tg__ZTV5EE133__9GG1333333[4]), 4,6},
+ {&(_tg__ZTV3AA1__5EE133__9GG1333333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE133__9GG1333333[4]), 4,6},
+ {&(_tg__ZTV5FF333__9GG1333333[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF333__9GG1333333[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF333__9GG1333333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG1333333[];
+extern VTBL_ENTRY _ZTV9GG1333333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG1333333[];
+static VTBL_ENTRY alt_thunk_names466[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE1333barEv,_ZTv0_n16_N5EE1333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333barEv,_ZThn16_N5EE1333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE1333fooEv,_ZTv0_n12_N5EE1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE1333fooEv,_ZThn16_N5EE1333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE1333fooEv,_ZThn8_N5EE1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG13333333barEv,_ZTv0_n16_N9GG13333333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13333333barEv,_ZThn40_N9GG13333333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13333333barEv,_ZThn24_N9GG13333333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG13333333fooEv,_ZTv0_n12_N9GG13333333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG13333333fooEv,_ZThn40_N9GG13333333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG13333333fooEv,_ZThn24_N9GG13333333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG13333333fooEv,_ZThn16_N9GG13333333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG13333333barEv,_ZTv0_n24_N9GG13333333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13333333barEv,_ZThn32_N9GG13333333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13333333barEv,_ZThn8_N9GG13333333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG13333333fooEv,_ZTv0_n20_N9GG13333333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG13333333fooEv,_ZThn32_N9GG13333333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG13333333fooEv,_ZThn8_N9GG13333333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG1333333 = { "GG1333333", // class name
+ bases_GG1333333, 5,
+ &(vtc_GG1333333[0]), // expected_vtbl_contents
+ &(vtt_GG1333333[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG1333333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG1333333),41, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG1333333),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names466,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2111111 : virtual EE211 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG21111113fooEv
+ ~GG2111111(); // tgen
+ GG2111111(); // tgen
+};
+//SIG(1 GG2111111) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v1 Fi} v1 Fi}
+
+
+void GG2111111 ::foo(){vfunc_called(this, "_ZN9GG21111113fooEv");}
+GG2111111 ::~GG2111111(){ note_dtor("GG2111111", this);} // tgen
+GG2111111 ::GG2111111(){ note_ctor("GG2111111", this);} // tgen
+
+static void Test_GG2111111()
+{
+ extern Class_Descriptor cd_GG2111111;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2111111, buf);
+ GG2111111 *dp, &lv = *(dp=new (buf) GG2111111());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2111111)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2111111)");
+ check_base_class_offset(lv, (AA2*)(EE211*), ABISELECT(32,16), "GG2111111");
+ check_base_class_offset(lv, (BB1*)(EE211*), ABISELECT(48,24), "GG2111111");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(48,24), "GG2111111");
+ check_base_class_offset(lv, (EE211*), ABISELECT(16,8), "GG2111111");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(80,40), "GG2111111");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG2111111");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2111111.pg");
+ test_class_info(&lv, &cd_GG2111111);
+ dp->~GG2111111();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2111111(Test_GG2111111, "GG2111111", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2111111C1Ev();
+extern void _ZN9GG2111111D1Ev();
+Name_Map name_map_GG2111111[] = {
+ NSPAIR(_ZN9GG2111111C1Ev),
+ NSPAIR(_ZN9GG2111111D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE211;
+extern VTBL_ENTRY _ZTI5EE211[];
+extern VTBL_ENTRY _ZTV5EE211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE211[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG2111111[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE211, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2111111[];
+extern void _ZN9GG21111113fooEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21111113fooEv,_ZTv0_n20_N9GG21111113fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21111113fooEv,_ZThn8_N9GG21111113fooEv)() __attribute__((weak));
+extern void _ZN3AA23barEv();
+extern void ABISELECT(_ZTv0_n24_N9GG21111113fooEv,_ZTv0_n12_N9GG21111113fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21111113fooEv,_ZThn24_N9GG21111113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21111113fooEv,_ZTv0_n20_N9GG21111113fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21111113fooEv,_ZThn32_N9GG21111113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21111113fooEv,_ZTv0_n12_N9GG21111113fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21111113fooEv,_ZThn40_N9GG21111113fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2111111[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2111111[0]),
+ (VTBL_ENTRY)&_ZN9GG21111113fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2111111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21111113fooEv,_ZTv0_n20_N9GG21111113fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2111111[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2111111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21111113fooEv,_ZTv0_n12_N9GG21111113fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2111111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21111113fooEv,_ZTv0_n20_N9GG21111113fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2111111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21111113fooEv,_ZTv0_n12_N9GG21111113fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2111111[];
+extern void _ZN5EE2113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE211__9GG2111111[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN5EE2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE211__9GG2111111[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE211__9GG2111111[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv),
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG2111111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG2111111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG2111111[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG2111111[] = {
+ {&(_ZTV9GG2111111[7]), 7,32},
+ {&(_ZTV9GG2111111[13]), 13,32},
+ {&(_ZTV9GG2111111[17]), 17,32},
+ {&(_ZTV9GG2111111[21]), 21,32},
+ {&(_ZTV9GG2111111[27]), 27,32},
+ {&(_ZTV9GG2111111[31]), 31,32},
+ {&(_tg__ZTV5EE211__9GG2111111[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE211__9GG2111111[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE211__9GG2111111[3]), 3,4},
+ {&(_tg__ZTV5FF111__9GG2111111[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG2111111[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG2111111[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2111111[];
+extern VTBL_ENTRY _ZTV9GG2111111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2111111[];
+static VTBL_ENTRY alt_thunk_names467[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21111113fooEv,_ZTv0_n12_N9GG21111113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21111113fooEv,_ZThn40_N9GG21111113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21111113fooEv,_ZThn24_N9GG21111113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21111113fooEv,_ZTv0_n20_N9GG21111113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21111113fooEv,_ZThn32_N9GG21111113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21111113fooEv,_ZThn8_N9GG21111113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2111111 = { "GG2111111", // class name
+ bases_GG2111111, 5,
+ &(vtc_GG2111111[0]), // expected_vtbl_contents
+ &(vtt_GG2111111[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2111111),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2111111),32, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2111111),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names467,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2111113 : virtual EE211 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG21111133fooEv
+ virtual void bar(); // _ZN9GG21111133barEv
+ ~GG2111113(); // tgen
+ GG2111113(); // tgen
+};
+//SIG(1 GG2111113) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG2111113 ::foo(){vfunc_called(this, "_ZN9GG21111133fooEv");}
+void GG2111113 ::bar(){vfunc_called(this, "_ZN9GG21111133barEv");}
+GG2111113 ::~GG2111113(){ note_dtor("GG2111113", this);} // tgen
+GG2111113 ::GG2111113(){ note_ctor("GG2111113", this);} // tgen
+
+static void Test_GG2111113()
+{
+ extern Class_Descriptor cd_GG2111113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2111113, buf);
+ GG2111113 *dp, &lv = *(dp=new (buf) GG2111113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2111113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2111113)");
+ check_base_class_offset(lv, (AA2*)(EE211*), ABISELECT(32,16), "GG2111113");
+ check_base_class_offset(lv, (BB1*)(EE211*), ABISELECT(48,24), "GG2111113");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(48,24), "GG2111113");
+ check_base_class_offset(lv, (EE211*), ABISELECT(16,8), "GG2111113");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(80,40), "GG2111113");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG2111113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2111113.pg");
+ test_class_info(&lv, &cd_GG2111113);
+ dp->~GG2111113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2111113(Test_GG2111113, "GG2111113", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2111113C1Ev();
+extern void _ZN9GG2111113D1Ev();
+Name_Map name_map_GG2111113[] = {
+ NSPAIR(_ZN9GG2111113C1Ev),
+ NSPAIR(_ZN9GG2111113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE211;
+extern VTBL_ENTRY _ZTI5EE211[];
+extern VTBL_ENTRY _ZTV5EE211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE211[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG2111113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE211, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2111113[];
+extern void _ZN9GG21111133fooEv();
+extern void _ZN9GG21111133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21111133fooEv,_ZTv0_n20_N9GG21111133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21111133fooEv,_ZThn8_N9GG21111133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21111133barEv,_ZTv0_n12_N9GG21111133barEv)();
+extern void ABISELECT(_ZThn32_N9GG21111133barEv,_ZThn16_N9GG21111133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21111133fooEv,_ZTv0_n12_N9GG21111133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21111133fooEv,_ZThn24_N9GG21111133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21111133fooEv,_ZTv0_n20_N9GG21111133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21111133fooEv,_ZThn32_N9GG21111133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21111133fooEv,_ZTv0_n12_N9GG21111133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21111133fooEv,_ZThn40_N9GG21111133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2111113[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2111113[0]),
+ (VTBL_ENTRY)&_ZN9GG21111133fooEv,
+ (VTBL_ENTRY)&_ZN9GG21111133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2111113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21111133fooEv,_ZTv0_n20_N9GG21111133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2111113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21111133barEv,_ZTv0_n12_N9GG21111133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2111113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21111133fooEv,_ZTv0_n12_N9GG21111133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2111113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21111133fooEv,_ZTv0_n20_N9GG21111133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2111113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21111133fooEv,_ZTv0_n12_N9GG21111133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2111113[];
+extern void _ZN5EE2113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE211__9GG2111113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN5EE2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE211__9GG2111113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE211__9GG2111113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv),
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG2111113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG2111113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG2111113[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG2111113[] = {
+ {&(_ZTV9GG2111113[7]), 7,33},
+ {&(_ZTV9GG2111113[14]), 14,33},
+ {&(_ZTV9GG2111113[18]), 18,33},
+ {&(_ZTV9GG2111113[22]), 22,33},
+ {&(_ZTV9GG2111113[28]), 28,33},
+ {&(_ZTV9GG2111113[32]), 32,33},
+ {&(_tg__ZTV5EE211__9GG2111113[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE211__9GG2111113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE211__9GG2111113[3]), 3,4},
+ {&(_tg__ZTV5FF111__9GG2111113[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG2111113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG2111113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2111113[];
+extern VTBL_ENTRY _ZTV9GG2111113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2111113[];
+static VTBL_ENTRY alt_thunk_names468[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21111133fooEv,_ZTv0_n12_N9GG21111133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21111133fooEv,_ZThn40_N9GG21111133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21111133fooEv,_ZThn24_N9GG21111133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21111133barEv,_ZTv0_n12_N9GG21111133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21111133barEv,_ZThn16_N9GG21111133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21111133fooEv,_ZTv0_n20_N9GG21111133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21111133fooEv,_ZThn32_N9GG21111133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21111133fooEv,_ZThn8_N9GG21111133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2111113 = { "GG2111113", // class name
+ bases_GG2111113, 5,
+ &(vtc_GG2111113[0]), // expected_vtbl_contents
+ &(vtt_GG2111113[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2111113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2111113),33, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2111113),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names468,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2111123 : virtual EE211 , virtual FF112 {
+ int pg;
+ virtual void foo(); // _ZN9GG21111233fooEv
+ virtual void bar(); // _ZN9GG21111233barEv
+ ~GG2111123(); // tgen
+ GG2111123(); // tgen
+};
+//SIG(1 GG2111123) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG2111123 ::foo(){vfunc_called(this, "_ZN9GG21111233fooEv");}
+void GG2111123 ::bar(){vfunc_called(this, "_ZN9GG21111233barEv");}
+GG2111123 ::~GG2111123(){ note_dtor("GG2111123", this);} // tgen
+GG2111123 ::GG2111123(){ note_ctor("GG2111123", this);} // tgen
+
+static void Test_GG2111123()
+{
+ extern Class_Descriptor cd_GG2111123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2111123, buf);
+ GG2111123 *dp, &lv = *(dp=new (buf) GG2111123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2111123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2111123)");
+ check_base_class_offset(lv, (AA2*)(EE211*), ABISELECT(32,16), "GG2111123");
+ check_base_class_offset(lv, (BB1*)(EE211*), ABISELECT(48,24), "GG2111123");
+ check_base_class_offset(lv, (BB1*)(FF112*), ABISELECT(48,24), "GG2111123");
+ check_base_class_offset(lv, (EE211*), ABISELECT(16,8), "GG2111123");
+ check_base_class_offset(lv, (AA1*)(FF112*), ABISELECT(80,40), "GG2111123");
+ check_base_class_offset(lv, (FF112*), ABISELECT(64,32), "GG2111123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2111123.pg");
+ test_class_info(&lv, &cd_GG2111123);
+ dp->~GG2111123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2111123(Test_GG2111123, "GG2111123", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2111123C1Ev();
+extern void _ZN9GG2111123D1Ev();
+Name_Map name_map_GG2111123[] = {
+ NSPAIR(_ZN9GG2111123C1Ev),
+ NSPAIR(_ZN9GG2111123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE211;
+extern VTBL_ENTRY _ZTI5EE211[];
+extern VTBL_ENTRY _ZTV5EE211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE211[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF112;
+extern VTBL_ENTRY _ZTI5FF112[];
+extern VTBL_ENTRY _ZTV5FF112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF112[];
+static Base_Class bases_GG2111123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE211, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF112, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2111123[];
+extern void _ZN9GG21111233fooEv();
+extern void _ZN9GG21111233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21111233fooEv,_ZTv0_n20_N9GG21111233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21111233fooEv,_ZThn8_N9GG21111233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21111233barEv,_ZTv0_n12_N9GG21111233barEv)();
+extern void ABISELECT(_ZThn32_N9GG21111233barEv,_ZThn16_N9GG21111233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21111233fooEv,_ZTv0_n12_N9GG21111233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21111233fooEv,_ZThn24_N9GG21111233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21111233barEv,_ZTv0_n20_N9GG21111233barEv)();
+extern void ABISELECT(_ZThn64_N9GG21111233barEv,_ZThn32_N9GG21111233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21111233fooEv,_ZTv0_n12_N9GG21111233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21111233fooEv,_ZThn40_N9GG21111233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2111123[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2111123[0]),
+ (VTBL_ENTRY)&_ZN9GG21111233fooEv,
+ (VTBL_ENTRY)&_ZN9GG21111233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2111123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21111233fooEv,_ZTv0_n20_N9GG21111233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2111123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21111233barEv,_ZTv0_n12_N9GG21111233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2111123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21111233fooEv,_ZTv0_n12_N9GG21111233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2111123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21111233barEv,_ZTv0_n20_N9GG21111233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2111123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21111233fooEv,_ZTv0_n12_N9GG21111233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2111123[];
+extern void _ZN5EE2113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE211__9GG2111123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN5EE2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE211__9GG2111123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE211__9GG2111123[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv),
+};
+extern void _ZN5FF1123barEv();
+static VTBL_ENTRY _tg__ZTV5FF112__9GG2111123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN5FF1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF112__9GG2111123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF112__9GG2111123[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG2111123[] = {
+ {&(_ZTV9GG2111123[7]), 7,33},
+ {&(_ZTV9GG2111123[14]), 14,33},
+ {&(_ZTV9GG2111123[18]), 18,33},
+ {&(_ZTV9GG2111123[22]), 22,33},
+ {&(_ZTV9GG2111123[28]), 28,33},
+ {&(_ZTV9GG2111123[32]), 32,33},
+ {&(_tg__ZTV5EE211__9GG2111123[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE211__9GG2111123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE211__9GG2111123[3]), 3,4},
+ {&(_tg__ZTV5FF112__9GG2111123[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF112__9GG2111123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF112__9GG2111123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2111123[];
+extern VTBL_ENTRY _ZTV9GG2111123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2111123[];
+static VTBL_ENTRY alt_thunk_names469[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21111233barEv,_ZTv0_n20_N9GG21111233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21111233barEv,_ZThn32_N9GG21111233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21111233fooEv,_ZTv0_n12_N9GG21111233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21111233fooEv,_ZThn40_N9GG21111233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21111233fooEv,_ZThn24_N9GG21111233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21111233barEv,_ZTv0_n12_N9GG21111233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21111233barEv,_ZThn16_N9GG21111233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21111233fooEv,_ZTv0_n20_N9GG21111233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21111233fooEv,_ZThn8_N9GG21111233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2111123 = { "GG2111123", // class name
+ bases_GG2111123, 5,
+ &(vtc_GG2111123[0]), // expected_vtbl_contents
+ &(vtt_GG2111123[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2111123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2111123),33, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2111123),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names469,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2111133 : virtual EE211 , virtual FF113 {
+ int pg;
+ virtual void foo(); // _ZN9GG21111333fooEv
+ virtual void bar(); // _ZN9GG21111333barEv
+ ~GG2111133(); // tgen
+ GG2111133(); // tgen
+};
+//SIG(1 GG2111133) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2111133 ::foo(){vfunc_called(this, "_ZN9GG21111333fooEv");}
+void GG2111133 ::bar(){vfunc_called(this, "_ZN9GG21111333barEv");}
+GG2111133 ::~GG2111133(){ note_dtor("GG2111133", this);} // tgen
+GG2111133 ::GG2111133(){ note_ctor("GG2111133", this);} // tgen
+
+static void Test_GG2111133()
+{
+ extern Class_Descriptor cd_GG2111133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2111133, buf);
+ GG2111133 *dp, &lv = *(dp=new (buf) GG2111133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2111133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2111133)");
+ check_base_class_offset(lv, (AA2*)(EE211*), ABISELECT(32,16), "GG2111133");
+ check_base_class_offset(lv, (BB1*)(EE211*), ABISELECT(48,24), "GG2111133");
+ check_base_class_offset(lv, (BB1*)(FF113*), ABISELECT(48,24), "GG2111133");
+ check_base_class_offset(lv, (EE211*), ABISELECT(16,8), "GG2111133");
+ check_base_class_offset(lv, (AA1*)(FF113*), ABISELECT(80,40), "GG2111133");
+ check_base_class_offset(lv, (FF113*), ABISELECT(64,32), "GG2111133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2111133.pg");
+ test_class_info(&lv, &cd_GG2111133);
+ dp->~GG2111133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2111133(Test_GG2111133, "GG2111133", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2111133C1Ev();
+extern void _ZN9GG2111133D1Ev();
+Name_Map name_map_GG2111133[] = {
+ NSPAIR(_ZN9GG2111133C1Ev),
+ NSPAIR(_ZN9GG2111133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE211;
+extern VTBL_ENTRY _ZTI5EE211[];
+extern VTBL_ENTRY _ZTV5EE211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE211[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF113;
+extern VTBL_ENTRY _ZTI5FF113[];
+extern VTBL_ENTRY _ZTV5FF113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF113[];
+static Base_Class bases_GG2111133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE211, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF113, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2111133[];
+extern void _ZN9GG21111333fooEv();
+extern void _ZN9GG21111333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21111333fooEv,_ZTv0_n20_N9GG21111333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21111333fooEv,_ZThn8_N9GG21111333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21111333barEv,_ZTv0_n12_N9GG21111333barEv)();
+extern void ABISELECT(_ZThn32_N9GG21111333barEv,_ZThn16_N9GG21111333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21111333fooEv,_ZTv0_n12_N9GG21111333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21111333fooEv,_ZThn24_N9GG21111333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21111333fooEv,_ZTv0_n20_N9GG21111333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21111333fooEv,_ZThn32_N9GG21111333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21111333barEv,_ZTv0_n24_N9GG21111333barEv)();
+extern void ABISELECT(_ZThn64_N9GG21111333barEv,_ZThn32_N9GG21111333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21111333fooEv,_ZTv0_n12_N9GG21111333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21111333fooEv,_ZThn40_N9GG21111333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2111133[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2111133[0]),
+ (VTBL_ENTRY)&_ZN9GG21111333fooEv,
+ (VTBL_ENTRY)&_ZN9GG21111333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2111133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21111333fooEv,_ZTv0_n20_N9GG21111333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2111133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21111333barEv,_ZTv0_n12_N9GG21111333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2111133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21111333fooEv,_ZTv0_n12_N9GG21111333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2111133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21111333fooEv,_ZTv0_n20_N9GG21111333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21111333barEv,_ZTv0_n24_N9GG21111333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2111133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21111333fooEv,_ZTv0_n12_N9GG21111333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2111133[];
+extern void _ZN5EE2113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE211__9GG2111133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN5EE2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE211__9GG2111133[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE211__9GG2111133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv),
+};
+extern void _ZN5FF1133fooEv();
+extern void _ZN5FF1133barEv();
+static VTBL_ENTRY _tg__ZTV5FF113__9GG2111133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&_ZN5FF1133fooEv,
+ (VTBL_ENTRY)&_ZN5FF1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF113__9GG2111133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF113__9GG2111133[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+static VTT_ENTRY vtt_GG2111133[] = {
+ {&(_ZTV9GG2111133[7]), 7,35},
+ {&(_ZTV9GG2111133[14]), 14,35},
+ {&(_ZTV9GG2111133[18]), 18,35},
+ {&(_ZTV9GG2111133[22]), 22,35},
+ {&(_ZTV9GG2111133[29]), 29,35},
+ {&(_ZTV9GG2111133[34]), 34,35},
+ {&(_tg__ZTV5EE211__9GG2111133[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE211__9GG2111133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE211__9GG2111133[3]), 3,4},
+ {&(_tg__ZTV5FF113__9GG2111133[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF113__9GG2111133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF113__9GG2111133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2111133[];
+extern VTBL_ENTRY _ZTV9GG2111133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2111133[];
+static VTBL_ENTRY alt_thunk_names470[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG21111333barEv,_ZTv0_n24_N9GG21111333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21111333barEv,_ZThn32_N9GG21111333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21111333fooEv,_ZTv0_n12_N9GG21111333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21111333fooEv,_ZThn40_N9GG21111333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21111333fooEv,_ZThn24_N9GG21111333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21111333barEv,_ZTv0_n12_N9GG21111333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21111333barEv,_ZThn16_N9GG21111333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21111333fooEv,_ZTv0_n20_N9GG21111333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21111333fooEv,_ZThn32_N9GG21111333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21111333fooEv,_ZThn8_N9GG21111333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2111133 = { "GG2111133", // class name
+ bases_GG2111133, 5,
+ &(vtc_GG2111133[0]), // expected_vtbl_contents
+ &(vtt_GG2111133[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2111133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2111133),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2111133),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names470,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2111213 : virtual EE211 , virtual FF121 {
+ int pg;
+ virtual void foo(); // _ZN9GG21112133fooEv
+ virtual void bar(); // _ZN9GG21112133barEv
+ ~GG2111213(); // tgen
+ GG2111213(); // tgen
+};
+//SIG(1 GG2111213) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2111213 ::foo(){vfunc_called(this, "_ZN9GG21112133fooEv");}
+void GG2111213 ::bar(){vfunc_called(this, "_ZN9GG21112133barEv");}
+GG2111213 ::~GG2111213(){ note_dtor("GG2111213", this);} // tgen
+GG2111213 ::GG2111213(){ note_ctor("GG2111213", this);} // tgen
+
+static void Test_GG2111213()
+{
+ extern Class_Descriptor cd_GG2111213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2111213, buf);
+ GG2111213 *dp, &lv = *(dp=new (buf) GG2111213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2111213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2111213)");
+ check_base_class_offset(lv, (AA2*)(EE211*), ABISELECT(32,16), "GG2111213");
+ check_base_class_offset(lv, (BB1*)(EE211*), ABISELECT(48,24), "GG2111213");
+ check_base_class_offset(lv, (EE211*), ABISELECT(16,8), "GG2111213");
+ check_base_class_offset(lv, (AA1*)(FF121*), ABISELECT(80,40), "GG2111213");
+ check_base_class_offset(lv, (BB2*)(FF121*), ABISELECT(96,48), "GG2111213");
+ check_base_class_offset(lv, (FF121*), ABISELECT(64,32), "GG2111213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2111213.pg");
+ test_class_info(&lv, &cd_GG2111213);
+ dp->~GG2111213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2111213(Test_GG2111213, "GG2111213", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2111213C1Ev();
+extern void _ZN9GG2111213D1Ev();
+Name_Map name_map_GG2111213[] = {
+ NSPAIR(_ZN9GG2111213C1Ev),
+ NSPAIR(_ZN9GG2111213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE211;
+extern VTBL_ENTRY _ZTI5EE211[];
+extern VTBL_ENTRY _ZTV5EE211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE211[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF121;
+extern VTBL_ENTRY _ZTI5FF121[];
+extern VTBL_ENTRY _ZTV5FF121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF121[];
+static Base_Class bases_GG2111213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE211, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF121, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2111213[];
+extern void _ZN9GG21112133fooEv();
+extern void _ZN9GG21112133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21112133fooEv,_ZTv0_n20_N9GG21112133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21112133fooEv,_ZThn8_N9GG21112133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21112133barEv,_ZTv0_n12_N9GG21112133barEv)();
+extern void ABISELECT(_ZThn32_N9GG21112133barEv,_ZThn16_N9GG21112133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21112133fooEv,_ZTv0_n12_N9GG21112133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21112133fooEv,_ZThn24_N9GG21112133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21112133fooEv,_ZTv0_n20_N9GG21112133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21112133fooEv,_ZThn32_N9GG21112133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21112133fooEv,_ZTv0_n12_N9GG21112133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21112133fooEv,_ZThn40_N9GG21112133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21112133barEv,_ZTv0_n12_N9GG21112133barEv)();
+extern void ABISELECT(_ZThn96_N9GG21112133barEv,_ZThn48_N9GG21112133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2111213[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2111213[0]),
+ (VTBL_ENTRY)&_ZN9GG21112133fooEv,
+ (VTBL_ENTRY)&_ZN9GG21112133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2111213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21112133fooEv,_ZTv0_n20_N9GG21112133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2111213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21112133barEv,_ZTv0_n12_N9GG21112133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2111213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21112133fooEv,_ZTv0_n12_N9GG21112133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2111213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21112133fooEv,_ZTv0_n20_N9GG21112133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2111213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21112133fooEv,_ZTv0_n12_N9GG21112133fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2111213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21112133barEv,_ZTv0_n12_N9GG21112133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2111213[];
+extern void _ZN5EE2113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE211__9GG2111213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN5EE2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE211__9GG2111213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE211__9GG2111213[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv),
+};
+extern void _ZN5FF1213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF121__9GG2111213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN5FF1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1213fooEv,_ZThn8_N5FF1213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF121__9GG2111213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF121__9GG2111213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG2111213[] = {
+ {&(_ZTV9GG2111213[8]), 8,38},
+ {&(_ZTV9GG2111213[15]), 15,38},
+ {&(_ZTV9GG2111213[19]), 19,38},
+ {&(_ZTV9GG2111213[23]), 23,38},
+ {&(_ZTV9GG2111213[29]), 29,38},
+ {&(_ZTV9GG2111213[33]), 33,38},
+ {&(_ZTV9GG2111213[37]), 37,38},
+ {&(_tg__ZTV5EE211__9GG2111213[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE211__9GG2111213[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE211__9GG2111213[3]), 3,4},
+ {&(_tg__ZTV5FF121__9GG2111213[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF121__9GG2111213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF121__9GG2111213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2111213[];
+extern VTBL_ENTRY _ZTV9GG2111213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2111213[];
+static VTBL_ENTRY alt_thunk_names471[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1213fooEv,_ZThn8_N5FF1213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21112133fooEv,_ZTv0_n12_N9GG21112133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21112133fooEv,_ZThn40_N9GG21112133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21112133fooEv,_ZThn24_N9GG21112133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21112133barEv,_ZTv0_n12_N9GG21112133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21112133barEv,_ZThn48_N9GG21112133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21112133barEv,_ZThn16_N9GG21112133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21112133fooEv,_ZTv0_n20_N9GG21112133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21112133fooEv,_ZThn32_N9GG21112133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21112133fooEv,_ZThn8_N9GG21112133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2111213 = { "GG2111213", // class name
+ bases_GG2111213, 6,
+ &(vtc_GG2111213[0]), // expected_vtbl_contents
+ &(vtt_GG2111213[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2111213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2111213),38, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2111213),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names471,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2111223 : virtual EE211 , virtual FF122 {
+ int pg;
+ virtual void foo(); // _ZN9GG21112233fooEv
+ virtual void bar(); // _ZN9GG21112233barEv
+ ~GG2111223(); // tgen
+ GG2111223(); // tgen
+};
+//SIG(1 GG2111223) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2111223 ::foo(){vfunc_called(this, "_ZN9GG21112233fooEv");}
+void GG2111223 ::bar(){vfunc_called(this, "_ZN9GG21112233barEv");}
+GG2111223 ::~GG2111223(){ note_dtor("GG2111223", this);} // tgen
+GG2111223 ::GG2111223(){ note_ctor("GG2111223", this);} // tgen
+
+static void Test_GG2111223()
+{
+ extern Class_Descriptor cd_GG2111223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2111223, buf);
+ GG2111223 *dp, &lv = *(dp=new (buf) GG2111223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2111223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2111223)");
+ check_base_class_offset(lv, (AA2*)(EE211*), ABISELECT(32,16), "GG2111223");
+ check_base_class_offset(lv, (BB1*)(EE211*), ABISELECT(48,24), "GG2111223");
+ check_base_class_offset(lv, (EE211*), ABISELECT(16,8), "GG2111223");
+ check_base_class_offset(lv, (AA1*)(FF122*), ABISELECT(80,40), "GG2111223");
+ check_base_class_offset(lv, (BB2*)(FF122*), ABISELECT(96,48), "GG2111223");
+ check_base_class_offset(lv, (FF122*), ABISELECT(64,32), "GG2111223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2111223.pg");
+ test_class_info(&lv, &cd_GG2111223);
+ dp->~GG2111223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2111223(Test_GG2111223, "GG2111223", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2111223C1Ev();
+extern void _ZN9GG2111223D1Ev();
+Name_Map name_map_GG2111223[] = {
+ NSPAIR(_ZN9GG2111223C1Ev),
+ NSPAIR(_ZN9GG2111223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE211;
+extern VTBL_ENTRY _ZTI5EE211[];
+extern VTBL_ENTRY _ZTV5EE211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE211[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF122;
+extern VTBL_ENTRY _ZTI5FF122[];
+extern VTBL_ENTRY _ZTV5FF122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF122[];
+static Base_Class bases_GG2111223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE211, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF122, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2111223[];
+extern void _ZN9GG21112233fooEv();
+extern void _ZN9GG21112233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21112233fooEv,_ZTv0_n20_N9GG21112233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21112233fooEv,_ZThn8_N9GG21112233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21112233barEv,_ZTv0_n12_N9GG21112233barEv)();
+extern void ABISELECT(_ZThn32_N9GG21112233barEv,_ZThn16_N9GG21112233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21112233fooEv,_ZTv0_n12_N9GG21112233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21112233fooEv,_ZThn24_N9GG21112233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21112233barEv,_ZTv0_n20_N9GG21112233barEv)();
+extern void ABISELECT(_ZThn64_N9GG21112233barEv,_ZThn32_N9GG21112233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21112233fooEv,_ZTv0_n12_N9GG21112233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21112233fooEv,_ZThn40_N9GG21112233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21112233barEv,_ZTv0_n12_N9GG21112233barEv)();
+extern void ABISELECT(_ZThn96_N9GG21112233barEv,_ZThn48_N9GG21112233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2111223[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2111223[0]),
+ (VTBL_ENTRY)&_ZN9GG21112233fooEv,
+ (VTBL_ENTRY)&_ZN9GG21112233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2111223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21112233fooEv,_ZTv0_n20_N9GG21112233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2111223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21112233barEv,_ZTv0_n12_N9GG21112233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2111223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21112233fooEv,_ZTv0_n12_N9GG21112233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2111223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21112233barEv,_ZTv0_n20_N9GG21112233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2111223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21112233fooEv,_ZTv0_n12_N9GG21112233fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2111223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21112233barEv,_ZTv0_n12_N9GG21112233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2111223[];
+extern void _ZN5EE2113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE211__9GG2111223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN5EE2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE211__9GG2111223[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE211__9GG2111223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv),
+};
+extern void _ZN5FF1223barEv();
+static VTBL_ENTRY _tg__ZTV5FF122__9GG2111223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN5FF1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF122__9GG2111223[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv)();
+extern void ABISELECT(_ZThn32_N5FF1223barEv,_ZThn16_N5FF1223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF122__9GG2111223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv),
+};
+static VTT_ENTRY vtt_GG2111223[] = {
+ {&(_ZTV9GG2111223[8]), 8,38},
+ {&(_ZTV9GG2111223[15]), 15,38},
+ {&(_ZTV9GG2111223[19]), 19,38},
+ {&(_ZTV9GG2111223[23]), 23,38},
+ {&(_ZTV9GG2111223[29]), 29,38},
+ {&(_ZTV9GG2111223[33]), 33,38},
+ {&(_ZTV9GG2111223[37]), 37,38},
+ {&(_tg__ZTV5EE211__9GG2111223[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE211__9GG2111223[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE211__9GG2111223[3]), 3,4},
+ {&(_tg__ZTV5FF122__9GG2111223[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF122__9GG2111223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF122__9GG2111223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2111223[];
+extern VTBL_ENTRY _ZTV9GG2111223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2111223[];
+static VTBL_ENTRY alt_thunk_names472[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1223barEv,_ZThn16_N5FF1223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21112233barEv,_ZTv0_n20_N9GG21112233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21112233barEv,_ZThn32_N9GG21112233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21112233fooEv,_ZTv0_n12_N9GG21112233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21112233fooEv,_ZThn40_N9GG21112233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21112233fooEv,_ZThn24_N9GG21112233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21112233barEv,_ZTv0_n12_N9GG21112233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21112233barEv,_ZThn48_N9GG21112233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21112233barEv,_ZThn16_N9GG21112233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21112233fooEv,_ZTv0_n20_N9GG21112233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21112233fooEv,_ZThn8_N9GG21112233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2111223 = { "GG2111223", // class name
+ bases_GG2111223, 6,
+ &(vtc_GG2111223[0]), // expected_vtbl_contents
+ &(vtt_GG2111223[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2111223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2111223),38, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2111223),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names472,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2111233 : virtual EE211 , virtual FF123 {
+ int pg;
+ virtual void foo(); // _ZN9GG21112333fooEv
+ virtual void bar(); // _ZN9GG21112333barEv
+ ~GG2111233(); // tgen
+ GG2111233(); // tgen
+};
+//SIG(1 GG2111233) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2111233 ::foo(){vfunc_called(this, "_ZN9GG21112333fooEv");}
+void GG2111233 ::bar(){vfunc_called(this, "_ZN9GG21112333barEv");}
+GG2111233 ::~GG2111233(){ note_dtor("GG2111233", this);} // tgen
+GG2111233 ::GG2111233(){ note_ctor("GG2111233", this);} // tgen
+
+static void Test_GG2111233()
+{
+ extern Class_Descriptor cd_GG2111233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2111233, buf);
+ GG2111233 *dp, &lv = *(dp=new (buf) GG2111233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2111233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2111233)");
+ check_base_class_offset(lv, (AA2*)(EE211*), ABISELECT(32,16), "GG2111233");
+ check_base_class_offset(lv, (BB1*)(EE211*), ABISELECT(48,24), "GG2111233");
+ check_base_class_offset(lv, (EE211*), ABISELECT(16,8), "GG2111233");
+ check_base_class_offset(lv, (AA1*)(FF123*), ABISELECT(80,40), "GG2111233");
+ check_base_class_offset(lv, (BB2*)(FF123*), ABISELECT(96,48), "GG2111233");
+ check_base_class_offset(lv, (FF123*), ABISELECT(64,32), "GG2111233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2111233.pg");
+ test_class_info(&lv, &cd_GG2111233);
+ dp->~GG2111233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2111233(Test_GG2111233, "GG2111233", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2111233C1Ev();
+extern void _ZN9GG2111233D1Ev();
+Name_Map name_map_GG2111233[] = {
+ NSPAIR(_ZN9GG2111233C1Ev),
+ NSPAIR(_ZN9GG2111233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE211;
+extern VTBL_ENTRY _ZTI5EE211[];
+extern VTBL_ENTRY _ZTV5EE211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE211[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF123;
+extern VTBL_ENTRY _ZTI5FF123[];
+extern VTBL_ENTRY _ZTV5FF123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF123[];
+static Base_Class bases_GG2111233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE211, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF123, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2111233[];
+extern void _ZN9GG21112333fooEv();
+extern void _ZN9GG21112333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21112333fooEv,_ZTv0_n20_N9GG21112333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21112333fooEv,_ZThn8_N9GG21112333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21112333barEv,_ZTv0_n12_N9GG21112333barEv)();
+extern void ABISELECT(_ZThn32_N9GG21112333barEv,_ZThn16_N9GG21112333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21112333fooEv,_ZTv0_n12_N9GG21112333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21112333fooEv,_ZThn24_N9GG21112333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21112333fooEv,_ZTv0_n20_N9GG21112333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21112333fooEv,_ZThn32_N9GG21112333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21112333barEv,_ZTv0_n24_N9GG21112333barEv)();
+extern void ABISELECT(_ZThn64_N9GG21112333barEv,_ZThn32_N9GG21112333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21112333fooEv,_ZTv0_n12_N9GG21112333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21112333fooEv,_ZThn40_N9GG21112333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21112333barEv,_ZTv0_n12_N9GG21112333barEv)();
+extern void ABISELECT(_ZThn96_N9GG21112333barEv,_ZThn48_N9GG21112333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2111233[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2111233[0]),
+ (VTBL_ENTRY)&_ZN9GG21112333fooEv,
+ (VTBL_ENTRY)&_ZN9GG21112333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2111233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21112333fooEv,_ZTv0_n20_N9GG21112333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2111233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21112333barEv,_ZTv0_n12_N9GG21112333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2111233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21112333fooEv,_ZTv0_n12_N9GG21112333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2111233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21112333fooEv,_ZTv0_n20_N9GG21112333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21112333barEv,_ZTv0_n24_N9GG21112333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2111233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21112333fooEv,_ZTv0_n12_N9GG21112333fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2111233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21112333barEv,_ZTv0_n12_N9GG21112333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2111233[];
+extern void _ZN5EE2113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE211__9GG2111233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN5EE2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE211__9GG2111233[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE211__9GG2111233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv),
+};
+extern void _ZN5FF1233fooEv();
+extern void _ZN5FF1233barEv();
+static VTBL_ENTRY _tg__ZTV5FF123__9GG2111233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&_ZN5FF1233fooEv,
+ (VTBL_ENTRY)&_ZN5FF1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1233fooEv,_ZThn8_N5FF1233fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF123__9GG2111233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv)();
+extern void ABISELECT(_ZThn32_N5FF1233barEv,_ZThn16_N5FF1233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF123__9GG2111233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv),
+};
+static VTT_ENTRY vtt_GG2111233[] = {
+ {&(_ZTV9GG2111233[8]), 8,40},
+ {&(_ZTV9GG2111233[15]), 15,40},
+ {&(_ZTV9GG2111233[19]), 19,40},
+ {&(_ZTV9GG2111233[23]), 23,40},
+ {&(_ZTV9GG2111233[30]), 30,40},
+ {&(_ZTV9GG2111233[35]), 35,40},
+ {&(_ZTV9GG2111233[39]), 39,40},
+ {&(_tg__ZTV5EE211__9GG2111233[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE211__9GG2111233[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE211__9GG2111233[3]), 3,4},
+ {&(_tg__ZTV5FF123__9GG2111233[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF123__9GG2111233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF123__9GG2111233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2111233[];
+extern VTBL_ENTRY _ZTV9GG2111233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2111233[];
+static VTBL_ENTRY alt_thunk_names473[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1233barEv,_ZThn16_N5FF1233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1233fooEv,_ZThn8_N5FF1233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG21112333barEv,_ZTv0_n24_N9GG21112333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21112333barEv,_ZThn32_N9GG21112333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21112333fooEv,_ZTv0_n12_N9GG21112333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21112333fooEv,_ZThn40_N9GG21112333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21112333fooEv,_ZThn24_N9GG21112333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21112333barEv,_ZTv0_n12_N9GG21112333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21112333barEv,_ZThn48_N9GG21112333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21112333barEv,_ZThn16_N9GG21112333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21112333fooEv,_ZTv0_n20_N9GG21112333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21112333fooEv,_ZThn32_N9GG21112333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21112333fooEv,_ZThn8_N9GG21112333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2111233 = { "GG2111233", // class name
+ bases_GG2111233, 6,
+ &(vtc_GG2111233[0]), // expected_vtbl_contents
+ &(vtt_GG2111233[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2111233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2111233),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2111233),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names473,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2111313 : virtual EE211 , virtual FF131 {
+ int pg;
+ virtual void foo(); // _ZN9GG21113133fooEv
+ virtual void bar(); // _ZN9GG21113133barEv
+ ~GG2111313(); // tgen
+ GG2111313(); // tgen
+};
+//SIG(1 GG2111313) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2111313 ::foo(){vfunc_called(this, "_ZN9GG21113133fooEv");}
+void GG2111313 ::bar(){vfunc_called(this, "_ZN9GG21113133barEv");}
+GG2111313 ::~GG2111313(){ note_dtor("GG2111313", this);} // tgen
+GG2111313 ::GG2111313(){ note_ctor("GG2111313", this);} // tgen
+
+static void Test_GG2111313()
+{
+ extern Class_Descriptor cd_GG2111313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2111313, buf);
+ GG2111313 *dp, &lv = *(dp=new (buf) GG2111313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2111313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2111313)");
+ check_base_class_offset(lv, (AA2*)(EE211*), ABISELECT(32,16), "GG2111313");
+ check_base_class_offset(lv, (BB1*)(EE211*), ABISELECT(48,24), "GG2111313");
+ check_base_class_offset(lv, (EE211*), ABISELECT(16,8), "GG2111313");
+ check_base_class_offset(lv, (AA1*)(FF131*), ABISELECT(80,40), "GG2111313");
+ check_base_class_offset(lv, (BB3*)(FF131*), ABISELECT(96,48), "GG2111313");
+ check_base_class_offset(lv, (FF131*), ABISELECT(64,32), "GG2111313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2111313.pg");
+ test_class_info(&lv, &cd_GG2111313);
+ dp->~GG2111313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2111313(Test_GG2111313, "GG2111313", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2111313C1Ev();
+extern void _ZN9GG2111313D1Ev();
+Name_Map name_map_GG2111313[] = {
+ NSPAIR(_ZN9GG2111313C1Ev),
+ NSPAIR(_ZN9GG2111313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE211;
+extern VTBL_ENTRY _ZTI5EE211[];
+extern VTBL_ENTRY _ZTV5EE211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE211[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF131;
+extern VTBL_ENTRY _ZTI5FF131[];
+extern VTBL_ENTRY _ZTV5FF131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF131[];
+static Base_Class bases_GG2111313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE211, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF131, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2111313[];
+extern void _ZN9GG21113133fooEv();
+extern void _ZN9GG21113133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21113133fooEv,_ZTv0_n20_N9GG21113133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21113133fooEv,_ZThn8_N9GG21113133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21113133barEv,_ZTv0_n12_N9GG21113133barEv)();
+extern void ABISELECT(_ZThn32_N9GG21113133barEv,_ZThn16_N9GG21113133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21113133fooEv,_ZTv0_n12_N9GG21113133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21113133fooEv,_ZThn24_N9GG21113133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21113133fooEv,_ZTv0_n20_N9GG21113133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21113133fooEv,_ZThn32_N9GG21113133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21113133fooEv,_ZTv0_n12_N9GG21113133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21113133fooEv,_ZThn40_N9GG21113133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21113133fooEv,_ZTv0_n12_N9GG21113133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG21113133fooEv,_ZThn48_N9GG21113133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21113133barEv,_ZTv0_n16_N9GG21113133barEv)();
+extern void ABISELECT(_ZThn96_N9GG21113133barEv,_ZThn48_N9GG21113133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2111313[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2111313[0]),
+ (VTBL_ENTRY)&_ZN9GG21113133fooEv,
+ (VTBL_ENTRY)&_ZN9GG21113133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2111313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21113133fooEv,_ZTv0_n20_N9GG21113133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2111313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21113133barEv,_ZTv0_n12_N9GG21113133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2111313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21113133fooEv,_ZTv0_n12_N9GG21113133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2111313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21113133fooEv,_ZTv0_n20_N9GG21113133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2111313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21113133fooEv,_ZTv0_n12_N9GG21113133fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2111313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21113133fooEv,_ZTv0_n12_N9GG21113133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21113133barEv,_ZTv0_n16_N9GG21113133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2111313[];
+extern void _ZN5EE2113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE211__9GG2111313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN5EE2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE211__9GG2111313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE211__9GG2111313[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv),
+};
+extern void _ZN5FF1313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF131__9GG2111313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&_ZN5FF1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF131__9GG2111313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1313fooEv,_ZThn16_N5FF1313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF131__9GG2111313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG2111313[] = {
+ {&(_ZTV9GG2111313[8]), 8,40},
+ {&(_ZTV9GG2111313[15]), 15,40},
+ {&(_ZTV9GG2111313[19]), 19,40},
+ {&(_ZTV9GG2111313[23]), 23,40},
+ {&(_ZTV9GG2111313[29]), 29,40},
+ {&(_ZTV9GG2111313[33]), 33,40},
+ {&(_ZTV9GG2111313[38]), 38,40},
+ {&(_tg__ZTV5EE211__9GG2111313[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE211__9GG2111313[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE211__9GG2111313[3]), 3,4},
+ {&(_tg__ZTV5FF131__9GG2111313[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF131__9GG2111313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF131__9GG2111313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2111313[];
+extern VTBL_ENTRY _ZTV9GG2111313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2111313[];
+static VTBL_ENTRY alt_thunk_names474[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1313fooEv,_ZThn16_N5FF1313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG21113133barEv,_ZTv0_n16_N9GG21113133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21113133barEv,_ZThn48_N9GG21113133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21113133fooEv,_ZTv0_n12_N9GG21113133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21113133fooEv,_ZThn48_N9GG21113133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21113133fooEv,_ZThn40_N9GG21113133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21113133fooEv,_ZThn24_N9GG21113133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21113133barEv,_ZTv0_n12_N9GG21113133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21113133barEv,_ZThn16_N9GG21113133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21113133fooEv,_ZTv0_n20_N9GG21113133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21113133fooEv,_ZThn32_N9GG21113133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21113133fooEv,_ZThn8_N9GG21113133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2111313 = { "GG2111313", // class name
+ bases_GG2111313, 6,
+ &(vtc_GG2111313[0]), // expected_vtbl_contents
+ &(vtt_GG2111313[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2111313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2111313),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2111313),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names474,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2111323 : virtual EE211 , virtual FF132 {
+ int pg;
+ virtual void foo(); // _ZN9GG21113233fooEv
+ virtual void bar(); // _ZN9GG21113233barEv
+ ~GG2111323(); // tgen
+ GG2111323(); // tgen
+};
+//SIG(1 GG2111323) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2111323 ::foo(){vfunc_called(this, "_ZN9GG21113233fooEv");}
+void GG2111323 ::bar(){vfunc_called(this, "_ZN9GG21113233barEv");}
+GG2111323 ::~GG2111323(){ note_dtor("GG2111323", this);} // tgen
+GG2111323 ::GG2111323(){ note_ctor("GG2111323", this);} // tgen
+
+static void Test_GG2111323()
+{
+ extern Class_Descriptor cd_GG2111323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2111323, buf);
+ GG2111323 *dp, &lv = *(dp=new (buf) GG2111323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2111323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2111323)");
+ check_base_class_offset(lv, (AA2*)(EE211*), ABISELECT(32,16), "GG2111323");
+ check_base_class_offset(lv, (BB1*)(EE211*), ABISELECT(48,24), "GG2111323");
+ check_base_class_offset(lv, (EE211*), ABISELECT(16,8), "GG2111323");
+ check_base_class_offset(lv, (AA1*)(FF132*), ABISELECT(80,40), "GG2111323");
+ check_base_class_offset(lv, (BB3*)(FF132*), ABISELECT(96,48), "GG2111323");
+ check_base_class_offset(lv, (FF132*), ABISELECT(64,32), "GG2111323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2111323.pg");
+ test_class_info(&lv, &cd_GG2111323);
+ dp->~GG2111323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2111323(Test_GG2111323, "GG2111323", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2111323C1Ev();
+extern void _ZN9GG2111323D1Ev();
+Name_Map name_map_GG2111323[] = {
+ NSPAIR(_ZN9GG2111323C1Ev),
+ NSPAIR(_ZN9GG2111323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE211;
+extern VTBL_ENTRY _ZTI5EE211[];
+extern VTBL_ENTRY _ZTV5EE211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE211[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF132;
+extern VTBL_ENTRY _ZTI5FF132[];
+extern VTBL_ENTRY _ZTV5FF132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF132[];
+static Base_Class bases_GG2111323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE211, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF132, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2111323[];
+extern void _ZN9GG21113233fooEv();
+extern void _ZN9GG21113233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21113233fooEv,_ZTv0_n20_N9GG21113233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21113233fooEv,_ZThn8_N9GG21113233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21113233barEv,_ZTv0_n12_N9GG21113233barEv)();
+extern void ABISELECT(_ZThn32_N9GG21113233barEv,_ZThn16_N9GG21113233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21113233fooEv,_ZTv0_n12_N9GG21113233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21113233fooEv,_ZThn24_N9GG21113233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21113233barEv,_ZTv0_n20_N9GG21113233barEv)();
+extern void ABISELECT(_ZThn64_N9GG21113233barEv,_ZThn32_N9GG21113233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21113233fooEv,_ZTv0_n12_N9GG21113233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21113233fooEv,_ZThn40_N9GG21113233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21113233fooEv,_ZTv0_n12_N9GG21113233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG21113233fooEv,_ZThn48_N9GG21113233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21113233barEv,_ZTv0_n16_N9GG21113233barEv)();
+extern void ABISELECT(_ZThn96_N9GG21113233barEv,_ZThn48_N9GG21113233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2111323[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2111323[0]),
+ (VTBL_ENTRY)&_ZN9GG21113233fooEv,
+ (VTBL_ENTRY)&_ZN9GG21113233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2111323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21113233fooEv,_ZTv0_n20_N9GG21113233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2111323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21113233barEv,_ZTv0_n12_N9GG21113233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2111323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21113233fooEv,_ZTv0_n12_N9GG21113233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2111323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21113233barEv,_ZTv0_n20_N9GG21113233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2111323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21113233fooEv,_ZTv0_n12_N9GG21113233fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2111323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21113233fooEv,_ZTv0_n12_N9GG21113233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21113233barEv,_ZTv0_n16_N9GG21113233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2111323[];
+extern void _ZN5EE2113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE211__9GG2111323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN5EE2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE211__9GG2111323[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE211__9GG2111323[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv),
+};
+extern void _ZN5FF1323barEv();
+static VTBL_ENTRY _tg__ZTV5FF132__9GG2111323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN5FF1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF132__9GG2111323[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv)();
+extern void ABISELECT(_ZThn32_N5FF1323barEv,_ZThn16_N5FF1323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF132__9GG2111323[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv),
+};
+static VTT_ENTRY vtt_GG2111323[] = {
+ {&(_ZTV9GG2111323[8]), 8,40},
+ {&(_ZTV9GG2111323[15]), 15,40},
+ {&(_ZTV9GG2111323[19]), 19,40},
+ {&(_ZTV9GG2111323[23]), 23,40},
+ {&(_ZTV9GG2111323[29]), 29,40},
+ {&(_ZTV9GG2111323[33]), 33,40},
+ {&(_ZTV9GG2111323[38]), 38,40},
+ {&(_tg__ZTV5EE211__9GG2111323[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE211__9GG2111323[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE211__9GG2111323[3]), 3,4},
+ {&(_tg__ZTV5FF132__9GG2111323[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF132__9GG2111323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF132__9GG2111323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2111323[];
+extern VTBL_ENTRY _ZTV9GG2111323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2111323[];
+static VTBL_ENTRY alt_thunk_names475[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1323barEv,_ZThn16_N5FF1323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG21113233barEv,_ZTv0_n16_N9GG21113233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21113233barEv,_ZThn48_N9GG21113233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21113233barEv,_ZTv0_n20_N9GG21113233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21113233barEv,_ZThn32_N9GG21113233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21113233fooEv,_ZTv0_n12_N9GG21113233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21113233fooEv,_ZThn48_N9GG21113233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21113233fooEv,_ZThn40_N9GG21113233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21113233fooEv,_ZThn24_N9GG21113233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21113233barEv,_ZTv0_n12_N9GG21113233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21113233barEv,_ZThn16_N9GG21113233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21113233fooEv,_ZTv0_n20_N9GG21113233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21113233fooEv,_ZThn8_N9GG21113233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2111323 = { "GG2111323", // class name
+ bases_GG2111323, 6,
+ &(vtc_GG2111323[0]), // expected_vtbl_contents
+ &(vtt_GG2111323[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2111323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2111323),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2111323),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names475,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2111333 : virtual EE211 , virtual FF133 {
+ int pg;
+ virtual void foo(); // _ZN9GG21113333fooEv
+ virtual void bar(); // _ZN9GG21113333barEv
+ ~GG2111333(); // tgen
+ GG2111333(); // tgen
+};
+//SIG(1 GG2111333) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2111333 ::foo(){vfunc_called(this, "_ZN9GG21113333fooEv");}
+void GG2111333 ::bar(){vfunc_called(this, "_ZN9GG21113333barEv");}
+GG2111333 ::~GG2111333(){ note_dtor("GG2111333", this);} // tgen
+GG2111333 ::GG2111333(){ note_ctor("GG2111333", this);} // tgen
+
+static void Test_GG2111333()
+{
+ extern Class_Descriptor cd_GG2111333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2111333, buf);
+ GG2111333 *dp, &lv = *(dp=new (buf) GG2111333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2111333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2111333)");
+ check_base_class_offset(lv, (AA2*)(EE211*), ABISELECT(32,16), "GG2111333");
+ check_base_class_offset(lv, (BB1*)(EE211*), ABISELECT(48,24), "GG2111333");
+ check_base_class_offset(lv, (EE211*), ABISELECT(16,8), "GG2111333");
+ check_base_class_offset(lv, (AA1*)(FF133*), ABISELECT(80,40), "GG2111333");
+ check_base_class_offset(lv, (BB3*)(FF133*), ABISELECT(96,48), "GG2111333");
+ check_base_class_offset(lv, (FF133*), ABISELECT(64,32), "GG2111333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2111333.pg");
+ test_class_info(&lv, &cd_GG2111333);
+ dp->~GG2111333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2111333(Test_GG2111333, "GG2111333", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2111333C1Ev();
+extern void _ZN9GG2111333D1Ev();
+Name_Map name_map_GG2111333[] = {
+ NSPAIR(_ZN9GG2111333C1Ev),
+ NSPAIR(_ZN9GG2111333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE211;
+extern VTBL_ENTRY _ZTI5EE211[];
+extern VTBL_ENTRY _ZTV5EE211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE211[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF133;
+extern VTBL_ENTRY _ZTI5FF133[];
+extern VTBL_ENTRY _ZTV5FF133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF133[];
+static Base_Class bases_GG2111333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE211, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF133, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2111333[];
+extern void _ZN9GG21113333fooEv();
+extern void _ZN9GG21113333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21113333fooEv,_ZTv0_n20_N9GG21113333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21113333fooEv,_ZThn8_N9GG21113333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21113333barEv,_ZTv0_n12_N9GG21113333barEv)();
+extern void ABISELECT(_ZThn32_N9GG21113333barEv,_ZThn16_N9GG21113333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21113333fooEv,_ZTv0_n12_N9GG21113333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21113333fooEv,_ZThn24_N9GG21113333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21113333fooEv,_ZTv0_n20_N9GG21113333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21113333fooEv,_ZThn32_N9GG21113333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21113333barEv,_ZTv0_n24_N9GG21113333barEv)();
+extern void ABISELECT(_ZThn64_N9GG21113333barEv,_ZThn32_N9GG21113333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21113333fooEv,_ZTv0_n12_N9GG21113333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21113333fooEv,_ZThn40_N9GG21113333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21113333fooEv,_ZTv0_n12_N9GG21113333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG21113333fooEv,_ZThn48_N9GG21113333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21113333barEv,_ZTv0_n16_N9GG21113333barEv)();
+extern void ABISELECT(_ZThn96_N9GG21113333barEv,_ZThn48_N9GG21113333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2111333[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2111333[0]),
+ (VTBL_ENTRY)&_ZN9GG21113333fooEv,
+ (VTBL_ENTRY)&_ZN9GG21113333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2111333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21113333fooEv,_ZTv0_n20_N9GG21113333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2111333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21113333barEv,_ZTv0_n12_N9GG21113333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2111333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21113333fooEv,_ZTv0_n12_N9GG21113333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2111333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21113333fooEv,_ZTv0_n20_N9GG21113333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21113333barEv,_ZTv0_n24_N9GG21113333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2111333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21113333fooEv,_ZTv0_n12_N9GG21113333fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2111333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21113333fooEv,_ZTv0_n12_N9GG21113333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21113333barEv,_ZTv0_n16_N9GG21113333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2111333[];
+extern void _ZN5EE2113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE211__9GG2111333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN5EE2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE211__9GG2111333[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE211__9GG2111333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv),
+};
+extern void _ZN5FF1333fooEv();
+extern void _ZN5FF1333barEv();
+static VTBL_ENTRY _tg__ZTV5FF133__9GG2111333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&_ZN5FF1333fooEv,
+ (VTBL_ENTRY)&_ZN5FF1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF133__9GG2111333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1333fooEv,_ZThn16_N5FF1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv)();
+extern void ABISELECT(_ZThn32_N5FF1333barEv,_ZThn16_N5FF1333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF133__9GG2111333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv),
+};
+static VTT_ENTRY vtt_GG2111333[] = {
+ {&(_ZTV9GG2111333[8]), 8,42},
+ {&(_ZTV9GG2111333[15]), 15,42},
+ {&(_ZTV9GG2111333[19]), 19,42},
+ {&(_ZTV9GG2111333[23]), 23,42},
+ {&(_ZTV9GG2111333[30]), 30,42},
+ {&(_ZTV9GG2111333[35]), 35,42},
+ {&(_ZTV9GG2111333[40]), 40,42},
+ {&(_tg__ZTV5EE211__9GG2111333[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE211__9GG2111333[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE211__9GG2111333[3]), 3,4},
+ {&(_tg__ZTV5FF133__9GG2111333[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF133__9GG2111333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF133__9GG2111333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2111333[];
+extern VTBL_ENTRY _ZTV9GG2111333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2111333[];
+static VTBL_ENTRY alt_thunk_names476[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1333barEv,_ZThn16_N5FF1333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1333fooEv,_ZThn16_N5FF1333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG21113333barEv,_ZTv0_n16_N9GG21113333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21113333barEv,_ZThn48_N9GG21113333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG21113333barEv,_ZTv0_n24_N9GG21113333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21113333barEv,_ZThn32_N9GG21113333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21113333fooEv,_ZTv0_n12_N9GG21113333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21113333fooEv,_ZThn48_N9GG21113333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21113333fooEv,_ZThn40_N9GG21113333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21113333fooEv,_ZThn24_N9GG21113333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21113333barEv,_ZTv0_n12_N9GG21113333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21113333barEv,_ZThn16_N9GG21113333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21113333fooEv,_ZTv0_n20_N9GG21113333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21113333fooEv,_ZThn32_N9GG21113333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21113333fooEv,_ZThn8_N9GG21113333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2111333 = { "GG2111333", // class name
+ bases_GG2111333, 6,
+ &(vtc_GG2111333[0]), // expected_vtbl_contents
+ &(vtt_GG2111333[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2111333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2111333),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2111333),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names476,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2112113 : virtual EE211 , virtual FF211 {
+ int pg;
+ virtual void foo(); // _ZN9GG21121133fooEv
+ virtual void bar(); // _ZN9GG21121133barEv
+ ~GG2112113(); // tgen
+ GG2112113(); // tgen
+};
+//SIG(1 GG2112113) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC3 VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG2112113 ::foo(){vfunc_called(this, "_ZN9GG21121133fooEv");}
+void GG2112113 ::bar(){vfunc_called(this, "_ZN9GG21121133barEv");}
+GG2112113 ::~GG2112113(){ note_dtor("GG2112113", this);} // tgen
+GG2112113 ::GG2112113(){ note_ctor("GG2112113", this);} // tgen
+
+static void Test_GG2112113()
+{
+ extern Class_Descriptor cd_GG2112113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG2112113, buf);
+ GG2112113 *dp, &lv = *(dp=new (buf) GG2112113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG2112113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2112113)");
+ check_base_class_offset(lv, (AA2*)(EE211*), ABISELECT(32,16), "GG2112113");
+ check_base_class_offset(lv, (AA2*)(FF211*), ABISELECT(32,16), "GG2112113");
+ check_base_class_offset(lv, (BB1*)(EE211*), ABISELECT(48,24), "GG2112113");
+ check_base_class_offset(lv, (BB1*)(FF211*), ABISELECT(48,24), "GG2112113");
+ check_base_class_offset(lv, (EE211*), ABISELECT(16,8), "GG2112113");
+ check_base_class_offset(lv, (FF211*), ABISELECT(64,32), "GG2112113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2112113.pg");
+ test_class_info(&lv, &cd_GG2112113);
+ dp->~GG2112113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2112113(Test_GG2112113, "GG2112113", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG2112113C1Ev();
+extern void _ZN9GG2112113D1Ev();
+Name_Map name_map_GG2112113[] = {
+ NSPAIR(_ZN9GG2112113C1Ev),
+ NSPAIR(_ZN9GG2112113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE211;
+extern VTBL_ENTRY _ZTI5EE211[];
+extern VTBL_ENTRY _ZTV5EE211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE211[];
+extern Class_Descriptor cd_FF211;
+extern VTBL_ENTRY _ZTI5FF211[];
+extern VTBL_ENTRY _ZTV5FF211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF211[];
+static Base_Class bases_GG2112113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE211, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF211, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2112113[];
+extern void _ZN9GG21121133fooEv();
+extern void _ZN9GG21121133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21121133fooEv,_ZTv0_n20_N9GG21121133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21121133fooEv,_ZThn8_N9GG21121133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21121133barEv,_ZTv0_n12_N9GG21121133barEv)();
+extern void ABISELECT(_ZThn32_N9GG21121133barEv,_ZThn16_N9GG21121133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21121133fooEv,_ZTv0_n12_N9GG21121133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21121133fooEv,_ZThn24_N9GG21121133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21121133fooEv,_ZTv0_n20_N9GG21121133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21121133fooEv,_ZThn32_N9GG21121133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2112113[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2112113[0]),
+ (VTBL_ENTRY)&_ZN9GG21121133fooEv,
+ (VTBL_ENTRY)&_ZN9GG21121133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2112113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21121133fooEv,_ZTv0_n20_N9GG21121133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2112113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21121133barEv,_ZTv0_n12_N9GG21121133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2112113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21121133fooEv,_ZTv0_n12_N9GG21121133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2112113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21121133fooEv,_ZTv0_n20_N9GG21121133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2112113[];
+extern void _ZN5EE2113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE211__9GG2112113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN5EE2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE211__9GG2112113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE211__9GG2112113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv),
+};
+extern void _ZN5FF2113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF211__9GG2112113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN5FF2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF211__9GG2112113[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF211__9GG2112113[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv),
+};
+static VTT_ENTRY vtt_GG2112113[] = {
+ {&(_ZTV9GG2112113[6]), 6,28},
+ {&(_ZTV9GG2112113[13]), 13,28},
+ {&(_ZTV9GG2112113[17]), 17,28},
+ {&(_ZTV9GG2112113[21]), 21,28},
+ {&(_ZTV9GG2112113[27]), 27,28},
+ {&(_tg__ZTV5EE211__9GG2112113[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE211__9GG2112113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE211__9GG2112113[3]), 3,4},
+ {&(_tg__ZTV5FF211__9GG2112113[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF211__9GG2112113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF211__9GG2112113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2112113[];
+extern VTBL_ENTRY _ZTV9GG2112113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2112113[];
+static VTBL_ENTRY alt_thunk_names477[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21121133fooEv,_ZTv0_n12_N9GG21121133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21121133fooEv,_ZThn24_N9GG21121133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21121133barEv,_ZTv0_n12_N9GG21121133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21121133barEv,_ZThn16_N9GG21121133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21121133fooEv,_ZTv0_n20_N9GG21121133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21121133fooEv,_ZThn32_N9GG21121133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21121133fooEv,_ZThn8_N9GG21121133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2112113 = { "GG2112113", // class name
+ bases_GG2112113, 4,
+ &(vtc_GG2112113[0]), // expected_vtbl_contents
+ &(vtt_GG2112113[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG2112113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2112113),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2112113),11, //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 GG2112123 : virtual EE211 , virtual FF212 {
+ int pg;
+ virtual void foo(); // _ZN9GG21121233fooEv
+ virtual void bar(); // _ZN9GG21121233barEv
+ ~GG2112123(); // tgen
+ GG2112123(); // tgen
+};
+//SIG(1 GG2112123) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC3 VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG2112123 ::foo(){vfunc_called(this, "_ZN9GG21121233fooEv");}
+void GG2112123 ::bar(){vfunc_called(this, "_ZN9GG21121233barEv");}
+GG2112123 ::~GG2112123(){ note_dtor("GG2112123", this);} // tgen
+GG2112123 ::GG2112123(){ note_ctor("GG2112123", this);} // tgen
+
+static void Test_GG2112123()
+{
+ extern Class_Descriptor cd_GG2112123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG2112123, buf);
+ GG2112123 *dp, &lv = *(dp=new (buf) GG2112123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG2112123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2112123)");
+ check_base_class_offset(lv, (AA2*)(EE211*), ABISELECT(32,16), "GG2112123");
+ check_base_class_offset(lv, (AA2*)(FF212*), ABISELECT(32,16), "GG2112123");
+ check_base_class_offset(lv, (BB1*)(EE211*), ABISELECT(48,24), "GG2112123");
+ check_base_class_offset(lv, (BB1*)(FF212*), ABISELECT(48,24), "GG2112123");
+ check_base_class_offset(lv, (EE211*), ABISELECT(16,8), "GG2112123");
+ check_base_class_offset(lv, (FF212*), ABISELECT(64,32), "GG2112123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2112123.pg");
+ test_class_info(&lv, &cd_GG2112123);
+ dp->~GG2112123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2112123(Test_GG2112123, "GG2112123", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG2112123C1Ev();
+extern void _ZN9GG2112123D1Ev();
+Name_Map name_map_GG2112123[] = {
+ NSPAIR(_ZN9GG2112123C1Ev),
+ NSPAIR(_ZN9GG2112123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE211;
+extern VTBL_ENTRY _ZTI5EE211[];
+extern VTBL_ENTRY _ZTV5EE211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE211[];
+extern Class_Descriptor cd_FF212;
+extern VTBL_ENTRY _ZTI5FF212[];
+extern VTBL_ENTRY _ZTV5FF212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF212[];
+static Base_Class bases_GG2112123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE211, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF212, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2112123[];
+extern void _ZN9GG21121233fooEv();
+extern void _ZN9GG21121233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21121233fooEv,_ZTv0_n20_N9GG21121233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21121233fooEv,_ZThn8_N9GG21121233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21121233barEv,_ZTv0_n12_N9GG21121233barEv)();
+extern void ABISELECT(_ZThn32_N9GG21121233barEv,_ZThn16_N9GG21121233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21121233fooEv,_ZTv0_n12_N9GG21121233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21121233fooEv,_ZThn24_N9GG21121233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21121233barEv,_ZTv0_n20_N9GG21121233barEv)();
+extern void ABISELECT(_ZThn64_N9GG21121233barEv,_ZThn32_N9GG21121233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2112123[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2112123[0]),
+ (VTBL_ENTRY)&_ZN9GG21121233fooEv,
+ (VTBL_ENTRY)&_ZN9GG21121233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2112123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21121233fooEv,_ZTv0_n20_N9GG21121233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2112123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21121233barEv,_ZTv0_n12_N9GG21121233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2112123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21121233fooEv,_ZTv0_n12_N9GG21121233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2112123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21121233barEv,_ZTv0_n20_N9GG21121233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2112123[];
+extern void _ZN5EE2113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE211__9GG2112123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN5EE2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE211__9GG2112123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE211__9GG2112123[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv),
+};
+extern void _ZN5FF2123barEv();
+static VTBL_ENTRY _tg__ZTV5FF212__9GG2112123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN5FF2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF212__9GG2112123[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF212__9GG2112123[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG2112123[] = {
+ {&(_ZTV9GG2112123[6]), 6,28},
+ {&(_ZTV9GG2112123[13]), 13,28},
+ {&(_ZTV9GG2112123[17]), 17,28},
+ {&(_ZTV9GG2112123[21]), 21,28},
+ {&(_ZTV9GG2112123[27]), 27,28},
+ {&(_tg__ZTV5EE211__9GG2112123[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE211__9GG2112123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE211__9GG2112123[3]), 3,4},
+ {&(_tg__ZTV5FF212__9GG2112123[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF212__9GG2112123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF212__9GG2112123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2112123[];
+extern VTBL_ENTRY _ZTV9GG2112123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2112123[];
+static VTBL_ENTRY alt_thunk_names478[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21121233barEv,_ZTv0_n20_N9GG21121233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21121233barEv,_ZThn32_N9GG21121233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21121233fooEv,_ZTv0_n12_N9GG21121233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21121233fooEv,_ZThn24_N9GG21121233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21121233barEv,_ZTv0_n12_N9GG21121233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21121233barEv,_ZThn16_N9GG21121233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21121233fooEv,_ZTv0_n20_N9GG21121233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21121233fooEv,_ZThn8_N9GG21121233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2112123 = { "GG2112123", // class name
+ bases_GG2112123, 4,
+ &(vtc_GG2112123[0]), // expected_vtbl_contents
+ &(vtt_GG2112123[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG2112123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2112123),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2112123),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names478,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2112133 : virtual EE211 , virtual FF213 {
+ int pg;
+ virtual void foo(); // _ZN9GG21121333fooEv
+ virtual void bar(); // _ZN9GG21121333barEv
+ ~GG2112133(); // tgen
+ GG2112133(); // tgen
+};
+//SIG(1 GG2112133) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC3 VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2112133 ::foo(){vfunc_called(this, "_ZN9GG21121333fooEv");}
+void GG2112133 ::bar(){vfunc_called(this, "_ZN9GG21121333barEv");}
+GG2112133 ::~GG2112133(){ note_dtor("GG2112133", this);} // tgen
+GG2112133 ::GG2112133(){ note_ctor("GG2112133", this);} // tgen
+
+static void Test_GG2112133()
+{
+ extern Class_Descriptor cd_GG2112133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG2112133, buf);
+ GG2112133 *dp, &lv = *(dp=new (buf) GG2112133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG2112133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2112133)");
+ check_base_class_offset(lv, (AA2*)(EE211*), ABISELECT(32,16), "GG2112133");
+ check_base_class_offset(lv, (AA2*)(FF213*), ABISELECT(32,16), "GG2112133");
+ check_base_class_offset(lv, (BB1*)(EE211*), ABISELECT(48,24), "GG2112133");
+ check_base_class_offset(lv, (BB1*)(FF213*), ABISELECT(48,24), "GG2112133");
+ check_base_class_offset(lv, (EE211*), ABISELECT(16,8), "GG2112133");
+ check_base_class_offset(lv, (FF213*), ABISELECT(64,32), "GG2112133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2112133.pg");
+ test_class_info(&lv, &cd_GG2112133);
+ dp->~GG2112133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2112133(Test_GG2112133, "GG2112133", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG2112133C1Ev();
+extern void _ZN9GG2112133D1Ev();
+Name_Map name_map_GG2112133[] = {
+ NSPAIR(_ZN9GG2112133C1Ev),
+ NSPAIR(_ZN9GG2112133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE211;
+extern VTBL_ENTRY _ZTI5EE211[];
+extern VTBL_ENTRY _ZTV5EE211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE211[];
+extern Class_Descriptor cd_FF213;
+extern VTBL_ENTRY _ZTI5FF213[];
+extern VTBL_ENTRY _ZTV5FF213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF213[];
+static Base_Class bases_GG2112133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE211, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF213, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2112133[];
+extern void _ZN9GG21121333fooEv();
+extern void _ZN9GG21121333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21121333fooEv,_ZTv0_n20_N9GG21121333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21121333fooEv,_ZThn8_N9GG21121333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21121333barEv,_ZTv0_n12_N9GG21121333barEv)();
+extern void ABISELECT(_ZThn32_N9GG21121333barEv,_ZThn16_N9GG21121333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21121333fooEv,_ZTv0_n12_N9GG21121333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21121333fooEv,_ZThn24_N9GG21121333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21121333fooEv,_ZTv0_n20_N9GG21121333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21121333fooEv,_ZThn32_N9GG21121333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21121333barEv,_ZTv0_n24_N9GG21121333barEv)();
+extern void ABISELECT(_ZThn64_N9GG21121333barEv,_ZThn32_N9GG21121333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2112133[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2112133[0]),
+ (VTBL_ENTRY)&_ZN9GG21121333fooEv,
+ (VTBL_ENTRY)&_ZN9GG21121333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2112133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21121333fooEv,_ZTv0_n20_N9GG21121333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2112133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21121333barEv,_ZTv0_n12_N9GG21121333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2112133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21121333fooEv,_ZTv0_n12_N9GG21121333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2112133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21121333fooEv,_ZTv0_n20_N9GG21121333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21121333barEv,_ZTv0_n24_N9GG21121333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2112133[];
+extern void _ZN5EE2113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE211__9GG2112133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN5EE2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE211__9GG2112133[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE211__9GG2112133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv),
+};
+extern void _ZN5FF2133fooEv();
+extern void _ZN5FF2133barEv();
+static VTBL_ENTRY _tg__ZTV5FF213__9GG2112133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&_ZN5FF2133fooEv,
+ (VTBL_ENTRY)&_ZN5FF2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF213__9GG2112133[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF213__9GG2112133[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv),
+};
+static VTT_ENTRY vtt_GG2112133[] = {
+ {&(_ZTV9GG2112133[6]), 6,30},
+ {&(_ZTV9GG2112133[13]), 13,30},
+ {&(_ZTV9GG2112133[17]), 17,30},
+ {&(_ZTV9GG2112133[21]), 21,30},
+ {&(_ZTV9GG2112133[28]), 28,30},
+ {&(_tg__ZTV5EE211__9GG2112133[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE211__9GG2112133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE211__9GG2112133[3]), 3,4},
+ {&(_tg__ZTV5FF213__9GG2112133[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF213__9GG2112133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF213__9GG2112133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2112133[];
+extern VTBL_ENTRY _ZTV9GG2112133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2112133[];
+static VTBL_ENTRY alt_thunk_names479[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG21121333barEv,_ZTv0_n24_N9GG21121333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21121333barEv,_ZThn32_N9GG21121333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21121333fooEv,_ZTv0_n12_N9GG21121333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21121333fooEv,_ZThn24_N9GG21121333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21121333barEv,_ZTv0_n12_N9GG21121333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21121333barEv,_ZThn16_N9GG21121333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21121333fooEv,_ZTv0_n20_N9GG21121333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21121333fooEv,_ZThn32_N9GG21121333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21121333fooEv,_ZThn8_N9GG21121333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2112133 = { "GG2112133", // class name
+ bases_GG2112133, 4,
+ &(vtc_GG2112133[0]), // expected_vtbl_contents
+ &(vtt_GG2112133[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG2112133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2112133),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2112133),11, //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 GG2112213 : virtual EE211 , virtual FF221 {
+ int pg;
+ virtual void foo(); // _ZN9GG21122133fooEv
+ virtual void bar(); // _ZN9GG21122133barEv
+ ~GG2112213(); // tgen
+ GG2112213(); // tgen
+};
+//SIG(1 GG2112213) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2112213 ::foo(){vfunc_called(this, "_ZN9GG21122133fooEv");}
+void GG2112213 ::bar(){vfunc_called(this, "_ZN9GG21122133barEv");}
+GG2112213 ::~GG2112213(){ note_dtor("GG2112213", this);} // tgen
+GG2112213 ::GG2112213(){ note_ctor("GG2112213", this);} // tgen
+
+static void Test_GG2112213()
+{
+ extern Class_Descriptor cd_GG2112213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2112213, buf);
+ GG2112213 *dp, &lv = *(dp=new (buf) GG2112213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2112213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2112213)");
+ check_base_class_offset(lv, (AA2*)(EE211*), ABISELECT(32,16), "GG2112213");
+ check_base_class_offset(lv, (AA2*)(FF221*), ABISELECT(32,16), "GG2112213");
+ check_base_class_offset(lv, (BB1*)(EE211*), ABISELECT(48,24), "GG2112213");
+ check_base_class_offset(lv, (EE211*), ABISELECT(16,8), "GG2112213");
+ check_base_class_offset(lv, (BB2*)(FF221*), ABISELECT(80,40), "GG2112213");
+ check_base_class_offset(lv, (FF221*), ABISELECT(64,32), "GG2112213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2112213.pg");
+ test_class_info(&lv, &cd_GG2112213);
+ dp->~GG2112213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2112213(Test_GG2112213, "GG2112213", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2112213C1Ev();
+extern void _ZN9GG2112213D1Ev();
+Name_Map name_map_GG2112213[] = {
+ NSPAIR(_ZN9GG2112213C1Ev),
+ NSPAIR(_ZN9GG2112213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE211;
+extern VTBL_ENTRY _ZTI5EE211[];
+extern VTBL_ENTRY _ZTV5EE211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE211[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF221;
+extern VTBL_ENTRY _ZTI5FF221[];
+extern VTBL_ENTRY _ZTV5FF221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF221[];
+static Base_Class bases_GG2112213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE211, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF221, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2112213[];
+extern void _ZN9GG21122133fooEv();
+extern void _ZN9GG21122133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21122133fooEv,_ZTv0_n20_N9GG21122133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21122133fooEv,_ZThn8_N9GG21122133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21122133barEv,_ZTv0_n12_N9GG21122133barEv)();
+extern void ABISELECT(_ZThn32_N9GG21122133barEv,_ZThn16_N9GG21122133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21122133fooEv,_ZTv0_n12_N9GG21122133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21122133fooEv,_ZThn24_N9GG21122133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21122133fooEv,_ZTv0_n20_N9GG21122133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21122133fooEv,_ZThn32_N9GG21122133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21122133barEv,_ZTv0_n12_N9GG21122133barEv)();
+extern void ABISELECT(_ZThn80_N9GG21122133barEv,_ZThn40_N9GG21122133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2112213[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2112213[0]),
+ (VTBL_ENTRY)&_ZN9GG21122133fooEv,
+ (VTBL_ENTRY)&_ZN9GG21122133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2112213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21122133fooEv,_ZTv0_n20_N9GG21122133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2112213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21122133barEv,_ZTv0_n12_N9GG21122133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2112213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21122133fooEv,_ZTv0_n12_N9GG21122133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2112213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21122133fooEv,_ZTv0_n20_N9GG21122133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2112213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21122133barEv,_ZTv0_n12_N9GG21122133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2112213[];
+extern void _ZN5EE2113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE211__9GG2112213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN5EE2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE211__9GG2112213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE211__9GG2112213[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv),
+};
+extern void _ZN5FF2213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF221__9GG2112213[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN5FF2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF221__9GG2112213[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF221__9GG2112213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG2112213[] = {
+ {&(_ZTV9GG2112213[7]), 7,33},
+ {&(_ZTV9GG2112213[14]), 14,33},
+ {&(_ZTV9GG2112213[18]), 18,33},
+ {&(_ZTV9GG2112213[22]), 22,33},
+ {&(_ZTV9GG2112213[28]), 28,33},
+ {&(_ZTV9GG2112213[32]), 32,33},
+ {&(_tg__ZTV5EE211__9GG2112213[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE211__9GG2112213[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE211__9GG2112213[3]), 3,4},
+ {&(_tg__ZTV5FF221__9GG2112213[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF221__9GG2112213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF221__9GG2112213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2112213[];
+extern VTBL_ENTRY _ZTV9GG2112213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2112213[];
+static VTBL_ENTRY alt_thunk_names480[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21122133fooEv,_ZTv0_n12_N9GG21122133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21122133fooEv,_ZThn24_N9GG21122133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21122133barEv,_ZTv0_n12_N9GG21122133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21122133barEv,_ZThn40_N9GG21122133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21122133barEv,_ZThn16_N9GG21122133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21122133fooEv,_ZTv0_n20_N9GG21122133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21122133fooEv,_ZThn32_N9GG21122133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21122133fooEv,_ZThn8_N9GG21122133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2112213 = { "GG2112213", // class name
+ bases_GG2112213, 5,
+ &(vtc_GG2112213[0]), // expected_vtbl_contents
+ &(vtt_GG2112213[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2112213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2112213),33, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2112213),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names480,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2112222 : virtual EE211 , virtual FF222 {
+ int pg;
+ virtual void bar(); // _ZN9GG21122223barEv
+ ~GG2112222(); // tgen
+ GG2112222(); // tgen
+};
+//SIG(1 GG2112222) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v1 Fi} v1 Fi}
+
+
+void GG2112222 ::bar(){vfunc_called(this, "_ZN9GG21122223barEv");}
+GG2112222 ::~GG2112222(){ note_dtor("GG2112222", this);} // tgen
+GG2112222 ::GG2112222(){ note_ctor("GG2112222", this);} // tgen
+
+static void Test_GG2112222()
+{
+ extern Class_Descriptor cd_GG2112222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2112222, buf);
+ GG2112222 *dp, &lv = *(dp=new (buf) GG2112222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2112222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2112222)");
+ check_base_class_offset(lv, (AA2*)(EE211*), ABISELECT(32,16), "GG2112222");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(32,16), "GG2112222");
+ check_base_class_offset(lv, (BB1*)(EE211*), ABISELECT(48,24), "GG2112222");
+ check_base_class_offset(lv, (EE211*), ABISELECT(16,8), "GG2112222");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(80,40), "GG2112222");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG2112222");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2112222.pg");
+ test_class_info(&lv, &cd_GG2112222);
+ dp->~GG2112222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2112222(Test_GG2112222, "GG2112222", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2112222C1Ev();
+extern void _ZN9GG2112222D1Ev();
+Name_Map name_map_GG2112222[] = {
+ NSPAIR(_ZN9GG2112222C1Ev),
+ NSPAIR(_ZN9GG2112222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE211;
+extern VTBL_ENTRY _ZTI5EE211[];
+extern VTBL_ENTRY _ZTV5EE211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE211[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG2112222[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE211, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2112222[];
+extern void _ZN9GG21122223barEv();
+extern void _ZN5EE2113fooEv();
+extern void ABISELECT(_ZTv0_n24_N9GG21122223barEv,_ZTv0_n12_N9GG21122223barEv)();
+extern void ABISELECT(_ZThn32_N9GG21122223barEv,_ZThn16_N9GG21122223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21122223barEv,_ZTv0_n20_N9GG21122223barEv)();
+extern void ABISELECT(_ZThn64_N9GG21122223barEv,_ZThn32_N9GG21122223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21122223barEv,_ZTv0_n12_N9GG21122223barEv)();
+extern void ABISELECT(_ZThn80_N9GG21122223barEv,_ZThn40_N9GG21122223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2112222[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2112222[0]),
+ (VTBL_ENTRY)&_ZN9GG21122223barEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2112222[0]),
+ (VTBL_ENTRY)&_ZN5EE2113fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2112222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21122223barEv,_ZTv0_n12_N9GG21122223barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2112222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2112222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21122223barEv,_ZTv0_n20_N9GG21122223barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2112222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21122223barEv,_ZTv0_n12_N9GG21122223barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2112222[];
+extern void _ZN5EE2113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE211__9GG2112222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN5EE2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE211__9GG2112222[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE211__9GG2112222[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv),
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG2112222[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG2112222[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG2112222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG2112222[] = {
+ {&(_ZTV9GG2112222[7]), 7,32},
+ {&(_ZTV9GG2112222[13]), 13,32},
+ {&(_ZTV9GG2112222[17]), 17,32},
+ {&(_ZTV9GG2112222[21]), 21,32},
+ {&(_ZTV9GG2112222[27]), 27,32},
+ {&(_ZTV9GG2112222[31]), 31,32},
+ {&(_tg__ZTV5EE211__9GG2112222[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE211__9GG2112222[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE211__9GG2112222[3]), 3,4},
+ {&(_tg__ZTV5FF222__9GG2112222[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG2112222[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG2112222[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2112222[];
+extern VTBL_ENTRY _ZTV9GG2112222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2112222[];
+static VTBL_ENTRY alt_thunk_names481[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21122223barEv,_ZTv0_n20_N9GG21122223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21122223barEv,_ZThn32_N9GG21122223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21122223barEv,_ZTv0_n12_N9GG21122223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21122223barEv,_ZThn40_N9GG21122223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21122223barEv,_ZThn16_N9GG21122223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2112222 = { "GG2112222", // class name
+ bases_GG2112222, 5,
+ &(vtc_GG2112222[0]), // expected_vtbl_contents
+ &(vtt_GG2112222[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2112222),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2112222),32, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2112222),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names481,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2112223 : virtual EE211 , virtual FF222 {
+ int pg;
+ virtual void foo(); // _ZN9GG21122233fooEv
+ virtual void bar(); // _ZN9GG21122233barEv
+ ~GG2112223(); // tgen
+ GG2112223(); // tgen
+};
+//SIG(1 GG2112223) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2112223 ::foo(){vfunc_called(this, "_ZN9GG21122233fooEv");}
+void GG2112223 ::bar(){vfunc_called(this, "_ZN9GG21122233barEv");}
+GG2112223 ::~GG2112223(){ note_dtor("GG2112223", this);} // tgen
+GG2112223 ::GG2112223(){ note_ctor("GG2112223", this);} // tgen
+
+static void Test_GG2112223()
+{
+ extern Class_Descriptor cd_GG2112223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2112223, buf);
+ GG2112223 *dp, &lv = *(dp=new (buf) GG2112223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2112223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2112223)");
+ check_base_class_offset(lv, (AA2*)(EE211*), ABISELECT(32,16), "GG2112223");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(32,16), "GG2112223");
+ check_base_class_offset(lv, (BB1*)(EE211*), ABISELECT(48,24), "GG2112223");
+ check_base_class_offset(lv, (EE211*), ABISELECT(16,8), "GG2112223");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(80,40), "GG2112223");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG2112223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2112223.pg");
+ test_class_info(&lv, &cd_GG2112223);
+ dp->~GG2112223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2112223(Test_GG2112223, "GG2112223", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2112223C1Ev();
+extern void _ZN9GG2112223D1Ev();
+Name_Map name_map_GG2112223[] = {
+ NSPAIR(_ZN9GG2112223C1Ev),
+ NSPAIR(_ZN9GG2112223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE211;
+extern VTBL_ENTRY _ZTI5EE211[];
+extern VTBL_ENTRY _ZTV5EE211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE211[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG2112223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE211, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2112223[];
+extern void _ZN9GG21122233fooEv();
+extern void _ZN9GG21122233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21122233fooEv,_ZTv0_n20_N9GG21122233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21122233fooEv,_ZThn8_N9GG21122233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21122233barEv,_ZTv0_n12_N9GG21122233barEv)();
+extern void ABISELECT(_ZThn32_N9GG21122233barEv,_ZThn16_N9GG21122233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21122233fooEv,_ZTv0_n12_N9GG21122233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21122233fooEv,_ZThn24_N9GG21122233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21122233barEv,_ZTv0_n20_N9GG21122233barEv)();
+extern void ABISELECT(_ZThn64_N9GG21122233barEv,_ZThn32_N9GG21122233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21122233barEv,_ZTv0_n12_N9GG21122233barEv)();
+extern void ABISELECT(_ZThn80_N9GG21122233barEv,_ZThn40_N9GG21122233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2112223[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2112223[0]),
+ (VTBL_ENTRY)&_ZN9GG21122233fooEv,
+ (VTBL_ENTRY)&_ZN9GG21122233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2112223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21122233fooEv,_ZTv0_n20_N9GG21122233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2112223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21122233barEv,_ZTv0_n12_N9GG21122233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2112223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21122233fooEv,_ZTv0_n12_N9GG21122233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2112223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21122233barEv,_ZTv0_n20_N9GG21122233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2112223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21122233barEv,_ZTv0_n12_N9GG21122233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2112223[];
+extern void _ZN5EE2113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE211__9GG2112223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN5EE2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE211__9GG2112223[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE211__9GG2112223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv),
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG2112223[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG2112223[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG2112223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG2112223[] = {
+ {&(_ZTV9GG2112223[7]), 7,33},
+ {&(_ZTV9GG2112223[14]), 14,33},
+ {&(_ZTV9GG2112223[18]), 18,33},
+ {&(_ZTV9GG2112223[22]), 22,33},
+ {&(_ZTV9GG2112223[28]), 28,33},
+ {&(_ZTV9GG2112223[32]), 32,33},
+ {&(_tg__ZTV5EE211__9GG2112223[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE211__9GG2112223[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE211__9GG2112223[3]), 3,4},
+ {&(_tg__ZTV5FF222__9GG2112223[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG2112223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG2112223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2112223[];
+extern VTBL_ENTRY _ZTV9GG2112223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2112223[];
+static VTBL_ENTRY alt_thunk_names482[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21122233barEv,_ZTv0_n20_N9GG21122233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21122233barEv,_ZThn32_N9GG21122233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21122233fooEv,_ZTv0_n12_N9GG21122233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21122233fooEv,_ZThn24_N9GG21122233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21122233barEv,_ZTv0_n12_N9GG21122233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21122233barEv,_ZThn40_N9GG21122233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21122233barEv,_ZThn16_N9GG21122233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21122233fooEv,_ZTv0_n20_N9GG21122233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21122233fooEv,_ZThn8_N9GG21122233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2112223 = { "GG2112223", // class name
+ bases_GG2112223, 5,
+ &(vtc_GG2112223[0]), // expected_vtbl_contents
+ &(vtt_GG2112223[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2112223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2112223),33, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2112223),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names482,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2112233 : virtual EE211 , virtual FF223 {
+ int pg;
+ virtual void foo(); // _ZN9GG21122333fooEv
+ virtual void bar(); // _ZN9GG21122333barEv
+ ~GG2112233(); // tgen
+ GG2112233(); // tgen
+};
+//SIG(1 GG2112233) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2112233 ::foo(){vfunc_called(this, "_ZN9GG21122333fooEv");}
+void GG2112233 ::bar(){vfunc_called(this, "_ZN9GG21122333barEv");}
+GG2112233 ::~GG2112233(){ note_dtor("GG2112233", this);} // tgen
+GG2112233 ::GG2112233(){ note_ctor("GG2112233", this);} // tgen
+
+static void Test_GG2112233()
+{
+ extern Class_Descriptor cd_GG2112233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2112233, buf);
+ GG2112233 *dp, &lv = *(dp=new (buf) GG2112233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2112233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2112233)");
+ check_base_class_offset(lv, (AA2*)(EE211*), ABISELECT(32,16), "GG2112233");
+ check_base_class_offset(lv, (AA2*)(FF223*), ABISELECT(32,16), "GG2112233");
+ check_base_class_offset(lv, (BB1*)(EE211*), ABISELECT(48,24), "GG2112233");
+ check_base_class_offset(lv, (EE211*), ABISELECT(16,8), "GG2112233");
+ check_base_class_offset(lv, (BB2*)(FF223*), ABISELECT(80,40), "GG2112233");
+ check_base_class_offset(lv, (FF223*), ABISELECT(64,32), "GG2112233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2112233.pg");
+ test_class_info(&lv, &cd_GG2112233);
+ dp->~GG2112233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2112233(Test_GG2112233, "GG2112233", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2112233C1Ev();
+extern void _ZN9GG2112233D1Ev();
+Name_Map name_map_GG2112233[] = {
+ NSPAIR(_ZN9GG2112233C1Ev),
+ NSPAIR(_ZN9GG2112233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE211;
+extern VTBL_ENTRY _ZTI5EE211[];
+extern VTBL_ENTRY _ZTV5EE211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE211[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF223;
+extern VTBL_ENTRY _ZTI5FF223[];
+extern VTBL_ENTRY _ZTV5FF223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF223[];
+static Base_Class bases_GG2112233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE211, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF223, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2112233[];
+extern void _ZN9GG21122333fooEv();
+extern void _ZN9GG21122333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21122333fooEv,_ZTv0_n20_N9GG21122333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21122333fooEv,_ZThn8_N9GG21122333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21122333barEv,_ZTv0_n12_N9GG21122333barEv)();
+extern void ABISELECT(_ZThn32_N9GG21122333barEv,_ZThn16_N9GG21122333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21122333fooEv,_ZTv0_n12_N9GG21122333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21122333fooEv,_ZThn24_N9GG21122333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21122333fooEv,_ZTv0_n20_N9GG21122333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21122333fooEv,_ZThn32_N9GG21122333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21122333barEv,_ZTv0_n24_N9GG21122333barEv)();
+extern void ABISELECT(_ZThn64_N9GG21122333barEv,_ZThn32_N9GG21122333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21122333barEv,_ZTv0_n12_N9GG21122333barEv)();
+extern void ABISELECT(_ZThn80_N9GG21122333barEv,_ZThn40_N9GG21122333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2112233[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2112233[0]),
+ (VTBL_ENTRY)&_ZN9GG21122333fooEv,
+ (VTBL_ENTRY)&_ZN9GG21122333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2112233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21122333fooEv,_ZTv0_n20_N9GG21122333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2112233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21122333barEv,_ZTv0_n12_N9GG21122333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2112233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21122333fooEv,_ZTv0_n12_N9GG21122333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2112233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21122333fooEv,_ZTv0_n20_N9GG21122333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21122333barEv,_ZTv0_n24_N9GG21122333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2112233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21122333barEv,_ZTv0_n12_N9GG21122333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2112233[];
+extern void _ZN5EE2113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE211__9GG2112233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN5EE2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE211__9GG2112233[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE211__9GG2112233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv),
+};
+extern void _ZN5FF2233fooEv();
+extern void _ZN5FF2233barEv();
+static VTBL_ENTRY _tg__ZTV5FF223__9GG2112233[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&_ZN5FF2233fooEv,
+ (VTBL_ENTRY)&_ZN5FF2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF223__9GG2112233[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+extern void ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF223__9GG2112233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+static VTT_ENTRY vtt_GG2112233[] = {
+ {&(_ZTV9GG2112233[7]), 7,35},
+ {&(_ZTV9GG2112233[14]), 14,35},
+ {&(_ZTV9GG2112233[18]), 18,35},
+ {&(_ZTV9GG2112233[22]), 22,35},
+ {&(_ZTV9GG2112233[29]), 29,35},
+ {&(_ZTV9GG2112233[34]), 34,35},
+ {&(_tg__ZTV5EE211__9GG2112233[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE211__9GG2112233[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE211__9GG2112233[3]), 3,4},
+ {&(_tg__ZTV5FF223__9GG2112233[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF223__9GG2112233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF223__9GG2112233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2112233[];
+extern VTBL_ENTRY _ZTV9GG2112233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2112233[];
+static VTBL_ENTRY alt_thunk_names483[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG21122333barEv,_ZTv0_n24_N9GG21122333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21122333barEv,_ZThn32_N9GG21122333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21122333fooEv,_ZTv0_n12_N9GG21122333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21122333fooEv,_ZThn24_N9GG21122333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21122333barEv,_ZTv0_n12_N9GG21122333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21122333barEv,_ZThn40_N9GG21122333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21122333barEv,_ZThn16_N9GG21122333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21122333fooEv,_ZTv0_n20_N9GG21122333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21122333fooEv,_ZThn32_N9GG21122333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21122333fooEv,_ZThn8_N9GG21122333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2112233 = { "GG2112233", // class name
+ bases_GG2112233, 5,
+ &(vtc_GG2112233[0]), // expected_vtbl_contents
+ &(vtt_GG2112233[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2112233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2112233),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2112233),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names483,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2112313 : virtual EE211 , virtual FF231 {
+ int pg;
+ virtual void foo(); // _ZN9GG21123133fooEv
+ virtual void bar(); // _ZN9GG21123133barEv
+ ~GG2112313(); // tgen
+ GG2112313(); // tgen
+};
+//SIG(1 GG2112313) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2112313 ::foo(){vfunc_called(this, "_ZN9GG21123133fooEv");}
+void GG2112313 ::bar(){vfunc_called(this, "_ZN9GG21123133barEv");}
+GG2112313 ::~GG2112313(){ note_dtor("GG2112313", this);} // tgen
+GG2112313 ::GG2112313(){ note_ctor("GG2112313", this);} // tgen
+
+static void Test_GG2112313()
+{
+ extern Class_Descriptor cd_GG2112313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2112313, buf);
+ GG2112313 *dp, &lv = *(dp=new (buf) GG2112313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2112313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2112313)");
+ check_base_class_offset(lv, (AA2*)(EE211*), ABISELECT(32,16), "GG2112313");
+ check_base_class_offset(lv, (AA2*)(FF231*), ABISELECT(32,16), "GG2112313");
+ check_base_class_offset(lv, (BB1*)(EE211*), ABISELECT(48,24), "GG2112313");
+ check_base_class_offset(lv, (EE211*), ABISELECT(16,8), "GG2112313");
+ check_base_class_offset(lv, (BB3*)(FF231*), ABISELECT(80,40), "GG2112313");
+ check_base_class_offset(lv, (FF231*), ABISELECT(64,32), "GG2112313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2112313.pg");
+ test_class_info(&lv, &cd_GG2112313);
+ dp->~GG2112313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2112313(Test_GG2112313, "GG2112313", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2112313C1Ev();
+extern void _ZN9GG2112313D1Ev();
+Name_Map name_map_GG2112313[] = {
+ NSPAIR(_ZN9GG2112313C1Ev),
+ NSPAIR(_ZN9GG2112313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE211;
+extern VTBL_ENTRY _ZTI5EE211[];
+extern VTBL_ENTRY _ZTV5EE211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE211[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF231;
+extern VTBL_ENTRY _ZTI5FF231[];
+extern VTBL_ENTRY _ZTV5FF231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF231[];
+static Base_Class bases_GG2112313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE211, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF231, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2112313[];
+extern void _ZN9GG21123133fooEv();
+extern void _ZN9GG21123133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21123133fooEv,_ZTv0_n20_N9GG21123133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21123133fooEv,_ZThn8_N9GG21123133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21123133barEv,_ZTv0_n12_N9GG21123133barEv)();
+extern void ABISELECT(_ZThn32_N9GG21123133barEv,_ZThn16_N9GG21123133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21123133fooEv,_ZTv0_n12_N9GG21123133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21123133fooEv,_ZThn24_N9GG21123133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21123133fooEv,_ZTv0_n20_N9GG21123133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21123133fooEv,_ZThn32_N9GG21123133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21123133fooEv,_ZTv0_n12_N9GG21123133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21123133fooEv,_ZThn40_N9GG21123133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21123133barEv,_ZTv0_n16_N9GG21123133barEv)();
+extern void ABISELECT(_ZThn80_N9GG21123133barEv,_ZThn40_N9GG21123133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2112313[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2112313[0]),
+ (VTBL_ENTRY)&_ZN9GG21123133fooEv,
+ (VTBL_ENTRY)&_ZN9GG21123133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2112313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21123133fooEv,_ZTv0_n20_N9GG21123133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2112313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21123133barEv,_ZTv0_n12_N9GG21123133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2112313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21123133fooEv,_ZTv0_n12_N9GG21123133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2112313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21123133fooEv,_ZTv0_n20_N9GG21123133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2112313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21123133fooEv,_ZTv0_n12_N9GG21123133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21123133barEv,_ZTv0_n16_N9GG21123133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2112313[];
+extern void _ZN5EE2113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE211__9GG2112313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN5EE2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE211__9GG2112313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE211__9GG2112313[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv),
+};
+extern void _ZN5FF2313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF231__9GG2112313[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN5FF2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF231__9GG2112313[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF2313fooEv,_ZThn8_N5FF2313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF231__9GG2112313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG2112313[] = {
+ {&(_ZTV9GG2112313[7]), 7,35},
+ {&(_ZTV9GG2112313[14]), 14,35},
+ {&(_ZTV9GG2112313[18]), 18,35},
+ {&(_ZTV9GG2112313[22]), 22,35},
+ {&(_ZTV9GG2112313[28]), 28,35},
+ {&(_ZTV9GG2112313[33]), 33,35},
+ {&(_tg__ZTV5EE211__9GG2112313[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE211__9GG2112313[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE211__9GG2112313[3]), 3,4},
+ {&(_tg__ZTV5FF231__9GG2112313[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF231__9GG2112313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF231__9GG2112313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2112313[];
+extern VTBL_ENTRY _ZTV9GG2112313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2112313[];
+static VTBL_ENTRY alt_thunk_names484[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2313fooEv,_ZThn8_N5FF2313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG21123133barEv,_ZTv0_n16_N9GG21123133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21123133barEv,_ZThn40_N9GG21123133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21123133fooEv,_ZTv0_n12_N9GG21123133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21123133fooEv,_ZThn40_N9GG21123133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21123133fooEv,_ZThn24_N9GG21123133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21123133barEv,_ZTv0_n12_N9GG21123133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21123133barEv,_ZThn16_N9GG21123133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21123133fooEv,_ZTv0_n20_N9GG21123133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21123133fooEv,_ZThn32_N9GG21123133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21123133fooEv,_ZThn8_N9GG21123133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2112313 = { "GG2112313", // class name
+ bases_GG2112313, 5,
+ &(vtc_GG2112313[0]), // expected_vtbl_contents
+ &(vtt_GG2112313[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2112313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2112313),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2112313),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names484,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2112323 : virtual EE211 , virtual FF232 {
+ int pg;
+ virtual void foo(); // _ZN9GG21123233fooEv
+ virtual void bar(); // _ZN9GG21123233barEv
+ ~GG2112323(); // tgen
+ GG2112323(); // tgen
+};
+//SIG(1 GG2112323) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2112323 ::foo(){vfunc_called(this, "_ZN9GG21123233fooEv");}
+void GG2112323 ::bar(){vfunc_called(this, "_ZN9GG21123233barEv");}
+GG2112323 ::~GG2112323(){ note_dtor("GG2112323", this);} // tgen
+GG2112323 ::GG2112323(){ note_ctor("GG2112323", this);} // tgen
+
+static void Test_GG2112323()
+{
+ extern Class_Descriptor cd_GG2112323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2112323, buf);
+ GG2112323 *dp, &lv = *(dp=new (buf) GG2112323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2112323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2112323)");
+ check_base_class_offset(lv, (AA2*)(EE211*), ABISELECT(32,16), "GG2112323");
+ check_base_class_offset(lv, (AA2*)(FF232*), ABISELECT(32,16), "GG2112323");
+ check_base_class_offset(lv, (BB1*)(EE211*), ABISELECT(48,24), "GG2112323");
+ check_base_class_offset(lv, (EE211*), ABISELECT(16,8), "GG2112323");
+ check_base_class_offset(lv, (BB3*)(FF232*), ABISELECT(80,40), "GG2112323");
+ check_base_class_offset(lv, (FF232*), ABISELECT(64,32), "GG2112323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2112323.pg");
+ test_class_info(&lv, &cd_GG2112323);
+ dp->~GG2112323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2112323(Test_GG2112323, "GG2112323", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2112323C1Ev();
+extern void _ZN9GG2112323D1Ev();
+Name_Map name_map_GG2112323[] = {
+ NSPAIR(_ZN9GG2112323C1Ev),
+ NSPAIR(_ZN9GG2112323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE211;
+extern VTBL_ENTRY _ZTI5EE211[];
+extern VTBL_ENTRY _ZTV5EE211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE211[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF232;
+extern VTBL_ENTRY _ZTI5FF232[];
+extern VTBL_ENTRY _ZTV5FF232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF232[];
+static Base_Class bases_GG2112323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE211, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF232, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2112323[];
+extern void _ZN9GG21123233fooEv();
+extern void _ZN9GG21123233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21123233fooEv,_ZTv0_n20_N9GG21123233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21123233fooEv,_ZThn8_N9GG21123233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21123233barEv,_ZTv0_n12_N9GG21123233barEv)();
+extern void ABISELECT(_ZThn32_N9GG21123233barEv,_ZThn16_N9GG21123233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21123233fooEv,_ZTv0_n12_N9GG21123233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21123233fooEv,_ZThn24_N9GG21123233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21123233barEv,_ZTv0_n20_N9GG21123233barEv)();
+extern void ABISELECT(_ZThn64_N9GG21123233barEv,_ZThn32_N9GG21123233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21123233fooEv,_ZTv0_n12_N9GG21123233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21123233fooEv,_ZThn40_N9GG21123233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21123233barEv,_ZTv0_n16_N9GG21123233barEv)();
+extern void ABISELECT(_ZThn80_N9GG21123233barEv,_ZThn40_N9GG21123233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2112323[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2112323[0]),
+ (VTBL_ENTRY)&_ZN9GG21123233fooEv,
+ (VTBL_ENTRY)&_ZN9GG21123233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2112323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21123233fooEv,_ZTv0_n20_N9GG21123233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2112323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21123233barEv,_ZTv0_n12_N9GG21123233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2112323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21123233fooEv,_ZTv0_n12_N9GG21123233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2112323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21123233barEv,_ZTv0_n20_N9GG21123233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2112323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21123233fooEv,_ZTv0_n12_N9GG21123233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21123233barEv,_ZTv0_n16_N9GG21123233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2112323[];
+extern void _ZN5EE2113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE211__9GG2112323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN5EE2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE211__9GG2112323[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE211__9GG2112323[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv),
+};
+extern void _ZN5FF2323barEv();
+static VTBL_ENTRY _tg__ZTV5FF232__9GG2112323[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN5FF2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF232__9GG2112323[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv)();
+extern void ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF232__9GG2112323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv),
+};
+static VTT_ENTRY vtt_GG2112323[] = {
+ {&(_ZTV9GG2112323[7]), 7,35},
+ {&(_ZTV9GG2112323[14]), 14,35},
+ {&(_ZTV9GG2112323[18]), 18,35},
+ {&(_ZTV9GG2112323[22]), 22,35},
+ {&(_ZTV9GG2112323[28]), 28,35},
+ {&(_ZTV9GG2112323[33]), 33,35},
+ {&(_tg__ZTV5EE211__9GG2112323[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE211__9GG2112323[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE211__9GG2112323[3]), 3,4},
+ {&(_tg__ZTV5FF232__9GG2112323[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF232__9GG2112323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF232__9GG2112323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2112323[];
+extern VTBL_ENTRY _ZTV9GG2112323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2112323[];
+static VTBL_ENTRY alt_thunk_names485[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG21123233barEv,_ZTv0_n16_N9GG21123233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21123233barEv,_ZThn40_N9GG21123233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21123233barEv,_ZTv0_n20_N9GG21123233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21123233barEv,_ZThn32_N9GG21123233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21123233fooEv,_ZTv0_n12_N9GG21123233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21123233fooEv,_ZThn40_N9GG21123233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21123233fooEv,_ZThn24_N9GG21123233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21123233barEv,_ZTv0_n12_N9GG21123233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21123233barEv,_ZThn16_N9GG21123233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21123233fooEv,_ZTv0_n20_N9GG21123233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21123233fooEv,_ZThn8_N9GG21123233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2112323 = { "GG2112323", // class name
+ bases_GG2112323, 5,
+ &(vtc_GG2112323[0]), // expected_vtbl_contents
+ &(vtt_GG2112323[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2112323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2112323),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2112323),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names485,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2112333 : virtual EE211 , virtual FF233 {
+ int pg;
+ virtual void foo(); // _ZN9GG21123333fooEv
+ virtual void bar(); // _ZN9GG21123333barEv
+ ~GG2112333(); // tgen
+ GG2112333(); // tgen
+};
+//SIG(1 GG2112333) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2112333 ::foo(){vfunc_called(this, "_ZN9GG21123333fooEv");}
+void GG2112333 ::bar(){vfunc_called(this, "_ZN9GG21123333barEv");}
+GG2112333 ::~GG2112333(){ note_dtor("GG2112333", this);} // tgen
+GG2112333 ::GG2112333(){ note_ctor("GG2112333", this);} // tgen
+
+static void Test_GG2112333()
+{
+ extern Class_Descriptor cd_GG2112333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2112333, buf);
+ GG2112333 *dp, &lv = *(dp=new (buf) GG2112333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2112333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2112333)");
+ check_base_class_offset(lv, (AA2*)(EE211*), ABISELECT(32,16), "GG2112333");
+ check_base_class_offset(lv, (AA2*)(FF233*), ABISELECT(32,16), "GG2112333");
+ check_base_class_offset(lv, (BB1*)(EE211*), ABISELECT(48,24), "GG2112333");
+ check_base_class_offset(lv, (EE211*), ABISELECT(16,8), "GG2112333");
+ check_base_class_offset(lv, (BB3*)(FF233*), ABISELECT(80,40), "GG2112333");
+ check_base_class_offset(lv, (FF233*), ABISELECT(64,32), "GG2112333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2112333.pg");
+ test_class_info(&lv, &cd_GG2112333);
+ dp->~GG2112333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2112333(Test_GG2112333, "GG2112333", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2112333C1Ev();
+extern void _ZN9GG2112333D1Ev();
+Name_Map name_map_GG2112333[] = {
+ NSPAIR(_ZN9GG2112333C1Ev),
+ NSPAIR(_ZN9GG2112333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE211;
+extern VTBL_ENTRY _ZTI5EE211[];
+extern VTBL_ENTRY _ZTV5EE211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE211[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF233;
+extern VTBL_ENTRY _ZTI5FF233[];
+extern VTBL_ENTRY _ZTV5FF233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF233[];
+static Base_Class bases_GG2112333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE211, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF233, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2112333[];
+extern void _ZN9GG21123333fooEv();
+extern void _ZN9GG21123333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21123333fooEv,_ZTv0_n20_N9GG21123333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21123333fooEv,_ZThn8_N9GG21123333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21123333barEv,_ZTv0_n12_N9GG21123333barEv)();
+extern void ABISELECT(_ZThn32_N9GG21123333barEv,_ZThn16_N9GG21123333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21123333fooEv,_ZTv0_n12_N9GG21123333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21123333fooEv,_ZThn24_N9GG21123333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21123333fooEv,_ZTv0_n20_N9GG21123333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21123333fooEv,_ZThn32_N9GG21123333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21123333barEv,_ZTv0_n24_N9GG21123333barEv)();
+extern void ABISELECT(_ZThn64_N9GG21123333barEv,_ZThn32_N9GG21123333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21123333fooEv,_ZTv0_n12_N9GG21123333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21123333fooEv,_ZThn40_N9GG21123333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21123333barEv,_ZTv0_n16_N9GG21123333barEv)();
+extern void ABISELECT(_ZThn80_N9GG21123333barEv,_ZThn40_N9GG21123333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2112333[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2112333[0]),
+ (VTBL_ENTRY)&_ZN9GG21123333fooEv,
+ (VTBL_ENTRY)&_ZN9GG21123333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2112333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21123333fooEv,_ZTv0_n20_N9GG21123333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2112333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21123333barEv,_ZTv0_n12_N9GG21123333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2112333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21123333fooEv,_ZTv0_n12_N9GG21123333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2112333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21123333fooEv,_ZTv0_n20_N9GG21123333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21123333barEv,_ZTv0_n24_N9GG21123333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2112333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21123333fooEv,_ZTv0_n12_N9GG21123333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21123333barEv,_ZTv0_n16_N9GG21123333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2112333[];
+extern void _ZN5EE2113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE211__9GG2112333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN5EE2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE211__9GG2112333[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE211__9GG2112333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv),
+};
+extern void _ZN5FF2333fooEv();
+extern void _ZN5FF2333barEv();
+static VTBL_ENTRY _tg__ZTV5FF233__9GG2112333[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&_ZN5FF2333fooEv,
+ (VTBL_ENTRY)&_ZN5FF2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF233__9GG2112333[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF2333fooEv,_ZThn8_N5FF2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv)();
+extern void ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF233__9GG2112333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv),
+};
+static VTT_ENTRY vtt_GG2112333[] = {
+ {&(_ZTV9GG2112333[7]), 7,37},
+ {&(_ZTV9GG2112333[14]), 14,37},
+ {&(_ZTV9GG2112333[18]), 18,37},
+ {&(_ZTV9GG2112333[22]), 22,37},
+ {&(_ZTV9GG2112333[29]), 29,37},
+ {&(_ZTV9GG2112333[35]), 35,37},
+ {&(_tg__ZTV5EE211__9GG2112333[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE211__9GG2112333[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE211__9GG2112333[3]), 3,4},
+ {&(_tg__ZTV5FF233__9GG2112333[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF233__9GG2112333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF233__9GG2112333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2112333[];
+extern VTBL_ENTRY _ZTV9GG2112333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2112333[];
+static VTBL_ENTRY alt_thunk_names486[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2333fooEv,_ZThn8_N5FF2333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG21123333barEv,_ZTv0_n16_N9GG21123333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21123333barEv,_ZThn40_N9GG21123333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG21123333barEv,_ZTv0_n24_N9GG21123333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21123333barEv,_ZThn32_N9GG21123333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21123333fooEv,_ZTv0_n12_N9GG21123333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21123333fooEv,_ZThn40_N9GG21123333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21123333fooEv,_ZThn24_N9GG21123333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21123333barEv,_ZTv0_n12_N9GG21123333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21123333barEv,_ZThn16_N9GG21123333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21123333fooEv,_ZTv0_n20_N9GG21123333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21123333fooEv,_ZThn32_N9GG21123333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21123333fooEv,_ZThn8_N9GG21123333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2112333 = { "GG2112333", // class name
+ bases_GG2112333, 5,
+ &(vtc_GG2112333[0]), // expected_vtbl_contents
+ &(vtt_GG2112333[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2112333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2112333),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2112333),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names486,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2113113 : virtual EE211 , virtual FF311 {
+ int pg;
+ virtual void foo(); // _ZN9GG21131133fooEv
+ virtual void bar(); // _ZN9GG21131133barEv
+ ~GG2113113(); // tgen
+ GG2113113(); // tgen
+};
+//SIG(1 GG2113113) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG2113113 ::foo(){vfunc_called(this, "_ZN9GG21131133fooEv");}
+void GG2113113 ::bar(){vfunc_called(this, "_ZN9GG21131133barEv");}
+GG2113113 ::~GG2113113(){ note_dtor("GG2113113", this);} // tgen
+GG2113113 ::GG2113113(){ note_ctor("GG2113113", this);} // tgen
+
+static void Test_GG2113113()
+{
+ extern Class_Descriptor cd_GG2113113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2113113, buf);
+ GG2113113 *dp, &lv = *(dp=new (buf) GG2113113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2113113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2113113)");
+ check_base_class_offset(lv, (AA2*)(EE211*), ABISELECT(32,16), "GG2113113");
+ check_base_class_offset(lv, (BB1*)(EE211*), ABISELECT(48,24), "GG2113113");
+ check_base_class_offset(lv, (BB1*)(FF311*), ABISELECT(48,24), "GG2113113");
+ check_base_class_offset(lv, (EE211*), ABISELECT(16,8), "GG2113113");
+ check_base_class_offset(lv, (AA3*)(FF311*), ABISELECT(80,40), "GG2113113");
+ check_base_class_offset(lv, (FF311*), ABISELECT(64,32), "GG2113113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2113113.pg");
+ test_class_info(&lv, &cd_GG2113113);
+ dp->~GG2113113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2113113(Test_GG2113113, "GG2113113", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2113113C1Ev();
+extern void _ZN9GG2113113D1Ev();
+Name_Map name_map_GG2113113[] = {
+ NSPAIR(_ZN9GG2113113C1Ev),
+ NSPAIR(_ZN9GG2113113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE211;
+extern VTBL_ENTRY _ZTI5EE211[];
+extern VTBL_ENTRY _ZTV5EE211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE211[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF311;
+extern VTBL_ENTRY _ZTI5FF311[];
+extern VTBL_ENTRY _ZTV5FF311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF311[];
+static Base_Class bases_GG2113113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE211, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF311, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2113113[];
+extern void _ZN9GG21131133fooEv();
+extern void _ZN9GG21131133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21131133fooEv,_ZTv0_n20_N9GG21131133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21131133fooEv,_ZThn8_N9GG21131133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21131133barEv,_ZTv0_n12_N9GG21131133barEv)();
+extern void ABISELECT(_ZThn32_N9GG21131133barEv,_ZThn16_N9GG21131133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21131133fooEv,_ZTv0_n12_N9GG21131133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21131133fooEv,_ZThn24_N9GG21131133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21131133fooEv,_ZTv0_n20_N9GG21131133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21131133fooEv,_ZThn32_N9GG21131133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21131133fooEv,_ZTv0_n12_N9GG21131133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21131133fooEv,_ZThn40_N9GG21131133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21131133barEv,_ZTv0_n16_N9GG21131133barEv)();
+extern void ABISELECT(_ZThn80_N9GG21131133barEv,_ZThn40_N9GG21131133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2113113[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2113113[0]),
+ (VTBL_ENTRY)&_ZN9GG21131133fooEv,
+ (VTBL_ENTRY)&_ZN9GG21131133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2113113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21131133fooEv,_ZTv0_n20_N9GG21131133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2113113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21131133barEv,_ZTv0_n12_N9GG21131133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2113113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21131133fooEv,_ZTv0_n12_N9GG21131133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2113113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21131133fooEv,_ZTv0_n20_N9GG21131133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2113113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21131133fooEv,_ZTv0_n12_N9GG21131133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21131133barEv,_ZTv0_n16_N9GG21131133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2113113[];
+extern void _ZN5EE2113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE211__9GG2113113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN5EE2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE211__9GG2113113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE211__9GG2113113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv),
+};
+extern void _ZN5FF3113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF311__9GG2113113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&_ZN5FF3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF311__9GG2113113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF311__9GG2113113[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+};
+static VTT_ENTRY vtt_GG2113113[] = {
+ {&(_ZTV9GG2113113[7]), 7,35},
+ {&(_ZTV9GG2113113[14]), 14,35},
+ {&(_ZTV9GG2113113[18]), 18,35},
+ {&(_ZTV9GG2113113[22]), 22,35},
+ {&(_ZTV9GG2113113[28]), 28,35},
+ {&(_ZTV9GG2113113[33]), 33,35},
+ {&(_tg__ZTV5EE211__9GG2113113[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE211__9GG2113113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE211__9GG2113113[3]), 3,4},
+ {&(_tg__ZTV5FF311__9GG2113113[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF311__9GG2113113[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF311__9GG2113113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2113113[];
+extern VTBL_ENTRY _ZTV9GG2113113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2113113[];
+static VTBL_ENTRY alt_thunk_names487[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG21131133barEv,_ZTv0_n16_N9GG21131133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21131133barEv,_ZThn40_N9GG21131133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21131133fooEv,_ZTv0_n12_N9GG21131133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21131133fooEv,_ZThn40_N9GG21131133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21131133fooEv,_ZThn24_N9GG21131133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21131133barEv,_ZTv0_n12_N9GG21131133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21131133barEv,_ZThn16_N9GG21131133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21131133fooEv,_ZTv0_n20_N9GG21131133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21131133fooEv,_ZThn32_N9GG21131133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21131133fooEv,_ZThn8_N9GG21131133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2113113 = { "GG2113113", // class name
+ bases_GG2113113, 5,
+ &(vtc_GG2113113[0]), // expected_vtbl_contents
+ &(vtt_GG2113113[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2113113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2113113),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2113113),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names487,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2113123 : virtual EE211 , virtual FF312 {
+ int pg;
+ virtual void foo(); // _ZN9GG21131233fooEv
+ virtual void bar(); // _ZN9GG21131233barEv
+ ~GG2113123(); // tgen
+ GG2113123(); // tgen
+};
+//SIG(1 GG2113123) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG2113123 ::foo(){vfunc_called(this, "_ZN9GG21131233fooEv");}
+void GG2113123 ::bar(){vfunc_called(this, "_ZN9GG21131233barEv");}
+GG2113123 ::~GG2113123(){ note_dtor("GG2113123", this);} // tgen
+GG2113123 ::GG2113123(){ note_ctor("GG2113123", this);} // tgen
+
+static void Test_GG2113123()
+{
+ extern Class_Descriptor cd_GG2113123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2113123, buf);
+ GG2113123 *dp, &lv = *(dp=new (buf) GG2113123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2113123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2113123)");
+ check_base_class_offset(lv, (AA2*)(EE211*), ABISELECT(32,16), "GG2113123");
+ check_base_class_offset(lv, (BB1*)(EE211*), ABISELECT(48,24), "GG2113123");
+ check_base_class_offset(lv, (BB1*)(FF312*), ABISELECT(48,24), "GG2113123");
+ check_base_class_offset(lv, (EE211*), ABISELECT(16,8), "GG2113123");
+ check_base_class_offset(lv, (AA3*)(FF312*), ABISELECT(80,40), "GG2113123");
+ check_base_class_offset(lv, (FF312*), ABISELECT(64,32), "GG2113123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2113123.pg");
+ test_class_info(&lv, &cd_GG2113123);
+ dp->~GG2113123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2113123(Test_GG2113123, "GG2113123", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2113123C1Ev();
+extern void _ZN9GG2113123D1Ev();
+Name_Map name_map_GG2113123[] = {
+ NSPAIR(_ZN9GG2113123C1Ev),
+ NSPAIR(_ZN9GG2113123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE211;
+extern VTBL_ENTRY _ZTI5EE211[];
+extern VTBL_ENTRY _ZTV5EE211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE211[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF312;
+extern VTBL_ENTRY _ZTI5FF312[];
+extern VTBL_ENTRY _ZTV5FF312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF312[];
+static Base_Class bases_GG2113123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE211, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF312, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2113123[];
+extern void _ZN9GG21131233fooEv();
+extern void _ZN9GG21131233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21131233fooEv,_ZTv0_n20_N9GG21131233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21131233fooEv,_ZThn8_N9GG21131233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21131233barEv,_ZTv0_n12_N9GG21131233barEv)();
+extern void ABISELECT(_ZThn32_N9GG21131233barEv,_ZThn16_N9GG21131233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21131233fooEv,_ZTv0_n12_N9GG21131233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21131233fooEv,_ZThn24_N9GG21131233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21131233barEv,_ZTv0_n20_N9GG21131233barEv)();
+extern void ABISELECT(_ZThn64_N9GG21131233barEv,_ZThn32_N9GG21131233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21131233fooEv,_ZTv0_n12_N9GG21131233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21131233fooEv,_ZThn40_N9GG21131233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21131233barEv,_ZTv0_n16_N9GG21131233barEv)();
+extern void ABISELECT(_ZThn80_N9GG21131233barEv,_ZThn40_N9GG21131233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2113123[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2113123[0]),
+ (VTBL_ENTRY)&_ZN9GG21131233fooEv,
+ (VTBL_ENTRY)&_ZN9GG21131233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2113123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21131233fooEv,_ZTv0_n20_N9GG21131233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2113123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21131233barEv,_ZTv0_n12_N9GG21131233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2113123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21131233fooEv,_ZTv0_n12_N9GG21131233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2113123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21131233barEv,_ZTv0_n20_N9GG21131233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2113123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21131233fooEv,_ZTv0_n12_N9GG21131233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21131233barEv,_ZTv0_n16_N9GG21131233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2113123[];
+extern void _ZN5EE2113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE211__9GG2113123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN5EE2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE211__9GG2113123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE211__9GG2113123[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv),
+};
+extern void _ZN5FF3123barEv();
+static VTBL_ENTRY _tg__ZTV5FF312__9GG2113123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN5FF3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv)();
+extern void ABISELECT(_ZThn16_N5FF3123barEv,_ZThn8_N5FF3123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF312__9GG2113123[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF312__9GG2113123[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG2113123[] = {
+ {&(_ZTV9GG2113123[7]), 7,35},
+ {&(_ZTV9GG2113123[14]), 14,35},
+ {&(_ZTV9GG2113123[18]), 18,35},
+ {&(_ZTV9GG2113123[22]), 22,35},
+ {&(_ZTV9GG2113123[28]), 28,35},
+ {&(_ZTV9GG2113123[33]), 33,35},
+ {&(_tg__ZTV5EE211__9GG2113123[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE211__9GG2113123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE211__9GG2113123[3]), 3,4},
+ {&(_tg__ZTV5FF312__9GG2113123[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF312__9GG2113123[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF312__9GG2113123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2113123[];
+extern VTBL_ENTRY _ZTV9GG2113123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2113123[];
+static VTBL_ENTRY alt_thunk_names488[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3123barEv,_ZThn8_N5FF3123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG21131233barEv,_ZTv0_n16_N9GG21131233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21131233barEv,_ZThn40_N9GG21131233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21131233barEv,_ZTv0_n20_N9GG21131233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21131233barEv,_ZThn32_N9GG21131233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21131233fooEv,_ZTv0_n12_N9GG21131233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21131233fooEv,_ZThn40_N9GG21131233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21131233fooEv,_ZThn24_N9GG21131233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21131233barEv,_ZTv0_n12_N9GG21131233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21131233barEv,_ZThn16_N9GG21131233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21131233fooEv,_ZTv0_n20_N9GG21131233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21131233fooEv,_ZThn8_N9GG21131233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2113123 = { "GG2113123", // class name
+ bases_GG2113123, 5,
+ &(vtc_GG2113123[0]), // expected_vtbl_contents
+ &(vtt_GG2113123[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2113123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2113123),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2113123),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names488,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2113133 : virtual EE211 , virtual FF313 {
+ int pg;
+ virtual void foo(); // _ZN9GG21131333fooEv
+ virtual void bar(); // _ZN9GG21131333barEv
+ ~GG2113133(); // tgen
+ GG2113133(); // tgen
+};
+//SIG(1 GG2113133) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2113133 ::foo(){vfunc_called(this, "_ZN9GG21131333fooEv");}
+void GG2113133 ::bar(){vfunc_called(this, "_ZN9GG21131333barEv");}
+GG2113133 ::~GG2113133(){ note_dtor("GG2113133", this);} // tgen
+GG2113133 ::GG2113133(){ note_ctor("GG2113133", this);} // tgen
+
+static void Test_GG2113133()
+{
+ extern Class_Descriptor cd_GG2113133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2113133, buf);
+ GG2113133 *dp, &lv = *(dp=new (buf) GG2113133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2113133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2113133)");
+ check_base_class_offset(lv, (AA2*)(EE211*), ABISELECT(32,16), "GG2113133");
+ check_base_class_offset(lv, (BB1*)(EE211*), ABISELECT(48,24), "GG2113133");
+ check_base_class_offset(lv, (BB1*)(FF313*), ABISELECT(48,24), "GG2113133");
+ check_base_class_offset(lv, (EE211*), ABISELECT(16,8), "GG2113133");
+ check_base_class_offset(lv, (AA3*)(FF313*), ABISELECT(80,40), "GG2113133");
+ check_base_class_offset(lv, (FF313*), ABISELECT(64,32), "GG2113133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2113133.pg");
+ test_class_info(&lv, &cd_GG2113133);
+ dp->~GG2113133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2113133(Test_GG2113133, "GG2113133", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2113133C1Ev();
+extern void _ZN9GG2113133D1Ev();
+Name_Map name_map_GG2113133[] = {
+ NSPAIR(_ZN9GG2113133C1Ev),
+ NSPAIR(_ZN9GG2113133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE211;
+extern VTBL_ENTRY _ZTI5EE211[];
+extern VTBL_ENTRY _ZTV5EE211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE211[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF313;
+extern VTBL_ENTRY _ZTI5FF313[];
+extern VTBL_ENTRY _ZTV5FF313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF313[];
+static Base_Class bases_GG2113133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE211, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF313, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2113133[];
+extern void _ZN9GG21131333fooEv();
+extern void _ZN9GG21131333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21131333fooEv,_ZTv0_n20_N9GG21131333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21131333fooEv,_ZThn8_N9GG21131333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21131333barEv,_ZTv0_n12_N9GG21131333barEv)();
+extern void ABISELECT(_ZThn32_N9GG21131333barEv,_ZThn16_N9GG21131333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21131333fooEv,_ZTv0_n12_N9GG21131333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21131333fooEv,_ZThn24_N9GG21131333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21131333fooEv,_ZTv0_n20_N9GG21131333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21131333fooEv,_ZThn32_N9GG21131333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21131333barEv,_ZTv0_n24_N9GG21131333barEv)();
+extern void ABISELECT(_ZThn64_N9GG21131333barEv,_ZThn32_N9GG21131333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21131333fooEv,_ZTv0_n12_N9GG21131333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21131333fooEv,_ZThn40_N9GG21131333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21131333barEv,_ZTv0_n16_N9GG21131333barEv)();
+extern void ABISELECT(_ZThn80_N9GG21131333barEv,_ZThn40_N9GG21131333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2113133[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2113133[0]),
+ (VTBL_ENTRY)&_ZN9GG21131333fooEv,
+ (VTBL_ENTRY)&_ZN9GG21131333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2113133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21131333fooEv,_ZTv0_n20_N9GG21131333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2113133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21131333barEv,_ZTv0_n12_N9GG21131333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2113133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21131333fooEv,_ZTv0_n12_N9GG21131333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2113133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21131333fooEv,_ZTv0_n20_N9GG21131333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21131333barEv,_ZTv0_n24_N9GG21131333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2113133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21131333fooEv,_ZTv0_n12_N9GG21131333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21131333barEv,_ZTv0_n16_N9GG21131333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2113133[];
+extern void _ZN5EE2113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE211__9GG2113133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN5EE2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE211__9GG2113133[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE211__9GG2113133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv),
+};
+extern void _ZN5FF3133fooEv();
+extern void _ZN5FF3133barEv();
+static VTBL_ENTRY _tg__ZTV5FF313__9GG2113133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&_ZN5FF3133fooEv,
+ (VTBL_ENTRY)&_ZN5FF3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv)();
+extern void ABISELECT(_ZThn16_N5FF3133barEv,_ZThn8_N5FF3133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF313__9GG2113133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF313__9GG2113133[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+};
+static VTT_ENTRY vtt_GG2113133[] = {
+ {&(_ZTV9GG2113133[7]), 7,37},
+ {&(_ZTV9GG2113133[14]), 14,37},
+ {&(_ZTV9GG2113133[18]), 18,37},
+ {&(_ZTV9GG2113133[22]), 22,37},
+ {&(_ZTV9GG2113133[29]), 29,37},
+ {&(_ZTV9GG2113133[35]), 35,37},
+ {&(_tg__ZTV5EE211__9GG2113133[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE211__9GG2113133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE211__9GG2113133[3]), 3,4},
+ {&(_tg__ZTV5FF313__9GG2113133[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF313__9GG2113133[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF313__9GG2113133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2113133[];
+extern VTBL_ENTRY _ZTV9GG2113133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2113133[];
+static VTBL_ENTRY alt_thunk_names489[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3133barEv,_ZThn8_N5FF3133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG21131333barEv,_ZTv0_n16_N9GG21131333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21131333barEv,_ZThn40_N9GG21131333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG21131333barEv,_ZTv0_n24_N9GG21131333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21131333barEv,_ZThn32_N9GG21131333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21131333fooEv,_ZTv0_n12_N9GG21131333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21131333fooEv,_ZThn40_N9GG21131333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21131333fooEv,_ZThn24_N9GG21131333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21131333barEv,_ZTv0_n12_N9GG21131333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21131333barEv,_ZThn16_N9GG21131333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21131333fooEv,_ZTv0_n20_N9GG21131333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21131333fooEv,_ZThn32_N9GG21131333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21131333fooEv,_ZThn8_N9GG21131333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2113133 = { "GG2113133", // class name
+ bases_GG2113133, 5,
+ &(vtc_GG2113133[0]), // expected_vtbl_contents
+ &(vtt_GG2113133[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2113133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2113133),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2113133),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names489,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2113213 : virtual EE211 , virtual FF321 {
+ int pg;
+ virtual void foo(); // _ZN9GG21132133fooEv
+ virtual void bar(); // _ZN9GG21132133barEv
+ ~GG2113213(); // tgen
+ GG2113213(); // tgen
+};
+//SIG(1 GG2113213) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2113213 ::foo(){vfunc_called(this, "_ZN9GG21132133fooEv");}
+void GG2113213 ::bar(){vfunc_called(this, "_ZN9GG21132133barEv");}
+GG2113213 ::~GG2113213(){ note_dtor("GG2113213", this);} // tgen
+GG2113213 ::GG2113213(){ note_ctor("GG2113213", this);} // tgen
+
+static void Test_GG2113213()
+{
+ extern Class_Descriptor cd_GG2113213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2113213, buf);
+ GG2113213 *dp, &lv = *(dp=new (buf) GG2113213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2113213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2113213)");
+ check_base_class_offset(lv, (AA2*)(EE211*), ABISELECT(32,16), "GG2113213");
+ check_base_class_offset(lv, (BB1*)(EE211*), ABISELECT(48,24), "GG2113213");
+ check_base_class_offset(lv, (EE211*), ABISELECT(16,8), "GG2113213");
+ check_base_class_offset(lv, (AA3*)(FF321*), ABISELECT(80,40), "GG2113213");
+ check_base_class_offset(lv, (BB2*)(FF321*), ABISELECT(96,48), "GG2113213");
+ check_base_class_offset(lv, (FF321*), ABISELECT(64,32), "GG2113213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2113213.pg");
+ test_class_info(&lv, &cd_GG2113213);
+ dp->~GG2113213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2113213(Test_GG2113213, "GG2113213", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2113213C1Ev();
+extern void _ZN9GG2113213D1Ev();
+Name_Map name_map_GG2113213[] = {
+ NSPAIR(_ZN9GG2113213C1Ev),
+ NSPAIR(_ZN9GG2113213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE211;
+extern VTBL_ENTRY _ZTI5EE211[];
+extern VTBL_ENTRY _ZTV5EE211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE211[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF321;
+extern VTBL_ENTRY _ZTI5FF321[];
+extern VTBL_ENTRY _ZTV5FF321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF321[];
+static Base_Class bases_GG2113213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE211, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF321, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2113213[];
+extern void _ZN9GG21132133fooEv();
+extern void _ZN9GG21132133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21132133fooEv,_ZTv0_n20_N9GG21132133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21132133fooEv,_ZThn8_N9GG21132133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21132133barEv,_ZTv0_n12_N9GG21132133barEv)();
+extern void ABISELECT(_ZThn32_N9GG21132133barEv,_ZThn16_N9GG21132133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21132133fooEv,_ZTv0_n12_N9GG21132133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21132133fooEv,_ZThn24_N9GG21132133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21132133fooEv,_ZTv0_n20_N9GG21132133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21132133fooEv,_ZThn32_N9GG21132133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21132133fooEv,_ZTv0_n12_N9GG21132133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21132133fooEv,_ZThn40_N9GG21132133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21132133barEv,_ZTv0_n16_N9GG21132133barEv)();
+extern void ABISELECT(_ZThn80_N9GG21132133barEv,_ZThn40_N9GG21132133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21132133barEv,_ZTv0_n12_N9GG21132133barEv)();
+extern void ABISELECT(_ZThn96_N9GG21132133barEv,_ZThn48_N9GG21132133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2113213[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2113213[0]),
+ (VTBL_ENTRY)&_ZN9GG21132133fooEv,
+ (VTBL_ENTRY)&_ZN9GG21132133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2113213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21132133fooEv,_ZTv0_n20_N9GG21132133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2113213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21132133barEv,_ZTv0_n12_N9GG21132133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2113213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21132133fooEv,_ZTv0_n12_N9GG21132133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2113213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21132133fooEv,_ZTv0_n20_N9GG21132133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2113213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21132133fooEv,_ZTv0_n12_N9GG21132133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21132133barEv,_ZTv0_n16_N9GG21132133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2113213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21132133barEv,_ZTv0_n12_N9GG21132133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2113213[];
+extern void _ZN5EE2113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE211__9GG2113213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN5EE2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE211__9GG2113213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE211__9GG2113213[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv),
+};
+extern void _ZN5FF3213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF321__9GG2113213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN5FF3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3213fooEv,_ZThn8_N5FF3213fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF321__9GG2113213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF321__9GG2113213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG2113213[] = {
+ {&(_ZTV9GG2113213[8]), 8,40},
+ {&(_ZTV9GG2113213[15]), 15,40},
+ {&(_ZTV9GG2113213[19]), 19,40},
+ {&(_ZTV9GG2113213[23]), 23,40},
+ {&(_ZTV9GG2113213[29]), 29,40},
+ {&(_ZTV9GG2113213[34]), 34,40},
+ {&(_ZTV9GG2113213[39]), 39,40},
+ {&(_tg__ZTV5EE211__9GG2113213[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE211__9GG2113213[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE211__9GG2113213[3]), 3,4},
+ {&(_tg__ZTV5FF321__9GG2113213[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF321__9GG2113213[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF321__9GG2113213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2113213[];
+extern VTBL_ENTRY _ZTV9GG2113213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2113213[];
+static VTBL_ENTRY alt_thunk_names490[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3213fooEv,_ZThn8_N5FF3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG21132133barEv,_ZTv0_n16_N9GG21132133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21132133barEv,_ZThn40_N9GG21132133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21132133fooEv,_ZTv0_n12_N9GG21132133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21132133fooEv,_ZThn40_N9GG21132133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21132133fooEv,_ZThn24_N9GG21132133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21132133barEv,_ZTv0_n12_N9GG21132133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21132133barEv,_ZThn48_N9GG21132133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21132133barEv,_ZThn16_N9GG21132133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21132133fooEv,_ZTv0_n20_N9GG21132133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21132133fooEv,_ZThn32_N9GG21132133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21132133fooEv,_ZThn8_N9GG21132133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2113213 = { "GG2113213", // class name
+ bases_GG2113213, 6,
+ &(vtc_GG2113213[0]), // expected_vtbl_contents
+ &(vtt_GG2113213[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2113213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2113213),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2113213),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names490,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2113223 : virtual EE211 , virtual FF322 {
+ int pg;
+ virtual void foo(); // _ZN9GG21132233fooEv
+ virtual void bar(); // _ZN9GG21132233barEv
+ ~GG2113223(); // tgen
+ GG2113223(); // tgen
+};
+//SIG(1 GG2113223) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2113223 ::foo(){vfunc_called(this, "_ZN9GG21132233fooEv");}
+void GG2113223 ::bar(){vfunc_called(this, "_ZN9GG21132233barEv");}
+GG2113223 ::~GG2113223(){ note_dtor("GG2113223", this);} // tgen
+GG2113223 ::GG2113223(){ note_ctor("GG2113223", this);} // tgen
+
+static void Test_GG2113223()
+{
+ extern Class_Descriptor cd_GG2113223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2113223, buf);
+ GG2113223 *dp, &lv = *(dp=new (buf) GG2113223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2113223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2113223)");
+ check_base_class_offset(lv, (AA2*)(EE211*), ABISELECT(32,16), "GG2113223");
+ check_base_class_offset(lv, (BB1*)(EE211*), ABISELECT(48,24), "GG2113223");
+ check_base_class_offset(lv, (EE211*), ABISELECT(16,8), "GG2113223");
+ check_base_class_offset(lv, (AA3*)(FF322*), ABISELECT(80,40), "GG2113223");
+ check_base_class_offset(lv, (BB2*)(FF322*), ABISELECT(96,48), "GG2113223");
+ check_base_class_offset(lv, (FF322*), ABISELECT(64,32), "GG2113223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2113223.pg");
+ test_class_info(&lv, &cd_GG2113223);
+ dp->~GG2113223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2113223(Test_GG2113223, "GG2113223", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2113223C1Ev();
+extern void _ZN9GG2113223D1Ev();
+Name_Map name_map_GG2113223[] = {
+ NSPAIR(_ZN9GG2113223C1Ev),
+ NSPAIR(_ZN9GG2113223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE211;
+extern VTBL_ENTRY _ZTI5EE211[];
+extern VTBL_ENTRY _ZTV5EE211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE211[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF322;
+extern VTBL_ENTRY _ZTI5FF322[];
+extern VTBL_ENTRY _ZTV5FF322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF322[];
+static Base_Class bases_GG2113223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE211, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF322, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2113223[];
+extern void _ZN9GG21132233fooEv();
+extern void _ZN9GG21132233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21132233fooEv,_ZTv0_n20_N9GG21132233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21132233fooEv,_ZThn8_N9GG21132233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21132233barEv,_ZTv0_n12_N9GG21132233barEv)();
+extern void ABISELECT(_ZThn32_N9GG21132233barEv,_ZThn16_N9GG21132233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21132233fooEv,_ZTv0_n12_N9GG21132233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21132233fooEv,_ZThn24_N9GG21132233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21132233barEv,_ZTv0_n20_N9GG21132233barEv)();
+extern void ABISELECT(_ZThn64_N9GG21132233barEv,_ZThn32_N9GG21132233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21132233fooEv,_ZTv0_n12_N9GG21132233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21132233fooEv,_ZThn40_N9GG21132233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21132233barEv,_ZTv0_n16_N9GG21132233barEv)();
+extern void ABISELECT(_ZThn80_N9GG21132233barEv,_ZThn40_N9GG21132233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21132233barEv,_ZTv0_n12_N9GG21132233barEv)();
+extern void ABISELECT(_ZThn96_N9GG21132233barEv,_ZThn48_N9GG21132233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2113223[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2113223[0]),
+ (VTBL_ENTRY)&_ZN9GG21132233fooEv,
+ (VTBL_ENTRY)&_ZN9GG21132233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2113223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21132233fooEv,_ZTv0_n20_N9GG21132233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2113223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21132233barEv,_ZTv0_n12_N9GG21132233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2113223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21132233fooEv,_ZTv0_n12_N9GG21132233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2113223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21132233barEv,_ZTv0_n20_N9GG21132233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2113223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21132233fooEv,_ZTv0_n12_N9GG21132233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21132233barEv,_ZTv0_n16_N9GG21132233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2113223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21132233barEv,_ZTv0_n12_N9GG21132233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2113223[];
+extern void _ZN5EE2113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE211__9GG2113223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN5EE2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE211__9GG2113223[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE211__9GG2113223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv),
+};
+extern void _ZN5FF3223barEv();
+static VTBL_ENTRY _tg__ZTV5FF322__9GG2113223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN5FF3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv)();
+extern void ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF322__9GG2113223[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv)();
+extern void ABISELECT(_ZThn32_N5FF3223barEv,_ZThn16_N5FF3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF322__9GG2113223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv),
+};
+static VTT_ENTRY vtt_GG2113223[] = {
+ {&(_ZTV9GG2113223[8]), 8,40},
+ {&(_ZTV9GG2113223[15]), 15,40},
+ {&(_ZTV9GG2113223[19]), 19,40},
+ {&(_ZTV9GG2113223[23]), 23,40},
+ {&(_ZTV9GG2113223[29]), 29,40},
+ {&(_ZTV9GG2113223[34]), 34,40},
+ {&(_ZTV9GG2113223[39]), 39,40},
+ {&(_tg__ZTV5EE211__9GG2113223[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE211__9GG2113223[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE211__9GG2113223[3]), 3,4},
+ {&(_tg__ZTV5FF322__9GG2113223[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF322__9GG2113223[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF322__9GG2113223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2113223[];
+extern VTBL_ENTRY _ZTV9GG2113223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2113223[];
+static VTBL_ENTRY alt_thunk_names491[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3223barEv,_ZThn16_N5FF3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG21132233barEv,_ZTv0_n16_N9GG21132233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21132233barEv,_ZThn40_N9GG21132233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21132233barEv,_ZTv0_n20_N9GG21132233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21132233barEv,_ZThn32_N9GG21132233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21132233fooEv,_ZTv0_n12_N9GG21132233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21132233fooEv,_ZThn40_N9GG21132233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21132233fooEv,_ZThn24_N9GG21132233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21132233barEv,_ZTv0_n12_N9GG21132233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21132233barEv,_ZThn48_N9GG21132233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21132233barEv,_ZThn16_N9GG21132233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21132233fooEv,_ZTv0_n20_N9GG21132233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21132233fooEv,_ZThn8_N9GG21132233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2113223 = { "GG2113223", // class name
+ bases_GG2113223, 6,
+ &(vtc_GG2113223[0]), // expected_vtbl_contents
+ &(vtt_GG2113223[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2113223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2113223),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2113223),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names491,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2113233 : virtual EE211 , virtual FF323 {
+ int pg;
+ virtual void foo(); // _ZN9GG21132333fooEv
+ virtual void bar(); // _ZN9GG21132333barEv
+ ~GG2113233(); // tgen
+ GG2113233(); // tgen
+};
+//SIG(1 GG2113233) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2113233 ::foo(){vfunc_called(this, "_ZN9GG21132333fooEv");}
+void GG2113233 ::bar(){vfunc_called(this, "_ZN9GG21132333barEv");}
+GG2113233 ::~GG2113233(){ note_dtor("GG2113233", this);} // tgen
+GG2113233 ::GG2113233(){ note_ctor("GG2113233", this);} // tgen
+
+static void Test_GG2113233()
+{
+ extern Class_Descriptor cd_GG2113233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2113233, buf);
+ GG2113233 *dp, &lv = *(dp=new (buf) GG2113233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2113233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2113233)");
+ check_base_class_offset(lv, (AA2*)(EE211*), ABISELECT(32,16), "GG2113233");
+ check_base_class_offset(lv, (BB1*)(EE211*), ABISELECT(48,24), "GG2113233");
+ check_base_class_offset(lv, (EE211*), ABISELECT(16,8), "GG2113233");
+ check_base_class_offset(lv, (AA3*)(FF323*), ABISELECT(80,40), "GG2113233");
+ check_base_class_offset(lv, (BB2*)(FF323*), ABISELECT(96,48), "GG2113233");
+ check_base_class_offset(lv, (FF323*), ABISELECT(64,32), "GG2113233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2113233.pg");
+ test_class_info(&lv, &cd_GG2113233);
+ dp->~GG2113233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2113233(Test_GG2113233, "GG2113233", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2113233C1Ev();
+extern void _ZN9GG2113233D1Ev();
+Name_Map name_map_GG2113233[] = {
+ NSPAIR(_ZN9GG2113233C1Ev),
+ NSPAIR(_ZN9GG2113233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE211;
+extern VTBL_ENTRY _ZTI5EE211[];
+extern VTBL_ENTRY _ZTV5EE211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE211[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF323;
+extern VTBL_ENTRY _ZTI5FF323[];
+extern VTBL_ENTRY _ZTV5FF323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF323[];
+static Base_Class bases_GG2113233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE211, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF323, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2113233[];
+extern void _ZN9GG21132333fooEv();
+extern void _ZN9GG21132333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21132333fooEv,_ZTv0_n20_N9GG21132333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21132333fooEv,_ZThn8_N9GG21132333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21132333barEv,_ZTv0_n12_N9GG21132333barEv)();
+extern void ABISELECT(_ZThn32_N9GG21132333barEv,_ZThn16_N9GG21132333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21132333fooEv,_ZTv0_n12_N9GG21132333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21132333fooEv,_ZThn24_N9GG21132333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21132333fooEv,_ZTv0_n20_N9GG21132333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21132333fooEv,_ZThn32_N9GG21132333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21132333barEv,_ZTv0_n24_N9GG21132333barEv)();
+extern void ABISELECT(_ZThn64_N9GG21132333barEv,_ZThn32_N9GG21132333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21132333fooEv,_ZTv0_n12_N9GG21132333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21132333fooEv,_ZThn40_N9GG21132333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21132333barEv,_ZTv0_n16_N9GG21132333barEv)();
+extern void ABISELECT(_ZThn80_N9GG21132333barEv,_ZThn40_N9GG21132333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21132333barEv,_ZTv0_n12_N9GG21132333barEv)();
+extern void ABISELECT(_ZThn96_N9GG21132333barEv,_ZThn48_N9GG21132333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2113233[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2113233[0]),
+ (VTBL_ENTRY)&_ZN9GG21132333fooEv,
+ (VTBL_ENTRY)&_ZN9GG21132333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2113233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21132333fooEv,_ZTv0_n20_N9GG21132333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2113233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21132333barEv,_ZTv0_n12_N9GG21132333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2113233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21132333fooEv,_ZTv0_n12_N9GG21132333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2113233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21132333fooEv,_ZTv0_n20_N9GG21132333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21132333barEv,_ZTv0_n24_N9GG21132333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2113233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21132333fooEv,_ZTv0_n12_N9GG21132333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21132333barEv,_ZTv0_n16_N9GG21132333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2113233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21132333barEv,_ZTv0_n12_N9GG21132333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2113233[];
+extern void _ZN5EE2113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE211__9GG2113233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN5EE2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE211__9GG2113233[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE211__9GG2113233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv),
+};
+extern void _ZN5FF3233fooEv();
+extern void _ZN5FF3233barEv();
+static VTBL_ENTRY _tg__ZTV5FF323__9GG2113233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&_ZN5FF3233fooEv,
+ (VTBL_ENTRY)&_ZN5FF3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3233fooEv,_ZThn8_N5FF3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv)();
+extern void ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF323__9GG2113233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv)();
+extern void ABISELECT(_ZThn32_N5FF3233barEv,_ZThn16_N5FF3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF323__9GG2113233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv),
+};
+static VTT_ENTRY vtt_GG2113233[] = {
+ {&(_ZTV9GG2113233[8]), 8,42},
+ {&(_ZTV9GG2113233[15]), 15,42},
+ {&(_ZTV9GG2113233[19]), 19,42},
+ {&(_ZTV9GG2113233[23]), 23,42},
+ {&(_ZTV9GG2113233[30]), 30,42},
+ {&(_ZTV9GG2113233[36]), 36,42},
+ {&(_ZTV9GG2113233[41]), 41,42},
+ {&(_tg__ZTV5EE211__9GG2113233[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE211__9GG2113233[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE211__9GG2113233[3]), 3,4},
+ {&(_tg__ZTV5FF323__9GG2113233[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF323__9GG2113233[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF323__9GG2113233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2113233[];
+extern VTBL_ENTRY _ZTV9GG2113233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2113233[];
+static VTBL_ENTRY alt_thunk_names492[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3233barEv,_ZThn16_N5FF3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3233fooEv,_ZThn8_N5FF3233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG21132333barEv,_ZTv0_n16_N9GG21132333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21132333barEv,_ZThn40_N9GG21132333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG21132333barEv,_ZTv0_n24_N9GG21132333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21132333barEv,_ZThn32_N9GG21132333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21132333fooEv,_ZTv0_n12_N9GG21132333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21132333fooEv,_ZThn40_N9GG21132333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21132333fooEv,_ZThn24_N9GG21132333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21132333barEv,_ZTv0_n12_N9GG21132333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21132333barEv,_ZThn48_N9GG21132333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21132333barEv,_ZThn16_N9GG21132333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21132333fooEv,_ZTv0_n20_N9GG21132333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21132333fooEv,_ZThn32_N9GG21132333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21132333fooEv,_ZThn8_N9GG21132333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2113233 = { "GG2113233", // class name
+ bases_GG2113233, 6,
+ &(vtc_GG2113233[0]), // expected_vtbl_contents
+ &(vtt_GG2113233[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2113233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2113233),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2113233),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names492,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2113313 : virtual EE211 , virtual FF331 {
+ int pg;
+ virtual void foo(); // _ZN9GG21133133fooEv
+ virtual void bar(); // _ZN9GG21133133barEv
+ ~GG2113313(); // tgen
+ GG2113313(); // tgen
+};
+//SIG(1 GG2113313) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2113313 ::foo(){vfunc_called(this, "_ZN9GG21133133fooEv");}
+void GG2113313 ::bar(){vfunc_called(this, "_ZN9GG21133133barEv");}
+GG2113313 ::~GG2113313(){ note_dtor("GG2113313", this);} // tgen
+GG2113313 ::GG2113313(){ note_ctor("GG2113313", this);} // tgen
+
+static void Test_GG2113313()
+{
+ extern Class_Descriptor cd_GG2113313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2113313, buf);
+ GG2113313 *dp, &lv = *(dp=new (buf) GG2113313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2113313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2113313)");
+ check_base_class_offset(lv, (AA2*)(EE211*), ABISELECT(32,16), "GG2113313");
+ check_base_class_offset(lv, (BB1*)(EE211*), ABISELECT(48,24), "GG2113313");
+ check_base_class_offset(lv, (EE211*), ABISELECT(16,8), "GG2113313");
+ check_base_class_offset(lv, (AA3*)(FF331*), ABISELECT(80,40), "GG2113313");
+ check_base_class_offset(lv, (BB3*)(FF331*), ABISELECT(96,48), "GG2113313");
+ check_base_class_offset(lv, (FF331*), ABISELECT(64,32), "GG2113313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2113313.pg");
+ test_class_info(&lv, &cd_GG2113313);
+ dp->~GG2113313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2113313(Test_GG2113313, "GG2113313", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2113313C1Ev();
+extern void _ZN9GG2113313D1Ev();
+Name_Map name_map_GG2113313[] = {
+ NSPAIR(_ZN9GG2113313C1Ev),
+ NSPAIR(_ZN9GG2113313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE211;
+extern VTBL_ENTRY _ZTI5EE211[];
+extern VTBL_ENTRY _ZTV5EE211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE211[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF331;
+extern VTBL_ENTRY _ZTI5FF331[];
+extern VTBL_ENTRY _ZTV5FF331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF331[];
+static Base_Class bases_GG2113313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE211, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF331, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2113313[];
+extern void _ZN9GG21133133fooEv();
+extern void _ZN9GG21133133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21133133fooEv,_ZTv0_n20_N9GG21133133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21133133fooEv,_ZThn8_N9GG21133133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21133133barEv,_ZTv0_n12_N9GG21133133barEv)();
+extern void ABISELECT(_ZThn32_N9GG21133133barEv,_ZThn16_N9GG21133133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21133133fooEv,_ZTv0_n12_N9GG21133133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21133133fooEv,_ZThn24_N9GG21133133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21133133fooEv,_ZTv0_n20_N9GG21133133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21133133fooEv,_ZThn32_N9GG21133133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21133133fooEv,_ZTv0_n12_N9GG21133133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21133133fooEv,_ZThn40_N9GG21133133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21133133barEv,_ZTv0_n16_N9GG21133133barEv)();
+extern void ABISELECT(_ZThn80_N9GG21133133barEv,_ZThn40_N9GG21133133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21133133fooEv,_ZTv0_n12_N9GG21133133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG21133133fooEv,_ZThn48_N9GG21133133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21133133barEv,_ZTv0_n16_N9GG21133133barEv)();
+extern void ABISELECT(_ZThn96_N9GG21133133barEv,_ZThn48_N9GG21133133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2113313[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2113313[0]),
+ (VTBL_ENTRY)&_ZN9GG21133133fooEv,
+ (VTBL_ENTRY)&_ZN9GG21133133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2113313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21133133fooEv,_ZTv0_n20_N9GG21133133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2113313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21133133barEv,_ZTv0_n12_N9GG21133133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2113313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21133133fooEv,_ZTv0_n12_N9GG21133133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2113313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21133133fooEv,_ZTv0_n20_N9GG21133133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2113313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21133133fooEv,_ZTv0_n12_N9GG21133133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21133133barEv,_ZTv0_n16_N9GG21133133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2113313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21133133fooEv,_ZTv0_n12_N9GG21133133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21133133barEv,_ZTv0_n16_N9GG21133133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2113313[];
+extern void _ZN5EE2113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE211__9GG2113313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN5EE2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE211__9GG2113313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE211__9GG2113313[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv),
+};
+extern void _ZN5FF3313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF331__9GG2113313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&_ZN5FF3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF331__9GG2113313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3313fooEv,_ZThn16_N5FF3313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF331__9GG2113313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG2113313[] = {
+ {&(_ZTV9GG2113313[8]), 8,42},
+ {&(_ZTV9GG2113313[15]), 15,42},
+ {&(_ZTV9GG2113313[19]), 19,42},
+ {&(_ZTV9GG2113313[23]), 23,42},
+ {&(_ZTV9GG2113313[29]), 29,42},
+ {&(_ZTV9GG2113313[34]), 34,42},
+ {&(_ZTV9GG2113313[40]), 40,42},
+ {&(_tg__ZTV5EE211__9GG2113313[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE211__9GG2113313[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE211__9GG2113313[3]), 3,4},
+ {&(_tg__ZTV5FF331__9GG2113313[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF331__9GG2113313[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF331__9GG2113313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2113313[];
+extern VTBL_ENTRY _ZTV9GG2113313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2113313[];
+static VTBL_ENTRY alt_thunk_names493[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3313fooEv,_ZThn16_N5FF3313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG21133133barEv,_ZTv0_n16_N9GG21133133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21133133barEv,_ZThn48_N9GG21133133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21133133barEv,_ZThn40_N9GG21133133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21133133fooEv,_ZTv0_n12_N9GG21133133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21133133fooEv,_ZThn48_N9GG21133133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21133133fooEv,_ZThn40_N9GG21133133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21133133fooEv,_ZThn24_N9GG21133133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21133133barEv,_ZTv0_n12_N9GG21133133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21133133barEv,_ZThn16_N9GG21133133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21133133fooEv,_ZTv0_n20_N9GG21133133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21133133fooEv,_ZThn32_N9GG21133133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21133133fooEv,_ZThn8_N9GG21133133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2113313 = { "GG2113313", // class name
+ bases_GG2113313, 6,
+ &(vtc_GG2113313[0]), // expected_vtbl_contents
+ &(vtt_GG2113313[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2113313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2113313),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2113313),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names493,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2113323 : virtual EE211 , virtual FF332 {
+ int pg;
+ virtual void foo(); // _ZN9GG21133233fooEv
+ virtual void bar(); // _ZN9GG21133233barEv
+ ~GG2113323(); // tgen
+ GG2113323(); // tgen
+};
+//SIG(1 GG2113323) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2113323 ::foo(){vfunc_called(this, "_ZN9GG21133233fooEv");}
+void GG2113323 ::bar(){vfunc_called(this, "_ZN9GG21133233barEv");}
+GG2113323 ::~GG2113323(){ note_dtor("GG2113323", this);} // tgen
+GG2113323 ::GG2113323(){ note_ctor("GG2113323", this);} // tgen
+
+static void Test_GG2113323()
+{
+ extern Class_Descriptor cd_GG2113323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2113323, buf);
+ GG2113323 *dp, &lv = *(dp=new (buf) GG2113323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2113323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2113323)");
+ check_base_class_offset(lv, (AA2*)(EE211*), ABISELECT(32,16), "GG2113323");
+ check_base_class_offset(lv, (BB1*)(EE211*), ABISELECT(48,24), "GG2113323");
+ check_base_class_offset(lv, (EE211*), ABISELECT(16,8), "GG2113323");
+ check_base_class_offset(lv, (AA3*)(FF332*), ABISELECT(80,40), "GG2113323");
+ check_base_class_offset(lv, (BB3*)(FF332*), ABISELECT(96,48), "GG2113323");
+ check_base_class_offset(lv, (FF332*), ABISELECT(64,32), "GG2113323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2113323.pg");
+ test_class_info(&lv, &cd_GG2113323);
+ dp->~GG2113323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2113323(Test_GG2113323, "GG2113323", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2113323C1Ev();
+extern void _ZN9GG2113323D1Ev();
+Name_Map name_map_GG2113323[] = {
+ NSPAIR(_ZN9GG2113323C1Ev),
+ NSPAIR(_ZN9GG2113323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE211;
+extern VTBL_ENTRY _ZTI5EE211[];
+extern VTBL_ENTRY _ZTV5EE211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE211[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF332;
+extern VTBL_ENTRY _ZTI5FF332[];
+extern VTBL_ENTRY _ZTV5FF332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF332[];
+static Base_Class bases_GG2113323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE211, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF332, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2113323[];
+extern void _ZN9GG21133233fooEv();
+extern void _ZN9GG21133233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21133233fooEv,_ZTv0_n20_N9GG21133233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21133233fooEv,_ZThn8_N9GG21133233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21133233barEv,_ZTv0_n12_N9GG21133233barEv)();
+extern void ABISELECT(_ZThn32_N9GG21133233barEv,_ZThn16_N9GG21133233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21133233fooEv,_ZTv0_n12_N9GG21133233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21133233fooEv,_ZThn24_N9GG21133233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21133233barEv,_ZTv0_n20_N9GG21133233barEv)();
+extern void ABISELECT(_ZThn64_N9GG21133233barEv,_ZThn32_N9GG21133233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21133233fooEv,_ZTv0_n12_N9GG21133233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21133233fooEv,_ZThn40_N9GG21133233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21133233barEv,_ZTv0_n16_N9GG21133233barEv)();
+extern void ABISELECT(_ZThn80_N9GG21133233barEv,_ZThn40_N9GG21133233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21133233fooEv,_ZTv0_n12_N9GG21133233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG21133233fooEv,_ZThn48_N9GG21133233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21133233barEv,_ZTv0_n16_N9GG21133233barEv)();
+extern void ABISELECT(_ZThn96_N9GG21133233barEv,_ZThn48_N9GG21133233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2113323[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2113323[0]),
+ (VTBL_ENTRY)&_ZN9GG21133233fooEv,
+ (VTBL_ENTRY)&_ZN9GG21133233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2113323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21133233fooEv,_ZTv0_n20_N9GG21133233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2113323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21133233barEv,_ZTv0_n12_N9GG21133233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2113323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21133233fooEv,_ZTv0_n12_N9GG21133233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2113323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21133233barEv,_ZTv0_n20_N9GG21133233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2113323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21133233fooEv,_ZTv0_n12_N9GG21133233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21133233barEv,_ZTv0_n16_N9GG21133233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2113323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21133233fooEv,_ZTv0_n12_N9GG21133233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21133233barEv,_ZTv0_n16_N9GG21133233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2113323[];
+extern void _ZN5EE2113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE211__9GG2113323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN5EE2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE211__9GG2113323[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE211__9GG2113323[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv),
+};
+extern void _ZN5FF3323barEv();
+static VTBL_ENTRY _tg__ZTV5FF332__9GG2113323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN5FF3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+extern void ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF332__9GG2113323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+extern void ABISELECT(_ZThn32_N5FF3323barEv,_ZThn16_N5FF3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF332__9GG2113323[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+static VTT_ENTRY vtt_GG2113323[] = {
+ {&(_ZTV9GG2113323[8]), 8,42},
+ {&(_ZTV9GG2113323[15]), 15,42},
+ {&(_ZTV9GG2113323[19]), 19,42},
+ {&(_ZTV9GG2113323[23]), 23,42},
+ {&(_ZTV9GG2113323[29]), 29,42},
+ {&(_ZTV9GG2113323[34]), 34,42},
+ {&(_ZTV9GG2113323[40]), 40,42},
+ {&(_tg__ZTV5EE211__9GG2113323[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE211__9GG2113323[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE211__9GG2113323[3]), 3,4},
+ {&(_tg__ZTV5FF332__9GG2113323[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF332__9GG2113323[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF332__9GG2113323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2113323[];
+extern VTBL_ENTRY _ZTV9GG2113323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2113323[];
+static VTBL_ENTRY alt_thunk_names494[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3323barEv,_ZThn16_N5FF3323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG21133233barEv,_ZTv0_n16_N9GG21133233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21133233barEv,_ZThn48_N9GG21133233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21133233barEv,_ZThn40_N9GG21133233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21133233barEv,_ZTv0_n20_N9GG21133233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21133233barEv,_ZThn32_N9GG21133233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21133233fooEv,_ZTv0_n12_N9GG21133233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21133233fooEv,_ZThn48_N9GG21133233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21133233fooEv,_ZThn40_N9GG21133233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21133233fooEv,_ZThn24_N9GG21133233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21133233barEv,_ZTv0_n12_N9GG21133233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21133233barEv,_ZThn16_N9GG21133233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21133233fooEv,_ZTv0_n20_N9GG21133233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21133233fooEv,_ZThn8_N9GG21133233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2113323 = { "GG2113323", // class name
+ bases_GG2113323, 6,
+ &(vtc_GG2113323[0]), // expected_vtbl_contents
+ &(vtt_GG2113323[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2113323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2113323),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2113323),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names494,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2113333 : virtual EE211 , virtual FF333 {
+ int pg;
+ virtual void foo(); // _ZN9GG21133333fooEv
+ virtual void bar(); // _ZN9GG21133333barEv
+ ~GG2113333(); // tgen
+ GG2113333(); // tgen
+};
+//SIG(1 GG2113333) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2113333 ::foo(){vfunc_called(this, "_ZN9GG21133333fooEv");}
+void GG2113333 ::bar(){vfunc_called(this, "_ZN9GG21133333barEv");}
+GG2113333 ::~GG2113333(){ note_dtor("GG2113333", this);} // tgen
+GG2113333 ::GG2113333(){ note_ctor("GG2113333", this);} // tgen
+
+static void Test_GG2113333()
+{
+ extern Class_Descriptor cd_GG2113333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2113333, buf);
+ GG2113333 *dp, &lv = *(dp=new (buf) GG2113333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2113333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2113333)");
+ check_base_class_offset(lv, (AA2*)(EE211*), ABISELECT(32,16), "GG2113333");
+ check_base_class_offset(lv, (BB1*)(EE211*), ABISELECT(48,24), "GG2113333");
+ check_base_class_offset(lv, (EE211*), ABISELECT(16,8), "GG2113333");
+ check_base_class_offset(lv, (AA3*)(FF333*), ABISELECT(80,40), "GG2113333");
+ check_base_class_offset(lv, (BB3*)(FF333*), ABISELECT(96,48), "GG2113333");
+ check_base_class_offset(lv, (FF333*), ABISELECT(64,32), "GG2113333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2113333.pg");
+ test_class_info(&lv, &cd_GG2113333);
+ dp->~GG2113333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2113333(Test_GG2113333, "GG2113333", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2113333C1Ev();
+extern void _ZN9GG2113333D1Ev();
+Name_Map name_map_GG2113333[] = {
+ NSPAIR(_ZN9GG2113333C1Ev),
+ NSPAIR(_ZN9GG2113333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE211;
+extern VTBL_ENTRY _ZTI5EE211[];
+extern VTBL_ENTRY _ZTV5EE211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE211[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF333;
+extern VTBL_ENTRY _ZTI5FF333[];
+extern VTBL_ENTRY _ZTV5FF333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF333[];
+static Base_Class bases_GG2113333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE211, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF333, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2113333[];
+extern void _ZN9GG21133333fooEv();
+extern void _ZN9GG21133333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21133333fooEv,_ZTv0_n20_N9GG21133333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21133333fooEv,_ZThn8_N9GG21133333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21133333barEv,_ZTv0_n12_N9GG21133333barEv)();
+extern void ABISELECT(_ZThn32_N9GG21133333barEv,_ZThn16_N9GG21133333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21133333fooEv,_ZTv0_n12_N9GG21133333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21133333fooEv,_ZThn24_N9GG21133333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21133333fooEv,_ZTv0_n20_N9GG21133333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21133333fooEv,_ZThn32_N9GG21133333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21133333barEv,_ZTv0_n24_N9GG21133333barEv)();
+extern void ABISELECT(_ZThn64_N9GG21133333barEv,_ZThn32_N9GG21133333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21133333fooEv,_ZTv0_n12_N9GG21133333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21133333fooEv,_ZThn40_N9GG21133333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21133333barEv,_ZTv0_n16_N9GG21133333barEv)();
+extern void ABISELECT(_ZThn80_N9GG21133333barEv,_ZThn40_N9GG21133333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21133333fooEv,_ZTv0_n12_N9GG21133333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG21133333fooEv,_ZThn48_N9GG21133333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21133333barEv,_ZTv0_n16_N9GG21133333barEv)();
+extern void ABISELECT(_ZThn96_N9GG21133333barEv,_ZThn48_N9GG21133333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2113333[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2113333[0]),
+ (VTBL_ENTRY)&_ZN9GG21133333fooEv,
+ (VTBL_ENTRY)&_ZN9GG21133333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2113333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21133333fooEv,_ZTv0_n20_N9GG21133333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2113333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21133333barEv,_ZTv0_n12_N9GG21133333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2113333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21133333fooEv,_ZTv0_n12_N9GG21133333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2113333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21133333fooEv,_ZTv0_n20_N9GG21133333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21133333barEv,_ZTv0_n24_N9GG21133333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2113333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21133333fooEv,_ZTv0_n12_N9GG21133333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21133333barEv,_ZTv0_n16_N9GG21133333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2113333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21133333fooEv,_ZTv0_n12_N9GG21133333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21133333barEv,_ZTv0_n16_N9GG21133333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2113333[];
+extern void _ZN5EE2113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE211__9GG2113333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN5EE2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE211__9GG2113333[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE211__9GG2113333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv),
+};
+extern void _ZN5FF3333fooEv();
+extern void _ZN5FF3333barEv();
+static VTBL_ENTRY _tg__ZTV5FF333__9GG2113333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&_ZN5FF3333fooEv,
+ (VTBL_ENTRY)&_ZN5FF3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+extern void ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF333__9GG2113333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3333fooEv,_ZThn16_N5FF3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+extern void ABISELECT(_ZThn32_N5FF3333barEv,_ZThn16_N5FF3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF333__9GG2113333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+static VTT_ENTRY vtt_GG2113333[] = {
+ {&(_ZTV9GG2113333[8]), 8,44},
+ {&(_ZTV9GG2113333[15]), 15,44},
+ {&(_ZTV9GG2113333[19]), 19,44},
+ {&(_ZTV9GG2113333[23]), 23,44},
+ {&(_ZTV9GG2113333[30]), 30,44},
+ {&(_ZTV9GG2113333[36]), 36,44},
+ {&(_ZTV9GG2113333[42]), 42,44},
+ {&(_tg__ZTV5EE211__9GG2113333[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE211__9GG2113333[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE211__9GG2113333[3]), 3,4},
+ {&(_tg__ZTV5FF333__9GG2113333[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF333__9GG2113333[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF333__9GG2113333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2113333[];
+extern VTBL_ENTRY _ZTV9GG2113333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2113333[];
+static VTBL_ENTRY alt_thunk_names495[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3333barEv,_ZThn16_N5FF3333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3333fooEv,_ZThn16_N5FF3333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2113fooEv,_ZTv0_n12_N5EE2113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2113fooEv,_ZThn16_N5EE2113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG21133333barEv,_ZTv0_n16_N9GG21133333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21133333barEv,_ZThn48_N9GG21133333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21133333barEv,_ZThn40_N9GG21133333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG21133333barEv,_ZTv0_n24_N9GG21133333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21133333barEv,_ZThn32_N9GG21133333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21133333fooEv,_ZTv0_n12_N9GG21133333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21133333fooEv,_ZThn48_N9GG21133333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21133333fooEv,_ZThn40_N9GG21133333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21133333fooEv,_ZThn24_N9GG21133333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21133333barEv,_ZTv0_n12_N9GG21133333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21133333barEv,_ZThn16_N9GG21133333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21133333fooEv,_ZTv0_n20_N9GG21133333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21133333fooEv,_ZThn32_N9GG21133333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21133333fooEv,_ZThn8_N9GG21133333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2113333 = { "GG2113333", // class name
+ bases_GG2113333, 6,
+ &(vtc_GG2113333[0]), // expected_vtbl_contents
+ &(vtt_GG2113333[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2113333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2113333),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2113333),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names495,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2121111 : virtual EE212 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG21211113fooEv
+ ~GG2121111(); // tgen
+ GG2121111(); // tgen
+};
+//SIG(1 GG2121111) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v1 Fi} v1 Fi}
+
+
+void GG2121111 ::foo(){vfunc_called(this, "_ZN9GG21211113fooEv");}
+GG2121111 ::~GG2121111(){ note_dtor("GG2121111", this);} // tgen
+GG2121111 ::GG2121111(){ note_ctor("GG2121111", this);} // tgen
+
+static void Test_GG2121111()
+{
+ extern Class_Descriptor cd_GG2121111;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2121111, buf);
+ GG2121111 *dp, &lv = *(dp=new (buf) GG2121111());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2121111)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2121111)");
+ check_base_class_offset(lv, (AA2*)(EE212*), ABISELECT(32,16), "GG2121111");
+ check_base_class_offset(lv, (BB1*)(EE212*), ABISELECT(48,24), "GG2121111");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(48,24), "GG2121111");
+ check_base_class_offset(lv, (EE212*), ABISELECT(16,8), "GG2121111");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(80,40), "GG2121111");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG2121111");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2121111.pg");
+ test_class_info(&lv, &cd_GG2121111);
+ dp->~GG2121111();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2121111(Test_GG2121111, "GG2121111", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2121111C1Ev();
+extern void _ZN9GG2121111D1Ev();
+Name_Map name_map_GG2121111[] = {
+ NSPAIR(_ZN9GG2121111C1Ev),
+ NSPAIR(_ZN9GG2121111D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE212;
+extern VTBL_ENTRY _ZTI5EE212[];
+extern VTBL_ENTRY _ZTV5EE212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE212[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG2121111[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE212, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2121111[];
+extern void _ZN9GG21211113fooEv();
+extern void _ZN5EE2123barEv();
+extern void ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv)();
+extern void ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21211113fooEv,_ZTv0_n12_N9GG21211113fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21211113fooEv,_ZThn24_N9GG21211113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21211113fooEv,_ZTv0_n20_N9GG21211113fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21211113fooEv,_ZThn32_N9GG21211113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21211113fooEv,_ZTv0_n12_N9GG21211113fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21211113fooEv,_ZThn40_N9GG21211113fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2121111[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2121111[0]),
+ (VTBL_ENTRY)&_ZN9GG21211113fooEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2121111[0]),
+ (VTBL_ENTRY)&_ZN5EE2123barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2121111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2121111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21211113fooEv,_ZTv0_n12_N9GG21211113fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2121111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21211113fooEv,_ZTv0_n20_N9GG21211113fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2121111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21211113fooEv,_ZTv0_n12_N9GG21211113fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2121111[];
+extern void _ZN5EE2123barEv();
+static VTBL_ENTRY _tg__ZTV5EE212__9GG2121111[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN5EE2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv)();
+extern void ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE212__9GG2121111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE212__9GG2121111[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG2121111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG2121111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG2121111[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG2121111[] = {
+ {&(_ZTV9GG2121111[7]), 7,32},
+ {&(_ZTV9GG2121111[13]), 13,32},
+ {&(_ZTV9GG2121111[17]), 17,32},
+ {&(_ZTV9GG2121111[21]), 21,32},
+ {&(_ZTV9GG2121111[27]), 27,32},
+ {&(_ZTV9GG2121111[31]), 31,32},
+ {&(_tg__ZTV5EE212__9GG2121111[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE212__9GG2121111[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE212__9GG2121111[3]), 3,4},
+ {&(_tg__ZTV5FF111__9GG2121111[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG2121111[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG2121111[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2121111[];
+extern VTBL_ENTRY _ZTV9GG2121111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2121111[];
+static VTBL_ENTRY alt_thunk_names496[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21211113fooEv,_ZTv0_n20_N9GG21211113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21211113fooEv,_ZThn32_N9GG21211113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21211113fooEv,_ZTv0_n12_N9GG21211113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21211113fooEv,_ZThn40_N9GG21211113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21211113fooEv,_ZThn24_N9GG21211113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2121111 = { "GG2121111", // class name
+ bases_GG2121111, 5,
+ &(vtc_GG2121111[0]), // expected_vtbl_contents
+ &(vtt_GG2121111[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2121111),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2121111),32, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2121111),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names496,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2121113 : virtual EE212 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG21211133fooEv
+ virtual void bar(); // _ZN9GG21211133barEv
+ ~GG2121113(); // tgen
+ GG2121113(); // tgen
+};
+//SIG(1 GG2121113) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG2121113 ::foo(){vfunc_called(this, "_ZN9GG21211133fooEv");}
+void GG2121113 ::bar(){vfunc_called(this, "_ZN9GG21211133barEv");}
+GG2121113 ::~GG2121113(){ note_dtor("GG2121113", this);} // tgen
+GG2121113 ::GG2121113(){ note_ctor("GG2121113", this);} // tgen
+
+static void Test_GG2121113()
+{
+ extern Class_Descriptor cd_GG2121113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2121113, buf);
+ GG2121113 *dp, &lv = *(dp=new (buf) GG2121113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2121113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2121113)");
+ check_base_class_offset(lv, (AA2*)(EE212*), ABISELECT(32,16), "GG2121113");
+ check_base_class_offset(lv, (BB1*)(EE212*), ABISELECT(48,24), "GG2121113");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(48,24), "GG2121113");
+ check_base_class_offset(lv, (EE212*), ABISELECT(16,8), "GG2121113");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(80,40), "GG2121113");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG2121113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2121113.pg");
+ test_class_info(&lv, &cd_GG2121113);
+ dp->~GG2121113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2121113(Test_GG2121113, "GG2121113", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2121113C1Ev();
+extern void _ZN9GG2121113D1Ev();
+Name_Map name_map_GG2121113[] = {
+ NSPAIR(_ZN9GG2121113C1Ev),
+ NSPAIR(_ZN9GG2121113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE212;
+extern VTBL_ENTRY _ZTI5EE212[];
+extern VTBL_ENTRY _ZTV5EE212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE212[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG2121113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE212, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2121113[];
+extern void _ZN9GG21211133fooEv();
+extern void _ZN9GG21211133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21211133barEv,_ZTv0_n20_N9GG21211133barEv)();
+extern void ABISELECT(_ZThn16_N9GG21211133barEv,_ZThn8_N9GG21211133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21211133barEv,_ZTv0_n12_N9GG21211133barEv)();
+extern void ABISELECT(_ZThn32_N9GG21211133barEv,_ZThn16_N9GG21211133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21211133fooEv,_ZTv0_n12_N9GG21211133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21211133fooEv,_ZThn24_N9GG21211133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21211133fooEv,_ZTv0_n20_N9GG21211133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21211133fooEv,_ZThn32_N9GG21211133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21211133fooEv,_ZTv0_n12_N9GG21211133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21211133fooEv,_ZThn40_N9GG21211133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2121113[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2121113[0]),
+ (VTBL_ENTRY)&_ZN9GG21211133fooEv,
+ (VTBL_ENTRY)&_ZN9GG21211133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2121113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21211133barEv,_ZTv0_n20_N9GG21211133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2121113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21211133barEv,_ZTv0_n12_N9GG21211133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2121113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21211133fooEv,_ZTv0_n12_N9GG21211133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2121113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21211133fooEv,_ZTv0_n20_N9GG21211133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2121113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21211133fooEv,_ZTv0_n12_N9GG21211133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2121113[];
+extern void _ZN5EE2123barEv();
+static VTBL_ENTRY _tg__ZTV5EE212__9GG2121113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN5EE2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv)();
+extern void ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE212__9GG2121113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE212__9GG2121113[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG2121113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG2121113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG2121113[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG2121113[] = {
+ {&(_ZTV9GG2121113[7]), 7,33},
+ {&(_ZTV9GG2121113[14]), 14,33},
+ {&(_ZTV9GG2121113[18]), 18,33},
+ {&(_ZTV9GG2121113[22]), 22,33},
+ {&(_ZTV9GG2121113[28]), 28,33},
+ {&(_ZTV9GG2121113[32]), 32,33},
+ {&(_tg__ZTV5EE212__9GG2121113[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE212__9GG2121113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE212__9GG2121113[3]), 3,4},
+ {&(_tg__ZTV5FF111__9GG2121113[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG2121113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG2121113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2121113[];
+extern VTBL_ENTRY _ZTV9GG2121113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2121113[];
+static VTBL_ENTRY alt_thunk_names497[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21211133fooEv,_ZTv0_n20_N9GG21211133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21211133fooEv,_ZThn32_N9GG21211133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21211133fooEv,_ZTv0_n12_N9GG21211133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21211133fooEv,_ZThn40_N9GG21211133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21211133fooEv,_ZThn24_N9GG21211133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21211133barEv,_ZTv0_n12_N9GG21211133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21211133barEv,_ZThn16_N9GG21211133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21211133barEv,_ZTv0_n20_N9GG21211133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21211133barEv,_ZThn8_N9GG21211133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2121113 = { "GG2121113", // class name
+ bases_GG2121113, 5,
+ &(vtc_GG2121113[0]), // expected_vtbl_contents
+ &(vtt_GG2121113[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2121113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2121113),33, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2121113),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names497,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2121123 : virtual EE212 , virtual FF112 {
+ int pg;
+ virtual void foo(); // _ZN9GG21211233fooEv
+ virtual void bar(); // _ZN9GG21211233barEv
+ ~GG2121123(); // tgen
+ GG2121123(); // tgen
+};
+//SIG(1 GG2121123) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG2121123 ::foo(){vfunc_called(this, "_ZN9GG21211233fooEv");}
+void GG2121123 ::bar(){vfunc_called(this, "_ZN9GG21211233barEv");}
+GG2121123 ::~GG2121123(){ note_dtor("GG2121123", this);} // tgen
+GG2121123 ::GG2121123(){ note_ctor("GG2121123", this);} // tgen
+
+static void Test_GG2121123()
+{
+ extern Class_Descriptor cd_GG2121123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2121123, buf);
+ GG2121123 *dp, &lv = *(dp=new (buf) GG2121123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2121123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2121123)");
+ check_base_class_offset(lv, (AA2*)(EE212*), ABISELECT(32,16), "GG2121123");
+ check_base_class_offset(lv, (BB1*)(EE212*), ABISELECT(48,24), "GG2121123");
+ check_base_class_offset(lv, (BB1*)(FF112*), ABISELECT(48,24), "GG2121123");
+ check_base_class_offset(lv, (EE212*), ABISELECT(16,8), "GG2121123");
+ check_base_class_offset(lv, (AA1*)(FF112*), ABISELECT(80,40), "GG2121123");
+ check_base_class_offset(lv, (FF112*), ABISELECT(64,32), "GG2121123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2121123.pg");
+ test_class_info(&lv, &cd_GG2121123);
+ dp->~GG2121123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2121123(Test_GG2121123, "GG2121123", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2121123C1Ev();
+extern void _ZN9GG2121123D1Ev();
+Name_Map name_map_GG2121123[] = {
+ NSPAIR(_ZN9GG2121123C1Ev),
+ NSPAIR(_ZN9GG2121123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE212;
+extern VTBL_ENTRY _ZTI5EE212[];
+extern VTBL_ENTRY _ZTV5EE212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE212[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF112;
+extern VTBL_ENTRY _ZTI5FF112[];
+extern VTBL_ENTRY _ZTV5FF112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF112[];
+static Base_Class bases_GG2121123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE212, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF112, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2121123[];
+extern void _ZN9GG21211233fooEv();
+extern void _ZN9GG21211233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21211233barEv,_ZTv0_n20_N9GG21211233barEv)();
+extern void ABISELECT(_ZThn16_N9GG21211233barEv,_ZThn8_N9GG21211233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21211233barEv,_ZTv0_n12_N9GG21211233barEv)();
+extern void ABISELECT(_ZThn32_N9GG21211233barEv,_ZThn16_N9GG21211233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21211233fooEv,_ZTv0_n12_N9GG21211233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21211233fooEv,_ZThn24_N9GG21211233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21211233barEv,_ZTv0_n20_N9GG21211233barEv)();
+extern void ABISELECT(_ZThn64_N9GG21211233barEv,_ZThn32_N9GG21211233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21211233fooEv,_ZTv0_n12_N9GG21211233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21211233fooEv,_ZThn40_N9GG21211233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2121123[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2121123[0]),
+ (VTBL_ENTRY)&_ZN9GG21211233fooEv,
+ (VTBL_ENTRY)&_ZN9GG21211233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2121123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21211233barEv,_ZTv0_n20_N9GG21211233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2121123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21211233barEv,_ZTv0_n12_N9GG21211233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2121123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21211233fooEv,_ZTv0_n12_N9GG21211233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2121123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21211233barEv,_ZTv0_n20_N9GG21211233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2121123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21211233fooEv,_ZTv0_n12_N9GG21211233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2121123[];
+extern void _ZN5EE2123barEv();
+static VTBL_ENTRY _tg__ZTV5EE212__9GG2121123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN5EE2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv)();
+extern void ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE212__9GG2121123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE212__9GG2121123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF1123barEv();
+static VTBL_ENTRY _tg__ZTV5FF112__9GG2121123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN5FF1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF112__9GG2121123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF112__9GG2121123[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG2121123[] = {
+ {&(_ZTV9GG2121123[7]), 7,33},
+ {&(_ZTV9GG2121123[14]), 14,33},
+ {&(_ZTV9GG2121123[18]), 18,33},
+ {&(_ZTV9GG2121123[22]), 22,33},
+ {&(_ZTV9GG2121123[28]), 28,33},
+ {&(_ZTV9GG2121123[32]), 32,33},
+ {&(_tg__ZTV5EE212__9GG2121123[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE212__9GG2121123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE212__9GG2121123[3]), 3,4},
+ {&(_tg__ZTV5FF112__9GG2121123[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF112__9GG2121123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF112__9GG2121123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2121123[];
+extern VTBL_ENTRY _ZTV9GG2121123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2121123[];
+static VTBL_ENTRY alt_thunk_names498[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21211233fooEv,_ZTv0_n12_N9GG21211233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21211233fooEv,_ZThn40_N9GG21211233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21211233fooEv,_ZThn24_N9GG21211233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21211233barEv,_ZTv0_n12_N9GG21211233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21211233barEv,_ZThn16_N9GG21211233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21211233barEv,_ZTv0_n20_N9GG21211233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21211233barEv,_ZThn32_N9GG21211233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21211233barEv,_ZThn8_N9GG21211233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2121123 = { "GG2121123", // class name
+ bases_GG2121123, 5,
+ &(vtc_GG2121123[0]), // expected_vtbl_contents
+ &(vtt_GG2121123[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2121123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2121123),33, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2121123),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names498,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2121133 : virtual EE212 , virtual FF113 {
+ int pg;
+ virtual void foo(); // _ZN9GG21211333fooEv
+ virtual void bar(); // _ZN9GG21211333barEv
+ ~GG2121133(); // tgen
+ GG2121133(); // tgen
+};
+//SIG(1 GG2121133) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2121133 ::foo(){vfunc_called(this, "_ZN9GG21211333fooEv");}
+void GG2121133 ::bar(){vfunc_called(this, "_ZN9GG21211333barEv");}
+GG2121133 ::~GG2121133(){ note_dtor("GG2121133", this);} // tgen
+GG2121133 ::GG2121133(){ note_ctor("GG2121133", this);} // tgen
+
+static void Test_GG2121133()
+{
+ extern Class_Descriptor cd_GG2121133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2121133, buf);
+ GG2121133 *dp, &lv = *(dp=new (buf) GG2121133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2121133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2121133)");
+ check_base_class_offset(lv, (AA2*)(EE212*), ABISELECT(32,16), "GG2121133");
+ check_base_class_offset(lv, (BB1*)(EE212*), ABISELECT(48,24), "GG2121133");
+ check_base_class_offset(lv, (BB1*)(FF113*), ABISELECT(48,24), "GG2121133");
+ check_base_class_offset(lv, (EE212*), ABISELECT(16,8), "GG2121133");
+ check_base_class_offset(lv, (AA1*)(FF113*), ABISELECT(80,40), "GG2121133");
+ check_base_class_offset(lv, (FF113*), ABISELECT(64,32), "GG2121133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2121133.pg");
+ test_class_info(&lv, &cd_GG2121133);
+ dp->~GG2121133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2121133(Test_GG2121133, "GG2121133", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2121133C1Ev();
+extern void _ZN9GG2121133D1Ev();
+Name_Map name_map_GG2121133[] = {
+ NSPAIR(_ZN9GG2121133C1Ev),
+ NSPAIR(_ZN9GG2121133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE212;
+extern VTBL_ENTRY _ZTI5EE212[];
+extern VTBL_ENTRY _ZTV5EE212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE212[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF113;
+extern VTBL_ENTRY _ZTI5FF113[];
+extern VTBL_ENTRY _ZTV5FF113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF113[];
+static Base_Class bases_GG2121133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE212, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF113, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2121133[];
+extern void _ZN9GG21211333fooEv();
+extern void _ZN9GG21211333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21211333barEv,_ZTv0_n20_N9GG21211333barEv)();
+extern void ABISELECT(_ZThn16_N9GG21211333barEv,_ZThn8_N9GG21211333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21211333barEv,_ZTv0_n12_N9GG21211333barEv)();
+extern void ABISELECT(_ZThn32_N9GG21211333barEv,_ZThn16_N9GG21211333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21211333fooEv,_ZTv0_n12_N9GG21211333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21211333fooEv,_ZThn24_N9GG21211333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21211333fooEv,_ZTv0_n20_N9GG21211333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21211333fooEv,_ZThn32_N9GG21211333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21211333barEv,_ZTv0_n24_N9GG21211333barEv)();
+extern void ABISELECT(_ZThn64_N9GG21211333barEv,_ZThn32_N9GG21211333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21211333fooEv,_ZTv0_n12_N9GG21211333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21211333fooEv,_ZThn40_N9GG21211333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2121133[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2121133[0]),
+ (VTBL_ENTRY)&_ZN9GG21211333fooEv,
+ (VTBL_ENTRY)&_ZN9GG21211333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2121133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21211333barEv,_ZTv0_n20_N9GG21211333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2121133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21211333barEv,_ZTv0_n12_N9GG21211333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2121133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21211333fooEv,_ZTv0_n12_N9GG21211333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2121133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21211333fooEv,_ZTv0_n20_N9GG21211333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21211333barEv,_ZTv0_n24_N9GG21211333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2121133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21211333fooEv,_ZTv0_n12_N9GG21211333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2121133[];
+extern void _ZN5EE2123barEv();
+static VTBL_ENTRY _tg__ZTV5EE212__9GG2121133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN5EE2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv)();
+extern void ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE212__9GG2121133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE212__9GG2121133[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF1133fooEv();
+extern void _ZN5FF1133barEv();
+static VTBL_ENTRY _tg__ZTV5FF113__9GG2121133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&_ZN5FF1133fooEv,
+ (VTBL_ENTRY)&_ZN5FF1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF113__9GG2121133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF113__9GG2121133[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+static VTT_ENTRY vtt_GG2121133[] = {
+ {&(_ZTV9GG2121133[7]), 7,35},
+ {&(_ZTV9GG2121133[14]), 14,35},
+ {&(_ZTV9GG2121133[18]), 18,35},
+ {&(_ZTV9GG2121133[22]), 22,35},
+ {&(_ZTV9GG2121133[29]), 29,35},
+ {&(_ZTV9GG2121133[34]), 34,35},
+ {&(_tg__ZTV5EE212__9GG2121133[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE212__9GG2121133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE212__9GG2121133[3]), 3,4},
+ {&(_tg__ZTV5FF113__9GG2121133[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF113__9GG2121133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF113__9GG2121133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2121133[];
+extern VTBL_ENTRY _ZTV9GG2121133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2121133[];
+static VTBL_ENTRY alt_thunk_names499[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG21211333barEv,_ZTv0_n24_N9GG21211333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21211333barEv,_ZThn32_N9GG21211333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21211333fooEv,_ZTv0_n20_N9GG21211333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21211333fooEv,_ZThn32_N9GG21211333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21211333fooEv,_ZTv0_n12_N9GG21211333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21211333fooEv,_ZThn40_N9GG21211333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21211333fooEv,_ZThn24_N9GG21211333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21211333barEv,_ZTv0_n12_N9GG21211333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21211333barEv,_ZThn16_N9GG21211333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21211333barEv,_ZTv0_n20_N9GG21211333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21211333barEv,_ZThn8_N9GG21211333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2121133 = { "GG2121133", // class name
+ bases_GG2121133, 5,
+ &(vtc_GG2121133[0]), // expected_vtbl_contents
+ &(vtt_GG2121133[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2121133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2121133),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2121133),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names499,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2121213 : virtual EE212 , virtual FF121 {
+ int pg;
+ virtual void foo(); // _ZN9GG21212133fooEv
+ virtual void bar(); // _ZN9GG21212133barEv
+ ~GG2121213(); // tgen
+ GG2121213(); // tgen
+};
+//SIG(1 GG2121213) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2121213 ::foo(){vfunc_called(this, "_ZN9GG21212133fooEv");}
+void GG2121213 ::bar(){vfunc_called(this, "_ZN9GG21212133barEv");}
+GG2121213 ::~GG2121213(){ note_dtor("GG2121213", this);} // tgen
+GG2121213 ::GG2121213(){ note_ctor("GG2121213", this);} // tgen
+
+static void Test_GG2121213()
+{
+ extern Class_Descriptor cd_GG2121213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2121213, buf);
+ GG2121213 *dp, &lv = *(dp=new (buf) GG2121213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2121213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2121213)");
+ check_base_class_offset(lv, (AA2*)(EE212*), ABISELECT(32,16), "GG2121213");
+ check_base_class_offset(lv, (BB1*)(EE212*), ABISELECT(48,24), "GG2121213");
+ check_base_class_offset(lv, (EE212*), ABISELECT(16,8), "GG2121213");
+ check_base_class_offset(lv, (AA1*)(FF121*), ABISELECT(80,40), "GG2121213");
+ check_base_class_offset(lv, (BB2*)(FF121*), ABISELECT(96,48), "GG2121213");
+ check_base_class_offset(lv, (FF121*), ABISELECT(64,32), "GG2121213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2121213.pg");
+ test_class_info(&lv, &cd_GG2121213);
+ dp->~GG2121213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2121213(Test_GG2121213, "GG2121213", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2121213C1Ev();
+extern void _ZN9GG2121213D1Ev();
+Name_Map name_map_GG2121213[] = {
+ NSPAIR(_ZN9GG2121213C1Ev),
+ NSPAIR(_ZN9GG2121213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE212;
+extern VTBL_ENTRY _ZTI5EE212[];
+extern VTBL_ENTRY _ZTV5EE212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE212[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF121;
+extern VTBL_ENTRY _ZTI5FF121[];
+extern VTBL_ENTRY _ZTV5FF121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF121[];
+static Base_Class bases_GG2121213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE212, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF121, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2121213[];
+extern void _ZN9GG21212133fooEv();
+extern void _ZN9GG21212133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21212133barEv,_ZTv0_n20_N9GG21212133barEv)();
+extern void ABISELECT(_ZThn16_N9GG21212133barEv,_ZThn8_N9GG21212133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21212133barEv,_ZTv0_n12_N9GG21212133barEv)();
+extern void ABISELECT(_ZThn32_N9GG21212133barEv,_ZThn16_N9GG21212133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21212133fooEv,_ZTv0_n12_N9GG21212133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21212133fooEv,_ZThn24_N9GG21212133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21212133fooEv,_ZTv0_n20_N9GG21212133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21212133fooEv,_ZThn32_N9GG21212133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21212133fooEv,_ZTv0_n12_N9GG21212133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21212133fooEv,_ZThn40_N9GG21212133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21212133barEv,_ZTv0_n12_N9GG21212133barEv)();
+extern void ABISELECT(_ZThn96_N9GG21212133barEv,_ZThn48_N9GG21212133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2121213[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2121213[0]),
+ (VTBL_ENTRY)&_ZN9GG21212133fooEv,
+ (VTBL_ENTRY)&_ZN9GG21212133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2121213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21212133barEv,_ZTv0_n20_N9GG21212133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2121213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21212133barEv,_ZTv0_n12_N9GG21212133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2121213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21212133fooEv,_ZTv0_n12_N9GG21212133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2121213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21212133fooEv,_ZTv0_n20_N9GG21212133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2121213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21212133fooEv,_ZTv0_n12_N9GG21212133fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2121213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21212133barEv,_ZTv0_n12_N9GG21212133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2121213[];
+extern void _ZN5EE2123barEv();
+static VTBL_ENTRY _tg__ZTV5EE212__9GG2121213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN5EE2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv)();
+extern void ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE212__9GG2121213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE212__9GG2121213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF1213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF121__9GG2121213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN5FF1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1213fooEv,_ZThn8_N5FF1213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF121__9GG2121213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF121__9GG2121213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG2121213[] = {
+ {&(_ZTV9GG2121213[8]), 8,38},
+ {&(_ZTV9GG2121213[15]), 15,38},
+ {&(_ZTV9GG2121213[19]), 19,38},
+ {&(_ZTV9GG2121213[23]), 23,38},
+ {&(_ZTV9GG2121213[29]), 29,38},
+ {&(_ZTV9GG2121213[33]), 33,38},
+ {&(_ZTV9GG2121213[37]), 37,38},
+ {&(_tg__ZTV5EE212__9GG2121213[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE212__9GG2121213[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE212__9GG2121213[3]), 3,4},
+ {&(_tg__ZTV5FF121__9GG2121213[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF121__9GG2121213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF121__9GG2121213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2121213[];
+extern VTBL_ENTRY _ZTV9GG2121213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2121213[];
+static VTBL_ENTRY alt_thunk_names500[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1213fooEv,_ZThn8_N5FF1213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21212133fooEv,_ZTv0_n20_N9GG21212133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21212133fooEv,_ZThn32_N9GG21212133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21212133fooEv,_ZTv0_n12_N9GG21212133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21212133fooEv,_ZThn40_N9GG21212133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21212133fooEv,_ZThn24_N9GG21212133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21212133barEv,_ZTv0_n12_N9GG21212133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21212133barEv,_ZThn48_N9GG21212133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21212133barEv,_ZThn16_N9GG21212133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21212133barEv,_ZTv0_n20_N9GG21212133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21212133barEv,_ZThn8_N9GG21212133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2121213 = { "GG2121213", // class name
+ bases_GG2121213, 6,
+ &(vtc_GG2121213[0]), // expected_vtbl_contents
+ &(vtt_GG2121213[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2121213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2121213),38, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2121213),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names500,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2121223 : virtual EE212 , virtual FF122 {
+ int pg;
+ virtual void foo(); // _ZN9GG21212233fooEv
+ virtual void bar(); // _ZN9GG21212233barEv
+ ~GG2121223(); // tgen
+ GG2121223(); // tgen
+};
+//SIG(1 GG2121223) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2121223 ::foo(){vfunc_called(this, "_ZN9GG21212233fooEv");}
+void GG2121223 ::bar(){vfunc_called(this, "_ZN9GG21212233barEv");}
+GG2121223 ::~GG2121223(){ note_dtor("GG2121223", this);} // tgen
+GG2121223 ::GG2121223(){ note_ctor("GG2121223", this);} // tgen
+
+static void Test_GG2121223()
+{
+ extern Class_Descriptor cd_GG2121223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2121223, buf);
+ GG2121223 *dp, &lv = *(dp=new (buf) GG2121223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2121223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2121223)");
+ check_base_class_offset(lv, (AA2*)(EE212*), ABISELECT(32,16), "GG2121223");
+ check_base_class_offset(lv, (BB1*)(EE212*), ABISELECT(48,24), "GG2121223");
+ check_base_class_offset(lv, (EE212*), ABISELECT(16,8), "GG2121223");
+ check_base_class_offset(lv, (AA1*)(FF122*), ABISELECT(80,40), "GG2121223");
+ check_base_class_offset(lv, (BB2*)(FF122*), ABISELECT(96,48), "GG2121223");
+ check_base_class_offset(lv, (FF122*), ABISELECT(64,32), "GG2121223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2121223.pg");
+ test_class_info(&lv, &cd_GG2121223);
+ dp->~GG2121223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2121223(Test_GG2121223, "GG2121223", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2121223C1Ev();
+extern void _ZN9GG2121223D1Ev();
+Name_Map name_map_GG2121223[] = {
+ NSPAIR(_ZN9GG2121223C1Ev),
+ NSPAIR(_ZN9GG2121223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE212;
+extern VTBL_ENTRY _ZTI5EE212[];
+extern VTBL_ENTRY _ZTV5EE212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE212[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF122;
+extern VTBL_ENTRY _ZTI5FF122[];
+extern VTBL_ENTRY _ZTV5FF122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF122[];
+static Base_Class bases_GG2121223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE212, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF122, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2121223[];
+extern void _ZN9GG21212233fooEv();
+extern void _ZN9GG21212233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21212233barEv,_ZTv0_n20_N9GG21212233barEv)();
+extern void ABISELECT(_ZThn16_N9GG21212233barEv,_ZThn8_N9GG21212233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21212233barEv,_ZTv0_n12_N9GG21212233barEv)();
+extern void ABISELECT(_ZThn32_N9GG21212233barEv,_ZThn16_N9GG21212233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21212233fooEv,_ZTv0_n12_N9GG21212233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21212233fooEv,_ZThn24_N9GG21212233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21212233barEv,_ZTv0_n20_N9GG21212233barEv)();
+extern void ABISELECT(_ZThn64_N9GG21212233barEv,_ZThn32_N9GG21212233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21212233fooEv,_ZTv0_n12_N9GG21212233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21212233fooEv,_ZThn40_N9GG21212233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21212233barEv,_ZTv0_n12_N9GG21212233barEv)();
+extern void ABISELECT(_ZThn96_N9GG21212233barEv,_ZThn48_N9GG21212233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2121223[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2121223[0]),
+ (VTBL_ENTRY)&_ZN9GG21212233fooEv,
+ (VTBL_ENTRY)&_ZN9GG21212233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2121223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21212233barEv,_ZTv0_n20_N9GG21212233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2121223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21212233barEv,_ZTv0_n12_N9GG21212233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2121223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21212233fooEv,_ZTv0_n12_N9GG21212233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2121223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21212233barEv,_ZTv0_n20_N9GG21212233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2121223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21212233fooEv,_ZTv0_n12_N9GG21212233fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2121223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21212233barEv,_ZTv0_n12_N9GG21212233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2121223[];
+extern void _ZN5EE2123barEv();
+static VTBL_ENTRY _tg__ZTV5EE212__9GG2121223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN5EE2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv)();
+extern void ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE212__9GG2121223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE212__9GG2121223[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF1223barEv();
+static VTBL_ENTRY _tg__ZTV5FF122__9GG2121223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN5FF1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF122__9GG2121223[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv)();
+extern void ABISELECT(_ZThn32_N5FF1223barEv,_ZThn16_N5FF1223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF122__9GG2121223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv),
+};
+static VTT_ENTRY vtt_GG2121223[] = {
+ {&(_ZTV9GG2121223[8]), 8,38},
+ {&(_ZTV9GG2121223[15]), 15,38},
+ {&(_ZTV9GG2121223[19]), 19,38},
+ {&(_ZTV9GG2121223[23]), 23,38},
+ {&(_ZTV9GG2121223[29]), 29,38},
+ {&(_ZTV9GG2121223[33]), 33,38},
+ {&(_ZTV9GG2121223[37]), 37,38},
+ {&(_tg__ZTV5EE212__9GG2121223[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE212__9GG2121223[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE212__9GG2121223[3]), 3,4},
+ {&(_tg__ZTV5FF122__9GG2121223[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF122__9GG2121223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF122__9GG2121223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2121223[];
+extern VTBL_ENTRY _ZTV9GG2121223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2121223[];
+static VTBL_ENTRY alt_thunk_names501[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1223barEv,_ZThn16_N5FF1223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21212233fooEv,_ZTv0_n12_N9GG21212233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21212233fooEv,_ZThn40_N9GG21212233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21212233fooEv,_ZThn24_N9GG21212233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21212233barEv,_ZTv0_n12_N9GG21212233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21212233barEv,_ZThn48_N9GG21212233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21212233barEv,_ZThn16_N9GG21212233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21212233barEv,_ZTv0_n20_N9GG21212233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21212233barEv,_ZThn32_N9GG21212233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21212233barEv,_ZThn8_N9GG21212233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2121223 = { "GG2121223", // class name
+ bases_GG2121223, 6,
+ &(vtc_GG2121223[0]), // expected_vtbl_contents
+ &(vtt_GG2121223[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2121223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2121223),38, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2121223),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names501,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2121233 : virtual EE212 , virtual FF123 {
+ int pg;
+ virtual void foo(); // _ZN9GG21212333fooEv
+ virtual void bar(); // _ZN9GG21212333barEv
+ ~GG2121233(); // tgen
+ GG2121233(); // tgen
+};
+//SIG(1 GG2121233) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2121233 ::foo(){vfunc_called(this, "_ZN9GG21212333fooEv");}
+void GG2121233 ::bar(){vfunc_called(this, "_ZN9GG21212333barEv");}
+GG2121233 ::~GG2121233(){ note_dtor("GG2121233", this);} // tgen
+GG2121233 ::GG2121233(){ note_ctor("GG2121233", this);} // tgen
+
+static void Test_GG2121233()
+{
+ extern Class_Descriptor cd_GG2121233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2121233, buf);
+ GG2121233 *dp, &lv = *(dp=new (buf) GG2121233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2121233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2121233)");
+ check_base_class_offset(lv, (AA2*)(EE212*), ABISELECT(32,16), "GG2121233");
+ check_base_class_offset(lv, (BB1*)(EE212*), ABISELECT(48,24), "GG2121233");
+ check_base_class_offset(lv, (EE212*), ABISELECT(16,8), "GG2121233");
+ check_base_class_offset(lv, (AA1*)(FF123*), ABISELECT(80,40), "GG2121233");
+ check_base_class_offset(lv, (BB2*)(FF123*), ABISELECT(96,48), "GG2121233");
+ check_base_class_offset(lv, (FF123*), ABISELECT(64,32), "GG2121233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2121233.pg");
+ test_class_info(&lv, &cd_GG2121233);
+ dp->~GG2121233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2121233(Test_GG2121233, "GG2121233", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2121233C1Ev();
+extern void _ZN9GG2121233D1Ev();
+Name_Map name_map_GG2121233[] = {
+ NSPAIR(_ZN9GG2121233C1Ev),
+ NSPAIR(_ZN9GG2121233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE212;
+extern VTBL_ENTRY _ZTI5EE212[];
+extern VTBL_ENTRY _ZTV5EE212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE212[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF123;
+extern VTBL_ENTRY _ZTI5FF123[];
+extern VTBL_ENTRY _ZTV5FF123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF123[];
+static Base_Class bases_GG2121233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE212, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF123, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2121233[];
+extern void _ZN9GG21212333fooEv();
+extern void _ZN9GG21212333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21212333barEv,_ZTv0_n20_N9GG21212333barEv)();
+extern void ABISELECT(_ZThn16_N9GG21212333barEv,_ZThn8_N9GG21212333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21212333barEv,_ZTv0_n12_N9GG21212333barEv)();
+extern void ABISELECT(_ZThn32_N9GG21212333barEv,_ZThn16_N9GG21212333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21212333fooEv,_ZTv0_n12_N9GG21212333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21212333fooEv,_ZThn24_N9GG21212333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21212333fooEv,_ZTv0_n20_N9GG21212333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21212333fooEv,_ZThn32_N9GG21212333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21212333barEv,_ZTv0_n24_N9GG21212333barEv)();
+extern void ABISELECT(_ZThn64_N9GG21212333barEv,_ZThn32_N9GG21212333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21212333fooEv,_ZTv0_n12_N9GG21212333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21212333fooEv,_ZThn40_N9GG21212333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21212333barEv,_ZTv0_n12_N9GG21212333barEv)();
+extern void ABISELECT(_ZThn96_N9GG21212333barEv,_ZThn48_N9GG21212333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2121233[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2121233[0]),
+ (VTBL_ENTRY)&_ZN9GG21212333fooEv,
+ (VTBL_ENTRY)&_ZN9GG21212333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2121233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21212333barEv,_ZTv0_n20_N9GG21212333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2121233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21212333barEv,_ZTv0_n12_N9GG21212333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2121233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21212333fooEv,_ZTv0_n12_N9GG21212333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2121233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21212333fooEv,_ZTv0_n20_N9GG21212333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21212333barEv,_ZTv0_n24_N9GG21212333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2121233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21212333fooEv,_ZTv0_n12_N9GG21212333fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2121233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21212333barEv,_ZTv0_n12_N9GG21212333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2121233[];
+extern void _ZN5EE2123barEv();
+static VTBL_ENTRY _tg__ZTV5EE212__9GG2121233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN5EE2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv)();
+extern void ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE212__9GG2121233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE212__9GG2121233[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF1233fooEv();
+extern void _ZN5FF1233barEv();
+static VTBL_ENTRY _tg__ZTV5FF123__9GG2121233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&_ZN5FF1233fooEv,
+ (VTBL_ENTRY)&_ZN5FF1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1233fooEv,_ZThn8_N5FF1233fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF123__9GG2121233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv)();
+extern void ABISELECT(_ZThn32_N5FF1233barEv,_ZThn16_N5FF1233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF123__9GG2121233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv),
+};
+static VTT_ENTRY vtt_GG2121233[] = {
+ {&(_ZTV9GG2121233[8]), 8,40},
+ {&(_ZTV9GG2121233[15]), 15,40},
+ {&(_ZTV9GG2121233[19]), 19,40},
+ {&(_ZTV9GG2121233[23]), 23,40},
+ {&(_ZTV9GG2121233[30]), 30,40},
+ {&(_ZTV9GG2121233[35]), 35,40},
+ {&(_ZTV9GG2121233[39]), 39,40},
+ {&(_tg__ZTV5EE212__9GG2121233[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE212__9GG2121233[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE212__9GG2121233[3]), 3,4},
+ {&(_tg__ZTV5FF123__9GG2121233[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF123__9GG2121233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF123__9GG2121233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2121233[];
+extern VTBL_ENTRY _ZTV9GG2121233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2121233[];
+static VTBL_ENTRY alt_thunk_names502[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1233barEv,_ZThn16_N5FF1233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1233fooEv,_ZThn8_N5FF1233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG21212333barEv,_ZTv0_n24_N9GG21212333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21212333barEv,_ZThn32_N9GG21212333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21212333fooEv,_ZTv0_n20_N9GG21212333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21212333fooEv,_ZThn32_N9GG21212333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21212333fooEv,_ZTv0_n12_N9GG21212333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21212333fooEv,_ZThn40_N9GG21212333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21212333fooEv,_ZThn24_N9GG21212333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21212333barEv,_ZTv0_n12_N9GG21212333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21212333barEv,_ZThn48_N9GG21212333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21212333barEv,_ZThn16_N9GG21212333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21212333barEv,_ZTv0_n20_N9GG21212333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21212333barEv,_ZThn8_N9GG21212333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2121233 = { "GG2121233", // class name
+ bases_GG2121233, 6,
+ &(vtc_GG2121233[0]), // expected_vtbl_contents
+ &(vtt_GG2121233[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2121233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2121233),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2121233),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names502,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2121313 : virtual EE212 , virtual FF131 {
+ int pg;
+ virtual void foo(); // _ZN9GG21213133fooEv
+ virtual void bar(); // _ZN9GG21213133barEv
+ ~GG2121313(); // tgen
+ GG2121313(); // tgen
+};
+//SIG(1 GG2121313) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2121313 ::foo(){vfunc_called(this, "_ZN9GG21213133fooEv");}
+void GG2121313 ::bar(){vfunc_called(this, "_ZN9GG21213133barEv");}
+GG2121313 ::~GG2121313(){ note_dtor("GG2121313", this);} // tgen
+GG2121313 ::GG2121313(){ note_ctor("GG2121313", this);} // tgen
+
+static void Test_GG2121313()
+{
+ extern Class_Descriptor cd_GG2121313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2121313, buf);
+ GG2121313 *dp, &lv = *(dp=new (buf) GG2121313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2121313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2121313)");
+ check_base_class_offset(lv, (AA2*)(EE212*), ABISELECT(32,16), "GG2121313");
+ check_base_class_offset(lv, (BB1*)(EE212*), ABISELECT(48,24), "GG2121313");
+ check_base_class_offset(lv, (EE212*), ABISELECT(16,8), "GG2121313");
+ check_base_class_offset(lv, (AA1*)(FF131*), ABISELECT(80,40), "GG2121313");
+ check_base_class_offset(lv, (BB3*)(FF131*), ABISELECT(96,48), "GG2121313");
+ check_base_class_offset(lv, (FF131*), ABISELECT(64,32), "GG2121313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2121313.pg");
+ test_class_info(&lv, &cd_GG2121313);
+ dp->~GG2121313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2121313(Test_GG2121313, "GG2121313", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2121313C1Ev();
+extern void _ZN9GG2121313D1Ev();
+Name_Map name_map_GG2121313[] = {
+ NSPAIR(_ZN9GG2121313C1Ev),
+ NSPAIR(_ZN9GG2121313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE212;
+extern VTBL_ENTRY _ZTI5EE212[];
+extern VTBL_ENTRY _ZTV5EE212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE212[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF131;
+extern VTBL_ENTRY _ZTI5FF131[];
+extern VTBL_ENTRY _ZTV5FF131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF131[];
+static Base_Class bases_GG2121313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE212, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF131, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2121313[];
+extern void _ZN9GG21213133fooEv();
+extern void _ZN9GG21213133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21213133barEv,_ZTv0_n20_N9GG21213133barEv)();
+extern void ABISELECT(_ZThn16_N9GG21213133barEv,_ZThn8_N9GG21213133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21213133barEv,_ZTv0_n12_N9GG21213133barEv)();
+extern void ABISELECT(_ZThn32_N9GG21213133barEv,_ZThn16_N9GG21213133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21213133fooEv,_ZTv0_n12_N9GG21213133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21213133fooEv,_ZThn24_N9GG21213133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21213133fooEv,_ZTv0_n20_N9GG21213133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21213133fooEv,_ZThn32_N9GG21213133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21213133fooEv,_ZTv0_n12_N9GG21213133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21213133fooEv,_ZThn40_N9GG21213133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21213133fooEv,_ZTv0_n12_N9GG21213133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG21213133fooEv,_ZThn48_N9GG21213133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21213133barEv,_ZTv0_n16_N9GG21213133barEv)();
+extern void ABISELECT(_ZThn96_N9GG21213133barEv,_ZThn48_N9GG21213133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2121313[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2121313[0]),
+ (VTBL_ENTRY)&_ZN9GG21213133fooEv,
+ (VTBL_ENTRY)&_ZN9GG21213133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2121313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21213133barEv,_ZTv0_n20_N9GG21213133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2121313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21213133barEv,_ZTv0_n12_N9GG21213133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2121313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21213133fooEv,_ZTv0_n12_N9GG21213133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2121313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21213133fooEv,_ZTv0_n20_N9GG21213133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2121313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21213133fooEv,_ZTv0_n12_N9GG21213133fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2121313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21213133fooEv,_ZTv0_n12_N9GG21213133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21213133barEv,_ZTv0_n16_N9GG21213133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2121313[];
+extern void _ZN5EE2123barEv();
+static VTBL_ENTRY _tg__ZTV5EE212__9GG2121313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN5EE2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv)();
+extern void ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE212__9GG2121313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE212__9GG2121313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF1313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF131__9GG2121313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&_ZN5FF1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF131__9GG2121313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1313fooEv,_ZThn16_N5FF1313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF131__9GG2121313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG2121313[] = {
+ {&(_ZTV9GG2121313[8]), 8,40},
+ {&(_ZTV9GG2121313[15]), 15,40},
+ {&(_ZTV9GG2121313[19]), 19,40},
+ {&(_ZTV9GG2121313[23]), 23,40},
+ {&(_ZTV9GG2121313[29]), 29,40},
+ {&(_ZTV9GG2121313[33]), 33,40},
+ {&(_ZTV9GG2121313[38]), 38,40},
+ {&(_tg__ZTV5EE212__9GG2121313[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE212__9GG2121313[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE212__9GG2121313[3]), 3,4},
+ {&(_tg__ZTV5FF131__9GG2121313[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF131__9GG2121313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF131__9GG2121313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2121313[];
+extern VTBL_ENTRY _ZTV9GG2121313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2121313[];
+static VTBL_ENTRY alt_thunk_names503[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1313fooEv,_ZThn16_N5FF1313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG21213133barEv,_ZTv0_n16_N9GG21213133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21213133barEv,_ZThn48_N9GG21213133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21213133fooEv,_ZTv0_n20_N9GG21213133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21213133fooEv,_ZThn32_N9GG21213133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21213133fooEv,_ZTv0_n12_N9GG21213133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21213133fooEv,_ZThn48_N9GG21213133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21213133fooEv,_ZThn40_N9GG21213133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21213133fooEv,_ZThn24_N9GG21213133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21213133barEv,_ZTv0_n12_N9GG21213133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21213133barEv,_ZThn16_N9GG21213133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21213133barEv,_ZTv0_n20_N9GG21213133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21213133barEv,_ZThn8_N9GG21213133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2121313 = { "GG2121313", // class name
+ bases_GG2121313, 6,
+ &(vtc_GG2121313[0]), // expected_vtbl_contents
+ &(vtt_GG2121313[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2121313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2121313),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2121313),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names503,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2121323 : virtual EE212 , virtual FF132 {
+ int pg;
+ virtual void foo(); // _ZN9GG21213233fooEv
+ virtual void bar(); // _ZN9GG21213233barEv
+ ~GG2121323(); // tgen
+ GG2121323(); // tgen
+};
+//SIG(1 GG2121323) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2121323 ::foo(){vfunc_called(this, "_ZN9GG21213233fooEv");}
+void GG2121323 ::bar(){vfunc_called(this, "_ZN9GG21213233barEv");}
+GG2121323 ::~GG2121323(){ note_dtor("GG2121323", this);} // tgen
+GG2121323 ::GG2121323(){ note_ctor("GG2121323", this);} // tgen
+
+static void Test_GG2121323()
+{
+ extern Class_Descriptor cd_GG2121323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2121323, buf);
+ GG2121323 *dp, &lv = *(dp=new (buf) GG2121323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2121323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2121323)");
+ check_base_class_offset(lv, (AA2*)(EE212*), ABISELECT(32,16), "GG2121323");
+ check_base_class_offset(lv, (BB1*)(EE212*), ABISELECT(48,24), "GG2121323");
+ check_base_class_offset(lv, (EE212*), ABISELECT(16,8), "GG2121323");
+ check_base_class_offset(lv, (AA1*)(FF132*), ABISELECT(80,40), "GG2121323");
+ check_base_class_offset(lv, (BB3*)(FF132*), ABISELECT(96,48), "GG2121323");
+ check_base_class_offset(lv, (FF132*), ABISELECT(64,32), "GG2121323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2121323.pg");
+ test_class_info(&lv, &cd_GG2121323);
+ dp->~GG2121323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2121323(Test_GG2121323, "GG2121323", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2121323C1Ev();
+extern void _ZN9GG2121323D1Ev();
+Name_Map name_map_GG2121323[] = {
+ NSPAIR(_ZN9GG2121323C1Ev),
+ NSPAIR(_ZN9GG2121323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE212;
+extern VTBL_ENTRY _ZTI5EE212[];
+extern VTBL_ENTRY _ZTV5EE212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE212[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF132;
+extern VTBL_ENTRY _ZTI5FF132[];
+extern VTBL_ENTRY _ZTV5FF132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF132[];
+static Base_Class bases_GG2121323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE212, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF132, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2121323[];
+extern void _ZN9GG21213233fooEv();
+extern void _ZN9GG21213233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21213233barEv,_ZTv0_n20_N9GG21213233barEv)();
+extern void ABISELECT(_ZThn16_N9GG21213233barEv,_ZThn8_N9GG21213233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21213233barEv,_ZTv0_n12_N9GG21213233barEv)();
+extern void ABISELECT(_ZThn32_N9GG21213233barEv,_ZThn16_N9GG21213233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21213233fooEv,_ZTv0_n12_N9GG21213233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21213233fooEv,_ZThn24_N9GG21213233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21213233barEv,_ZTv0_n20_N9GG21213233barEv)();
+extern void ABISELECT(_ZThn64_N9GG21213233barEv,_ZThn32_N9GG21213233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21213233fooEv,_ZTv0_n12_N9GG21213233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21213233fooEv,_ZThn40_N9GG21213233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21213233fooEv,_ZTv0_n12_N9GG21213233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG21213233fooEv,_ZThn48_N9GG21213233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21213233barEv,_ZTv0_n16_N9GG21213233barEv)();
+extern void ABISELECT(_ZThn96_N9GG21213233barEv,_ZThn48_N9GG21213233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2121323[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2121323[0]),
+ (VTBL_ENTRY)&_ZN9GG21213233fooEv,
+ (VTBL_ENTRY)&_ZN9GG21213233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2121323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21213233barEv,_ZTv0_n20_N9GG21213233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2121323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21213233barEv,_ZTv0_n12_N9GG21213233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2121323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21213233fooEv,_ZTv0_n12_N9GG21213233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2121323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21213233barEv,_ZTv0_n20_N9GG21213233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2121323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21213233fooEv,_ZTv0_n12_N9GG21213233fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2121323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21213233fooEv,_ZTv0_n12_N9GG21213233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21213233barEv,_ZTv0_n16_N9GG21213233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2121323[];
+extern void _ZN5EE2123barEv();
+static VTBL_ENTRY _tg__ZTV5EE212__9GG2121323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN5EE2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv)();
+extern void ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE212__9GG2121323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE212__9GG2121323[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF1323barEv();
+static VTBL_ENTRY _tg__ZTV5FF132__9GG2121323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN5FF1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF132__9GG2121323[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv)();
+extern void ABISELECT(_ZThn32_N5FF1323barEv,_ZThn16_N5FF1323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF132__9GG2121323[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv),
+};
+static VTT_ENTRY vtt_GG2121323[] = {
+ {&(_ZTV9GG2121323[8]), 8,40},
+ {&(_ZTV9GG2121323[15]), 15,40},
+ {&(_ZTV9GG2121323[19]), 19,40},
+ {&(_ZTV9GG2121323[23]), 23,40},
+ {&(_ZTV9GG2121323[29]), 29,40},
+ {&(_ZTV9GG2121323[33]), 33,40},
+ {&(_ZTV9GG2121323[38]), 38,40},
+ {&(_tg__ZTV5EE212__9GG2121323[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE212__9GG2121323[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE212__9GG2121323[3]), 3,4},
+ {&(_tg__ZTV5FF132__9GG2121323[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF132__9GG2121323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF132__9GG2121323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2121323[];
+extern VTBL_ENTRY _ZTV9GG2121323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2121323[];
+static VTBL_ENTRY alt_thunk_names504[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1323barEv,_ZThn16_N5FF1323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG21213233barEv,_ZTv0_n16_N9GG21213233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21213233barEv,_ZThn48_N9GG21213233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21213233fooEv,_ZTv0_n12_N9GG21213233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21213233fooEv,_ZThn48_N9GG21213233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21213233fooEv,_ZThn40_N9GG21213233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21213233fooEv,_ZThn24_N9GG21213233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21213233barEv,_ZTv0_n12_N9GG21213233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21213233barEv,_ZThn16_N9GG21213233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21213233barEv,_ZTv0_n20_N9GG21213233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21213233barEv,_ZThn32_N9GG21213233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21213233barEv,_ZThn8_N9GG21213233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2121323 = { "GG2121323", // class name
+ bases_GG2121323, 6,
+ &(vtc_GG2121323[0]), // expected_vtbl_contents
+ &(vtt_GG2121323[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2121323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2121323),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2121323),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names504,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2121333 : virtual EE212 , virtual FF133 {
+ int pg;
+ virtual void foo(); // _ZN9GG21213333fooEv
+ virtual void bar(); // _ZN9GG21213333barEv
+ ~GG2121333(); // tgen
+ GG2121333(); // tgen
+};
+//SIG(1 GG2121333) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2121333 ::foo(){vfunc_called(this, "_ZN9GG21213333fooEv");}
+void GG2121333 ::bar(){vfunc_called(this, "_ZN9GG21213333barEv");}
+GG2121333 ::~GG2121333(){ note_dtor("GG2121333", this);} // tgen
+GG2121333 ::GG2121333(){ note_ctor("GG2121333", this);} // tgen
+
+static void Test_GG2121333()
+{
+ extern Class_Descriptor cd_GG2121333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2121333, buf);
+ GG2121333 *dp, &lv = *(dp=new (buf) GG2121333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2121333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2121333)");
+ check_base_class_offset(lv, (AA2*)(EE212*), ABISELECT(32,16), "GG2121333");
+ check_base_class_offset(lv, (BB1*)(EE212*), ABISELECT(48,24), "GG2121333");
+ check_base_class_offset(lv, (EE212*), ABISELECT(16,8), "GG2121333");
+ check_base_class_offset(lv, (AA1*)(FF133*), ABISELECT(80,40), "GG2121333");
+ check_base_class_offset(lv, (BB3*)(FF133*), ABISELECT(96,48), "GG2121333");
+ check_base_class_offset(lv, (FF133*), ABISELECT(64,32), "GG2121333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2121333.pg");
+ test_class_info(&lv, &cd_GG2121333);
+ dp->~GG2121333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2121333(Test_GG2121333, "GG2121333", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2121333C1Ev();
+extern void _ZN9GG2121333D1Ev();
+Name_Map name_map_GG2121333[] = {
+ NSPAIR(_ZN9GG2121333C1Ev),
+ NSPAIR(_ZN9GG2121333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE212;
+extern VTBL_ENTRY _ZTI5EE212[];
+extern VTBL_ENTRY _ZTV5EE212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE212[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF133;
+extern VTBL_ENTRY _ZTI5FF133[];
+extern VTBL_ENTRY _ZTV5FF133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF133[];
+static Base_Class bases_GG2121333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE212, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF133, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2121333[];
+extern void _ZN9GG21213333fooEv();
+extern void _ZN9GG21213333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21213333barEv,_ZTv0_n20_N9GG21213333barEv)();
+extern void ABISELECT(_ZThn16_N9GG21213333barEv,_ZThn8_N9GG21213333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21213333barEv,_ZTv0_n12_N9GG21213333barEv)();
+extern void ABISELECT(_ZThn32_N9GG21213333barEv,_ZThn16_N9GG21213333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21213333fooEv,_ZTv0_n12_N9GG21213333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21213333fooEv,_ZThn24_N9GG21213333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21213333fooEv,_ZTv0_n20_N9GG21213333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21213333fooEv,_ZThn32_N9GG21213333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21213333barEv,_ZTv0_n24_N9GG21213333barEv)();
+extern void ABISELECT(_ZThn64_N9GG21213333barEv,_ZThn32_N9GG21213333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21213333fooEv,_ZTv0_n12_N9GG21213333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21213333fooEv,_ZThn40_N9GG21213333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21213333fooEv,_ZTv0_n12_N9GG21213333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG21213333fooEv,_ZThn48_N9GG21213333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21213333barEv,_ZTv0_n16_N9GG21213333barEv)();
+extern void ABISELECT(_ZThn96_N9GG21213333barEv,_ZThn48_N9GG21213333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2121333[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2121333[0]),
+ (VTBL_ENTRY)&_ZN9GG21213333fooEv,
+ (VTBL_ENTRY)&_ZN9GG21213333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2121333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21213333barEv,_ZTv0_n20_N9GG21213333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2121333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21213333barEv,_ZTv0_n12_N9GG21213333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2121333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21213333fooEv,_ZTv0_n12_N9GG21213333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2121333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21213333fooEv,_ZTv0_n20_N9GG21213333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21213333barEv,_ZTv0_n24_N9GG21213333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2121333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21213333fooEv,_ZTv0_n12_N9GG21213333fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2121333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21213333fooEv,_ZTv0_n12_N9GG21213333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21213333barEv,_ZTv0_n16_N9GG21213333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2121333[];
+extern void _ZN5EE2123barEv();
+static VTBL_ENTRY _tg__ZTV5EE212__9GG2121333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN5EE2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv)();
+extern void ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE212__9GG2121333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE212__9GG2121333[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF1333fooEv();
+extern void _ZN5FF1333barEv();
+static VTBL_ENTRY _tg__ZTV5FF133__9GG2121333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&_ZN5FF1333fooEv,
+ (VTBL_ENTRY)&_ZN5FF1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF133__9GG2121333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1333fooEv,_ZThn16_N5FF1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv)();
+extern void ABISELECT(_ZThn32_N5FF1333barEv,_ZThn16_N5FF1333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF133__9GG2121333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv),
+};
+static VTT_ENTRY vtt_GG2121333[] = {
+ {&(_ZTV9GG2121333[8]), 8,42},
+ {&(_ZTV9GG2121333[15]), 15,42},
+ {&(_ZTV9GG2121333[19]), 19,42},
+ {&(_ZTV9GG2121333[23]), 23,42},
+ {&(_ZTV9GG2121333[30]), 30,42},
+ {&(_ZTV9GG2121333[35]), 35,42},
+ {&(_ZTV9GG2121333[40]), 40,42},
+ {&(_tg__ZTV5EE212__9GG2121333[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE212__9GG2121333[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE212__9GG2121333[3]), 3,4},
+ {&(_tg__ZTV5FF133__9GG2121333[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF133__9GG2121333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF133__9GG2121333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2121333[];
+extern VTBL_ENTRY _ZTV9GG2121333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2121333[];
+static VTBL_ENTRY alt_thunk_names505[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1333barEv,_ZThn16_N5FF1333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1333fooEv,_ZThn16_N5FF1333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG21213333barEv,_ZTv0_n16_N9GG21213333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21213333barEv,_ZThn48_N9GG21213333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG21213333barEv,_ZTv0_n24_N9GG21213333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21213333barEv,_ZThn32_N9GG21213333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21213333fooEv,_ZTv0_n20_N9GG21213333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21213333fooEv,_ZThn32_N9GG21213333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21213333fooEv,_ZTv0_n12_N9GG21213333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21213333fooEv,_ZThn48_N9GG21213333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21213333fooEv,_ZThn40_N9GG21213333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21213333fooEv,_ZThn24_N9GG21213333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21213333barEv,_ZTv0_n12_N9GG21213333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21213333barEv,_ZThn16_N9GG21213333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21213333barEv,_ZTv0_n20_N9GG21213333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21213333barEv,_ZThn8_N9GG21213333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2121333 = { "GG2121333", // class name
+ bases_GG2121333, 6,
+ &(vtc_GG2121333[0]), // expected_vtbl_contents
+ &(vtt_GG2121333[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2121333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2121333),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2121333),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names505,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2122113 : virtual EE212 , virtual FF211 {
+ int pg;
+ virtual void foo(); // _ZN9GG21221133fooEv
+ virtual void bar(); // _ZN9GG21221133barEv
+ ~GG2122113(); // tgen
+ GG2122113(); // tgen
+};
+//SIG(1 GG2122113) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC3 VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG2122113 ::foo(){vfunc_called(this, "_ZN9GG21221133fooEv");}
+void GG2122113 ::bar(){vfunc_called(this, "_ZN9GG21221133barEv");}
+GG2122113 ::~GG2122113(){ note_dtor("GG2122113", this);} // tgen
+GG2122113 ::GG2122113(){ note_ctor("GG2122113", this);} // tgen
+
+static void Test_GG2122113()
+{
+ extern Class_Descriptor cd_GG2122113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG2122113, buf);
+ GG2122113 *dp, &lv = *(dp=new (buf) GG2122113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG2122113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2122113)");
+ check_base_class_offset(lv, (AA2*)(EE212*), ABISELECT(32,16), "GG2122113");
+ check_base_class_offset(lv, (AA2*)(FF211*), ABISELECT(32,16), "GG2122113");
+ check_base_class_offset(lv, (BB1*)(EE212*), ABISELECT(48,24), "GG2122113");
+ check_base_class_offset(lv, (BB1*)(FF211*), ABISELECT(48,24), "GG2122113");
+ check_base_class_offset(lv, (EE212*), ABISELECT(16,8), "GG2122113");
+ check_base_class_offset(lv, (FF211*), ABISELECT(64,32), "GG2122113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2122113.pg");
+ test_class_info(&lv, &cd_GG2122113);
+ dp->~GG2122113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2122113(Test_GG2122113, "GG2122113", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG2122113C1Ev();
+extern void _ZN9GG2122113D1Ev();
+Name_Map name_map_GG2122113[] = {
+ NSPAIR(_ZN9GG2122113C1Ev),
+ NSPAIR(_ZN9GG2122113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE212;
+extern VTBL_ENTRY _ZTI5EE212[];
+extern VTBL_ENTRY _ZTV5EE212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE212[];
+extern Class_Descriptor cd_FF211;
+extern VTBL_ENTRY _ZTI5FF211[];
+extern VTBL_ENTRY _ZTV5FF211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF211[];
+static Base_Class bases_GG2122113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE212, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF211, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2122113[];
+extern void _ZN9GG21221133fooEv();
+extern void _ZN9GG21221133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21221133barEv,_ZTv0_n20_N9GG21221133barEv)();
+extern void ABISELECT(_ZThn16_N9GG21221133barEv,_ZThn8_N9GG21221133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21221133barEv,_ZTv0_n12_N9GG21221133barEv)();
+extern void ABISELECT(_ZThn32_N9GG21221133barEv,_ZThn16_N9GG21221133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21221133fooEv,_ZTv0_n12_N9GG21221133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21221133fooEv,_ZThn24_N9GG21221133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21221133fooEv,_ZTv0_n20_N9GG21221133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21221133fooEv,_ZThn32_N9GG21221133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2122113[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2122113[0]),
+ (VTBL_ENTRY)&_ZN9GG21221133fooEv,
+ (VTBL_ENTRY)&_ZN9GG21221133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2122113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21221133barEv,_ZTv0_n20_N9GG21221133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2122113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21221133barEv,_ZTv0_n12_N9GG21221133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2122113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21221133fooEv,_ZTv0_n12_N9GG21221133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2122113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21221133fooEv,_ZTv0_n20_N9GG21221133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2122113[];
+extern void _ZN5EE2123barEv();
+static VTBL_ENTRY _tg__ZTV5EE212__9GG2122113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN5EE2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv)();
+extern void ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE212__9GG2122113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE212__9GG2122113[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF2113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF211__9GG2122113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN5FF2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF211__9GG2122113[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF211__9GG2122113[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv),
+};
+static VTT_ENTRY vtt_GG2122113[] = {
+ {&(_ZTV9GG2122113[6]), 6,28},
+ {&(_ZTV9GG2122113[13]), 13,28},
+ {&(_ZTV9GG2122113[17]), 17,28},
+ {&(_ZTV9GG2122113[21]), 21,28},
+ {&(_ZTV9GG2122113[27]), 27,28},
+ {&(_tg__ZTV5EE212__9GG2122113[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE212__9GG2122113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE212__9GG2122113[3]), 3,4},
+ {&(_tg__ZTV5FF211__9GG2122113[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF211__9GG2122113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF211__9GG2122113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2122113[];
+extern VTBL_ENTRY _ZTV9GG2122113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2122113[];
+static VTBL_ENTRY alt_thunk_names506[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21221133fooEv,_ZTv0_n20_N9GG21221133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21221133fooEv,_ZThn32_N9GG21221133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21221133fooEv,_ZTv0_n12_N9GG21221133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21221133fooEv,_ZThn24_N9GG21221133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21221133barEv,_ZTv0_n12_N9GG21221133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21221133barEv,_ZThn16_N9GG21221133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21221133barEv,_ZTv0_n20_N9GG21221133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21221133barEv,_ZThn8_N9GG21221133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2122113 = { "GG2122113", // class name
+ bases_GG2122113, 4,
+ &(vtc_GG2122113[0]), // expected_vtbl_contents
+ &(vtt_GG2122113[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG2122113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2122113),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2122113),11, //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 GG2122123 : virtual EE212 , virtual FF212 {
+ int pg;
+ virtual void foo(); // _ZN9GG21221233fooEv
+ virtual void bar(); // _ZN9GG21221233barEv
+ ~GG2122123(); // tgen
+ GG2122123(); // tgen
+};
+//SIG(1 GG2122123) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC3 VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG2122123 ::foo(){vfunc_called(this, "_ZN9GG21221233fooEv");}
+void GG2122123 ::bar(){vfunc_called(this, "_ZN9GG21221233barEv");}
+GG2122123 ::~GG2122123(){ note_dtor("GG2122123", this);} // tgen
+GG2122123 ::GG2122123(){ note_ctor("GG2122123", this);} // tgen
+
+static void Test_GG2122123()
+{
+ extern Class_Descriptor cd_GG2122123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG2122123, buf);
+ GG2122123 *dp, &lv = *(dp=new (buf) GG2122123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG2122123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2122123)");
+ check_base_class_offset(lv, (AA2*)(EE212*), ABISELECT(32,16), "GG2122123");
+ check_base_class_offset(lv, (AA2*)(FF212*), ABISELECT(32,16), "GG2122123");
+ check_base_class_offset(lv, (BB1*)(EE212*), ABISELECT(48,24), "GG2122123");
+ check_base_class_offset(lv, (BB1*)(FF212*), ABISELECT(48,24), "GG2122123");
+ check_base_class_offset(lv, (EE212*), ABISELECT(16,8), "GG2122123");
+ check_base_class_offset(lv, (FF212*), ABISELECT(64,32), "GG2122123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2122123.pg");
+ test_class_info(&lv, &cd_GG2122123);
+ dp->~GG2122123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2122123(Test_GG2122123, "GG2122123", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG2122123C1Ev();
+extern void _ZN9GG2122123D1Ev();
+Name_Map name_map_GG2122123[] = {
+ NSPAIR(_ZN9GG2122123C1Ev),
+ NSPAIR(_ZN9GG2122123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE212;
+extern VTBL_ENTRY _ZTI5EE212[];
+extern VTBL_ENTRY _ZTV5EE212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE212[];
+extern Class_Descriptor cd_FF212;
+extern VTBL_ENTRY _ZTI5FF212[];
+extern VTBL_ENTRY _ZTV5FF212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF212[];
+static Base_Class bases_GG2122123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE212, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF212, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2122123[];
+extern void _ZN9GG21221233fooEv();
+extern void _ZN9GG21221233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21221233barEv,_ZTv0_n20_N9GG21221233barEv)();
+extern void ABISELECT(_ZThn16_N9GG21221233barEv,_ZThn8_N9GG21221233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21221233barEv,_ZTv0_n12_N9GG21221233barEv)();
+extern void ABISELECT(_ZThn32_N9GG21221233barEv,_ZThn16_N9GG21221233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21221233fooEv,_ZTv0_n12_N9GG21221233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21221233fooEv,_ZThn24_N9GG21221233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21221233barEv,_ZTv0_n20_N9GG21221233barEv)();
+extern void ABISELECT(_ZThn64_N9GG21221233barEv,_ZThn32_N9GG21221233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2122123[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2122123[0]),
+ (VTBL_ENTRY)&_ZN9GG21221233fooEv,
+ (VTBL_ENTRY)&_ZN9GG21221233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2122123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21221233barEv,_ZTv0_n20_N9GG21221233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2122123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21221233barEv,_ZTv0_n12_N9GG21221233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2122123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21221233fooEv,_ZTv0_n12_N9GG21221233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2122123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21221233barEv,_ZTv0_n20_N9GG21221233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2122123[];
+extern void _ZN5EE2123barEv();
+static VTBL_ENTRY _tg__ZTV5EE212__9GG2122123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN5EE2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv)();
+extern void ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE212__9GG2122123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE212__9GG2122123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF2123barEv();
+static VTBL_ENTRY _tg__ZTV5FF212__9GG2122123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN5FF2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF212__9GG2122123[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF212__9GG2122123[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG2122123[] = {
+ {&(_ZTV9GG2122123[6]), 6,28},
+ {&(_ZTV9GG2122123[13]), 13,28},
+ {&(_ZTV9GG2122123[17]), 17,28},
+ {&(_ZTV9GG2122123[21]), 21,28},
+ {&(_ZTV9GG2122123[27]), 27,28},
+ {&(_tg__ZTV5EE212__9GG2122123[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE212__9GG2122123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE212__9GG2122123[3]), 3,4},
+ {&(_tg__ZTV5FF212__9GG2122123[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF212__9GG2122123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF212__9GG2122123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2122123[];
+extern VTBL_ENTRY _ZTV9GG2122123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2122123[];
+static VTBL_ENTRY alt_thunk_names507[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21221233fooEv,_ZTv0_n12_N9GG21221233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21221233fooEv,_ZThn24_N9GG21221233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21221233barEv,_ZTv0_n12_N9GG21221233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21221233barEv,_ZThn16_N9GG21221233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21221233barEv,_ZTv0_n20_N9GG21221233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21221233barEv,_ZThn32_N9GG21221233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21221233barEv,_ZThn8_N9GG21221233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2122123 = { "GG2122123", // class name
+ bases_GG2122123, 4,
+ &(vtc_GG2122123[0]), // expected_vtbl_contents
+ &(vtt_GG2122123[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG2122123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2122123),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2122123),11, //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 GG2122133 : virtual EE212 , virtual FF213 {
+ int pg;
+ virtual void foo(); // _ZN9GG21221333fooEv
+ virtual void bar(); // _ZN9GG21221333barEv
+ ~GG2122133(); // tgen
+ GG2122133(); // tgen
+};
+//SIG(1 GG2122133) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC3 VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2122133 ::foo(){vfunc_called(this, "_ZN9GG21221333fooEv");}
+void GG2122133 ::bar(){vfunc_called(this, "_ZN9GG21221333barEv");}
+GG2122133 ::~GG2122133(){ note_dtor("GG2122133", this);} // tgen
+GG2122133 ::GG2122133(){ note_ctor("GG2122133", this);} // tgen
+
+static void Test_GG2122133()
+{
+ extern Class_Descriptor cd_GG2122133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG2122133, buf);
+ GG2122133 *dp, &lv = *(dp=new (buf) GG2122133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG2122133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2122133)");
+ check_base_class_offset(lv, (AA2*)(EE212*), ABISELECT(32,16), "GG2122133");
+ check_base_class_offset(lv, (AA2*)(FF213*), ABISELECT(32,16), "GG2122133");
+ check_base_class_offset(lv, (BB1*)(EE212*), ABISELECT(48,24), "GG2122133");
+ check_base_class_offset(lv, (BB1*)(FF213*), ABISELECT(48,24), "GG2122133");
+ check_base_class_offset(lv, (EE212*), ABISELECT(16,8), "GG2122133");
+ check_base_class_offset(lv, (FF213*), ABISELECT(64,32), "GG2122133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2122133.pg");
+ test_class_info(&lv, &cd_GG2122133);
+ dp->~GG2122133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2122133(Test_GG2122133, "GG2122133", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG2122133C1Ev();
+extern void _ZN9GG2122133D1Ev();
+Name_Map name_map_GG2122133[] = {
+ NSPAIR(_ZN9GG2122133C1Ev),
+ NSPAIR(_ZN9GG2122133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE212;
+extern VTBL_ENTRY _ZTI5EE212[];
+extern VTBL_ENTRY _ZTV5EE212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE212[];
+extern Class_Descriptor cd_FF213;
+extern VTBL_ENTRY _ZTI5FF213[];
+extern VTBL_ENTRY _ZTV5FF213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF213[];
+static Base_Class bases_GG2122133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE212, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF213, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2122133[];
+extern void _ZN9GG21221333fooEv();
+extern void _ZN9GG21221333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21221333barEv,_ZTv0_n20_N9GG21221333barEv)();
+extern void ABISELECT(_ZThn16_N9GG21221333barEv,_ZThn8_N9GG21221333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21221333barEv,_ZTv0_n12_N9GG21221333barEv)();
+extern void ABISELECT(_ZThn32_N9GG21221333barEv,_ZThn16_N9GG21221333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21221333fooEv,_ZTv0_n12_N9GG21221333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21221333fooEv,_ZThn24_N9GG21221333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21221333fooEv,_ZTv0_n20_N9GG21221333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21221333fooEv,_ZThn32_N9GG21221333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21221333barEv,_ZTv0_n24_N9GG21221333barEv)();
+extern void ABISELECT(_ZThn64_N9GG21221333barEv,_ZThn32_N9GG21221333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2122133[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2122133[0]),
+ (VTBL_ENTRY)&_ZN9GG21221333fooEv,
+ (VTBL_ENTRY)&_ZN9GG21221333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2122133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21221333barEv,_ZTv0_n20_N9GG21221333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2122133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21221333barEv,_ZTv0_n12_N9GG21221333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2122133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21221333fooEv,_ZTv0_n12_N9GG21221333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2122133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21221333fooEv,_ZTv0_n20_N9GG21221333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21221333barEv,_ZTv0_n24_N9GG21221333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2122133[];
+extern void _ZN5EE2123barEv();
+static VTBL_ENTRY _tg__ZTV5EE212__9GG2122133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN5EE2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv)();
+extern void ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE212__9GG2122133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE212__9GG2122133[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF2133fooEv();
+extern void _ZN5FF2133barEv();
+static VTBL_ENTRY _tg__ZTV5FF213__9GG2122133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&_ZN5FF2133fooEv,
+ (VTBL_ENTRY)&_ZN5FF2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF213__9GG2122133[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF213__9GG2122133[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv),
+};
+static VTT_ENTRY vtt_GG2122133[] = {
+ {&(_ZTV9GG2122133[6]), 6,30},
+ {&(_ZTV9GG2122133[13]), 13,30},
+ {&(_ZTV9GG2122133[17]), 17,30},
+ {&(_ZTV9GG2122133[21]), 21,30},
+ {&(_ZTV9GG2122133[28]), 28,30},
+ {&(_tg__ZTV5EE212__9GG2122133[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE212__9GG2122133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE212__9GG2122133[3]), 3,4},
+ {&(_tg__ZTV5FF213__9GG2122133[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF213__9GG2122133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF213__9GG2122133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2122133[];
+extern VTBL_ENTRY _ZTV9GG2122133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2122133[];
+static VTBL_ENTRY alt_thunk_names508[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG21221333barEv,_ZTv0_n24_N9GG21221333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21221333barEv,_ZThn32_N9GG21221333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21221333fooEv,_ZTv0_n20_N9GG21221333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21221333fooEv,_ZThn32_N9GG21221333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21221333fooEv,_ZTv0_n12_N9GG21221333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21221333fooEv,_ZThn24_N9GG21221333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21221333barEv,_ZTv0_n12_N9GG21221333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21221333barEv,_ZThn16_N9GG21221333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21221333barEv,_ZTv0_n20_N9GG21221333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21221333barEv,_ZThn8_N9GG21221333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2122133 = { "GG2122133", // class name
+ bases_GG2122133, 4,
+ &(vtc_GG2122133[0]), // expected_vtbl_contents
+ &(vtt_GG2122133[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG2122133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2122133),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2122133),11, //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 GG2122213 : virtual EE212 , virtual FF221 {
+ int pg;
+ virtual void foo(); // _ZN9GG21222133fooEv
+ virtual void bar(); // _ZN9GG21222133barEv
+ ~GG2122213(); // tgen
+ GG2122213(); // tgen
+};
+//SIG(1 GG2122213) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2122213 ::foo(){vfunc_called(this, "_ZN9GG21222133fooEv");}
+void GG2122213 ::bar(){vfunc_called(this, "_ZN9GG21222133barEv");}
+GG2122213 ::~GG2122213(){ note_dtor("GG2122213", this);} // tgen
+GG2122213 ::GG2122213(){ note_ctor("GG2122213", this);} // tgen
+
+static void Test_GG2122213()
+{
+ extern Class_Descriptor cd_GG2122213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2122213, buf);
+ GG2122213 *dp, &lv = *(dp=new (buf) GG2122213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2122213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2122213)");
+ check_base_class_offset(lv, (AA2*)(EE212*), ABISELECT(32,16), "GG2122213");
+ check_base_class_offset(lv, (AA2*)(FF221*), ABISELECT(32,16), "GG2122213");
+ check_base_class_offset(lv, (BB1*)(EE212*), ABISELECT(48,24), "GG2122213");
+ check_base_class_offset(lv, (EE212*), ABISELECT(16,8), "GG2122213");
+ check_base_class_offset(lv, (BB2*)(FF221*), ABISELECT(80,40), "GG2122213");
+ check_base_class_offset(lv, (FF221*), ABISELECT(64,32), "GG2122213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2122213.pg");
+ test_class_info(&lv, &cd_GG2122213);
+ dp->~GG2122213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2122213(Test_GG2122213, "GG2122213", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2122213C1Ev();
+extern void _ZN9GG2122213D1Ev();
+Name_Map name_map_GG2122213[] = {
+ NSPAIR(_ZN9GG2122213C1Ev),
+ NSPAIR(_ZN9GG2122213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE212;
+extern VTBL_ENTRY _ZTI5EE212[];
+extern VTBL_ENTRY _ZTV5EE212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE212[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF221;
+extern VTBL_ENTRY _ZTI5FF221[];
+extern VTBL_ENTRY _ZTV5FF221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF221[];
+static Base_Class bases_GG2122213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE212, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF221, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2122213[];
+extern void _ZN9GG21222133fooEv();
+extern void _ZN9GG21222133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21222133barEv,_ZTv0_n20_N9GG21222133barEv)();
+extern void ABISELECT(_ZThn16_N9GG21222133barEv,_ZThn8_N9GG21222133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21222133barEv,_ZTv0_n12_N9GG21222133barEv)();
+extern void ABISELECT(_ZThn32_N9GG21222133barEv,_ZThn16_N9GG21222133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21222133fooEv,_ZTv0_n12_N9GG21222133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21222133fooEv,_ZThn24_N9GG21222133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21222133fooEv,_ZTv0_n20_N9GG21222133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21222133fooEv,_ZThn32_N9GG21222133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21222133barEv,_ZTv0_n12_N9GG21222133barEv)();
+extern void ABISELECT(_ZThn80_N9GG21222133barEv,_ZThn40_N9GG21222133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2122213[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2122213[0]),
+ (VTBL_ENTRY)&_ZN9GG21222133fooEv,
+ (VTBL_ENTRY)&_ZN9GG21222133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2122213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21222133barEv,_ZTv0_n20_N9GG21222133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2122213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21222133barEv,_ZTv0_n12_N9GG21222133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2122213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21222133fooEv,_ZTv0_n12_N9GG21222133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2122213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21222133fooEv,_ZTv0_n20_N9GG21222133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2122213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21222133barEv,_ZTv0_n12_N9GG21222133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2122213[];
+extern void _ZN5EE2123barEv();
+static VTBL_ENTRY _tg__ZTV5EE212__9GG2122213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN5EE2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv)();
+extern void ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE212__9GG2122213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE212__9GG2122213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF2213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF221__9GG2122213[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN5FF2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF221__9GG2122213[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF221__9GG2122213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG2122213[] = {
+ {&(_ZTV9GG2122213[7]), 7,33},
+ {&(_ZTV9GG2122213[14]), 14,33},
+ {&(_ZTV9GG2122213[18]), 18,33},
+ {&(_ZTV9GG2122213[22]), 22,33},
+ {&(_ZTV9GG2122213[28]), 28,33},
+ {&(_ZTV9GG2122213[32]), 32,33},
+ {&(_tg__ZTV5EE212__9GG2122213[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE212__9GG2122213[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE212__9GG2122213[3]), 3,4},
+ {&(_tg__ZTV5FF221__9GG2122213[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF221__9GG2122213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF221__9GG2122213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2122213[];
+extern VTBL_ENTRY _ZTV9GG2122213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2122213[];
+static VTBL_ENTRY alt_thunk_names509[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21222133fooEv,_ZTv0_n20_N9GG21222133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21222133fooEv,_ZThn32_N9GG21222133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21222133fooEv,_ZTv0_n12_N9GG21222133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21222133fooEv,_ZThn24_N9GG21222133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21222133barEv,_ZTv0_n12_N9GG21222133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21222133barEv,_ZThn40_N9GG21222133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21222133barEv,_ZThn16_N9GG21222133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21222133barEv,_ZTv0_n20_N9GG21222133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21222133barEv,_ZThn8_N9GG21222133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2122213 = { "GG2122213", // class name
+ bases_GG2122213, 5,
+ &(vtc_GG2122213[0]), // expected_vtbl_contents
+ &(vtt_GG2122213[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2122213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2122213),33, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2122213),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names509,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2122222 : virtual EE212 , virtual FF222 {
+ int pg;
+ virtual void bar(); // _ZN9GG21222223barEv
+ ~GG2122222(); // tgen
+ GG2122222(); // tgen
+};
+//SIG(1 GG2122222) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v1 Fi} v1 Fi}
+
+
+void GG2122222 ::bar(){vfunc_called(this, "_ZN9GG21222223barEv");}
+GG2122222 ::~GG2122222(){ note_dtor("GG2122222", this);} // tgen
+GG2122222 ::GG2122222(){ note_ctor("GG2122222", this);} // tgen
+
+static void Test_GG2122222()
+{
+ extern Class_Descriptor cd_GG2122222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2122222, buf);
+ GG2122222 *dp, &lv = *(dp=new (buf) GG2122222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2122222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2122222)");
+ check_base_class_offset(lv, (AA2*)(EE212*), ABISELECT(32,16), "GG2122222");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(32,16), "GG2122222");
+ check_base_class_offset(lv, (BB1*)(EE212*), ABISELECT(48,24), "GG2122222");
+ check_base_class_offset(lv, (EE212*), ABISELECT(16,8), "GG2122222");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(80,40), "GG2122222");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG2122222");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2122222.pg");
+ test_class_info(&lv, &cd_GG2122222);
+ dp->~GG2122222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2122222(Test_GG2122222, "GG2122222", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2122222C1Ev();
+extern void _ZN9GG2122222D1Ev();
+Name_Map name_map_GG2122222[] = {
+ NSPAIR(_ZN9GG2122222C1Ev),
+ NSPAIR(_ZN9GG2122222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE212;
+extern VTBL_ENTRY _ZTI5EE212[];
+extern VTBL_ENTRY _ZTV5EE212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE212[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG2122222[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE212, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2122222[];
+extern void _ZN9GG21222223barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21222223barEv,_ZTv0_n20_N9GG21222223barEv)();
+extern void ABISELECT(_ZThn16_N9GG21222223barEv,_ZThn8_N9GG21222223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21222223barEv,_ZTv0_n12_N9GG21222223barEv)();
+extern void ABISELECT(_ZThn32_N9GG21222223barEv,_ZThn16_N9GG21222223barEv)() __attribute__((weak));
+extern void _ZN3BB13fooEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21222223barEv,_ZTv0_n20_N9GG21222223barEv)();
+extern void ABISELECT(_ZThn64_N9GG21222223barEv,_ZThn32_N9GG21222223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21222223barEv,_ZTv0_n12_N9GG21222223barEv)();
+extern void ABISELECT(_ZThn80_N9GG21222223barEv,_ZThn40_N9GG21222223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2122222[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2122222[0]),
+ (VTBL_ENTRY)&_ZN9GG21222223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2122222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21222223barEv,_ZTv0_n20_N9GG21222223barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2122222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21222223barEv,_ZTv0_n12_N9GG21222223barEv),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2122222[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2122222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21222223barEv,_ZTv0_n20_N9GG21222223barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2122222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21222223barEv,_ZTv0_n12_N9GG21222223barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2122222[];
+extern void _ZN5EE2123barEv();
+static VTBL_ENTRY _tg__ZTV5EE212__9GG2122222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN5EE2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv)();
+extern void ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE212__9GG2122222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE212__9GG2122222[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG2122222[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG2122222[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG2122222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG2122222[] = {
+ {&(_ZTV9GG2122222[7]), 7,32},
+ {&(_ZTV9GG2122222[13]), 13,32},
+ {&(_ZTV9GG2122222[17]), 17,32},
+ {&(_ZTV9GG2122222[21]), 21,32},
+ {&(_ZTV9GG2122222[27]), 27,32},
+ {&(_ZTV9GG2122222[31]), 31,32},
+ {&(_tg__ZTV5EE212__9GG2122222[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE212__9GG2122222[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE212__9GG2122222[3]), 3,4},
+ {&(_tg__ZTV5FF222__9GG2122222[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG2122222[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG2122222[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2122222[];
+extern VTBL_ENTRY _ZTV9GG2122222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2122222[];
+static VTBL_ENTRY alt_thunk_names510[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21222223barEv,_ZTv0_n12_N9GG21222223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21222223barEv,_ZThn40_N9GG21222223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21222223barEv,_ZThn16_N9GG21222223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21222223barEv,_ZTv0_n20_N9GG21222223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21222223barEv,_ZThn32_N9GG21222223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21222223barEv,_ZThn8_N9GG21222223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2122222 = { "GG2122222", // class name
+ bases_GG2122222, 5,
+ &(vtc_GG2122222[0]), // expected_vtbl_contents
+ &(vtt_GG2122222[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2122222),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2122222),32, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2122222),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names510,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2122223 : virtual EE212 , virtual FF222 {
+ int pg;
+ virtual void foo(); // _ZN9GG21222233fooEv
+ virtual void bar(); // _ZN9GG21222233barEv
+ ~GG2122223(); // tgen
+ GG2122223(); // tgen
+};
+//SIG(1 GG2122223) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2122223 ::foo(){vfunc_called(this, "_ZN9GG21222233fooEv");}
+void GG2122223 ::bar(){vfunc_called(this, "_ZN9GG21222233barEv");}
+GG2122223 ::~GG2122223(){ note_dtor("GG2122223", this);} // tgen
+GG2122223 ::GG2122223(){ note_ctor("GG2122223", this);} // tgen
+
+static void Test_GG2122223()
+{
+ extern Class_Descriptor cd_GG2122223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2122223, buf);
+ GG2122223 *dp, &lv = *(dp=new (buf) GG2122223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2122223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2122223)");
+ check_base_class_offset(lv, (AA2*)(EE212*), ABISELECT(32,16), "GG2122223");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(32,16), "GG2122223");
+ check_base_class_offset(lv, (BB1*)(EE212*), ABISELECT(48,24), "GG2122223");
+ check_base_class_offset(lv, (EE212*), ABISELECT(16,8), "GG2122223");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(80,40), "GG2122223");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG2122223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2122223.pg");
+ test_class_info(&lv, &cd_GG2122223);
+ dp->~GG2122223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2122223(Test_GG2122223, "GG2122223", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2122223C1Ev();
+extern void _ZN9GG2122223D1Ev();
+Name_Map name_map_GG2122223[] = {
+ NSPAIR(_ZN9GG2122223C1Ev),
+ NSPAIR(_ZN9GG2122223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE212;
+extern VTBL_ENTRY _ZTI5EE212[];
+extern VTBL_ENTRY _ZTV5EE212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE212[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG2122223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE212, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2122223[];
+extern void _ZN9GG21222233fooEv();
+extern void _ZN9GG21222233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21222233barEv,_ZTv0_n20_N9GG21222233barEv)();
+extern void ABISELECT(_ZThn16_N9GG21222233barEv,_ZThn8_N9GG21222233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21222233barEv,_ZTv0_n12_N9GG21222233barEv)();
+extern void ABISELECT(_ZThn32_N9GG21222233barEv,_ZThn16_N9GG21222233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21222233fooEv,_ZTv0_n12_N9GG21222233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21222233fooEv,_ZThn24_N9GG21222233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21222233barEv,_ZTv0_n20_N9GG21222233barEv)();
+extern void ABISELECT(_ZThn64_N9GG21222233barEv,_ZThn32_N9GG21222233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21222233barEv,_ZTv0_n12_N9GG21222233barEv)();
+extern void ABISELECT(_ZThn80_N9GG21222233barEv,_ZThn40_N9GG21222233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2122223[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2122223[0]),
+ (VTBL_ENTRY)&_ZN9GG21222233fooEv,
+ (VTBL_ENTRY)&_ZN9GG21222233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2122223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21222233barEv,_ZTv0_n20_N9GG21222233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2122223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21222233barEv,_ZTv0_n12_N9GG21222233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2122223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21222233fooEv,_ZTv0_n12_N9GG21222233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2122223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21222233barEv,_ZTv0_n20_N9GG21222233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2122223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21222233barEv,_ZTv0_n12_N9GG21222233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2122223[];
+extern void _ZN5EE2123barEv();
+static VTBL_ENTRY _tg__ZTV5EE212__9GG2122223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN5EE2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv)();
+extern void ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE212__9GG2122223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE212__9GG2122223[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG2122223[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG2122223[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG2122223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG2122223[] = {
+ {&(_ZTV9GG2122223[7]), 7,33},
+ {&(_ZTV9GG2122223[14]), 14,33},
+ {&(_ZTV9GG2122223[18]), 18,33},
+ {&(_ZTV9GG2122223[22]), 22,33},
+ {&(_ZTV9GG2122223[28]), 28,33},
+ {&(_ZTV9GG2122223[32]), 32,33},
+ {&(_tg__ZTV5EE212__9GG2122223[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE212__9GG2122223[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE212__9GG2122223[3]), 3,4},
+ {&(_tg__ZTV5FF222__9GG2122223[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG2122223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG2122223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2122223[];
+extern VTBL_ENTRY _ZTV9GG2122223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2122223[];
+static VTBL_ENTRY alt_thunk_names511[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21222233fooEv,_ZTv0_n12_N9GG21222233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21222233fooEv,_ZThn24_N9GG21222233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21222233barEv,_ZTv0_n12_N9GG21222233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21222233barEv,_ZThn40_N9GG21222233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21222233barEv,_ZThn16_N9GG21222233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21222233barEv,_ZTv0_n20_N9GG21222233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21222233barEv,_ZThn32_N9GG21222233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21222233barEv,_ZThn8_N9GG21222233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2122223 = { "GG2122223", // class name
+ bases_GG2122223, 5,
+ &(vtc_GG2122223[0]), // expected_vtbl_contents
+ &(vtt_GG2122223[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2122223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2122223),33, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2122223),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names511,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2122233 : virtual EE212 , virtual FF223 {
+ int pg;
+ virtual void foo(); // _ZN9GG21222333fooEv
+ virtual void bar(); // _ZN9GG21222333barEv
+ ~GG2122233(); // tgen
+ GG2122233(); // tgen
+};
+//SIG(1 GG2122233) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2122233 ::foo(){vfunc_called(this, "_ZN9GG21222333fooEv");}
+void GG2122233 ::bar(){vfunc_called(this, "_ZN9GG21222333barEv");}
+GG2122233 ::~GG2122233(){ note_dtor("GG2122233", this);} // tgen
+GG2122233 ::GG2122233(){ note_ctor("GG2122233", this);} // tgen
+
+static void Test_GG2122233()
+{
+ extern Class_Descriptor cd_GG2122233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2122233, buf);
+ GG2122233 *dp, &lv = *(dp=new (buf) GG2122233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2122233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2122233)");
+ check_base_class_offset(lv, (AA2*)(EE212*), ABISELECT(32,16), "GG2122233");
+ check_base_class_offset(lv, (AA2*)(FF223*), ABISELECT(32,16), "GG2122233");
+ check_base_class_offset(lv, (BB1*)(EE212*), ABISELECT(48,24), "GG2122233");
+ check_base_class_offset(lv, (EE212*), ABISELECT(16,8), "GG2122233");
+ check_base_class_offset(lv, (BB2*)(FF223*), ABISELECT(80,40), "GG2122233");
+ check_base_class_offset(lv, (FF223*), ABISELECT(64,32), "GG2122233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2122233.pg");
+ test_class_info(&lv, &cd_GG2122233);
+ dp->~GG2122233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2122233(Test_GG2122233, "GG2122233", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2122233C1Ev();
+extern void _ZN9GG2122233D1Ev();
+Name_Map name_map_GG2122233[] = {
+ NSPAIR(_ZN9GG2122233C1Ev),
+ NSPAIR(_ZN9GG2122233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE212;
+extern VTBL_ENTRY _ZTI5EE212[];
+extern VTBL_ENTRY _ZTV5EE212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE212[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF223;
+extern VTBL_ENTRY _ZTI5FF223[];
+extern VTBL_ENTRY _ZTV5FF223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF223[];
+static Base_Class bases_GG2122233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE212, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF223, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2122233[];
+extern void _ZN9GG21222333fooEv();
+extern void _ZN9GG21222333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21222333barEv,_ZTv0_n20_N9GG21222333barEv)();
+extern void ABISELECT(_ZThn16_N9GG21222333barEv,_ZThn8_N9GG21222333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21222333barEv,_ZTv0_n12_N9GG21222333barEv)();
+extern void ABISELECT(_ZThn32_N9GG21222333barEv,_ZThn16_N9GG21222333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21222333fooEv,_ZTv0_n12_N9GG21222333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21222333fooEv,_ZThn24_N9GG21222333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21222333fooEv,_ZTv0_n20_N9GG21222333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21222333fooEv,_ZThn32_N9GG21222333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21222333barEv,_ZTv0_n24_N9GG21222333barEv)();
+extern void ABISELECT(_ZThn64_N9GG21222333barEv,_ZThn32_N9GG21222333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21222333barEv,_ZTv0_n12_N9GG21222333barEv)();
+extern void ABISELECT(_ZThn80_N9GG21222333barEv,_ZThn40_N9GG21222333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2122233[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2122233[0]),
+ (VTBL_ENTRY)&_ZN9GG21222333fooEv,
+ (VTBL_ENTRY)&_ZN9GG21222333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2122233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21222333barEv,_ZTv0_n20_N9GG21222333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2122233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21222333barEv,_ZTv0_n12_N9GG21222333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2122233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21222333fooEv,_ZTv0_n12_N9GG21222333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2122233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21222333fooEv,_ZTv0_n20_N9GG21222333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21222333barEv,_ZTv0_n24_N9GG21222333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2122233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21222333barEv,_ZTv0_n12_N9GG21222333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2122233[];
+extern void _ZN5EE2123barEv();
+static VTBL_ENTRY _tg__ZTV5EE212__9GG2122233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN5EE2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv)();
+extern void ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE212__9GG2122233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE212__9GG2122233[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF2233fooEv();
+extern void _ZN5FF2233barEv();
+static VTBL_ENTRY _tg__ZTV5FF223__9GG2122233[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&_ZN5FF2233fooEv,
+ (VTBL_ENTRY)&_ZN5FF2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF223__9GG2122233[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+extern void ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF223__9GG2122233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+static VTT_ENTRY vtt_GG2122233[] = {
+ {&(_ZTV9GG2122233[7]), 7,35},
+ {&(_ZTV9GG2122233[14]), 14,35},
+ {&(_ZTV9GG2122233[18]), 18,35},
+ {&(_ZTV9GG2122233[22]), 22,35},
+ {&(_ZTV9GG2122233[29]), 29,35},
+ {&(_ZTV9GG2122233[34]), 34,35},
+ {&(_tg__ZTV5EE212__9GG2122233[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE212__9GG2122233[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE212__9GG2122233[3]), 3,4},
+ {&(_tg__ZTV5FF223__9GG2122233[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF223__9GG2122233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF223__9GG2122233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2122233[];
+extern VTBL_ENTRY _ZTV9GG2122233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2122233[];
+static VTBL_ENTRY alt_thunk_names512[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG21222333barEv,_ZTv0_n24_N9GG21222333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21222333barEv,_ZThn32_N9GG21222333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21222333fooEv,_ZTv0_n20_N9GG21222333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21222333fooEv,_ZThn32_N9GG21222333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21222333fooEv,_ZTv0_n12_N9GG21222333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21222333fooEv,_ZThn24_N9GG21222333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21222333barEv,_ZTv0_n12_N9GG21222333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21222333barEv,_ZThn40_N9GG21222333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21222333barEv,_ZThn16_N9GG21222333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21222333barEv,_ZTv0_n20_N9GG21222333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21222333barEv,_ZThn8_N9GG21222333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2122233 = { "GG2122233", // class name
+ bases_GG2122233, 5,
+ &(vtc_GG2122233[0]), // expected_vtbl_contents
+ &(vtt_GG2122233[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2122233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2122233),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2122233),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names512,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2122313 : virtual EE212 , virtual FF231 {
+ int pg;
+ virtual void foo(); // _ZN9GG21223133fooEv
+ virtual void bar(); // _ZN9GG21223133barEv
+ ~GG2122313(); // tgen
+ GG2122313(); // tgen
+};
+//SIG(1 GG2122313) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2122313 ::foo(){vfunc_called(this, "_ZN9GG21223133fooEv");}
+void GG2122313 ::bar(){vfunc_called(this, "_ZN9GG21223133barEv");}
+GG2122313 ::~GG2122313(){ note_dtor("GG2122313", this);} // tgen
+GG2122313 ::GG2122313(){ note_ctor("GG2122313", this);} // tgen
+
+static void Test_GG2122313()
+{
+ extern Class_Descriptor cd_GG2122313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2122313, buf);
+ GG2122313 *dp, &lv = *(dp=new (buf) GG2122313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2122313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2122313)");
+ check_base_class_offset(lv, (AA2*)(EE212*), ABISELECT(32,16), "GG2122313");
+ check_base_class_offset(lv, (AA2*)(FF231*), ABISELECT(32,16), "GG2122313");
+ check_base_class_offset(lv, (BB1*)(EE212*), ABISELECT(48,24), "GG2122313");
+ check_base_class_offset(lv, (EE212*), ABISELECT(16,8), "GG2122313");
+ check_base_class_offset(lv, (BB3*)(FF231*), ABISELECT(80,40), "GG2122313");
+ check_base_class_offset(lv, (FF231*), ABISELECT(64,32), "GG2122313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2122313.pg");
+ test_class_info(&lv, &cd_GG2122313);
+ dp->~GG2122313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2122313(Test_GG2122313, "GG2122313", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2122313C1Ev();
+extern void _ZN9GG2122313D1Ev();
+Name_Map name_map_GG2122313[] = {
+ NSPAIR(_ZN9GG2122313C1Ev),
+ NSPAIR(_ZN9GG2122313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE212;
+extern VTBL_ENTRY _ZTI5EE212[];
+extern VTBL_ENTRY _ZTV5EE212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE212[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF231;
+extern VTBL_ENTRY _ZTI5FF231[];
+extern VTBL_ENTRY _ZTV5FF231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF231[];
+static Base_Class bases_GG2122313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE212, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF231, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2122313[];
+extern void _ZN9GG21223133fooEv();
+extern void _ZN9GG21223133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21223133barEv,_ZTv0_n20_N9GG21223133barEv)();
+extern void ABISELECT(_ZThn16_N9GG21223133barEv,_ZThn8_N9GG21223133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21223133barEv,_ZTv0_n12_N9GG21223133barEv)();
+extern void ABISELECT(_ZThn32_N9GG21223133barEv,_ZThn16_N9GG21223133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21223133fooEv,_ZTv0_n12_N9GG21223133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21223133fooEv,_ZThn24_N9GG21223133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21223133fooEv,_ZTv0_n20_N9GG21223133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21223133fooEv,_ZThn32_N9GG21223133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21223133fooEv,_ZTv0_n12_N9GG21223133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21223133fooEv,_ZThn40_N9GG21223133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21223133barEv,_ZTv0_n16_N9GG21223133barEv)();
+extern void ABISELECT(_ZThn80_N9GG21223133barEv,_ZThn40_N9GG21223133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2122313[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2122313[0]),
+ (VTBL_ENTRY)&_ZN9GG21223133fooEv,
+ (VTBL_ENTRY)&_ZN9GG21223133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2122313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21223133barEv,_ZTv0_n20_N9GG21223133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2122313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21223133barEv,_ZTv0_n12_N9GG21223133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2122313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21223133fooEv,_ZTv0_n12_N9GG21223133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2122313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21223133fooEv,_ZTv0_n20_N9GG21223133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2122313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21223133fooEv,_ZTv0_n12_N9GG21223133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21223133barEv,_ZTv0_n16_N9GG21223133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2122313[];
+extern void _ZN5EE2123barEv();
+static VTBL_ENTRY _tg__ZTV5EE212__9GG2122313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN5EE2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv)();
+extern void ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE212__9GG2122313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE212__9GG2122313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF2313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF231__9GG2122313[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN5FF2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF231__9GG2122313[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF2313fooEv,_ZThn8_N5FF2313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF231__9GG2122313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG2122313[] = {
+ {&(_ZTV9GG2122313[7]), 7,35},
+ {&(_ZTV9GG2122313[14]), 14,35},
+ {&(_ZTV9GG2122313[18]), 18,35},
+ {&(_ZTV9GG2122313[22]), 22,35},
+ {&(_ZTV9GG2122313[28]), 28,35},
+ {&(_ZTV9GG2122313[33]), 33,35},
+ {&(_tg__ZTV5EE212__9GG2122313[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE212__9GG2122313[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE212__9GG2122313[3]), 3,4},
+ {&(_tg__ZTV5FF231__9GG2122313[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF231__9GG2122313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF231__9GG2122313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2122313[];
+extern VTBL_ENTRY _ZTV9GG2122313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2122313[];
+static VTBL_ENTRY alt_thunk_names513[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2313fooEv,_ZThn8_N5FF2313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG21223133barEv,_ZTv0_n16_N9GG21223133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21223133barEv,_ZThn40_N9GG21223133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21223133fooEv,_ZTv0_n20_N9GG21223133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21223133fooEv,_ZThn32_N9GG21223133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21223133fooEv,_ZTv0_n12_N9GG21223133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21223133fooEv,_ZThn40_N9GG21223133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21223133fooEv,_ZThn24_N9GG21223133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21223133barEv,_ZTv0_n12_N9GG21223133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21223133barEv,_ZThn16_N9GG21223133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21223133barEv,_ZTv0_n20_N9GG21223133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21223133barEv,_ZThn8_N9GG21223133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2122313 = { "GG2122313", // class name
+ bases_GG2122313, 5,
+ &(vtc_GG2122313[0]), // expected_vtbl_contents
+ &(vtt_GG2122313[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2122313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2122313),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2122313),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names513,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2122323 : virtual EE212 , virtual FF232 {
+ int pg;
+ virtual void foo(); // _ZN9GG21223233fooEv
+ virtual void bar(); // _ZN9GG21223233barEv
+ ~GG2122323(); // tgen
+ GG2122323(); // tgen
+};
+//SIG(1 GG2122323) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2122323 ::foo(){vfunc_called(this, "_ZN9GG21223233fooEv");}
+void GG2122323 ::bar(){vfunc_called(this, "_ZN9GG21223233barEv");}
+GG2122323 ::~GG2122323(){ note_dtor("GG2122323", this);} // tgen
+GG2122323 ::GG2122323(){ note_ctor("GG2122323", this);} // tgen
+
+static void Test_GG2122323()
+{
+ extern Class_Descriptor cd_GG2122323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2122323, buf);
+ GG2122323 *dp, &lv = *(dp=new (buf) GG2122323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2122323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2122323)");
+ check_base_class_offset(lv, (AA2*)(EE212*), ABISELECT(32,16), "GG2122323");
+ check_base_class_offset(lv, (AA2*)(FF232*), ABISELECT(32,16), "GG2122323");
+ check_base_class_offset(lv, (BB1*)(EE212*), ABISELECT(48,24), "GG2122323");
+ check_base_class_offset(lv, (EE212*), ABISELECT(16,8), "GG2122323");
+ check_base_class_offset(lv, (BB3*)(FF232*), ABISELECT(80,40), "GG2122323");
+ check_base_class_offset(lv, (FF232*), ABISELECT(64,32), "GG2122323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2122323.pg");
+ test_class_info(&lv, &cd_GG2122323);
+ dp->~GG2122323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2122323(Test_GG2122323, "GG2122323", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2122323C1Ev();
+extern void _ZN9GG2122323D1Ev();
+Name_Map name_map_GG2122323[] = {
+ NSPAIR(_ZN9GG2122323C1Ev),
+ NSPAIR(_ZN9GG2122323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE212;
+extern VTBL_ENTRY _ZTI5EE212[];
+extern VTBL_ENTRY _ZTV5EE212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE212[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF232;
+extern VTBL_ENTRY _ZTI5FF232[];
+extern VTBL_ENTRY _ZTV5FF232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF232[];
+static Base_Class bases_GG2122323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE212, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF232, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2122323[];
+extern void _ZN9GG21223233fooEv();
+extern void _ZN9GG21223233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21223233barEv,_ZTv0_n20_N9GG21223233barEv)();
+extern void ABISELECT(_ZThn16_N9GG21223233barEv,_ZThn8_N9GG21223233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21223233barEv,_ZTv0_n12_N9GG21223233barEv)();
+extern void ABISELECT(_ZThn32_N9GG21223233barEv,_ZThn16_N9GG21223233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21223233fooEv,_ZTv0_n12_N9GG21223233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21223233fooEv,_ZThn24_N9GG21223233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21223233barEv,_ZTv0_n20_N9GG21223233barEv)();
+extern void ABISELECT(_ZThn64_N9GG21223233barEv,_ZThn32_N9GG21223233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21223233fooEv,_ZTv0_n12_N9GG21223233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21223233fooEv,_ZThn40_N9GG21223233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21223233barEv,_ZTv0_n16_N9GG21223233barEv)();
+extern void ABISELECT(_ZThn80_N9GG21223233barEv,_ZThn40_N9GG21223233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2122323[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2122323[0]),
+ (VTBL_ENTRY)&_ZN9GG21223233fooEv,
+ (VTBL_ENTRY)&_ZN9GG21223233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2122323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21223233barEv,_ZTv0_n20_N9GG21223233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2122323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21223233barEv,_ZTv0_n12_N9GG21223233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2122323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21223233fooEv,_ZTv0_n12_N9GG21223233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2122323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21223233barEv,_ZTv0_n20_N9GG21223233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2122323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21223233fooEv,_ZTv0_n12_N9GG21223233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21223233barEv,_ZTv0_n16_N9GG21223233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2122323[];
+extern void _ZN5EE2123barEv();
+static VTBL_ENTRY _tg__ZTV5EE212__9GG2122323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN5EE2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv)();
+extern void ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE212__9GG2122323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE212__9GG2122323[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF2323barEv();
+static VTBL_ENTRY _tg__ZTV5FF232__9GG2122323[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN5FF2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF232__9GG2122323[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv)();
+extern void ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF232__9GG2122323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv),
+};
+static VTT_ENTRY vtt_GG2122323[] = {
+ {&(_ZTV9GG2122323[7]), 7,35},
+ {&(_ZTV9GG2122323[14]), 14,35},
+ {&(_ZTV9GG2122323[18]), 18,35},
+ {&(_ZTV9GG2122323[22]), 22,35},
+ {&(_ZTV9GG2122323[28]), 28,35},
+ {&(_ZTV9GG2122323[33]), 33,35},
+ {&(_tg__ZTV5EE212__9GG2122323[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE212__9GG2122323[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE212__9GG2122323[3]), 3,4},
+ {&(_tg__ZTV5FF232__9GG2122323[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF232__9GG2122323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF232__9GG2122323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2122323[];
+extern VTBL_ENTRY _ZTV9GG2122323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2122323[];
+static VTBL_ENTRY alt_thunk_names514[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG21223233barEv,_ZTv0_n16_N9GG21223233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21223233barEv,_ZThn40_N9GG21223233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21223233fooEv,_ZTv0_n12_N9GG21223233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21223233fooEv,_ZThn40_N9GG21223233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21223233fooEv,_ZThn24_N9GG21223233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21223233barEv,_ZTv0_n12_N9GG21223233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21223233barEv,_ZThn16_N9GG21223233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21223233barEv,_ZTv0_n20_N9GG21223233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21223233barEv,_ZThn32_N9GG21223233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21223233barEv,_ZThn8_N9GG21223233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2122323 = { "GG2122323", // class name
+ bases_GG2122323, 5,
+ &(vtc_GG2122323[0]), // expected_vtbl_contents
+ &(vtt_GG2122323[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2122323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2122323),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2122323),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names514,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2122333 : virtual EE212 , virtual FF233 {
+ int pg;
+ virtual void foo(); // _ZN9GG21223333fooEv
+ virtual void bar(); // _ZN9GG21223333barEv
+ ~GG2122333(); // tgen
+ GG2122333(); // tgen
+};
+//SIG(1 GG2122333) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2122333 ::foo(){vfunc_called(this, "_ZN9GG21223333fooEv");}
+void GG2122333 ::bar(){vfunc_called(this, "_ZN9GG21223333barEv");}
+GG2122333 ::~GG2122333(){ note_dtor("GG2122333", this);} // tgen
+GG2122333 ::GG2122333(){ note_ctor("GG2122333", this);} // tgen
+
+static void Test_GG2122333()
+{
+ extern Class_Descriptor cd_GG2122333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2122333, buf);
+ GG2122333 *dp, &lv = *(dp=new (buf) GG2122333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2122333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2122333)");
+ check_base_class_offset(lv, (AA2*)(EE212*), ABISELECT(32,16), "GG2122333");
+ check_base_class_offset(lv, (AA2*)(FF233*), ABISELECT(32,16), "GG2122333");
+ check_base_class_offset(lv, (BB1*)(EE212*), ABISELECT(48,24), "GG2122333");
+ check_base_class_offset(lv, (EE212*), ABISELECT(16,8), "GG2122333");
+ check_base_class_offset(lv, (BB3*)(FF233*), ABISELECT(80,40), "GG2122333");
+ check_base_class_offset(lv, (FF233*), ABISELECT(64,32), "GG2122333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2122333.pg");
+ test_class_info(&lv, &cd_GG2122333);
+ dp->~GG2122333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2122333(Test_GG2122333, "GG2122333", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2122333C1Ev();
+extern void _ZN9GG2122333D1Ev();
+Name_Map name_map_GG2122333[] = {
+ NSPAIR(_ZN9GG2122333C1Ev),
+ NSPAIR(_ZN9GG2122333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE212;
+extern VTBL_ENTRY _ZTI5EE212[];
+extern VTBL_ENTRY _ZTV5EE212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE212[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF233;
+extern VTBL_ENTRY _ZTI5FF233[];
+extern VTBL_ENTRY _ZTV5FF233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF233[];
+static Base_Class bases_GG2122333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE212, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF233, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2122333[];
+extern void _ZN9GG21223333fooEv();
+extern void _ZN9GG21223333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21223333barEv,_ZTv0_n20_N9GG21223333barEv)();
+extern void ABISELECT(_ZThn16_N9GG21223333barEv,_ZThn8_N9GG21223333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21223333barEv,_ZTv0_n12_N9GG21223333barEv)();
+extern void ABISELECT(_ZThn32_N9GG21223333barEv,_ZThn16_N9GG21223333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21223333fooEv,_ZTv0_n12_N9GG21223333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21223333fooEv,_ZThn24_N9GG21223333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21223333fooEv,_ZTv0_n20_N9GG21223333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21223333fooEv,_ZThn32_N9GG21223333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21223333barEv,_ZTv0_n24_N9GG21223333barEv)();
+extern void ABISELECT(_ZThn64_N9GG21223333barEv,_ZThn32_N9GG21223333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21223333fooEv,_ZTv0_n12_N9GG21223333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21223333fooEv,_ZThn40_N9GG21223333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21223333barEv,_ZTv0_n16_N9GG21223333barEv)();
+extern void ABISELECT(_ZThn80_N9GG21223333barEv,_ZThn40_N9GG21223333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2122333[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2122333[0]),
+ (VTBL_ENTRY)&_ZN9GG21223333fooEv,
+ (VTBL_ENTRY)&_ZN9GG21223333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2122333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21223333barEv,_ZTv0_n20_N9GG21223333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2122333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21223333barEv,_ZTv0_n12_N9GG21223333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2122333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21223333fooEv,_ZTv0_n12_N9GG21223333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2122333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21223333fooEv,_ZTv0_n20_N9GG21223333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21223333barEv,_ZTv0_n24_N9GG21223333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2122333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21223333fooEv,_ZTv0_n12_N9GG21223333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21223333barEv,_ZTv0_n16_N9GG21223333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2122333[];
+extern void _ZN5EE2123barEv();
+static VTBL_ENTRY _tg__ZTV5EE212__9GG2122333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN5EE2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv)();
+extern void ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE212__9GG2122333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE212__9GG2122333[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF2333fooEv();
+extern void _ZN5FF2333barEv();
+static VTBL_ENTRY _tg__ZTV5FF233__9GG2122333[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&_ZN5FF2333fooEv,
+ (VTBL_ENTRY)&_ZN5FF2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF233__9GG2122333[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF2333fooEv,_ZThn8_N5FF2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv)();
+extern void ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF233__9GG2122333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv),
+};
+static VTT_ENTRY vtt_GG2122333[] = {
+ {&(_ZTV9GG2122333[7]), 7,37},
+ {&(_ZTV9GG2122333[14]), 14,37},
+ {&(_ZTV9GG2122333[18]), 18,37},
+ {&(_ZTV9GG2122333[22]), 22,37},
+ {&(_ZTV9GG2122333[29]), 29,37},
+ {&(_ZTV9GG2122333[35]), 35,37},
+ {&(_tg__ZTV5EE212__9GG2122333[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE212__9GG2122333[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE212__9GG2122333[3]), 3,4},
+ {&(_tg__ZTV5FF233__9GG2122333[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF233__9GG2122333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF233__9GG2122333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2122333[];
+extern VTBL_ENTRY _ZTV9GG2122333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2122333[];
+static VTBL_ENTRY alt_thunk_names515[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2333fooEv,_ZThn8_N5FF2333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG21223333barEv,_ZTv0_n16_N9GG21223333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21223333barEv,_ZThn40_N9GG21223333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG21223333barEv,_ZTv0_n24_N9GG21223333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21223333barEv,_ZThn32_N9GG21223333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21223333fooEv,_ZTv0_n20_N9GG21223333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21223333fooEv,_ZThn32_N9GG21223333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21223333fooEv,_ZTv0_n12_N9GG21223333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21223333fooEv,_ZThn40_N9GG21223333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21223333fooEv,_ZThn24_N9GG21223333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21223333barEv,_ZTv0_n12_N9GG21223333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21223333barEv,_ZThn16_N9GG21223333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21223333barEv,_ZTv0_n20_N9GG21223333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21223333barEv,_ZThn8_N9GG21223333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2122333 = { "GG2122333", // class name
+ bases_GG2122333, 5,
+ &(vtc_GG2122333[0]), // expected_vtbl_contents
+ &(vtt_GG2122333[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2122333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2122333),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2122333),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names515,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2123113 : virtual EE212 , virtual FF311 {
+ int pg;
+ virtual void foo(); // _ZN9GG21231133fooEv
+ virtual void bar(); // _ZN9GG21231133barEv
+ ~GG2123113(); // tgen
+ GG2123113(); // tgen
+};
+//SIG(1 GG2123113) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG2123113 ::foo(){vfunc_called(this, "_ZN9GG21231133fooEv");}
+void GG2123113 ::bar(){vfunc_called(this, "_ZN9GG21231133barEv");}
+GG2123113 ::~GG2123113(){ note_dtor("GG2123113", this);} // tgen
+GG2123113 ::GG2123113(){ note_ctor("GG2123113", this);} // tgen
+
+static void Test_GG2123113()
+{
+ extern Class_Descriptor cd_GG2123113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2123113, buf);
+ GG2123113 *dp, &lv = *(dp=new (buf) GG2123113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2123113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2123113)");
+ check_base_class_offset(lv, (AA2*)(EE212*), ABISELECT(32,16), "GG2123113");
+ check_base_class_offset(lv, (BB1*)(EE212*), ABISELECT(48,24), "GG2123113");
+ check_base_class_offset(lv, (BB1*)(FF311*), ABISELECT(48,24), "GG2123113");
+ check_base_class_offset(lv, (EE212*), ABISELECT(16,8), "GG2123113");
+ check_base_class_offset(lv, (AA3*)(FF311*), ABISELECT(80,40), "GG2123113");
+ check_base_class_offset(lv, (FF311*), ABISELECT(64,32), "GG2123113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2123113.pg");
+ test_class_info(&lv, &cd_GG2123113);
+ dp->~GG2123113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2123113(Test_GG2123113, "GG2123113", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2123113C1Ev();
+extern void _ZN9GG2123113D1Ev();
+Name_Map name_map_GG2123113[] = {
+ NSPAIR(_ZN9GG2123113C1Ev),
+ NSPAIR(_ZN9GG2123113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE212;
+extern VTBL_ENTRY _ZTI5EE212[];
+extern VTBL_ENTRY _ZTV5EE212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE212[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF311;
+extern VTBL_ENTRY _ZTI5FF311[];
+extern VTBL_ENTRY _ZTV5FF311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF311[];
+static Base_Class bases_GG2123113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE212, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF311, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2123113[];
+extern void _ZN9GG21231133fooEv();
+extern void _ZN9GG21231133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21231133barEv,_ZTv0_n20_N9GG21231133barEv)();
+extern void ABISELECT(_ZThn16_N9GG21231133barEv,_ZThn8_N9GG21231133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21231133barEv,_ZTv0_n12_N9GG21231133barEv)();
+extern void ABISELECT(_ZThn32_N9GG21231133barEv,_ZThn16_N9GG21231133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21231133fooEv,_ZTv0_n12_N9GG21231133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21231133fooEv,_ZThn24_N9GG21231133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21231133fooEv,_ZTv0_n20_N9GG21231133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21231133fooEv,_ZThn32_N9GG21231133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21231133fooEv,_ZTv0_n12_N9GG21231133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21231133fooEv,_ZThn40_N9GG21231133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21231133barEv,_ZTv0_n16_N9GG21231133barEv)();
+extern void ABISELECT(_ZThn80_N9GG21231133barEv,_ZThn40_N9GG21231133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2123113[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2123113[0]),
+ (VTBL_ENTRY)&_ZN9GG21231133fooEv,
+ (VTBL_ENTRY)&_ZN9GG21231133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2123113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21231133barEv,_ZTv0_n20_N9GG21231133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2123113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21231133barEv,_ZTv0_n12_N9GG21231133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2123113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21231133fooEv,_ZTv0_n12_N9GG21231133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2123113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21231133fooEv,_ZTv0_n20_N9GG21231133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2123113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21231133fooEv,_ZTv0_n12_N9GG21231133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21231133barEv,_ZTv0_n16_N9GG21231133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2123113[];
+extern void _ZN5EE2123barEv();
+static VTBL_ENTRY _tg__ZTV5EE212__9GG2123113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN5EE2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv)();
+extern void ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE212__9GG2123113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE212__9GG2123113[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF3113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF311__9GG2123113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&_ZN5FF3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF311__9GG2123113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF311__9GG2123113[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+};
+static VTT_ENTRY vtt_GG2123113[] = {
+ {&(_ZTV9GG2123113[7]), 7,35},
+ {&(_ZTV9GG2123113[14]), 14,35},
+ {&(_ZTV9GG2123113[18]), 18,35},
+ {&(_ZTV9GG2123113[22]), 22,35},
+ {&(_ZTV9GG2123113[28]), 28,35},
+ {&(_ZTV9GG2123113[33]), 33,35},
+ {&(_tg__ZTV5EE212__9GG2123113[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE212__9GG2123113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE212__9GG2123113[3]), 3,4},
+ {&(_tg__ZTV5FF311__9GG2123113[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF311__9GG2123113[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF311__9GG2123113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2123113[];
+extern VTBL_ENTRY _ZTV9GG2123113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2123113[];
+static VTBL_ENTRY alt_thunk_names516[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG21231133barEv,_ZTv0_n16_N9GG21231133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21231133barEv,_ZThn40_N9GG21231133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21231133fooEv,_ZTv0_n20_N9GG21231133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21231133fooEv,_ZThn32_N9GG21231133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21231133fooEv,_ZTv0_n12_N9GG21231133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21231133fooEv,_ZThn40_N9GG21231133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21231133fooEv,_ZThn24_N9GG21231133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21231133barEv,_ZTv0_n12_N9GG21231133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21231133barEv,_ZThn16_N9GG21231133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21231133barEv,_ZTv0_n20_N9GG21231133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21231133barEv,_ZThn8_N9GG21231133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2123113 = { "GG2123113", // class name
+ bases_GG2123113, 5,
+ &(vtc_GG2123113[0]), // expected_vtbl_contents
+ &(vtt_GG2123113[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2123113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2123113),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2123113),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names516,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2123123 : virtual EE212 , virtual FF312 {
+ int pg;
+ virtual void foo(); // _ZN9GG21231233fooEv
+ virtual void bar(); // _ZN9GG21231233barEv
+ ~GG2123123(); // tgen
+ GG2123123(); // tgen
+};
+//SIG(1 GG2123123) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG2123123 ::foo(){vfunc_called(this, "_ZN9GG21231233fooEv");}
+void GG2123123 ::bar(){vfunc_called(this, "_ZN9GG21231233barEv");}
+GG2123123 ::~GG2123123(){ note_dtor("GG2123123", this);} // tgen
+GG2123123 ::GG2123123(){ note_ctor("GG2123123", this);} // tgen
+
+static void Test_GG2123123()
+{
+ extern Class_Descriptor cd_GG2123123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2123123, buf);
+ GG2123123 *dp, &lv = *(dp=new (buf) GG2123123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2123123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2123123)");
+ check_base_class_offset(lv, (AA2*)(EE212*), ABISELECT(32,16), "GG2123123");
+ check_base_class_offset(lv, (BB1*)(EE212*), ABISELECT(48,24), "GG2123123");
+ check_base_class_offset(lv, (BB1*)(FF312*), ABISELECT(48,24), "GG2123123");
+ check_base_class_offset(lv, (EE212*), ABISELECT(16,8), "GG2123123");
+ check_base_class_offset(lv, (AA3*)(FF312*), ABISELECT(80,40), "GG2123123");
+ check_base_class_offset(lv, (FF312*), ABISELECT(64,32), "GG2123123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2123123.pg");
+ test_class_info(&lv, &cd_GG2123123);
+ dp->~GG2123123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2123123(Test_GG2123123, "GG2123123", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2123123C1Ev();
+extern void _ZN9GG2123123D1Ev();
+Name_Map name_map_GG2123123[] = {
+ NSPAIR(_ZN9GG2123123C1Ev),
+ NSPAIR(_ZN9GG2123123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE212;
+extern VTBL_ENTRY _ZTI5EE212[];
+extern VTBL_ENTRY _ZTV5EE212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE212[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF312;
+extern VTBL_ENTRY _ZTI5FF312[];
+extern VTBL_ENTRY _ZTV5FF312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF312[];
+static Base_Class bases_GG2123123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE212, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF312, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2123123[];
+extern void _ZN9GG21231233fooEv();
+extern void _ZN9GG21231233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21231233barEv,_ZTv0_n20_N9GG21231233barEv)();
+extern void ABISELECT(_ZThn16_N9GG21231233barEv,_ZThn8_N9GG21231233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21231233barEv,_ZTv0_n12_N9GG21231233barEv)();
+extern void ABISELECT(_ZThn32_N9GG21231233barEv,_ZThn16_N9GG21231233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21231233fooEv,_ZTv0_n12_N9GG21231233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21231233fooEv,_ZThn24_N9GG21231233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21231233barEv,_ZTv0_n20_N9GG21231233barEv)();
+extern void ABISELECT(_ZThn64_N9GG21231233barEv,_ZThn32_N9GG21231233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21231233fooEv,_ZTv0_n12_N9GG21231233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21231233fooEv,_ZThn40_N9GG21231233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21231233barEv,_ZTv0_n16_N9GG21231233barEv)();
+extern void ABISELECT(_ZThn80_N9GG21231233barEv,_ZThn40_N9GG21231233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2123123[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2123123[0]),
+ (VTBL_ENTRY)&_ZN9GG21231233fooEv,
+ (VTBL_ENTRY)&_ZN9GG21231233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2123123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21231233barEv,_ZTv0_n20_N9GG21231233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2123123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21231233barEv,_ZTv0_n12_N9GG21231233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2123123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21231233fooEv,_ZTv0_n12_N9GG21231233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2123123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21231233barEv,_ZTv0_n20_N9GG21231233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2123123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21231233fooEv,_ZTv0_n12_N9GG21231233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21231233barEv,_ZTv0_n16_N9GG21231233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2123123[];
+extern void _ZN5EE2123barEv();
+static VTBL_ENTRY _tg__ZTV5EE212__9GG2123123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN5EE2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv)();
+extern void ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE212__9GG2123123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE212__9GG2123123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF3123barEv();
+static VTBL_ENTRY _tg__ZTV5FF312__9GG2123123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN5FF3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv)();
+extern void ABISELECT(_ZThn16_N5FF3123barEv,_ZThn8_N5FF3123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF312__9GG2123123[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF312__9GG2123123[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG2123123[] = {
+ {&(_ZTV9GG2123123[7]), 7,35},
+ {&(_ZTV9GG2123123[14]), 14,35},
+ {&(_ZTV9GG2123123[18]), 18,35},
+ {&(_ZTV9GG2123123[22]), 22,35},
+ {&(_ZTV9GG2123123[28]), 28,35},
+ {&(_ZTV9GG2123123[33]), 33,35},
+ {&(_tg__ZTV5EE212__9GG2123123[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE212__9GG2123123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE212__9GG2123123[3]), 3,4},
+ {&(_tg__ZTV5FF312__9GG2123123[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF312__9GG2123123[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF312__9GG2123123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2123123[];
+extern VTBL_ENTRY _ZTV9GG2123123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2123123[];
+static VTBL_ENTRY alt_thunk_names517[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3123barEv,_ZThn8_N5FF3123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG21231233barEv,_ZTv0_n16_N9GG21231233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21231233barEv,_ZThn40_N9GG21231233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21231233fooEv,_ZTv0_n12_N9GG21231233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21231233fooEv,_ZThn40_N9GG21231233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21231233fooEv,_ZThn24_N9GG21231233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21231233barEv,_ZTv0_n12_N9GG21231233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21231233barEv,_ZThn16_N9GG21231233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21231233barEv,_ZTv0_n20_N9GG21231233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21231233barEv,_ZThn32_N9GG21231233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21231233barEv,_ZThn8_N9GG21231233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2123123 = { "GG2123123", // class name
+ bases_GG2123123, 5,
+ &(vtc_GG2123123[0]), // expected_vtbl_contents
+ &(vtt_GG2123123[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2123123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2123123),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2123123),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names517,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2123133 : virtual EE212 , virtual FF313 {
+ int pg;
+ virtual void foo(); // _ZN9GG21231333fooEv
+ virtual void bar(); // _ZN9GG21231333barEv
+ ~GG2123133(); // tgen
+ GG2123133(); // tgen
+};
+//SIG(1 GG2123133) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2123133 ::foo(){vfunc_called(this, "_ZN9GG21231333fooEv");}
+void GG2123133 ::bar(){vfunc_called(this, "_ZN9GG21231333barEv");}
+GG2123133 ::~GG2123133(){ note_dtor("GG2123133", this);} // tgen
+GG2123133 ::GG2123133(){ note_ctor("GG2123133", this);} // tgen
+
+static void Test_GG2123133()
+{
+ extern Class_Descriptor cd_GG2123133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2123133, buf);
+ GG2123133 *dp, &lv = *(dp=new (buf) GG2123133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2123133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2123133)");
+ check_base_class_offset(lv, (AA2*)(EE212*), ABISELECT(32,16), "GG2123133");
+ check_base_class_offset(lv, (BB1*)(EE212*), ABISELECT(48,24), "GG2123133");
+ check_base_class_offset(lv, (BB1*)(FF313*), ABISELECT(48,24), "GG2123133");
+ check_base_class_offset(lv, (EE212*), ABISELECT(16,8), "GG2123133");
+ check_base_class_offset(lv, (AA3*)(FF313*), ABISELECT(80,40), "GG2123133");
+ check_base_class_offset(lv, (FF313*), ABISELECT(64,32), "GG2123133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2123133.pg");
+ test_class_info(&lv, &cd_GG2123133);
+ dp->~GG2123133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2123133(Test_GG2123133, "GG2123133", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2123133C1Ev();
+extern void _ZN9GG2123133D1Ev();
+Name_Map name_map_GG2123133[] = {
+ NSPAIR(_ZN9GG2123133C1Ev),
+ NSPAIR(_ZN9GG2123133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE212;
+extern VTBL_ENTRY _ZTI5EE212[];
+extern VTBL_ENTRY _ZTV5EE212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE212[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF313;
+extern VTBL_ENTRY _ZTI5FF313[];
+extern VTBL_ENTRY _ZTV5FF313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF313[];
+static Base_Class bases_GG2123133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE212, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF313, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2123133[];
+extern void _ZN9GG21231333fooEv();
+extern void _ZN9GG21231333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21231333barEv,_ZTv0_n20_N9GG21231333barEv)();
+extern void ABISELECT(_ZThn16_N9GG21231333barEv,_ZThn8_N9GG21231333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21231333barEv,_ZTv0_n12_N9GG21231333barEv)();
+extern void ABISELECT(_ZThn32_N9GG21231333barEv,_ZThn16_N9GG21231333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21231333fooEv,_ZTv0_n12_N9GG21231333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21231333fooEv,_ZThn24_N9GG21231333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21231333fooEv,_ZTv0_n20_N9GG21231333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21231333fooEv,_ZThn32_N9GG21231333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21231333barEv,_ZTv0_n24_N9GG21231333barEv)();
+extern void ABISELECT(_ZThn64_N9GG21231333barEv,_ZThn32_N9GG21231333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21231333fooEv,_ZTv0_n12_N9GG21231333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21231333fooEv,_ZThn40_N9GG21231333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21231333barEv,_ZTv0_n16_N9GG21231333barEv)();
+extern void ABISELECT(_ZThn80_N9GG21231333barEv,_ZThn40_N9GG21231333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2123133[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2123133[0]),
+ (VTBL_ENTRY)&_ZN9GG21231333fooEv,
+ (VTBL_ENTRY)&_ZN9GG21231333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2123133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21231333barEv,_ZTv0_n20_N9GG21231333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2123133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21231333barEv,_ZTv0_n12_N9GG21231333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2123133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21231333fooEv,_ZTv0_n12_N9GG21231333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2123133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21231333fooEv,_ZTv0_n20_N9GG21231333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21231333barEv,_ZTv0_n24_N9GG21231333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2123133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21231333fooEv,_ZTv0_n12_N9GG21231333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21231333barEv,_ZTv0_n16_N9GG21231333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2123133[];
+extern void _ZN5EE2123barEv();
+static VTBL_ENTRY _tg__ZTV5EE212__9GG2123133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN5EE2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv)();
+extern void ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE212__9GG2123133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE212__9GG2123133[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF3133fooEv();
+extern void _ZN5FF3133barEv();
+static VTBL_ENTRY _tg__ZTV5FF313__9GG2123133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&_ZN5FF3133fooEv,
+ (VTBL_ENTRY)&_ZN5FF3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv)();
+extern void ABISELECT(_ZThn16_N5FF3133barEv,_ZThn8_N5FF3133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF313__9GG2123133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF313__9GG2123133[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+};
+static VTT_ENTRY vtt_GG2123133[] = {
+ {&(_ZTV9GG2123133[7]), 7,37},
+ {&(_ZTV9GG2123133[14]), 14,37},
+ {&(_ZTV9GG2123133[18]), 18,37},
+ {&(_ZTV9GG2123133[22]), 22,37},
+ {&(_ZTV9GG2123133[29]), 29,37},
+ {&(_ZTV9GG2123133[35]), 35,37},
+ {&(_tg__ZTV5EE212__9GG2123133[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE212__9GG2123133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE212__9GG2123133[3]), 3,4},
+ {&(_tg__ZTV5FF313__9GG2123133[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF313__9GG2123133[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF313__9GG2123133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2123133[];
+extern VTBL_ENTRY _ZTV9GG2123133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2123133[];
+static VTBL_ENTRY alt_thunk_names518[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3133barEv,_ZThn8_N5FF3133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG21231333barEv,_ZTv0_n16_N9GG21231333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21231333barEv,_ZThn40_N9GG21231333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG21231333barEv,_ZTv0_n24_N9GG21231333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21231333barEv,_ZThn32_N9GG21231333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21231333fooEv,_ZTv0_n20_N9GG21231333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21231333fooEv,_ZThn32_N9GG21231333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21231333fooEv,_ZTv0_n12_N9GG21231333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21231333fooEv,_ZThn40_N9GG21231333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21231333fooEv,_ZThn24_N9GG21231333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21231333barEv,_ZTv0_n12_N9GG21231333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21231333barEv,_ZThn16_N9GG21231333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21231333barEv,_ZTv0_n20_N9GG21231333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21231333barEv,_ZThn8_N9GG21231333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2123133 = { "GG2123133", // class name
+ bases_GG2123133, 5,
+ &(vtc_GG2123133[0]), // expected_vtbl_contents
+ &(vtt_GG2123133[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2123133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2123133),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2123133),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names518,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2123213 : virtual EE212 , virtual FF321 {
+ int pg;
+ virtual void foo(); // _ZN9GG21232133fooEv
+ virtual void bar(); // _ZN9GG21232133barEv
+ ~GG2123213(); // tgen
+ GG2123213(); // tgen
+};
+//SIG(1 GG2123213) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2123213 ::foo(){vfunc_called(this, "_ZN9GG21232133fooEv");}
+void GG2123213 ::bar(){vfunc_called(this, "_ZN9GG21232133barEv");}
+GG2123213 ::~GG2123213(){ note_dtor("GG2123213", this);} // tgen
+GG2123213 ::GG2123213(){ note_ctor("GG2123213", this);} // tgen
+
+static void Test_GG2123213()
+{
+ extern Class_Descriptor cd_GG2123213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2123213, buf);
+ GG2123213 *dp, &lv = *(dp=new (buf) GG2123213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2123213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2123213)");
+ check_base_class_offset(lv, (AA2*)(EE212*), ABISELECT(32,16), "GG2123213");
+ check_base_class_offset(lv, (BB1*)(EE212*), ABISELECT(48,24), "GG2123213");
+ check_base_class_offset(lv, (EE212*), ABISELECT(16,8), "GG2123213");
+ check_base_class_offset(lv, (AA3*)(FF321*), ABISELECT(80,40), "GG2123213");
+ check_base_class_offset(lv, (BB2*)(FF321*), ABISELECT(96,48), "GG2123213");
+ check_base_class_offset(lv, (FF321*), ABISELECT(64,32), "GG2123213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2123213.pg");
+ test_class_info(&lv, &cd_GG2123213);
+ dp->~GG2123213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2123213(Test_GG2123213, "GG2123213", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2123213C1Ev();
+extern void _ZN9GG2123213D1Ev();
+Name_Map name_map_GG2123213[] = {
+ NSPAIR(_ZN9GG2123213C1Ev),
+ NSPAIR(_ZN9GG2123213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE212;
+extern VTBL_ENTRY _ZTI5EE212[];
+extern VTBL_ENTRY _ZTV5EE212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE212[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF321;
+extern VTBL_ENTRY _ZTI5FF321[];
+extern VTBL_ENTRY _ZTV5FF321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF321[];
+static Base_Class bases_GG2123213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE212, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF321, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2123213[];
+extern void _ZN9GG21232133fooEv();
+extern void _ZN9GG21232133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21232133barEv,_ZTv0_n20_N9GG21232133barEv)();
+extern void ABISELECT(_ZThn16_N9GG21232133barEv,_ZThn8_N9GG21232133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21232133barEv,_ZTv0_n12_N9GG21232133barEv)();
+extern void ABISELECT(_ZThn32_N9GG21232133barEv,_ZThn16_N9GG21232133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21232133fooEv,_ZTv0_n12_N9GG21232133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21232133fooEv,_ZThn24_N9GG21232133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21232133fooEv,_ZTv0_n20_N9GG21232133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21232133fooEv,_ZThn32_N9GG21232133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21232133fooEv,_ZTv0_n12_N9GG21232133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21232133fooEv,_ZThn40_N9GG21232133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21232133barEv,_ZTv0_n16_N9GG21232133barEv)();
+extern void ABISELECT(_ZThn80_N9GG21232133barEv,_ZThn40_N9GG21232133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21232133barEv,_ZTv0_n12_N9GG21232133barEv)();
+extern void ABISELECT(_ZThn96_N9GG21232133barEv,_ZThn48_N9GG21232133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2123213[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2123213[0]),
+ (VTBL_ENTRY)&_ZN9GG21232133fooEv,
+ (VTBL_ENTRY)&_ZN9GG21232133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2123213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21232133barEv,_ZTv0_n20_N9GG21232133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2123213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21232133barEv,_ZTv0_n12_N9GG21232133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2123213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21232133fooEv,_ZTv0_n12_N9GG21232133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2123213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21232133fooEv,_ZTv0_n20_N9GG21232133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2123213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21232133fooEv,_ZTv0_n12_N9GG21232133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21232133barEv,_ZTv0_n16_N9GG21232133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2123213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21232133barEv,_ZTv0_n12_N9GG21232133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2123213[];
+extern void _ZN5EE2123barEv();
+static VTBL_ENTRY _tg__ZTV5EE212__9GG2123213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN5EE2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv)();
+extern void ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE212__9GG2123213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE212__9GG2123213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF3213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF321__9GG2123213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN5FF3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3213fooEv,_ZThn8_N5FF3213fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF321__9GG2123213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF321__9GG2123213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG2123213[] = {
+ {&(_ZTV9GG2123213[8]), 8,40},
+ {&(_ZTV9GG2123213[15]), 15,40},
+ {&(_ZTV9GG2123213[19]), 19,40},
+ {&(_ZTV9GG2123213[23]), 23,40},
+ {&(_ZTV9GG2123213[29]), 29,40},
+ {&(_ZTV9GG2123213[34]), 34,40},
+ {&(_ZTV9GG2123213[39]), 39,40},
+ {&(_tg__ZTV5EE212__9GG2123213[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE212__9GG2123213[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE212__9GG2123213[3]), 3,4},
+ {&(_tg__ZTV5FF321__9GG2123213[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF321__9GG2123213[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF321__9GG2123213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2123213[];
+extern VTBL_ENTRY _ZTV9GG2123213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2123213[];
+static VTBL_ENTRY alt_thunk_names519[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3213fooEv,_ZThn8_N5FF3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG21232133barEv,_ZTv0_n16_N9GG21232133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21232133barEv,_ZThn40_N9GG21232133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21232133fooEv,_ZTv0_n20_N9GG21232133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21232133fooEv,_ZThn32_N9GG21232133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21232133fooEv,_ZTv0_n12_N9GG21232133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21232133fooEv,_ZThn40_N9GG21232133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21232133fooEv,_ZThn24_N9GG21232133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21232133barEv,_ZTv0_n12_N9GG21232133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21232133barEv,_ZThn48_N9GG21232133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21232133barEv,_ZThn16_N9GG21232133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21232133barEv,_ZTv0_n20_N9GG21232133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21232133barEv,_ZThn8_N9GG21232133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2123213 = { "GG2123213", // class name
+ bases_GG2123213, 6,
+ &(vtc_GG2123213[0]), // expected_vtbl_contents
+ &(vtt_GG2123213[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2123213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2123213),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2123213),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names519,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2123223 : virtual EE212 , virtual FF322 {
+ int pg;
+ virtual void foo(); // _ZN9GG21232233fooEv
+ virtual void bar(); // _ZN9GG21232233barEv
+ ~GG2123223(); // tgen
+ GG2123223(); // tgen
+};
+//SIG(1 GG2123223) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2123223 ::foo(){vfunc_called(this, "_ZN9GG21232233fooEv");}
+void GG2123223 ::bar(){vfunc_called(this, "_ZN9GG21232233barEv");}
+GG2123223 ::~GG2123223(){ note_dtor("GG2123223", this);} // tgen
+GG2123223 ::GG2123223(){ note_ctor("GG2123223", this);} // tgen
+
+static void Test_GG2123223()
+{
+ extern Class_Descriptor cd_GG2123223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2123223, buf);
+ GG2123223 *dp, &lv = *(dp=new (buf) GG2123223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2123223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2123223)");
+ check_base_class_offset(lv, (AA2*)(EE212*), ABISELECT(32,16), "GG2123223");
+ check_base_class_offset(lv, (BB1*)(EE212*), ABISELECT(48,24), "GG2123223");
+ check_base_class_offset(lv, (EE212*), ABISELECT(16,8), "GG2123223");
+ check_base_class_offset(lv, (AA3*)(FF322*), ABISELECT(80,40), "GG2123223");
+ check_base_class_offset(lv, (BB2*)(FF322*), ABISELECT(96,48), "GG2123223");
+ check_base_class_offset(lv, (FF322*), ABISELECT(64,32), "GG2123223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2123223.pg");
+ test_class_info(&lv, &cd_GG2123223);
+ dp->~GG2123223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2123223(Test_GG2123223, "GG2123223", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2123223C1Ev();
+extern void _ZN9GG2123223D1Ev();
+Name_Map name_map_GG2123223[] = {
+ NSPAIR(_ZN9GG2123223C1Ev),
+ NSPAIR(_ZN9GG2123223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE212;
+extern VTBL_ENTRY _ZTI5EE212[];
+extern VTBL_ENTRY _ZTV5EE212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE212[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF322;
+extern VTBL_ENTRY _ZTI5FF322[];
+extern VTBL_ENTRY _ZTV5FF322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF322[];
+static Base_Class bases_GG2123223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE212, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF322, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2123223[];
+extern void _ZN9GG21232233fooEv();
+extern void _ZN9GG21232233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21232233barEv,_ZTv0_n20_N9GG21232233barEv)();
+extern void ABISELECT(_ZThn16_N9GG21232233barEv,_ZThn8_N9GG21232233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21232233barEv,_ZTv0_n12_N9GG21232233barEv)();
+extern void ABISELECT(_ZThn32_N9GG21232233barEv,_ZThn16_N9GG21232233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21232233fooEv,_ZTv0_n12_N9GG21232233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21232233fooEv,_ZThn24_N9GG21232233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21232233barEv,_ZTv0_n20_N9GG21232233barEv)();
+extern void ABISELECT(_ZThn64_N9GG21232233barEv,_ZThn32_N9GG21232233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21232233fooEv,_ZTv0_n12_N9GG21232233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21232233fooEv,_ZThn40_N9GG21232233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21232233barEv,_ZTv0_n16_N9GG21232233barEv)();
+extern void ABISELECT(_ZThn80_N9GG21232233barEv,_ZThn40_N9GG21232233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21232233barEv,_ZTv0_n12_N9GG21232233barEv)();
+extern void ABISELECT(_ZThn96_N9GG21232233barEv,_ZThn48_N9GG21232233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2123223[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2123223[0]),
+ (VTBL_ENTRY)&_ZN9GG21232233fooEv,
+ (VTBL_ENTRY)&_ZN9GG21232233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2123223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21232233barEv,_ZTv0_n20_N9GG21232233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2123223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21232233barEv,_ZTv0_n12_N9GG21232233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2123223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21232233fooEv,_ZTv0_n12_N9GG21232233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2123223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21232233barEv,_ZTv0_n20_N9GG21232233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2123223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21232233fooEv,_ZTv0_n12_N9GG21232233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21232233barEv,_ZTv0_n16_N9GG21232233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2123223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21232233barEv,_ZTv0_n12_N9GG21232233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2123223[];
+extern void _ZN5EE2123barEv();
+static VTBL_ENTRY _tg__ZTV5EE212__9GG2123223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN5EE2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv)();
+extern void ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE212__9GG2123223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE212__9GG2123223[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF3223barEv();
+static VTBL_ENTRY _tg__ZTV5FF322__9GG2123223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN5FF3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv)();
+extern void ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF322__9GG2123223[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv)();
+extern void ABISELECT(_ZThn32_N5FF3223barEv,_ZThn16_N5FF3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF322__9GG2123223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv),
+};
+static VTT_ENTRY vtt_GG2123223[] = {
+ {&(_ZTV9GG2123223[8]), 8,40},
+ {&(_ZTV9GG2123223[15]), 15,40},
+ {&(_ZTV9GG2123223[19]), 19,40},
+ {&(_ZTV9GG2123223[23]), 23,40},
+ {&(_ZTV9GG2123223[29]), 29,40},
+ {&(_ZTV9GG2123223[34]), 34,40},
+ {&(_ZTV9GG2123223[39]), 39,40},
+ {&(_tg__ZTV5EE212__9GG2123223[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE212__9GG2123223[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE212__9GG2123223[3]), 3,4},
+ {&(_tg__ZTV5FF322__9GG2123223[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF322__9GG2123223[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF322__9GG2123223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2123223[];
+extern VTBL_ENTRY _ZTV9GG2123223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2123223[];
+static VTBL_ENTRY alt_thunk_names520[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3223barEv,_ZThn16_N5FF3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG21232233barEv,_ZTv0_n16_N9GG21232233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21232233barEv,_ZThn40_N9GG21232233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21232233fooEv,_ZTv0_n12_N9GG21232233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21232233fooEv,_ZThn40_N9GG21232233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21232233fooEv,_ZThn24_N9GG21232233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21232233barEv,_ZTv0_n12_N9GG21232233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21232233barEv,_ZThn48_N9GG21232233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21232233barEv,_ZThn16_N9GG21232233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21232233barEv,_ZTv0_n20_N9GG21232233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21232233barEv,_ZThn32_N9GG21232233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21232233barEv,_ZThn8_N9GG21232233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2123223 = { "GG2123223", // class name
+ bases_GG2123223, 6,
+ &(vtc_GG2123223[0]), // expected_vtbl_contents
+ &(vtt_GG2123223[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2123223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2123223),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2123223),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names520,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2123233 : virtual EE212 , virtual FF323 {
+ int pg;
+ virtual void foo(); // _ZN9GG21232333fooEv
+ virtual void bar(); // _ZN9GG21232333barEv
+ ~GG2123233(); // tgen
+ GG2123233(); // tgen
+};
+//SIG(1 GG2123233) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2123233 ::foo(){vfunc_called(this, "_ZN9GG21232333fooEv");}
+void GG2123233 ::bar(){vfunc_called(this, "_ZN9GG21232333barEv");}
+GG2123233 ::~GG2123233(){ note_dtor("GG2123233", this);} // tgen
+GG2123233 ::GG2123233(){ note_ctor("GG2123233", this);} // tgen
+
+static void Test_GG2123233()
+{
+ extern Class_Descriptor cd_GG2123233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2123233, buf);
+ GG2123233 *dp, &lv = *(dp=new (buf) GG2123233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2123233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2123233)");
+ check_base_class_offset(lv, (AA2*)(EE212*), ABISELECT(32,16), "GG2123233");
+ check_base_class_offset(lv, (BB1*)(EE212*), ABISELECT(48,24), "GG2123233");
+ check_base_class_offset(lv, (EE212*), ABISELECT(16,8), "GG2123233");
+ check_base_class_offset(lv, (AA3*)(FF323*), ABISELECT(80,40), "GG2123233");
+ check_base_class_offset(lv, (BB2*)(FF323*), ABISELECT(96,48), "GG2123233");
+ check_base_class_offset(lv, (FF323*), ABISELECT(64,32), "GG2123233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2123233.pg");
+ test_class_info(&lv, &cd_GG2123233);
+ dp->~GG2123233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2123233(Test_GG2123233, "GG2123233", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2123233C1Ev();
+extern void _ZN9GG2123233D1Ev();
+Name_Map name_map_GG2123233[] = {
+ NSPAIR(_ZN9GG2123233C1Ev),
+ NSPAIR(_ZN9GG2123233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE212;
+extern VTBL_ENTRY _ZTI5EE212[];
+extern VTBL_ENTRY _ZTV5EE212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE212[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF323;
+extern VTBL_ENTRY _ZTI5FF323[];
+extern VTBL_ENTRY _ZTV5FF323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF323[];
+static Base_Class bases_GG2123233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE212, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF323, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2123233[];
+extern void _ZN9GG21232333fooEv();
+extern void _ZN9GG21232333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21232333barEv,_ZTv0_n20_N9GG21232333barEv)();
+extern void ABISELECT(_ZThn16_N9GG21232333barEv,_ZThn8_N9GG21232333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21232333barEv,_ZTv0_n12_N9GG21232333barEv)();
+extern void ABISELECT(_ZThn32_N9GG21232333barEv,_ZThn16_N9GG21232333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21232333fooEv,_ZTv0_n12_N9GG21232333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21232333fooEv,_ZThn24_N9GG21232333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21232333fooEv,_ZTv0_n20_N9GG21232333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21232333fooEv,_ZThn32_N9GG21232333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21232333barEv,_ZTv0_n24_N9GG21232333barEv)();
+extern void ABISELECT(_ZThn64_N9GG21232333barEv,_ZThn32_N9GG21232333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21232333fooEv,_ZTv0_n12_N9GG21232333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21232333fooEv,_ZThn40_N9GG21232333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21232333barEv,_ZTv0_n16_N9GG21232333barEv)();
+extern void ABISELECT(_ZThn80_N9GG21232333barEv,_ZThn40_N9GG21232333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21232333barEv,_ZTv0_n12_N9GG21232333barEv)();
+extern void ABISELECT(_ZThn96_N9GG21232333barEv,_ZThn48_N9GG21232333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2123233[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2123233[0]),
+ (VTBL_ENTRY)&_ZN9GG21232333fooEv,
+ (VTBL_ENTRY)&_ZN9GG21232333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2123233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21232333barEv,_ZTv0_n20_N9GG21232333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2123233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21232333barEv,_ZTv0_n12_N9GG21232333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2123233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21232333fooEv,_ZTv0_n12_N9GG21232333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2123233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21232333fooEv,_ZTv0_n20_N9GG21232333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21232333barEv,_ZTv0_n24_N9GG21232333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2123233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21232333fooEv,_ZTv0_n12_N9GG21232333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21232333barEv,_ZTv0_n16_N9GG21232333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2123233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21232333barEv,_ZTv0_n12_N9GG21232333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2123233[];
+extern void _ZN5EE2123barEv();
+static VTBL_ENTRY _tg__ZTV5EE212__9GG2123233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN5EE2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv)();
+extern void ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE212__9GG2123233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE212__9GG2123233[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF3233fooEv();
+extern void _ZN5FF3233barEv();
+static VTBL_ENTRY _tg__ZTV5FF323__9GG2123233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&_ZN5FF3233fooEv,
+ (VTBL_ENTRY)&_ZN5FF3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3233fooEv,_ZThn8_N5FF3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv)();
+extern void ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF323__9GG2123233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv)();
+extern void ABISELECT(_ZThn32_N5FF3233barEv,_ZThn16_N5FF3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF323__9GG2123233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv),
+};
+static VTT_ENTRY vtt_GG2123233[] = {
+ {&(_ZTV9GG2123233[8]), 8,42},
+ {&(_ZTV9GG2123233[15]), 15,42},
+ {&(_ZTV9GG2123233[19]), 19,42},
+ {&(_ZTV9GG2123233[23]), 23,42},
+ {&(_ZTV9GG2123233[30]), 30,42},
+ {&(_ZTV9GG2123233[36]), 36,42},
+ {&(_ZTV9GG2123233[41]), 41,42},
+ {&(_tg__ZTV5EE212__9GG2123233[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE212__9GG2123233[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE212__9GG2123233[3]), 3,4},
+ {&(_tg__ZTV5FF323__9GG2123233[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF323__9GG2123233[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF323__9GG2123233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2123233[];
+extern VTBL_ENTRY _ZTV9GG2123233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2123233[];
+static VTBL_ENTRY alt_thunk_names521[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3233barEv,_ZThn16_N5FF3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3233fooEv,_ZThn8_N5FF3233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG21232333barEv,_ZTv0_n16_N9GG21232333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21232333barEv,_ZThn40_N9GG21232333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG21232333barEv,_ZTv0_n24_N9GG21232333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21232333barEv,_ZThn32_N9GG21232333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21232333fooEv,_ZTv0_n20_N9GG21232333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21232333fooEv,_ZThn32_N9GG21232333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21232333fooEv,_ZTv0_n12_N9GG21232333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21232333fooEv,_ZThn40_N9GG21232333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21232333fooEv,_ZThn24_N9GG21232333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21232333barEv,_ZTv0_n12_N9GG21232333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21232333barEv,_ZThn48_N9GG21232333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21232333barEv,_ZThn16_N9GG21232333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21232333barEv,_ZTv0_n20_N9GG21232333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21232333barEv,_ZThn8_N9GG21232333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2123233 = { "GG2123233", // class name
+ bases_GG2123233, 6,
+ &(vtc_GG2123233[0]), // expected_vtbl_contents
+ &(vtt_GG2123233[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2123233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2123233),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2123233),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names521,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2123313 : virtual EE212 , virtual FF331 {
+ int pg;
+ virtual void foo(); // _ZN9GG21233133fooEv
+ virtual void bar(); // _ZN9GG21233133barEv
+ ~GG2123313(); // tgen
+ GG2123313(); // tgen
+};
+//SIG(1 GG2123313) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2123313 ::foo(){vfunc_called(this, "_ZN9GG21233133fooEv");}
+void GG2123313 ::bar(){vfunc_called(this, "_ZN9GG21233133barEv");}
+GG2123313 ::~GG2123313(){ note_dtor("GG2123313", this);} // tgen
+GG2123313 ::GG2123313(){ note_ctor("GG2123313", this);} // tgen
+
+static void Test_GG2123313()
+{
+ extern Class_Descriptor cd_GG2123313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2123313, buf);
+ GG2123313 *dp, &lv = *(dp=new (buf) GG2123313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2123313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2123313)");
+ check_base_class_offset(lv, (AA2*)(EE212*), ABISELECT(32,16), "GG2123313");
+ check_base_class_offset(lv, (BB1*)(EE212*), ABISELECT(48,24), "GG2123313");
+ check_base_class_offset(lv, (EE212*), ABISELECT(16,8), "GG2123313");
+ check_base_class_offset(lv, (AA3*)(FF331*), ABISELECT(80,40), "GG2123313");
+ check_base_class_offset(lv, (BB3*)(FF331*), ABISELECT(96,48), "GG2123313");
+ check_base_class_offset(lv, (FF331*), ABISELECT(64,32), "GG2123313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2123313.pg");
+ test_class_info(&lv, &cd_GG2123313);
+ dp->~GG2123313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2123313(Test_GG2123313, "GG2123313", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2123313C1Ev();
+extern void _ZN9GG2123313D1Ev();
+Name_Map name_map_GG2123313[] = {
+ NSPAIR(_ZN9GG2123313C1Ev),
+ NSPAIR(_ZN9GG2123313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE212;
+extern VTBL_ENTRY _ZTI5EE212[];
+extern VTBL_ENTRY _ZTV5EE212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE212[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF331;
+extern VTBL_ENTRY _ZTI5FF331[];
+extern VTBL_ENTRY _ZTV5FF331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF331[];
+static Base_Class bases_GG2123313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE212, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF331, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2123313[];
+extern void _ZN9GG21233133fooEv();
+extern void _ZN9GG21233133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21233133barEv,_ZTv0_n20_N9GG21233133barEv)();
+extern void ABISELECT(_ZThn16_N9GG21233133barEv,_ZThn8_N9GG21233133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21233133barEv,_ZTv0_n12_N9GG21233133barEv)();
+extern void ABISELECT(_ZThn32_N9GG21233133barEv,_ZThn16_N9GG21233133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21233133fooEv,_ZTv0_n12_N9GG21233133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21233133fooEv,_ZThn24_N9GG21233133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21233133fooEv,_ZTv0_n20_N9GG21233133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21233133fooEv,_ZThn32_N9GG21233133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21233133fooEv,_ZTv0_n12_N9GG21233133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21233133fooEv,_ZThn40_N9GG21233133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21233133barEv,_ZTv0_n16_N9GG21233133barEv)();
+extern void ABISELECT(_ZThn80_N9GG21233133barEv,_ZThn40_N9GG21233133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21233133fooEv,_ZTv0_n12_N9GG21233133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG21233133fooEv,_ZThn48_N9GG21233133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21233133barEv,_ZTv0_n16_N9GG21233133barEv)();
+extern void ABISELECT(_ZThn96_N9GG21233133barEv,_ZThn48_N9GG21233133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2123313[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2123313[0]),
+ (VTBL_ENTRY)&_ZN9GG21233133fooEv,
+ (VTBL_ENTRY)&_ZN9GG21233133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2123313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21233133barEv,_ZTv0_n20_N9GG21233133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2123313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21233133barEv,_ZTv0_n12_N9GG21233133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2123313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21233133fooEv,_ZTv0_n12_N9GG21233133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2123313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21233133fooEv,_ZTv0_n20_N9GG21233133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2123313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21233133fooEv,_ZTv0_n12_N9GG21233133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21233133barEv,_ZTv0_n16_N9GG21233133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2123313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21233133fooEv,_ZTv0_n12_N9GG21233133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21233133barEv,_ZTv0_n16_N9GG21233133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2123313[];
+extern void _ZN5EE2123barEv();
+static VTBL_ENTRY _tg__ZTV5EE212__9GG2123313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN5EE2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv)();
+extern void ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE212__9GG2123313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE212__9GG2123313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF3313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF331__9GG2123313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&_ZN5FF3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF331__9GG2123313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3313fooEv,_ZThn16_N5FF3313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF331__9GG2123313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG2123313[] = {
+ {&(_ZTV9GG2123313[8]), 8,42},
+ {&(_ZTV9GG2123313[15]), 15,42},
+ {&(_ZTV9GG2123313[19]), 19,42},
+ {&(_ZTV9GG2123313[23]), 23,42},
+ {&(_ZTV9GG2123313[29]), 29,42},
+ {&(_ZTV9GG2123313[34]), 34,42},
+ {&(_ZTV9GG2123313[40]), 40,42},
+ {&(_tg__ZTV5EE212__9GG2123313[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE212__9GG2123313[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE212__9GG2123313[3]), 3,4},
+ {&(_tg__ZTV5FF331__9GG2123313[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF331__9GG2123313[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF331__9GG2123313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2123313[];
+extern VTBL_ENTRY _ZTV9GG2123313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2123313[];
+static VTBL_ENTRY alt_thunk_names522[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3313fooEv,_ZThn16_N5FF3313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG21233133barEv,_ZTv0_n16_N9GG21233133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21233133barEv,_ZThn48_N9GG21233133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21233133barEv,_ZThn40_N9GG21233133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21233133fooEv,_ZTv0_n20_N9GG21233133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21233133fooEv,_ZThn32_N9GG21233133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21233133fooEv,_ZTv0_n12_N9GG21233133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21233133fooEv,_ZThn48_N9GG21233133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21233133fooEv,_ZThn40_N9GG21233133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21233133fooEv,_ZThn24_N9GG21233133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21233133barEv,_ZTv0_n12_N9GG21233133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21233133barEv,_ZThn16_N9GG21233133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21233133barEv,_ZTv0_n20_N9GG21233133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21233133barEv,_ZThn8_N9GG21233133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2123313 = { "GG2123313", // class name
+ bases_GG2123313, 6,
+ &(vtc_GG2123313[0]), // expected_vtbl_contents
+ &(vtt_GG2123313[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2123313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2123313),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2123313),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names522,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2123323 : virtual EE212 , virtual FF332 {
+ int pg;
+ virtual void foo(); // _ZN9GG21233233fooEv
+ virtual void bar(); // _ZN9GG21233233barEv
+ ~GG2123323(); // tgen
+ GG2123323(); // tgen
+};
+//SIG(1 GG2123323) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2123323 ::foo(){vfunc_called(this, "_ZN9GG21233233fooEv");}
+void GG2123323 ::bar(){vfunc_called(this, "_ZN9GG21233233barEv");}
+GG2123323 ::~GG2123323(){ note_dtor("GG2123323", this);} // tgen
+GG2123323 ::GG2123323(){ note_ctor("GG2123323", this);} // tgen
+
+static void Test_GG2123323()
+{
+ extern Class_Descriptor cd_GG2123323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2123323, buf);
+ GG2123323 *dp, &lv = *(dp=new (buf) GG2123323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2123323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2123323)");
+ check_base_class_offset(lv, (AA2*)(EE212*), ABISELECT(32,16), "GG2123323");
+ check_base_class_offset(lv, (BB1*)(EE212*), ABISELECT(48,24), "GG2123323");
+ check_base_class_offset(lv, (EE212*), ABISELECT(16,8), "GG2123323");
+ check_base_class_offset(lv, (AA3*)(FF332*), ABISELECT(80,40), "GG2123323");
+ check_base_class_offset(lv, (BB3*)(FF332*), ABISELECT(96,48), "GG2123323");
+ check_base_class_offset(lv, (FF332*), ABISELECT(64,32), "GG2123323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2123323.pg");
+ test_class_info(&lv, &cd_GG2123323);
+ dp->~GG2123323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2123323(Test_GG2123323, "GG2123323", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2123323C1Ev();
+extern void _ZN9GG2123323D1Ev();
+Name_Map name_map_GG2123323[] = {
+ NSPAIR(_ZN9GG2123323C1Ev),
+ NSPAIR(_ZN9GG2123323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE212;
+extern VTBL_ENTRY _ZTI5EE212[];
+extern VTBL_ENTRY _ZTV5EE212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE212[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF332;
+extern VTBL_ENTRY _ZTI5FF332[];
+extern VTBL_ENTRY _ZTV5FF332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF332[];
+static Base_Class bases_GG2123323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE212, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF332, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2123323[];
+extern void _ZN9GG21233233fooEv();
+extern void _ZN9GG21233233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21233233barEv,_ZTv0_n20_N9GG21233233barEv)();
+extern void ABISELECT(_ZThn16_N9GG21233233barEv,_ZThn8_N9GG21233233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21233233barEv,_ZTv0_n12_N9GG21233233barEv)();
+extern void ABISELECT(_ZThn32_N9GG21233233barEv,_ZThn16_N9GG21233233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21233233fooEv,_ZTv0_n12_N9GG21233233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21233233fooEv,_ZThn24_N9GG21233233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21233233barEv,_ZTv0_n20_N9GG21233233barEv)();
+extern void ABISELECT(_ZThn64_N9GG21233233barEv,_ZThn32_N9GG21233233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21233233fooEv,_ZTv0_n12_N9GG21233233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21233233fooEv,_ZThn40_N9GG21233233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21233233barEv,_ZTv0_n16_N9GG21233233barEv)();
+extern void ABISELECT(_ZThn80_N9GG21233233barEv,_ZThn40_N9GG21233233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21233233fooEv,_ZTv0_n12_N9GG21233233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG21233233fooEv,_ZThn48_N9GG21233233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21233233barEv,_ZTv0_n16_N9GG21233233barEv)();
+extern void ABISELECT(_ZThn96_N9GG21233233barEv,_ZThn48_N9GG21233233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2123323[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2123323[0]),
+ (VTBL_ENTRY)&_ZN9GG21233233fooEv,
+ (VTBL_ENTRY)&_ZN9GG21233233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2123323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21233233barEv,_ZTv0_n20_N9GG21233233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2123323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21233233barEv,_ZTv0_n12_N9GG21233233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2123323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21233233fooEv,_ZTv0_n12_N9GG21233233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2123323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21233233barEv,_ZTv0_n20_N9GG21233233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2123323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21233233fooEv,_ZTv0_n12_N9GG21233233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21233233barEv,_ZTv0_n16_N9GG21233233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2123323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21233233fooEv,_ZTv0_n12_N9GG21233233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21233233barEv,_ZTv0_n16_N9GG21233233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2123323[];
+extern void _ZN5EE2123barEv();
+static VTBL_ENTRY _tg__ZTV5EE212__9GG2123323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN5EE2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv)();
+extern void ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE212__9GG2123323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE212__9GG2123323[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF3323barEv();
+static VTBL_ENTRY _tg__ZTV5FF332__9GG2123323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN5FF3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+extern void ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF332__9GG2123323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+extern void ABISELECT(_ZThn32_N5FF3323barEv,_ZThn16_N5FF3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF332__9GG2123323[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+static VTT_ENTRY vtt_GG2123323[] = {
+ {&(_ZTV9GG2123323[8]), 8,42},
+ {&(_ZTV9GG2123323[15]), 15,42},
+ {&(_ZTV9GG2123323[19]), 19,42},
+ {&(_ZTV9GG2123323[23]), 23,42},
+ {&(_ZTV9GG2123323[29]), 29,42},
+ {&(_ZTV9GG2123323[34]), 34,42},
+ {&(_ZTV9GG2123323[40]), 40,42},
+ {&(_tg__ZTV5EE212__9GG2123323[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE212__9GG2123323[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE212__9GG2123323[3]), 3,4},
+ {&(_tg__ZTV5FF332__9GG2123323[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF332__9GG2123323[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF332__9GG2123323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2123323[];
+extern VTBL_ENTRY _ZTV9GG2123323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2123323[];
+static VTBL_ENTRY alt_thunk_names523[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3323barEv,_ZThn16_N5FF3323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG21233233barEv,_ZTv0_n16_N9GG21233233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21233233barEv,_ZThn48_N9GG21233233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21233233barEv,_ZThn40_N9GG21233233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21233233fooEv,_ZTv0_n12_N9GG21233233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21233233fooEv,_ZThn48_N9GG21233233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21233233fooEv,_ZThn40_N9GG21233233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21233233fooEv,_ZThn24_N9GG21233233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21233233barEv,_ZTv0_n12_N9GG21233233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21233233barEv,_ZThn16_N9GG21233233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21233233barEv,_ZTv0_n20_N9GG21233233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21233233barEv,_ZThn32_N9GG21233233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21233233barEv,_ZThn8_N9GG21233233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2123323 = { "GG2123323", // class name
+ bases_GG2123323, 6,
+ &(vtc_GG2123323[0]), // expected_vtbl_contents
+ &(vtt_GG2123323[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2123323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2123323),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2123323),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names523,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2123333 : virtual EE212 , virtual FF333 {
+ int pg;
+ virtual void foo(); // _ZN9GG21233333fooEv
+ virtual void bar(); // _ZN9GG21233333barEv
+ ~GG2123333(); // tgen
+ GG2123333(); // tgen
+};
+//SIG(1 GG2123333) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2123333 ::foo(){vfunc_called(this, "_ZN9GG21233333fooEv");}
+void GG2123333 ::bar(){vfunc_called(this, "_ZN9GG21233333barEv");}
+GG2123333 ::~GG2123333(){ note_dtor("GG2123333", this);} // tgen
+GG2123333 ::GG2123333(){ note_ctor("GG2123333", this);} // tgen
+
+static void Test_GG2123333()
+{
+ extern Class_Descriptor cd_GG2123333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2123333, buf);
+ GG2123333 *dp, &lv = *(dp=new (buf) GG2123333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2123333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2123333)");
+ check_base_class_offset(lv, (AA2*)(EE212*), ABISELECT(32,16), "GG2123333");
+ check_base_class_offset(lv, (BB1*)(EE212*), ABISELECT(48,24), "GG2123333");
+ check_base_class_offset(lv, (EE212*), ABISELECT(16,8), "GG2123333");
+ check_base_class_offset(lv, (AA3*)(FF333*), ABISELECT(80,40), "GG2123333");
+ check_base_class_offset(lv, (BB3*)(FF333*), ABISELECT(96,48), "GG2123333");
+ check_base_class_offset(lv, (FF333*), ABISELECT(64,32), "GG2123333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2123333.pg");
+ test_class_info(&lv, &cd_GG2123333);
+ dp->~GG2123333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2123333(Test_GG2123333, "GG2123333", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2123333C1Ev();
+extern void _ZN9GG2123333D1Ev();
+Name_Map name_map_GG2123333[] = {
+ NSPAIR(_ZN9GG2123333C1Ev),
+ NSPAIR(_ZN9GG2123333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE212;
+extern VTBL_ENTRY _ZTI5EE212[];
+extern VTBL_ENTRY _ZTV5EE212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE212[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF333;
+extern VTBL_ENTRY _ZTI5FF333[];
+extern VTBL_ENTRY _ZTV5FF333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF333[];
+static Base_Class bases_GG2123333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE212, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF333, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2123333[];
+extern void _ZN9GG21233333fooEv();
+extern void _ZN9GG21233333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21233333barEv,_ZTv0_n20_N9GG21233333barEv)();
+extern void ABISELECT(_ZThn16_N9GG21233333barEv,_ZThn8_N9GG21233333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21233333barEv,_ZTv0_n12_N9GG21233333barEv)();
+extern void ABISELECT(_ZThn32_N9GG21233333barEv,_ZThn16_N9GG21233333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21233333fooEv,_ZTv0_n12_N9GG21233333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21233333fooEv,_ZThn24_N9GG21233333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21233333fooEv,_ZTv0_n20_N9GG21233333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21233333fooEv,_ZThn32_N9GG21233333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21233333barEv,_ZTv0_n24_N9GG21233333barEv)();
+extern void ABISELECT(_ZThn64_N9GG21233333barEv,_ZThn32_N9GG21233333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21233333fooEv,_ZTv0_n12_N9GG21233333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21233333fooEv,_ZThn40_N9GG21233333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21233333barEv,_ZTv0_n16_N9GG21233333barEv)();
+extern void ABISELECT(_ZThn80_N9GG21233333barEv,_ZThn40_N9GG21233333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21233333fooEv,_ZTv0_n12_N9GG21233333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG21233333fooEv,_ZThn48_N9GG21233333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21233333barEv,_ZTv0_n16_N9GG21233333barEv)();
+extern void ABISELECT(_ZThn96_N9GG21233333barEv,_ZThn48_N9GG21233333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2123333[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2123333[0]),
+ (VTBL_ENTRY)&_ZN9GG21233333fooEv,
+ (VTBL_ENTRY)&_ZN9GG21233333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2123333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21233333barEv,_ZTv0_n20_N9GG21233333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2123333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21233333barEv,_ZTv0_n12_N9GG21233333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2123333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21233333fooEv,_ZTv0_n12_N9GG21233333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2123333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21233333fooEv,_ZTv0_n20_N9GG21233333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21233333barEv,_ZTv0_n24_N9GG21233333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2123333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21233333fooEv,_ZTv0_n12_N9GG21233333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21233333barEv,_ZTv0_n16_N9GG21233333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2123333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21233333fooEv,_ZTv0_n12_N9GG21233333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21233333barEv,_ZTv0_n16_N9GG21233333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2123333[];
+extern void _ZN5EE2123barEv();
+static VTBL_ENTRY _tg__ZTV5EE212__9GG2123333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN5EE2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv)();
+extern void ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE212__9GG2123333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE212__9GG2123333[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF3333fooEv();
+extern void _ZN5FF3333barEv();
+static VTBL_ENTRY _tg__ZTV5FF333__9GG2123333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&_ZN5FF3333fooEv,
+ (VTBL_ENTRY)&_ZN5FF3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+extern void ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF333__9GG2123333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3333fooEv,_ZThn16_N5FF3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+extern void ABISELECT(_ZThn32_N5FF3333barEv,_ZThn16_N5FF3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF333__9GG2123333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+static VTT_ENTRY vtt_GG2123333[] = {
+ {&(_ZTV9GG2123333[8]), 8,44},
+ {&(_ZTV9GG2123333[15]), 15,44},
+ {&(_ZTV9GG2123333[19]), 19,44},
+ {&(_ZTV9GG2123333[23]), 23,44},
+ {&(_ZTV9GG2123333[30]), 30,44},
+ {&(_ZTV9GG2123333[36]), 36,44},
+ {&(_ZTV9GG2123333[42]), 42,44},
+ {&(_tg__ZTV5EE212__9GG2123333[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE212__9GG2123333[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE212__9GG2123333[3]), 3,4},
+ {&(_tg__ZTV5FF333__9GG2123333[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF333__9GG2123333[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF333__9GG2123333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2123333[];
+extern VTBL_ENTRY _ZTV9GG2123333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2123333[];
+static VTBL_ENTRY alt_thunk_names524[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3333barEv,_ZThn16_N5FF3333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3333fooEv,_ZThn16_N5FF3333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2123barEv,_ZTv0_n12_N5EE2123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2123barEv,_ZThn8_N5EE2123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG21233333barEv,_ZTv0_n16_N9GG21233333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21233333barEv,_ZThn48_N9GG21233333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21233333barEv,_ZThn40_N9GG21233333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG21233333barEv,_ZTv0_n24_N9GG21233333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21233333barEv,_ZThn32_N9GG21233333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21233333fooEv,_ZTv0_n20_N9GG21233333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21233333fooEv,_ZThn32_N9GG21233333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21233333fooEv,_ZTv0_n12_N9GG21233333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21233333fooEv,_ZThn48_N9GG21233333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21233333fooEv,_ZThn40_N9GG21233333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21233333fooEv,_ZThn24_N9GG21233333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21233333barEv,_ZTv0_n12_N9GG21233333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21233333barEv,_ZThn16_N9GG21233333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21233333barEv,_ZTv0_n20_N9GG21233333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21233333barEv,_ZThn8_N9GG21233333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2123333 = { "GG2123333", // class name
+ bases_GG2123333, 6,
+ &(vtc_GG2123333[0]), // expected_vtbl_contents
+ &(vtt_GG2123333[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2123333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2123333),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2123333),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names524,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2131111 : virtual EE213 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG21311113fooEv
+ ~GG2131111(); // tgen
+ GG2131111(); // tgen
+};
+//SIG(1 GG2131111) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v1 Fi} v1 Fi}
+
+
+void GG2131111 ::foo(){vfunc_called(this, "_ZN9GG21311113fooEv");}
+GG2131111 ::~GG2131111(){ note_dtor("GG2131111", this);} // tgen
+GG2131111 ::GG2131111(){ note_ctor("GG2131111", this);} // tgen
+
+static void Test_GG2131111()
+{
+ extern Class_Descriptor cd_GG2131111;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2131111, buf);
+ GG2131111 *dp, &lv = *(dp=new (buf) GG2131111());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2131111)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2131111)");
+ check_base_class_offset(lv, (AA2*)(EE213*), ABISELECT(32,16), "GG2131111");
+ check_base_class_offset(lv, (BB1*)(EE213*), ABISELECT(48,24), "GG2131111");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(48,24), "GG2131111");
+ check_base_class_offset(lv, (EE213*), ABISELECT(16,8), "GG2131111");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(80,40), "GG2131111");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG2131111");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2131111.pg");
+ test_class_info(&lv, &cd_GG2131111);
+ dp->~GG2131111();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2131111(Test_GG2131111, "GG2131111", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2131111C1Ev();
+extern void _ZN9GG2131111D1Ev();
+Name_Map name_map_GG2131111[] = {
+ NSPAIR(_ZN9GG2131111C1Ev),
+ NSPAIR(_ZN9GG2131111D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE213;
+extern VTBL_ENTRY _ZTI5EE213[];
+extern VTBL_ENTRY _ZTV5EE213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE213[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG2131111[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE213, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2131111[];
+extern void _ZN9GG21311113fooEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21311113fooEv,_ZTv0_n20_N9GG21311113fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21311113fooEv,_ZThn8_N9GG21311113fooEv)() __attribute__((weak));
+extern void _ZN5EE2133barEv();
+extern void ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv)();
+extern void ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21311113fooEv,_ZTv0_n12_N9GG21311113fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21311113fooEv,_ZThn24_N9GG21311113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21311113fooEv,_ZTv0_n20_N9GG21311113fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21311113fooEv,_ZThn32_N9GG21311113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21311113fooEv,_ZTv0_n12_N9GG21311113fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21311113fooEv,_ZThn40_N9GG21311113fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2131111[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2131111[0]),
+ (VTBL_ENTRY)&_ZN9GG21311113fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2131111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21311113fooEv,_ZTv0_n20_N9GG21311113fooEv),
+ (VTBL_ENTRY)&_ZN5EE2133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2131111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2131111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21311113fooEv,_ZTv0_n12_N9GG21311113fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2131111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21311113fooEv,_ZTv0_n20_N9GG21311113fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2131111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21311113fooEv,_ZTv0_n12_N9GG21311113fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2131111[];
+extern void _ZN5EE2133fooEv();
+extern void _ZN5EE2133barEv();
+static VTBL_ENTRY _tg__ZTV5EE213__9GG2131111[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&_ZN5EE2133fooEv,
+ (VTBL_ENTRY)&_ZN5EE2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv)();
+extern void ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE213__9GG2131111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE213__9GG2131111[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv),
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG2131111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG2131111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG2131111[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG2131111[] = {
+ {&(_ZTV9GG2131111[7]), 7,34},
+ {&(_ZTV9GG2131111[14]), 14,34},
+ {&(_ZTV9GG2131111[19]), 19,34},
+ {&(_ZTV9GG2131111[23]), 23,34},
+ {&(_ZTV9GG2131111[29]), 29,34},
+ {&(_ZTV9GG2131111[33]), 33,34},
+ {&(_tg__ZTV5EE213__9GG2131111[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE213__9GG2131111[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE213__9GG2131111[3]), 3,4},
+ {&(_tg__ZTV5FF111__9GG2131111[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG2131111[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG2131111[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2131111[];
+extern VTBL_ENTRY _ZTV9GG2131111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2131111[];
+static VTBL_ENTRY alt_thunk_names525[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21311113fooEv,_ZTv0_n12_N9GG21311113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21311113fooEv,_ZThn40_N9GG21311113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21311113fooEv,_ZThn24_N9GG21311113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21311113fooEv,_ZTv0_n20_N9GG21311113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21311113fooEv,_ZThn32_N9GG21311113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21311113fooEv,_ZThn8_N9GG21311113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2131111 = { "GG2131111", // class name
+ bases_GG2131111, 5,
+ &(vtc_GG2131111[0]), // expected_vtbl_contents
+ &(vtt_GG2131111[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2131111),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2131111),34, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2131111),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names525,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2131113 : virtual EE213 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG21311133fooEv
+ virtual void bar(); // _ZN9GG21311133barEv
+ ~GG2131113(); // tgen
+ GG2131113(); // tgen
+};
+//SIG(1 GG2131113) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG2131113 ::foo(){vfunc_called(this, "_ZN9GG21311133fooEv");}
+void GG2131113 ::bar(){vfunc_called(this, "_ZN9GG21311133barEv");}
+GG2131113 ::~GG2131113(){ note_dtor("GG2131113", this);} // tgen
+GG2131113 ::GG2131113(){ note_ctor("GG2131113", this);} // tgen
+
+static void Test_GG2131113()
+{
+ extern Class_Descriptor cd_GG2131113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2131113, buf);
+ GG2131113 *dp, &lv = *(dp=new (buf) GG2131113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2131113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2131113)");
+ check_base_class_offset(lv, (AA2*)(EE213*), ABISELECT(32,16), "GG2131113");
+ check_base_class_offset(lv, (BB1*)(EE213*), ABISELECT(48,24), "GG2131113");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(48,24), "GG2131113");
+ check_base_class_offset(lv, (EE213*), ABISELECT(16,8), "GG2131113");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(80,40), "GG2131113");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG2131113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2131113.pg");
+ test_class_info(&lv, &cd_GG2131113);
+ dp->~GG2131113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2131113(Test_GG2131113, "GG2131113", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2131113C1Ev();
+extern void _ZN9GG2131113D1Ev();
+Name_Map name_map_GG2131113[] = {
+ NSPAIR(_ZN9GG2131113C1Ev),
+ NSPAIR(_ZN9GG2131113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE213;
+extern VTBL_ENTRY _ZTI5EE213[];
+extern VTBL_ENTRY _ZTV5EE213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE213[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG2131113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE213, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2131113[];
+extern void _ZN9GG21311133fooEv();
+extern void _ZN9GG21311133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21311133fooEv,_ZTv0_n20_N9GG21311133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21311133fooEv,_ZThn8_N9GG21311133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21311133barEv,_ZTv0_n24_N9GG21311133barEv)();
+extern void ABISELECT(_ZThn16_N9GG21311133barEv,_ZThn8_N9GG21311133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21311133barEv,_ZTv0_n12_N9GG21311133barEv)();
+extern void ABISELECT(_ZThn32_N9GG21311133barEv,_ZThn16_N9GG21311133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21311133fooEv,_ZTv0_n12_N9GG21311133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21311133fooEv,_ZThn24_N9GG21311133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21311133fooEv,_ZTv0_n20_N9GG21311133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21311133fooEv,_ZThn32_N9GG21311133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21311133fooEv,_ZTv0_n12_N9GG21311133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21311133fooEv,_ZThn40_N9GG21311133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2131113[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2131113[0]),
+ (VTBL_ENTRY)&_ZN9GG21311133fooEv,
+ (VTBL_ENTRY)&_ZN9GG21311133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2131113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21311133fooEv,_ZTv0_n20_N9GG21311133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21311133barEv,_ZTv0_n24_N9GG21311133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2131113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21311133barEv,_ZTv0_n12_N9GG21311133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2131113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21311133fooEv,_ZTv0_n12_N9GG21311133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2131113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21311133fooEv,_ZTv0_n20_N9GG21311133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2131113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21311133fooEv,_ZTv0_n12_N9GG21311133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2131113[];
+extern void _ZN5EE2133fooEv();
+extern void _ZN5EE2133barEv();
+static VTBL_ENTRY _tg__ZTV5EE213__9GG2131113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&_ZN5EE2133fooEv,
+ (VTBL_ENTRY)&_ZN5EE2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv)();
+extern void ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE213__9GG2131113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE213__9GG2131113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv),
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG2131113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG2131113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG2131113[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG2131113[] = {
+ {&(_ZTV9GG2131113[7]), 7,35},
+ {&(_ZTV9GG2131113[15]), 15,35},
+ {&(_ZTV9GG2131113[20]), 20,35},
+ {&(_ZTV9GG2131113[24]), 24,35},
+ {&(_ZTV9GG2131113[30]), 30,35},
+ {&(_ZTV9GG2131113[34]), 34,35},
+ {&(_tg__ZTV5EE213__9GG2131113[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE213__9GG2131113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE213__9GG2131113[3]), 3,4},
+ {&(_tg__ZTV5FF111__9GG2131113[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG2131113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG2131113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2131113[];
+extern VTBL_ENTRY _ZTV9GG2131113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2131113[];
+static VTBL_ENTRY alt_thunk_names526[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21311133fooEv,_ZTv0_n12_N9GG21311133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21311133fooEv,_ZThn40_N9GG21311133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21311133fooEv,_ZThn24_N9GG21311133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21311133barEv,_ZTv0_n12_N9GG21311133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21311133barEv,_ZThn16_N9GG21311133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG21311133barEv,_ZTv0_n24_N9GG21311133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21311133barEv,_ZThn8_N9GG21311133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21311133fooEv,_ZTv0_n20_N9GG21311133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21311133fooEv,_ZThn32_N9GG21311133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21311133fooEv,_ZThn8_N9GG21311133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2131113 = { "GG2131113", // class name
+ bases_GG2131113, 5,
+ &(vtc_GG2131113[0]), // expected_vtbl_contents
+ &(vtt_GG2131113[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2131113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2131113),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2131113),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names526,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2131123 : virtual EE213 , virtual FF112 {
+ int pg;
+ virtual void foo(); // _ZN9GG21311233fooEv
+ virtual void bar(); // _ZN9GG21311233barEv
+ ~GG2131123(); // tgen
+ GG2131123(); // tgen
+};
+//SIG(1 GG2131123) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG2131123 ::foo(){vfunc_called(this, "_ZN9GG21311233fooEv");}
+void GG2131123 ::bar(){vfunc_called(this, "_ZN9GG21311233barEv");}
+GG2131123 ::~GG2131123(){ note_dtor("GG2131123", this);} // tgen
+GG2131123 ::GG2131123(){ note_ctor("GG2131123", this);} // tgen
+
+static void Test_GG2131123()
+{
+ extern Class_Descriptor cd_GG2131123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2131123, buf);
+ GG2131123 *dp, &lv = *(dp=new (buf) GG2131123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2131123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2131123)");
+ check_base_class_offset(lv, (AA2*)(EE213*), ABISELECT(32,16), "GG2131123");
+ check_base_class_offset(lv, (BB1*)(EE213*), ABISELECT(48,24), "GG2131123");
+ check_base_class_offset(lv, (BB1*)(FF112*), ABISELECT(48,24), "GG2131123");
+ check_base_class_offset(lv, (EE213*), ABISELECT(16,8), "GG2131123");
+ check_base_class_offset(lv, (AA1*)(FF112*), ABISELECT(80,40), "GG2131123");
+ check_base_class_offset(lv, (FF112*), ABISELECT(64,32), "GG2131123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2131123.pg");
+ test_class_info(&lv, &cd_GG2131123);
+ dp->~GG2131123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2131123(Test_GG2131123, "GG2131123", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2131123C1Ev();
+extern void _ZN9GG2131123D1Ev();
+Name_Map name_map_GG2131123[] = {
+ NSPAIR(_ZN9GG2131123C1Ev),
+ NSPAIR(_ZN9GG2131123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE213;
+extern VTBL_ENTRY _ZTI5EE213[];
+extern VTBL_ENTRY _ZTV5EE213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE213[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF112;
+extern VTBL_ENTRY _ZTI5FF112[];
+extern VTBL_ENTRY _ZTV5FF112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF112[];
+static Base_Class bases_GG2131123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE213, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF112, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2131123[];
+extern void _ZN9GG21311233fooEv();
+extern void _ZN9GG21311233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21311233fooEv,_ZTv0_n20_N9GG21311233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21311233fooEv,_ZThn8_N9GG21311233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21311233barEv,_ZTv0_n24_N9GG21311233barEv)();
+extern void ABISELECT(_ZThn16_N9GG21311233barEv,_ZThn8_N9GG21311233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21311233barEv,_ZTv0_n12_N9GG21311233barEv)();
+extern void ABISELECT(_ZThn32_N9GG21311233barEv,_ZThn16_N9GG21311233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21311233fooEv,_ZTv0_n12_N9GG21311233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21311233fooEv,_ZThn24_N9GG21311233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21311233barEv,_ZTv0_n20_N9GG21311233barEv)();
+extern void ABISELECT(_ZThn64_N9GG21311233barEv,_ZThn32_N9GG21311233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21311233fooEv,_ZTv0_n12_N9GG21311233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21311233fooEv,_ZThn40_N9GG21311233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2131123[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2131123[0]),
+ (VTBL_ENTRY)&_ZN9GG21311233fooEv,
+ (VTBL_ENTRY)&_ZN9GG21311233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2131123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21311233fooEv,_ZTv0_n20_N9GG21311233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21311233barEv,_ZTv0_n24_N9GG21311233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2131123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21311233barEv,_ZTv0_n12_N9GG21311233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2131123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21311233fooEv,_ZTv0_n12_N9GG21311233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2131123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21311233barEv,_ZTv0_n20_N9GG21311233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2131123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21311233fooEv,_ZTv0_n12_N9GG21311233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2131123[];
+extern void _ZN5EE2133fooEv();
+extern void _ZN5EE2133barEv();
+static VTBL_ENTRY _tg__ZTV5EE213__9GG2131123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&_ZN5EE2133fooEv,
+ (VTBL_ENTRY)&_ZN5EE2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv)();
+extern void ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE213__9GG2131123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE213__9GG2131123[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv),
+};
+extern void _ZN5FF1123barEv();
+static VTBL_ENTRY _tg__ZTV5FF112__9GG2131123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN5FF1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF112__9GG2131123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF112__9GG2131123[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG2131123[] = {
+ {&(_ZTV9GG2131123[7]), 7,35},
+ {&(_ZTV9GG2131123[15]), 15,35},
+ {&(_ZTV9GG2131123[20]), 20,35},
+ {&(_ZTV9GG2131123[24]), 24,35},
+ {&(_ZTV9GG2131123[30]), 30,35},
+ {&(_ZTV9GG2131123[34]), 34,35},
+ {&(_tg__ZTV5EE213__9GG2131123[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE213__9GG2131123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE213__9GG2131123[3]), 3,4},
+ {&(_tg__ZTV5FF112__9GG2131123[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF112__9GG2131123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF112__9GG2131123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2131123[];
+extern VTBL_ENTRY _ZTV9GG2131123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2131123[];
+static VTBL_ENTRY alt_thunk_names527[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21311233barEv,_ZTv0_n20_N9GG21311233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21311233barEv,_ZThn32_N9GG21311233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21311233fooEv,_ZTv0_n12_N9GG21311233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21311233fooEv,_ZThn40_N9GG21311233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21311233fooEv,_ZThn24_N9GG21311233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21311233barEv,_ZTv0_n12_N9GG21311233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21311233barEv,_ZThn16_N9GG21311233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG21311233barEv,_ZTv0_n24_N9GG21311233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21311233barEv,_ZThn8_N9GG21311233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21311233fooEv,_ZTv0_n20_N9GG21311233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21311233fooEv,_ZThn8_N9GG21311233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2131123 = { "GG2131123", // class name
+ bases_GG2131123, 5,
+ &(vtc_GG2131123[0]), // expected_vtbl_contents
+ &(vtt_GG2131123[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2131123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2131123),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2131123),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names527,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2131133 : virtual EE213 , virtual FF113 {
+ int pg;
+ virtual void foo(); // _ZN9GG21311333fooEv
+ virtual void bar(); // _ZN9GG21311333barEv
+ ~GG2131133(); // tgen
+ GG2131133(); // tgen
+};
+//SIG(1 GG2131133) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2131133 ::foo(){vfunc_called(this, "_ZN9GG21311333fooEv");}
+void GG2131133 ::bar(){vfunc_called(this, "_ZN9GG21311333barEv");}
+GG2131133 ::~GG2131133(){ note_dtor("GG2131133", this);} // tgen
+GG2131133 ::GG2131133(){ note_ctor("GG2131133", this);} // tgen
+
+static void Test_GG2131133()
+{
+ extern Class_Descriptor cd_GG2131133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2131133, buf);
+ GG2131133 *dp, &lv = *(dp=new (buf) GG2131133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2131133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2131133)");
+ check_base_class_offset(lv, (AA2*)(EE213*), ABISELECT(32,16), "GG2131133");
+ check_base_class_offset(lv, (BB1*)(EE213*), ABISELECT(48,24), "GG2131133");
+ check_base_class_offset(lv, (BB1*)(FF113*), ABISELECT(48,24), "GG2131133");
+ check_base_class_offset(lv, (EE213*), ABISELECT(16,8), "GG2131133");
+ check_base_class_offset(lv, (AA1*)(FF113*), ABISELECT(80,40), "GG2131133");
+ check_base_class_offset(lv, (FF113*), ABISELECT(64,32), "GG2131133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2131133.pg");
+ test_class_info(&lv, &cd_GG2131133);
+ dp->~GG2131133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2131133(Test_GG2131133, "GG2131133", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2131133C1Ev();
+extern void _ZN9GG2131133D1Ev();
+Name_Map name_map_GG2131133[] = {
+ NSPAIR(_ZN9GG2131133C1Ev),
+ NSPAIR(_ZN9GG2131133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE213;
+extern VTBL_ENTRY _ZTI5EE213[];
+extern VTBL_ENTRY _ZTV5EE213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE213[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF113;
+extern VTBL_ENTRY _ZTI5FF113[];
+extern VTBL_ENTRY _ZTV5FF113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF113[];
+static Base_Class bases_GG2131133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE213, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF113, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2131133[];
+extern void _ZN9GG21311333fooEv();
+extern void _ZN9GG21311333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21311333fooEv,_ZTv0_n20_N9GG21311333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21311333fooEv,_ZThn8_N9GG21311333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21311333barEv,_ZTv0_n24_N9GG21311333barEv)();
+extern void ABISELECT(_ZThn16_N9GG21311333barEv,_ZThn8_N9GG21311333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21311333barEv,_ZTv0_n12_N9GG21311333barEv)();
+extern void ABISELECT(_ZThn32_N9GG21311333barEv,_ZThn16_N9GG21311333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21311333fooEv,_ZTv0_n12_N9GG21311333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21311333fooEv,_ZThn24_N9GG21311333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21311333fooEv,_ZTv0_n20_N9GG21311333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21311333fooEv,_ZThn32_N9GG21311333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21311333barEv,_ZTv0_n24_N9GG21311333barEv)();
+extern void ABISELECT(_ZThn64_N9GG21311333barEv,_ZThn32_N9GG21311333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21311333fooEv,_ZTv0_n12_N9GG21311333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21311333fooEv,_ZThn40_N9GG21311333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2131133[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2131133[0]),
+ (VTBL_ENTRY)&_ZN9GG21311333fooEv,
+ (VTBL_ENTRY)&_ZN9GG21311333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2131133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21311333fooEv,_ZTv0_n20_N9GG21311333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21311333barEv,_ZTv0_n24_N9GG21311333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2131133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21311333barEv,_ZTv0_n12_N9GG21311333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2131133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21311333fooEv,_ZTv0_n12_N9GG21311333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2131133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21311333fooEv,_ZTv0_n20_N9GG21311333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21311333barEv,_ZTv0_n24_N9GG21311333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2131133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21311333fooEv,_ZTv0_n12_N9GG21311333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2131133[];
+extern void _ZN5EE2133fooEv();
+extern void _ZN5EE2133barEv();
+static VTBL_ENTRY _tg__ZTV5EE213__9GG2131133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&_ZN5EE2133fooEv,
+ (VTBL_ENTRY)&_ZN5EE2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv)();
+extern void ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE213__9GG2131133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE213__9GG2131133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv),
+};
+extern void _ZN5FF1133fooEv();
+extern void _ZN5FF1133barEv();
+static VTBL_ENTRY _tg__ZTV5FF113__9GG2131133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&_ZN5FF1133fooEv,
+ (VTBL_ENTRY)&_ZN5FF1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF113__9GG2131133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF113__9GG2131133[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+static VTT_ENTRY vtt_GG2131133[] = {
+ {&(_ZTV9GG2131133[7]), 7,37},
+ {&(_ZTV9GG2131133[15]), 15,37},
+ {&(_ZTV9GG2131133[20]), 20,37},
+ {&(_ZTV9GG2131133[24]), 24,37},
+ {&(_ZTV9GG2131133[31]), 31,37},
+ {&(_ZTV9GG2131133[36]), 36,37},
+ {&(_tg__ZTV5EE213__9GG2131133[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE213__9GG2131133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE213__9GG2131133[3]), 3,4},
+ {&(_tg__ZTV5FF113__9GG2131133[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF113__9GG2131133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF113__9GG2131133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2131133[];
+extern VTBL_ENTRY _ZTV9GG2131133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2131133[];
+static VTBL_ENTRY alt_thunk_names528[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21311333fooEv,_ZTv0_n12_N9GG21311333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21311333fooEv,_ZThn40_N9GG21311333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21311333fooEv,_ZThn24_N9GG21311333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21311333barEv,_ZTv0_n12_N9GG21311333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21311333barEv,_ZThn16_N9GG21311333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG21311333barEv,_ZTv0_n24_N9GG21311333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21311333barEv,_ZThn32_N9GG21311333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21311333barEv,_ZThn8_N9GG21311333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21311333fooEv,_ZTv0_n20_N9GG21311333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21311333fooEv,_ZThn32_N9GG21311333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21311333fooEv,_ZThn8_N9GG21311333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2131133 = { "GG2131133", // class name
+ bases_GG2131133, 5,
+ &(vtc_GG2131133[0]), // expected_vtbl_contents
+ &(vtt_GG2131133[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2131133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2131133),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2131133),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names528,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2131213 : virtual EE213 , virtual FF121 {
+ int pg;
+ virtual void foo(); // _ZN9GG21312133fooEv
+ virtual void bar(); // _ZN9GG21312133barEv
+ ~GG2131213(); // tgen
+ GG2131213(); // tgen
+};
+//SIG(1 GG2131213) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2131213 ::foo(){vfunc_called(this, "_ZN9GG21312133fooEv");}
+void GG2131213 ::bar(){vfunc_called(this, "_ZN9GG21312133barEv");}
+GG2131213 ::~GG2131213(){ note_dtor("GG2131213", this);} // tgen
+GG2131213 ::GG2131213(){ note_ctor("GG2131213", this);} // tgen
+
+static void Test_GG2131213()
+{
+ extern Class_Descriptor cd_GG2131213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2131213, buf);
+ GG2131213 *dp, &lv = *(dp=new (buf) GG2131213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2131213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2131213)");
+ check_base_class_offset(lv, (AA2*)(EE213*), ABISELECT(32,16), "GG2131213");
+ check_base_class_offset(lv, (BB1*)(EE213*), ABISELECT(48,24), "GG2131213");
+ check_base_class_offset(lv, (EE213*), ABISELECT(16,8), "GG2131213");
+ check_base_class_offset(lv, (AA1*)(FF121*), ABISELECT(80,40), "GG2131213");
+ check_base_class_offset(lv, (BB2*)(FF121*), ABISELECT(96,48), "GG2131213");
+ check_base_class_offset(lv, (FF121*), ABISELECT(64,32), "GG2131213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2131213.pg");
+ test_class_info(&lv, &cd_GG2131213);
+ dp->~GG2131213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2131213(Test_GG2131213, "GG2131213", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2131213C1Ev();
+extern void _ZN9GG2131213D1Ev();
+Name_Map name_map_GG2131213[] = {
+ NSPAIR(_ZN9GG2131213C1Ev),
+ NSPAIR(_ZN9GG2131213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE213;
+extern VTBL_ENTRY _ZTI5EE213[];
+extern VTBL_ENTRY _ZTV5EE213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE213[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF121;
+extern VTBL_ENTRY _ZTI5FF121[];
+extern VTBL_ENTRY _ZTV5FF121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF121[];
+static Base_Class bases_GG2131213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE213, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF121, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2131213[];
+extern void _ZN9GG21312133fooEv();
+extern void _ZN9GG21312133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21312133fooEv,_ZTv0_n20_N9GG21312133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21312133fooEv,_ZThn8_N9GG21312133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21312133barEv,_ZTv0_n24_N9GG21312133barEv)();
+extern void ABISELECT(_ZThn16_N9GG21312133barEv,_ZThn8_N9GG21312133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21312133barEv,_ZTv0_n12_N9GG21312133barEv)();
+extern void ABISELECT(_ZThn32_N9GG21312133barEv,_ZThn16_N9GG21312133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21312133fooEv,_ZTv0_n12_N9GG21312133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21312133fooEv,_ZThn24_N9GG21312133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21312133fooEv,_ZTv0_n20_N9GG21312133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21312133fooEv,_ZThn32_N9GG21312133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21312133fooEv,_ZTv0_n12_N9GG21312133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21312133fooEv,_ZThn40_N9GG21312133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21312133barEv,_ZTv0_n12_N9GG21312133barEv)();
+extern void ABISELECT(_ZThn96_N9GG21312133barEv,_ZThn48_N9GG21312133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2131213[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2131213[0]),
+ (VTBL_ENTRY)&_ZN9GG21312133fooEv,
+ (VTBL_ENTRY)&_ZN9GG21312133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2131213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21312133fooEv,_ZTv0_n20_N9GG21312133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21312133barEv,_ZTv0_n24_N9GG21312133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2131213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21312133barEv,_ZTv0_n12_N9GG21312133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2131213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21312133fooEv,_ZTv0_n12_N9GG21312133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2131213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21312133fooEv,_ZTv0_n20_N9GG21312133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2131213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21312133fooEv,_ZTv0_n12_N9GG21312133fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2131213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21312133barEv,_ZTv0_n12_N9GG21312133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2131213[];
+extern void _ZN5EE2133fooEv();
+extern void _ZN5EE2133barEv();
+static VTBL_ENTRY _tg__ZTV5EE213__9GG2131213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&_ZN5EE2133fooEv,
+ (VTBL_ENTRY)&_ZN5EE2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv)();
+extern void ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE213__9GG2131213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE213__9GG2131213[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv),
+};
+extern void _ZN5FF1213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF121__9GG2131213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN5FF1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1213fooEv,_ZThn8_N5FF1213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF121__9GG2131213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF121__9GG2131213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG2131213[] = {
+ {&(_ZTV9GG2131213[8]), 8,40},
+ {&(_ZTV9GG2131213[16]), 16,40},
+ {&(_ZTV9GG2131213[21]), 21,40},
+ {&(_ZTV9GG2131213[25]), 25,40},
+ {&(_ZTV9GG2131213[31]), 31,40},
+ {&(_ZTV9GG2131213[35]), 35,40},
+ {&(_ZTV9GG2131213[39]), 39,40},
+ {&(_tg__ZTV5EE213__9GG2131213[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE213__9GG2131213[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE213__9GG2131213[3]), 3,4},
+ {&(_tg__ZTV5FF121__9GG2131213[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF121__9GG2131213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF121__9GG2131213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2131213[];
+extern VTBL_ENTRY _ZTV9GG2131213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2131213[];
+static VTBL_ENTRY alt_thunk_names529[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1213fooEv,_ZThn8_N5FF1213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21312133fooEv,_ZTv0_n12_N9GG21312133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21312133fooEv,_ZThn40_N9GG21312133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21312133fooEv,_ZThn24_N9GG21312133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21312133barEv,_ZTv0_n12_N9GG21312133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21312133barEv,_ZThn48_N9GG21312133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21312133barEv,_ZThn16_N9GG21312133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG21312133barEv,_ZTv0_n24_N9GG21312133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21312133barEv,_ZThn8_N9GG21312133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21312133fooEv,_ZTv0_n20_N9GG21312133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21312133fooEv,_ZThn32_N9GG21312133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21312133fooEv,_ZThn8_N9GG21312133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2131213 = { "GG2131213", // class name
+ bases_GG2131213, 6,
+ &(vtc_GG2131213[0]), // expected_vtbl_contents
+ &(vtt_GG2131213[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2131213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2131213),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2131213),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names529,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2131223 : virtual EE213 , virtual FF122 {
+ int pg;
+ virtual void foo(); // _ZN9GG21312233fooEv
+ virtual void bar(); // _ZN9GG21312233barEv
+ ~GG2131223(); // tgen
+ GG2131223(); // tgen
+};
+//SIG(1 GG2131223) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2131223 ::foo(){vfunc_called(this, "_ZN9GG21312233fooEv");}
+void GG2131223 ::bar(){vfunc_called(this, "_ZN9GG21312233barEv");}
+GG2131223 ::~GG2131223(){ note_dtor("GG2131223", this);} // tgen
+GG2131223 ::GG2131223(){ note_ctor("GG2131223", this);} // tgen
+
+static void Test_GG2131223()
+{
+ extern Class_Descriptor cd_GG2131223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2131223, buf);
+ GG2131223 *dp, &lv = *(dp=new (buf) GG2131223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2131223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2131223)");
+ check_base_class_offset(lv, (AA2*)(EE213*), ABISELECT(32,16), "GG2131223");
+ check_base_class_offset(lv, (BB1*)(EE213*), ABISELECT(48,24), "GG2131223");
+ check_base_class_offset(lv, (EE213*), ABISELECT(16,8), "GG2131223");
+ check_base_class_offset(lv, (AA1*)(FF122*), ABISELECT(80,40), "GG2131223");
+ check_base_class_offset(lv, (BB2*)(FF122*), ABISELECT(96,48), "GG2131223");
+ check_base_class_offset(lv, (FF122*), ABISELECT(64,32), "GG2131223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2131223.pg");
+ test_class_info(&lv, &cd_GG2131223);
+ dp->~GG2131223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2131223(Test_GG2131223, "GG2131223", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2131223C1Ev();
+extern void _ZN9GG2131223D1Ev();
+Name_Map name_map_GG2131223[] = {
+ NSPAIR(_ZN9GG2131223C1Ev),
+ NSPAIR(_ZN9GG2131223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE213;
+extern VTBL_ENTRY _ZTI5EE213[];
+extern VTBL_ENTRY _ZTV5EE213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE213[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF122;
+extern VTBL_ENTRY _ZTI5FF122[];
+extern VTBL_ENTRY _ZTV5FF122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF122[];
+static Base_Class bases_GG2131223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE213, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF122, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2131223[];
+extern void _ZN9GG21312233fooEv();
+extern void _ZN9GG21312233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21312233fooEv,_ZTv0_n20_N9GG21312233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21312233fooEv,_ZThn8_N9GG21312233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21312233barEv,_ZTv0_n24_N9GG21312233barEv)();
+extern void ABISELECT(_ZThn16_N9GG21312233barEv,_ZThn8_N9GG21312233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21312233barEv,_ZTv0_n12_N9GG21312233barEv)();
+extern void ABISELECT(_ZThn32_N9GG21312233barEv,_ZThn16_N9GG21312233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21312233fooEv,_ZTv0_n12_N9GG21312233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21312233fooEv,_ZThn24_N9GG21312233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21312233barEv,_ZTv0_n20_N9GG21312233barEv)();
+extern void ABISELECT(_ZThn64_N9GG21312233barEv,_ZThn32_N9GG21312233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21312233fooEv,_ZTv0_n12_N9GG21312233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21312233fooEv,_ZThn40_N9GG21312233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21312233barEv,_ZTv0_n12_N9GG21312233barEv)();
+extern void ABISELECT(_ZThn96_N9GG21312233barEv,_ZThn48_N9GG21312233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2131223[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2131223[0]),
+ (VTBL_ENTRY)&_ZN9GG21312233fooEv,
+ (VTBL_ENTRY)&_ZN9GG21312233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2131223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21312233fooEv,_ZTv0_n20_N9GG21312233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21312233barEv,_ZTv0_n24_N9GG21312233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2131223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21312233barEv,_ZTv0_n12_N9GG21312233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2131223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21312233fooEv,_ZTv0_n12_N9GG21312233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2131223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21312233barEv,_ZTv0_n20_N9GG21312233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2131223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21312233fooEv,_ZTv0_n12_N9GG21312233fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2131223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21312233barEv,_ZTv0_n12_N9GG21312233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2131223[];
+extern void _ZN5EE2133fooEv();
+extern void _ZN5EE2133barEv();
+static VTBL_ENTRY _tg__ZTV5EE213__9GG2131223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&_ZN5EE2133fooEv,
+ (VTBL_ENTRY)&_ZN5EE2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv)();
+extern void ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE213__9GG2131223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE213__9GG2131223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv),
+};
+extern void _ZN5FF1223barEv();
+static VTBL_ENTRY _tg__ZTV5FF122__9GG2131223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN5FF1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF122__9GG2131223[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv)();
+extern void ABISELECT(_ZThn32_N5FF1223barEv,_ZThn16_N5FF1223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF122__9GG2131223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv),
+};
+static VTT_ENTRY vtt_GG2131223[] = {
+ {&(_ZTV9GG2131223[8]), 8,40},
+ {&(_ZTV9GG2131223[16]), 16,40},
+ {&(_ZTV9GG2131223[21]), 21,40},
+ {&(_ZTV9GG2131223[25]), 25,40},
+ {&(_ZTV9GG2131223[31]), 31,40},
+ {&(_ZTV9GG2131223[35]), 35,40},
+ {&(_ZTV9GG2131223[39]), 39,40},
+ {&(_tg__ZTV5EE213__9GG2131223[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE213__9GG2131223[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE213__9GG2131223[3]), 3,4},
+ {&(_tg__ZTV5FF122__9GG2131223[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF122__9GG2131223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF122__9GG2131223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2131223[];
+extern VTBL_ENTRY _ZTV9GG2131223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2131223[];
+static VTBL_ENTRY alt_thunk_names530[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1223barEv,_ZThn16_N5FF1223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21312233barEv,_ZTv0_n20_N9GG21312233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21312233barEv,_ZThn32_N9GG21312233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21312233fooEv,_ZTv0_n12_N9GG21312233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21312233fooEv,_ZThn40_N9GG21312233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21312233fooEv,_ZThn24_N9GG21312233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21312233barEv,_ZTv0_n12_N9GG21312233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21312233barEv,_ZThn48_N9GG21312233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21312233barEv,_ZThn16_N9GG21312233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG21312233barEv,_ZTv0_n24_N9GG21312233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21312233barEv,_ZThn8_N9GG21312233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21312233fooEv,_ZTv0_n20_N9GG21312233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21312233fooEv,_ZThn8_N9GG21312233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2131223 = { "GG2131223", // class name
+ bases_GG2131223, 6,
+ &(vtc_GG2131223[0]), // expected_vtbl_contents
+ &(vtt_GG2131223[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2131223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2131223),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2131223),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names530,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2131233 : virtual EE213 , virtual FF123 {
+ int pg;
+ virtual void foo(); // _ZN9GG21312333fooEv
+ virtual void bar(); // _ZN9GG21312333barEv
+ ~GG2131233(); // tgen
+ GG2131233(); // tgen
+};
+//SIG(1 GG2131233) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2131233 ::foo(){vfunc_called(this, "_ZN9GG21312333fooEv");}
+void GG2131233 ::bar(){vfunc_called(this, "_ZN9GG21312333barEv");}
+GG2131233 ::~GG2131233(){ note_dtor("GG2131233", this);} // tgen
+GG2131233 ::GG2131233(){ note_ctor("GG2131233", this);} // tgen
+
+static void Test_GG2131233()
+{
+ extern Class_Descriptor cd_GG2131233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2131233, buf);
+ GG2131233 *dp, &lv = *(dp=new (buf) GG2131233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2131233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2131233)");
+ check_base_class_offset(lv, (AA2*)(EE213*), ABISELECT(32,16), "GG2131233");
+ check_base_class_offset(lv, (BB1*)(EE213*), ABISELECT(48,24), "GG2131233");
+ check_base_class_offset(lv, (EE213*), ABISELECT(16,8), "GG2131233");
+ check_base_class_offset(lv, (AA1*)(FF123*), ABISELECT(80,40), "GG2131233");
+ check_base_class_offset(lv, (BB2*)(FF123*), ABISELECT(96,48), "GG2131233");
+ check_base_class_offset(lv, (FF123*), ABISELECT(64,32), "GG2131233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2131233.pg");
+ test_class_info(&lv, &cd_GG2131233);
+ dp->~GG2131233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2131233(Test_GG2131233, "GG2131233", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2131233C1Ev();
+extern void _ZN9GG2131233D1Ev();
+Name_Map name_map_GG2131233[] = {
+ NSPAIR(_ZN9GG2131233C1Ev),
+ NSPAIR(_ZN9GG2131233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE213;
+extern VTBL_ENTRY _ZTI5EE213[];
+extern VTBL_ENTRY _ZTV5EE213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE213[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF123;
+extern VTBL_ENTRY _ZTI5FF123[];
+extern VTBL_ENTRY _ZTV5FF123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF123[];
+static Base_Class bases_GG2131233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE213, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF123, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2131233[];
+extern void _ZN9GG21312333fooEv();
+extern void _ZN9GG21312333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21312333fooEv,_ZTv0_n20_N9GG21312333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21312333fooEv,_ZThn8_N9GG21312333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21312333barEv,_ZTv0_n24_N9GG21312333barEv)();
+extern void ABISELECT(_ZThn16_N9GG21312333barEv,_ZThn8_N9GG21312333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21312333barEv,_ZTv0_n12_N9GG21312333barEv)();
+extern void ABISELECT(_ZThn32_N9GG21312333barEv,_ZThn16_N9GG21312333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21312333fooEv,_ZTv0_n12_N9GG21312333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21312333fooEv,_ZThn24_N9GG21312333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21312333fooEv,_ZTv0_n20_N9GG21312333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21312333fooEv,_ZThn32_N9GG21312333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21312333barEv,_ZTv0_n24_N9GG21312333barEv)();
+extern void ABISELECT(_ZThn64_N9GG21312333barEv,_ZThn32_N9GG21312333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21312333fooEv,_ZTv0_n12_N9GG21312333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21312333fooEv,_ZThn40_N9GG21312333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21312333barEv,_ZTv0_n12_N9GG21312333barEv)();
+extern void ABISELECT(_ZThn96_N9GG21312333barEv,_ZThn48_N9GG21312333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2131233[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2131233[0]),
+ (VTBL_ENTRY)&_ZN9GG21312333fooEv,
+ (VTBL_ENTRY)&_ZN9GG21312333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2131233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21312333fooEv,_ZTv0_n20_N9GG21312333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21312333barEv,_ZTv0_n24_N9GG21312333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2131233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21312333barEv,_ZTv0_n12_N9GG21312333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2131233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21312333fooEv,_ZTv0_n12_N9GG21312333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2131233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21312333fooEv,_ZTv0_n20_N9GG21312333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21312333barEv,_ZTv0_n24_N9GG21312333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2131233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21312333fooEv,_ZTv0_n12_N9GG21312333fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2131233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21312333barEv,_ZTv0_n12_N9GG21312333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2131233[];
+extern void _ZN5EE2133fooEv();
+extern void _ZN5EE2133barEv();
+static VTBL_ENTRY _tg__ZTV5EE213__9GG2131233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&_ZN5EE2133fooEv,
+ (VTBL_ENTRY)&_ZN5EE2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv)();
+extern void ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE213__9GG2131233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE213__9GG2131233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv),
+};
+extern void _ZN5FF1233fooEv();
+extern void _ZN5FF1233barEv();
+static VTBL_ENTRY _tg__ZTV5FF123__9GG2131233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&_ZN5FF1233fooEv,
+ (VTBL_ENTRY)&_ZN5FF1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1233fooEv,_ZThn8_N5FF1233fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF123__9GG2131233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv)();
+extern void ABISELECT(_ZThn32_N5FF1233barEv,_ZThn16_N5FF1233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF123__9GG2131233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv),
+};
+static VTT_ENTRY vtt_GG2131233[] = {
+ {&(_ZTV9GG2131233[8]), 8,42},
+ {&(_ZTV9GG2131233[16]), 16,42},
+ {&(_ZTV9GG2131233[21]), 21,42},
+ {&(_ZTV9GG2131233[25]), 25,42},
+ {&(_ZTV9GG2131233[32]), 32,42},
+ {&(_ZTV9GG2131233[37]), 37,42},
+ {&(_ZTV9GG2131233[41]), 41,42},
+ {&(_tg__ZTV5EE213__9GG2131233[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE213__9GG2131233[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE213__9GG2131233[3]), 3,4},
+ {&(_tg__ZTV5FF123__9GG2131233[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF123__9GG2131233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF123__9GG2131233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2131233[];
+extern VTBL_ENTRY _ZTV9GG2131233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2131233[];
+static VTBL_ENTRY alt_thunk_names531[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1233barEv,_ZThn16_N5FF1233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1233fooEv,_ZThn8_N5FF1233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21312333fooEv,_ZTv0_n12_N9GG21312333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21312333fooEv,_ZThn40_N9GG21312333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21312333fooEv,_ZThn24_N9GG21312333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21312333barEv,_ZTv0_n12_N9GG21312333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21312333barEv,_ZThn48_N9GG21312333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21312333barEv,_ZThn16_N9GG21312333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG21312333barEv,_ZTv0_n24_N9GG21312333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21312333barEv,_ZThn32_N9GG21312333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21312333barEv,_ZThn8_N9GG21312333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21312333fooEv,_ZTv0_n20_N9GG21312333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21312333fooEv,_ZThn32_N9GG21312333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21312333fooEv,_ZThn8_N9GG21312333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2131233 = { "GG2131233", // class name
+ bases_GG2131233, 6,
+ &(vtc_GG2131233[0]), // expected_vtbl_contents
+ &(vtt_GG2131233[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2131233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2131233),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2131233),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names531,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2131313 : virtual EE213 , virtual FF131 {
+ int pg;
+ virtual void foo(); // _ZN9GG21313133fooEv
+ virtual void bar(); // _ZN9GG21313133barEv
+ ~GG2131313(); // tgen
+ GG2131313(); // tgen
+};
+//SIG(1 GG2131313) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2131313 ::foo(){vfunc_called(this, "_ZN9GG21313133fooEv");}
+void GG2131313 ::bar(){vfunc_called(this, "_ZN9GG21313133barEv");}
+GG2131313 ::~GG2131313(){ note_dtor("GG2131313", this);} // tgen
+GG2131313 ::GG2131313(){ note_ctor("GG2131313", this);} // tgen
+
+static void Test_GG2131313()
+{
+ extern Class_Descriptor cd_GG2131313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2131313, buf);
+ GG2131313 *dp, &lv = *(dp=new (buf) GG2131313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2131313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2131313)");
+ check_base_class_offset(lv, (AA2*)(EE213*), ABISELECT(32,16), "GG2131313");
+ check_base_class_offset(lv, (BB1*)(EE213*), ABISELECT(48,24), "GG2131313");
+ check_base_class_offset(lv, (EE213*), ABISELECT(16,8), "GG2131313");
+ check_base_class_offset(lv, (AA1*)(FF131*), ABISELECT(80,40), "GG2131313");
+ check_base_class_offset(lv, (BB3*)(FF131*), ABISELECT(96,48), "GG2131313");
+ check_base_class_offset(lv, (FF131*), ABISELECT(64,32), "GG2131313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2131313.pg");
+ test_class_info(&lv, &cd_GG2131313);
+ dp->~GG2131313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2131313(Test_GG2131313, "GG2131313", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2131313C1Ev();
+extern void _ZN9GG2131313D1Ev();
+Name_Map name_map_GG2131313[] = {
+ NSPAIR(_ZN9GG2131313C1Ev),
+ NSPAIR(_ZN9GG2131313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE213;
+extern VTBL_ENTRY _ZTI5EE213[];
+extern VTBL_ENTRY _ZTV5EE213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE213[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF131;
+extern VTBL_ENTRY _ZTI5FF131[];
+extern VTBL_ENTRY _ZTV5FF131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF131[];
+static Base_Class bases_GG2131313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE213, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF131, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2131313[];
+extern void _ZN9GG21313133fooEv();
+extern void _ZN9GG21313133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21313133fooEv,_ZTv0_n20_N9GG21313133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21313133fooEv,_ZThn8_N9GG21313133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21313133barEv,_ZTv0_n24_N9GG21313133barEv)();
+extern void ABISELECT(_ZThn16_N9GG21313133barEv,_ZThn8_N9GG21313133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21313133barEv,_ZTv0_n12_N9GG21313133barEv)();
+extern void ABISELECT(_ZThn32_N9GG21313133barEv,_ZThn16_N9GG21313133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21313133fooEv,_ZTv0_n12_N9GG21313133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21313133fooEv,_ZThn24_N9GG21313133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21313133fooEv,_ZTv0_n20_N9GG21313133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21313133fooEv,_ZThn32_N9GG21313133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21313133fooEv,_ZTv0_n12_N9GG21313133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21313133fooEv,_ZThn40_N9GG21313133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21313133fooEv,_ZTv0_n12_N9GG21313133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG21313133fooEv,_ZThn48_N9GG21313133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21313133barEv,_ZTv0_n16_N9GG21313133barEv)();
+extern void ABISELECT(_ZThn96_N9GG21313133barEv,_ZThn48_N9GG21313133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2131313[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2131313[0]),
+ (VTBL_ENTRY)&_ZN9GG21313133fooEv,
+ (VTBL_ENTRY)&_ZN9GG21313133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2131313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21313133fooEv,_ZTv0_n20_N9GG21313133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21313133barEv,_ZTv0_n24_N9GG21313133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2131313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21313133barEv,_ZTv0_n12_N9GG21313133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2131313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21313133fooEv,_ZTv0_n12_N9GG21313133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2131313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21313133fooEv,_ZTv0_n20_N9GG21313133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2131313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21313133fooEv,_ZTv0_n12_N9GG21313133fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2131313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21313133fooEv,_ZTv0_n12_N9GG21313133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21313133barEv,_ZTv0_n16_N9GG21313133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2131313[];
+extern void _ZN5EE2133fooEv();
+extern void _ZN5EE2133barEv();
+static VTBL_ENTRY _tg__ZTV5EE213__9GG2131313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&_ZN5EE2133fooEv,
+ (VTBL_ENTRY)&_ZN5EE2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv)();
+extern void ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE213__9GG2131313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE213__9GG2131313[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv),
+};
+extern void _ZN5FF1313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF131__9GG2131313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&_ZN5FF1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF131__9GG2131313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1313fooEv,_ZThn16_N5FF1313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF131__9GG2131313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG2131313[] = {
+ {&(_ZTV9GG2131313[8]), 8,42},
+ {&(_ZTV9GG2131313[16]), 16,42},
+ {&(_ZTV9GG2131313[21]), 21,42},
+ {&(_ZTV9GG2131313[25]), 25,42},
+ {&(_ZTV9GG2131313[31]), 31,42},
+ {&(_ZTV9GG2131313[35]), 35,42},
+ {&(_ZTV9GG2131313[40]), 40,42},
+ {&(_tg__ZTV5EE213__9GG2131313[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE213__9GG2131313[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE213__9GG2131313[3]), 3,4},
+ {&(_tg__ZTV5FF131__9GG2131313[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF131__9GG2131313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF131__9GG2131313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2131313[];
+extern VTBL_ENTRY _ZTV9GG2131313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2131313[];
+static VTBL_ENTRY alt_thunk_names532[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1313fooEv,_ZThn16_N5FF1313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG21313133barEv,_ZTv0_n16_N9GG21313133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21313133barEv,_ZThn48_N9GG21313133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21313133fooEv,_ZTv0_n12_N9GG21313133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21313133fooEv,_ZThn48_N9GG21313133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21313133fooEv,_ZThn40_N9GG21313133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21313133fooEv,_ZThn24_N9GG21313133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21313133barEv,_ZTv0_n12_N9GG21313133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21313133barEv,_ZThn16_N9GG21313133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG21313133barEv,_ZTv0_n24_N9GG21313133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21313133barEv,_ZThn8_N9GG21313133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21313133fooEv,_ZTv0_n20_N9GG21313133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21313133fooEv,_ZThn32_N9GG21313133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21313133fooEv,_ZThn8_N9GG21313133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2131313 = { "GG2131313", // class name
+ bases_GG2131313, 6,
+ &(vtc_GG2131313[0]), // expected_vtbl_contents
+ &(vtt_GG2131313[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2131313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2131313),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2131313),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names532,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2131323 : virtual EE213 , virtual FF132 {
+ int pg;
+ virtual void foo(); // _ZN9GG21313233fooEv
+ virtual void bar(); // _ZN9GG21313233barEv
+ ~GG2131323(); // tgen
+ GG2131323(); // tgen
+};
+//SIG(1 GG2131323) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2131323 ::foo(){vfunc_called(this, "_ZN9GG21313233fooEv");}
+void GG2131323 ::bar(){vfunc_called(this, "_ZN9GG21313233barEv");}
+GG2131323 ::~GG2131323(){ note_dtor("GG2131323", this);} // tgen
+GG2131323 ::GG2131323(){ note_ctor("GG2131323", this);} // tgen
+
+static void Test_GG2131323()
+{
+ extern Class_Descriptor cd_GG2131323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2131323, buf);
+ GG2131323 *dp, &lv = *(dp=new (buf) GG2131323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2131323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2131323)");
+ check_base_class_offset(lv, (AA2*)(EE213*), ABISELECT(32,16), "GG2131323");
+ check_base_class_offset(lv, (BB1*)(EE213*), ABISELECT(48,24), "GG2131323");
+ check_base_class_offset(lv, (EE213*), ABISELECT(16,8), "GG2131323");
+ check_base_class_offset(lv, (AA1*)(FF132*), ABISELECT(80,40), "GG2131323");
+ check_base_class_offset(lv, (BB3*)(FF132*), ABISELECT(96,48), "GG2131323");
+ check_base_class_offset(lv, (FF132*), ABISELECT(64,32), "GG2131323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2131323.pg");
+ test_class_info(&lv, &cd_GG2131323);
+ dp->~GG2131323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2131323(Test_GG2131323, "GG2131323", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2131323C1Ev();
+extern void _ZN9GG2131323D1Ev();
+Name_Map name_map_GG2131323[] = {
+ NSPAIR(_ZN9GG2131323C1Ev),
+ NSPAIR(_ZN9GG2131323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE213;
+extern VTBL_ENTRY _ZTI5EE213[];
+extern VTBL_ENTRY _ZTV5EE213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE213[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF132;
+extern VTBL_ENTRY _ZTI5FF132[];
+extern VTBL_ENTRY _ZTV5FF132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF132[];
+static Base_Class bases_GG2131323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE213, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF132, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2131323[];
+extern void _ZN9GG21313233fooEv();
+extern void _ZN9GG21313233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21313233fooEv,_ZTv0_n20_N9GG21313233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21313233fooEv,_ZThn8_N9GG21313233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21313233barEv,_ZTv0_n24_N9GG21313233barEv)();
+extern void ABISELECT(_ZThn16_N9GG21313233barEv,_ZThn8_N9GG21313233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21313233barEv,_ZTv0_n12_N9GG21313233barEv)();
+extern void ABISELECT(_ZThn32_N9GG21313233barEv,_ZThn16_N9GG21313233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21313233fooEv,_ZTv0_n12_N9GG21313233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21313233fooEv,_ZThn24_N9GG21313233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21313233barEv,_ZTv0_n20_N9GG21313233barEv)();
+extern void ABISELECT(_ZThn64_N9GG21313233barEv,_ZThn32_N9GG21313233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21313233fooEv,_ZTv0_n12_N9GG21313233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21313233fooEv,_ZThn40_N9GG21313233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21313233fooEv,_ZTv0_n12_N9GG21313233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG21313233fooEv,_ZThn48_N9GG21313233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21313233barEv,_ZTv0_n16_N9GG21313233barEv)();
+extern void ABISELECT(_ZThn96_N9GG21313233barEv,_ZThn48_N9GG21313233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2131323[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2131323[0]),
+ (VTBL_ENTRY)&_ZN9GG21313233fooEv,
+ (VTBL_ENTRY)&_ZN9GG21313233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2131323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21313233fooEv,_ZTv0_n20_N9GG21313233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21313233barEv,_ZTv0_n24_N9GG21313233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2131323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21313233barEv,_ZTv0_n12_N9GG21313233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2131323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21313233fooEv,_ZTv0_n12_N9GG21313233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2131323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21313233barEv,_ZTv0_n20_N9GG21313233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2131323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21313233fooEv,_ZTv0_n12_N9GG21313233fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2131323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21313233fooEv,_ZTv0_n12_N9GG21313233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21313233barEv,_ZTv0_n16_N9GG21313233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2131323[];
+extern void _ZN5EE2133fooEv();
+extern void _ZN5EE2133barEv();
+static VTBL_ENTRY _tg__ZTV5EE213__9GG2131323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&_ZN5EE2133fooEv,
+ (VTBL_ENTRY)&_ZN5EE2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv)();
+extern void ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE213__9GG2131323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE213__9GG2131323[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv),
+};
+extern void _ZN5FF1323barEv();
+static VTBL_ENTRY _tg__ZTV5FF132__9GG2131323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN5FF1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF132__9GG2131323[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv)();
+extern void ABISELECT(_ZThn32_N5FF1323barEv,_ZThn16_N5FF1323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF132__9GG2131323[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv),
+};
+static VTT_ENTRY vtt_GG2131323[] = {
+ {&(_ZTV9GG2131323[8]), 8,42},
+ {&(_ZTV9GG2131323[16]), 16,42},
+ {&(_ZTV9GG2131323[21]), 21,42},
+ {&(_ZTV9GG2131323[25]), 25,42},
+ {&(_ZTV9GG2131323[31]), 31,42},
+ {&(_ZTV9GG2131323[35]), 35,42},
+ {&(_ZTV9GG2131323[40]), 40,42},
+ {&(_tg__ZTV5EE213__9GG2131323[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE213__9GG2131323[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE213__9GG2131323[3]), 3,4},
+ {&(_tg__ZTV5FF132__9GG2131323[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF132__9GG2131323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF132__9GG2131323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2131323[];
+extern VTBL_ENTRY _ZTV9GG2131323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2131323[];
+static VTBL_ENTRY alt_thunk_names533[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1323barEv,_ZThn16_N5FF1323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG21313233barEv,_ZTv0_n16_N9GG21313233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21313233barEv,_ZThn48_N9GG21313233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21313233barEv,_ZTv0_n20_N9GG21313233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21313233barEv,_ZThn32_N9GG21313233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21313233fooEv,_ZTv0_n12_N9GG21313233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21313233fooEv,_ZThn48_N9GG21313233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21313233fooEv,_ZThn40_N9GG21313233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21313233fooEv,_ZThn24_N9GG21313233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21313233barEv,_ZTv0_n12_N9GG21313233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21313233barEv,_ZThn16_N9GG21313233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG21313233barEv,_ZTv0_n24_N9GG21313233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21313233barEv,_ZThn8_N9GG21313233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21313233fooEv,_ZTv0_n20_N9GG21313233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21313233fooEv,_ZThn8_N9GG21313233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2131323 = { "GG2131323", // class name
+ bases_GG2131323, 6,
+ &(vtc_GG2131323[0]), // expected_vtbl_contents
+ &(vtt_GG2131323[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2131323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2131323),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2131323),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names533,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2131333 : virtual EE213 , virtual FF133 {
+ int pg;
+ virtual void foo(); // _ZN9GG21313333fooEv
+ virtual void bar(); // _ZN9GG21313333barEv
+ ~GG2131333(); // tgen
+ GG2131333(); // tgen
+};
+//SIG(1 GG2131333) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2131333 ::foo(){vfunc_called(this, "_ZN9GG21313333fooEv");}
+void GG2131333 ::bar(){vfunc_called(this, "_ZN9GG21313333barEv");}
+GG2131333 ::~GG2131333(){ note_dtor("GG2131333", this);} // tgen
+GG2131333 ::GG2131333(){ note_ctor("GG2131333", this);} // tgen
+
+static void Test_GG2131333()
+{
+ extern Class_Descriptor cd_GG2131333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2131333, buf);
+ GG2131333 *dp, &lv = *(dp=new (buf) GG2131333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2131333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2131333)");
+ check_base_class_offset(lv, (AA2*)(EE213*), ABISELECT(32,16), "GG2131333");
+ check_base_class_offset(lv, (BB1*)(EE213*), ABISELECT(48,24), "GG2131333");
+ check_base_class_offset(lv, (EE213*), ABISELECT(16,8), "GG2131333");
+ check_base_class_offset(lv, (AA1*)(FF133*), ABISELECT(80,40), "GG2131333");
+ check_base_class_offset(lv, (BB3*)(FF133*), ABISELECT(96,48), "GG2131333");
+ check_base_class_offset(lv, (FF133*), ABISELECT(64,32), "GG2131333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2131333.pg");
+ test_class_info(&lv, &cd_GG2131333);
+ dp->~GG2131333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2131333(Test_GG2131333, "GG2131333", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2131333C1Ev();
+extern void _ZN9GG2131333D1Ev();
+Name_Map name_map_GG2131333[] = {
+ NSPAIR(_ZN9GG2131333C1Ev),
+ NSPAIR(_ZN9GG2131333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE213;
+extern VTBL_ENTRY _ZTI5EE213[];
+extern VTBL_ENTRY _ZTV5EE213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE213[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF133;
+extern VTBL_ENTRY _ZTI5FF133[];
+extern VTBL_ENTRY _ZTV5FF133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF133[];
+static Base_Class bases_GG2131333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE213, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF133, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2131333[];
+extern void _ZN9GG21313333fooEv();
+extern void _ZN9GG21313333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21313333fooEv,_ZTv0_n20_N9GG21313333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21313333fooEv,_ZThn8_N9GG21313333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21313333barEv,_ZTv0_n24_N9GG21313333barEv)();
+extern void ABISELECT(_ZThn16_N9GG21313333barEv,_ZThn8_N9GG21313333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21313333barEv,_ZTv0_n12_N9GG21313333barEv)();
+extern void ABISELECT(_ZThn32_N9GG21313333barEv,_ZThn16_N9GG21313333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21313333fooEv,_ZTv0_n12_N9GG21313333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21313333fooEv,_ZThn24_N9GG21313333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21313333fooEv,_ZTv0_n20_N9GG21313333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21313333fooEv,_ZThn32_N9GG21313333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21313333barEv,_ZTv0_n24_N9GG21313333barEv)();
+extern void ABISELECT(_ZThn64_N9GG21313333barEv,_ZThn32_N9GG21313333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21313333fooEv,_ZTv0_n12_N9GG21313333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21313333fooEv,_ZThn40_N9GG21313333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21313333fooEv,_ZTv0_n12_N9GG21313333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG21313333fooEv,_ZThn48_N9GG21313333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21313333barEv,_ZTv0_n16_N9GG21313333barEv)();
+extern void ABISELECT(_ZThn96_N9GG21313333barEv,_ZThn48_N9GG21313333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2131333[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2131333[0]),
+ (VTBL_ENTRY)&_ZN9GG21313333fooEv,
+ (VTBL_ENTRY)&_ZN9GG21313333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2131333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21313333fooEv,_ZTv0_n20_N9GG21313333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21313333barEv,_ZTv0_n24_N9GG21313333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2131333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21313333barEv,_ZTv0_n12_N9GG21313333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2131333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21313333fooEv,_ZTv0_n12_N9GG21313333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2131333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21313333fooEv,_ZTv0_n20_N9GG21313333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21313333barEv,_ZTv0_n24_N9GG21313333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2131333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21313333fooEv,_ZTv0_n12_N9GG21313333fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2131333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21313333fooEv,_ZTv0_n12_N9GG21313333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21313333barEv,_ZTv0_n16_N9GG21313333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2131333[];
+extern void _ZN5EE2133fooEv();
+extern void _ZN5EE2133barEv();
+static VTBL_ENTRY _tg__ZTV5EE213__9GG2131333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&_ZN5EE2133fooEv,
+ (VTBL_ENTRY)&_ZN5EE2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv)();
+extern void ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE213__9GG2131333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE213__9GG2131333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv),
+};
+extern void _ZN5FF1333fooEv();
+extern void _ZN5FF1333barEv();
+static VTBL_ENTRY _tg__ZTV5FF133__9GG2131333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&_ZN5FF1333fooEv,
+ (VTBL_ENTRY)&_ZN5FF1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF133__9GG2131333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1333fooEv,_ZThn16_N5FF1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv)();
+extern void ABISELECT(_ZThn32_N5FF1333barEv,_ZThn16_N5FF1333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF133__9GG2131333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv),
+};
+static VTT_ENTRY vtt_GG2131333[] = {
+ {&(_ZTV9GG2131333[8]), 8,44},
+ {&(_ZTV9GG2131333[16]), 16,44},
+ {&(_ZTV9GG2131333[21]), 21,44},
+ {&(_ZTV9GG2131333[25]), 25,44},
+ {&(_ZTV9GG2131333[32]), 32,44},
+ {&(_ZTV9GG2131333[37]), 37,44},
+ {&(_ZTV9GG2131333[42]), 42,44},
+ {&(_tg__ZTV5EE213__9GG2131333[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE213__9GG2131333[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE213__9GG2131333[3]), 3,4},
+ {&(_tg__ZTV5FF133__9GG2131333[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF133__9GG2131333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF133__9GG2131333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2131333[];
+extern VTBL_ENTRY _ZTV9GG2131333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2131333[];
+static VTBL_ENTRY alt_thunk_names534[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1333barEv,_ZThn16_N5FF1333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1333fooEv,_ZThn16_N5FF1333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG21313333barEv,_ZTv0_n16_N9GG21313333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21313333barEv,_ZThn48_N9GG21313333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21313333fooEv,_ZTv0_n12_N9GG21313333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21313333fooEv,_ZThn48_N9GG21313333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21313333fooEv,_ZThn40_N9GG21313333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21313333fooEv,_ZThn24_N9GG21313333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21313333barEv,_ZTv0_n12_N9GG21313333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21313333barEv,_ZThn16_N9GG21313333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG21313333barEv,_ZTv0_n24_N9GG21313333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21313333barEv,_ZThn32_N9GG21313333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21313333barEv,_ZThn8_N9GG21313333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21313333fooEv,_ZTv0_n20_N9GG21313333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21313333fooEv,_ZThn32_N9GG21313333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21313333fooEv,_ZThn8_N9GG21313333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2131333 = { "GG2131333", // class name
+ bases_GG2131333, 6,
+ &(vtc_GG2131333[0]), // expected_vtbl_contents
+ &(vtt_GG2131333[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2131333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2131333),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2131333),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names534,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2132113 : virtual EE213 , virtual FF211 {
+ int pg;
+ virtual void foo(); // _ZN9GG21321133fooEv
+ virtual void bar(); // _ZN9GG21321133barEv
+ ~GG2132113(); // tgen
+ GG2132113(); // tgen
+};
+//SIG(1 GG2132113) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC3 VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG2132113 ::foo(){vfunc_called(this, "_ZN9GG21321133fooEv");}
+void GG2132113 ::bar(){vfunc_called(this, "_ZN9GG21321133barEv");}
+GG2132113 ::~GG2132113(){ note_dtor("GG2132113", this);} // tgen
+GG2132113 ::GG2132113(){ note_ctor("GG2132113", this);} // tgen
+
+static void Test_GG2132113()
+{
+ extern Class_Descriptor cd_GG2132113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG2132113, buf);
+ GG2132113 *dp, &lv = *(dp=new (buf) GG2132113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG2132113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2132113)");
+ check_base_class_offset(lv, (AA2*)(EE213*), ABISELECT(32,16), "GG2132113");
+ check_base_class_offset(lv, (AA2*)(FF211*), ABISELECT(32,16), "GG2132113");
+ check_base_class_offset(lv, (BB1*)(EE213*), ABISELECT(48,24), "GG2132113");
+ check_base_class_offset(lv, (BB1*)(FF211*), ABISELECT(48,24), "GG2132113");
+ check_base_class_offset(lv, (EE213*), ABISELECT(16,8), "GG2132113");
+ check_base_class_offset(lv, (FF211*), ABISELECT(64,32), "GG2132113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2132113.pg");
+ test_class_info(&lv, &cd_GG2132113);
+ dp->~GG2132113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2132113(Test_GG2132113, "GG2132113", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG2132113C1Ev();
+extern void _ZN9GG2132113D1Ev();
+Name_Map name_map_GG2132113[] = {
+ NSPAIR(_ZN9GG2132113C1Ev),
+ NSPAIR(_ZN9GG2132113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE213;
+extern VTBL_ENTRY _ZTI5EE213[];
+extern VTBL_ENTRY _ZTV5EE213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE213[];
+extern Class_Descriptor cd_FF211;
+extern VTBL_ENTRY _ZTI5FF211[];
+extern VTBL_ENTRY _ZTV5FF211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF211[];
+static Base_Class bases_GG2132113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE213, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF211, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2132113[];
+extern void _ZN9GG21321133fooEv();
+extern void _ZN9GG21321133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21321133fooEv,_ZTv0_n20_N9GG21321133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21321133fooEv,_ZThn8_N9GG21321133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21321133barEv,_ZTv0_n24_N9GG21321133barEv)();
+extern void ABISELECT(_ZThn16_N9GG21321133barEv,_ZThn8_N9GG21321133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21321133barEv,_ZTv0_n12_N9GG21321133barEv)();
+extern void ABISELECT(_ZThn32_N9GG21321133barEv,_ZThn16_N9GG21321133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21321133fooEv,_ZTv0_n12_N9GG21321133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21321133fooEv,_ZThn24_N9GG21321133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21321133fooEv,_ZTv0_n20_N9GG21321133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21321133fooEv,_ZThn32_N9GG21321133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2132113[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2132113[0]),
+ (VTBL_ENTRY)&_ZN9GG21321133fooEv,
+ (VTBL_ENTRY)&_ZN9GG21321133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2132113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21321133fooEv,_ZTv0_n20_N9GG21321133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21321133barEv,_ZTv0_n24_N9GG21321133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2132113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21321133barEv,_ZTv0_n12_N9GG21321133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2132113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21321133fooEv,_ZTv0_n12_N9GG21321133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2132113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21321133fooEv,_ZTv0_n20_N9GG21321133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2132113[];
+extern void _ZN5EE2133fooEv();
+extern void _ZN5EE2133barEv();
+static VTBL_ENTRY _tg__ZTV5EE213__9GG2132113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&_ZN5EE2133fooEv,
+ (VTBL_ENTRY)&_ZN5EE2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv)();
+extern void ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE213__9GG2132113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE213__9GG2132113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv),
+};
+extern void _ZN5FF2113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF211__9GG2132113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN5FF2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF211__9GG2132113[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF211__9GG2132113[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv),
+};
+static VTT_ENTRY vtt_GG2132113[] = {
+ {&(_ZTV9GG2132113[6]), 6,30},
+ {&(_ZTV9GG2132113[14]), 14,30},
+ {&(_ZTV9GG2132113[19]), 19,30},
+ {&(_ZTV9GG2132113[23]), 23,30},
+ {&(_ZTV9GG2132113[29]), 29,30},
+ {&(_tg__ZTV5EE213__9GG2132113[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE213__9GG2132113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE213__9GG2132113[3]), 3,4},
+ {&(_tg__ZTV5FF211__9GG2132113[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF211__9GG2132113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF211__9GG2132113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2132113[];
+extern VTBL_ENTRY _ZTV9GG2132113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2132113[];
+static VTBL_ENTRY alt_thunk_names535[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21321133fooEv,_ZTv0_n12_N9GG21321133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21321133fooEv,_ZThn24_N9GG21321133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21321133barEv,_ZTv0_n12_N9GG21321133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21321133barEv,_ZThn16_N9GG21321133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG21321133barEv,_ZTv0_n24_N9GG21321133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21321133barEv,_ZThn8_N9GG21321133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21321133fooEv,_ZTv0_n20_N9GG21321133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21321133fooEv,_ZThn32_N9GG21321133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21321133fooEv,_ZThn8_N9GG21321133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2132113 = { "GG2132113", // class name
+ bases_GG2132113, 4,
+ &(vtc_GG2132113[0]), // expected_vtbl_contents
+ &(vtt_GG2132113[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG2132113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2132113),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2132113),11, //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 GG2132123 : virtual EE213 , virtual FF212 {
+ int pg;
+ virtual void foo(); // _ZN9GG21321233fooEv
+ virtual void bar(); // _ZN9GG21321233barEv
+ ~GG2132123(); // tgen
+ GG2132123(); // tgen
+};
+//SIG(1 GG2132123) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC3 VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG2132123 ::foo(){vfunc_called(this, "_ZN9GG21321233fooEv");}
+void GG2132123 ::bar(){vfunc_called(this, "_ZN9GG21321233barEv");}
+GG2132123 ::~GG2132123(){ note_dtor("GG2132123", this);} // tgen
+GG2132123 ::GG2132123(){ note_ctor("GG2132123", this);} // tgen
+
+static void Test_GG2132123()
+{
+ extern Class_Descriptor cd_GG2132123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG2132123, buf);
+ GG2132123 *dp, &lv = *(dp=new (buf) GG2132123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG2132123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2132123)");
+ check_base_class_offset(lv, (AA2*)(EE213*), ABISELECT(32,16), "GG2132123");
+ check_base_class_offset(lv, (AA2*)(FF212*), ABISELECT(32,16), "GG2132123");
+ check_base_class_offset(lv, (BB1*)(EE213*), ABISELECT(48,24), "GG2132123");
+ check_base_class_offset(lv, (BB1*)(FF212*), ABISELECT(48,24), "GG2132123");
+ check_base_class_offset(lv, (EE213*), ABISELECT(16,8), "GG2132123");
+ check_base_class_offset(lv, (FF212*), ABISELECT(64,32), "GG2132123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2132123.pg");
+ test_class_info(&lv, &cd_GG2132123);
+ dp->~GG2132123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2132123(Test_GG2132123, "GG2132123", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG2132123C1Ev();
+extern void _ZN9GG2132123D1Ev();
+Name_Map name_map_GG2132123[] = {
+ NSPAIR(_ZN9GG2132123C1Ev),
+ NSPAIR(_ZN9GG2132123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE213;
+extern VTBL_ENTRY _ZTI5EE213[];
+extern VTBL_ENTRY _ZTV5EE213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE213[];
+extern Class_Descriptor cd_FF212;
+extern VTBL_ENTRY _ZTI5FF212[];
+extern VTBL_ENTRY _ZTV5FF212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF212[];
+static Base_Class bases_GG2132123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE213, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF212, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2132123[];
+extern void _ZN9GG21321233fooEv();
+extern void _ZN9GG21321233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21321233fooEv,_ZTv0_n20_N9GG21321233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21321233fooEv,_ZThn8_N9GG21321233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21321233barEv,_ZTv0_n24_N9GG21321233barEv)();
+extern void ABISELECT(_ZThn16_N9GG21321233barEv,_ZThn8_N9GG21321233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21321233barEv,_ZTv0_n12_N9GG21321233barEv)();
+extern void ABISELECT(_ZThn32_N9GG21321233barEv,_ZThn16_N9GG21321233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21321233fooEv,_ZTv0_n12_N9GG21321233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21321233fooEv,_ZThn24_N9GG21321233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21321233barEv,_ZTv0_n20_N9GG21321233barEv)();
+extern void ABISELECT(_ZThn64_N9GG21321233barEv,_ZThn32_N9GG21321233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2132123[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2132123[0]),
+ (VTBL_ENTRY)&_ZN9GG21321233fooEv,
+ (VTBL_ENTRY)&_ZN9GG21321233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2132123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21321233fooEv,_ZTv0_n20_N9GG21321233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21321233barEv,_ZTv0_n24_N9GG21321233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2132123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21321233barEv,_ZTv0_n12_N9GG21321233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2132123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21321233fooEv,_ZTv0_n12_N9GG21321233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2132123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21321233barEv,_ZTv0_n20_N9GG21321233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2132123[];
+extern void _ZN5EE2133fooEv();
+extern void _ZN5EE2133barEv();
+static VTBL_ENTRY _tg__ZTV5EE213__9GG2132123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&_ZN5EE2133fooEv,
+ (VTBL_ENTRY)&_ZN5EE2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv)();
+extern void ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE213__9GG2132123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE213__9GG2132123[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv),
+};
+extern void _ZN5FF2123barEv();
+static VTBL_ENTRY _tg__ZTV5FF212__9GG2132123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN5FF2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF212__9GG2132123[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF212__9GG2132123[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG2132123[] = {
+ {&(_ZTV9GG2132123[6]), 6,30},
+ {&(_ZTV9GG2132123[14]), 14,30},
+ {&(_ZTV9GG2132123[19]), 19,30},
+ {&(_ZTV9GG2132123[23]), 23,30},
+ {&(_ZTV9GG2132123[29]), 29,30},
+ {&(_tg__ZTV5EE213__9GG2132123[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE213__9GG2132123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE213__9GG2132123[3]), 3,4},
+ {&(_tg__ZTV5FF212__9GG2132123[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF212__9GG2132123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF212__9GG2132123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2132123[];
+extern VTBL_ENTRY _ZTV9GG2132123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2132123[];
+static VTBL_ENTRY alt_thunk_names536[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21321233barEv,_ZTv0_n20_N9GG21321233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21321233barEv,_ZThn32_N9GG21321233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21321233fooEv,_ZTv0_n12_N9GG21321233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21321233fooEv,_ZThn24_N9GG21321233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21321233barEv,_ZTv0_n12_N9GG21321233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21321233barEv,_ZThn16_N9GG21321233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG21321233barEv,_ZTv0_n24_N9GG21321233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21321233barEv,_ZThn8_N9GG21321233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21321233fooEv,_ZTv0_n20_N9GG21321233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21321233fooEv,_ZThn8_N9GG21321233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2132123 = { "GG2132123", // class name
+ bases_GG2132123, 4,
+ &(vtc_GG2132123[0]), // expected_vtbl_contents
+ &(vtt_GG2132123[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG2132123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2132123),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2132123),11, //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 GG2132133 : virtual EE213 , virtual FF213 {
+ int pg;
+ virtual void foo(); // _ZN9GG21321333fooEv
+ virtual void bar(); // _ZN9GG21321333barEv
+ ~GG2132133(); // tgen
+ GG2132133(); // tgen
+};
+//SIG(1 GG2132133) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC3 VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2132133 ::foo(){vfunc_called(this, "_ZN9GG21321333fooEv");}
+void GG2132133 ::bar(){vfunc_called(this, "_ZN9GG21321333barEv");}
+GG2132133 ::~GG2132133(){ note_dtor("GG2132133", this);} // tgen
+GG2132133 ::GG2132133(){ note_ctor("GG2132133", this);} // tgen
+
+static void Test_GG2132133()
+{
+ extern Class_Descriptor cd_GG2132133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG2132133, buf);
+ GG2132133 *dp, &lv = *(dp=new (buf) GG2132133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG2132133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2132133)");
+ check_base_class_offset(lv, (AA2*)(EE213*), ABISELECT(32,16), "GG2132133");
+ check_base_class_offset(lv, (AA2*)(FF213*), ABISELECT(32,16), "GG2132133");
+ check_base_class_offset(lv, (BB1*)(EE213*), ABISELECT(48,24), "GG2132133");
+ check_base_class_offset(lv, (BB1*)(FF213*), ABISELECT(48,24), "GG2132133");
+ check_base_class_offset(lv, (EE213*), ABISELECT(16,8), "GG2132133");
+ check_base_class_offset(lv, (FF213*), ABISELECT(64,32), "GG2132133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2132133.pg");
+ test_class_info(&lv, &cd_GG2132133);
+ dp->~GG2132133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2132133(Test_GG2132133, "GG2132133", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG2132133C1Ev();
+extern void _ZN9GG2132133D1Ev();
+Name_Map name_map_GG2132133[] = {
+ NSPAIR(_ZN9GG2132133C1Ev),
+ NSPAIR(_ZN9GG2132133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE213;
+extern VTBL_ENTRY _ZTI5EE213[];
+extern VTBL_ENTRY _ZTV5EE213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE213[];
+extern Class_Descriptor cd_FF213;
+extern VTBL_ENTRY _ZTI5FF213[];
+extern VTBL_ENTRY _ZTV5FF213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF213[];
+static Base_Class bases_GG2132133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE213, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF213, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2132133[];
+extern void _ZN9GG21321333fooEv();
+extern void _ZN9GG21321333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21321333fooEv,_ZTv0_n20_N9GG21321333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21321333fooEv,_ZThn8_N9GG21321333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21321333barEv,_ZTv0_n24_N9GG21321333barEv)();
+extern void ABISELECT(_ZThn16_N9GG21321333barEv,_ZThn8_N9GG21321333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21321333barEv,_ZTv0_n12_N9GG21321333barEv)();
+extern void ABISELECT(_ZThn32_N9GG21321333barEv,_ZThn16_N9GG21321333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21321333fooEv,_ZTv0_n12_N9GG21321333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21321333fooEv,_ZThn24_N9GG21321333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21321333fooEv,_ZTv0_n20_N9GG21321333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21321333fooEv,_ZThn32_N9GG21321333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21321333barEv,_ZTv0_n24_N9GG21321333barEv)();
+extern void ABISELECT(_ZThn64_N9GG21321333barEv,_ZThn32_N9GG21321333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2132133[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2132133[0]),
+ (VTBL_ENTRY)&_ZN9GG21321333fooEv,
+ (VTBL_ENTRY)&_ZN9GG21321333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2132133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21321333fooEv,_ZTv0_n20_N9GG21321333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21321333barEv,_ZTv0_n24_N9GG21321333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2132133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21321333barEv,_ZTv0_n12_N9GG21321333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2132133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21321333fooEv,_ZTv0_n12_N9GG21321333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2132133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21321333fooEv,_ZTv0_n20_N9GG21321333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21321333barEv,_ZTv0_n24_N9GG21321333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2132133[];
+extern void _ZN5EE2133fooEv();
+extern void _ZN5EE2133barEv();
+static VTBL_ENTRY _tg__ZTV5EE213__9GG2132133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&_ZN5EE2133fooEv,
+ (VTBL_ENTRY)&_ZN5EE2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv)();
+extern void ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE213__9GG2132133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE213__9GG2132133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv),
+};
+extern void _ZN5FF2133fooEv();
+extern void _ZN5FF2133barEv();
+static VTBL_ENTRY _tg__ZTV5FF213__9GG2132133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&_ZN5FF2133fooEv,
+ (VTBL_ENTRY)&_ZN5FF2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF213__9GG2132133[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF213__9GG2132133[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv),
+};
+static VTT_ENTRY vtt_GG2132133[] = {
+ {&(_ZTV9GG2132133[6]), 6,32},
+ {&(_ZTV9GG2132133[14]), 14,32},
+ {&(_ZTV9GG2132133[19]), 19,32},
+ {&(_ZTV9GG2132133[23]), 23,32},
+ {&(_ZTV9GG2132133[30]), 30,32},
+ {&(_tg__ZTV5EE213__9GG2132133[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE213__9GG2132133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE213__9GG2132133[3]), 3,4},
+ {&(_tg__ZTV5FF213__9GG2132133[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF213__9GG2132133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF213__9GG2132133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2132133[];
+extern VTBL_ENTRY _ZTV9GG2132133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2132133[];
+static VTBL_ENTRY alt_thunk_names537[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21321333fooEv,_ZTv0_n12_N9GG21321333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21321333fooEv,_ZThn24_N9GG21321333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21321333barEv,_ZTv0_n12_N9GG21321333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21321333barEv,_ZThn16_N9GG21321333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG21321333barEv,_ZTv0_n24_N9GG21321333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21321333barEv,_ZThn32_N9GG21321333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21321333barEv,_ZThn8_N9GG21321333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21321333fooEv,_ZTv0_n20_N9GG21321333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21321333fooEv,_ZThn32_N9GG21321333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21321333fooEv,_ZThn8_N9GG21321333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2132133 = { "GG2132133", // class name
+ bases_GG2132133, 4,
+ &(vtc_GG2132133[0]), // expected_vtbl_contents
+ &(vtt_GG2132133[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG2132133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2132133),32, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2132133),11, //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 GG2132213 : virtual EE213 , virtual FF221 {
+ int pg;
+ virtual void foo(); // _ZN9GG21322133fooEv
+ virtual void bar(); // _ZN9GG21322133barEv
+ ~GG2132213(); // tgen
+ GG2132213(); // tgen
+};
+//SIG(1 GG2132213) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2132213 ::foo(){vfunc_called(this, "_ZN9GG21322133fooEv");}
+void GG2132213 ::bar(){vfunc_called(this, "_ZN9GG21322133barEv");}
+GG2132213 ::~GG2132213(){ note_dtor("GG2132213", this);} // tgen
+GG2132213 ::GG2132213(){ note_ctor("GG2132213", this);} // tgen
+
+static void Test_GG2132213()
+{
+ extern Class_Descriptor cd_GG2132213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2132213, buf);
+ GG2132213 *dp, &lv = *(dp=new (buf) GG2132213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2132213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2132213)");
+ check_base_class_offset(lv, (AA2*)(EE213*), ABISELECT(32,16), "GG2132213");
+ check_base_class_offset(lv, (AA2*)(FF221*), ABISELECT(32,16), "GG2132213");
+ check_base_class_offset(lv, (BB1*)(EE213*), ABISELECT(48,24), "GG2132213");
+ check_base_class_offset(lv, (EE213*), ABISELECT(16,8), "GG2132213");
+ check_base_class_offset(lv, (BB2*)(FF221*), ABISELECT(80,40), "GG2132213");
+ check_base_class_offset(lv, (FF221*), ABISELECT(64,32), "GG2132213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2132213.pg");
+ test_class_info(&lv, &cd_GG2132213);
+ dp->~GG2132213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2132213(Test_GG2132213, "GG2132213", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2132213C1Ev();
+extern void _ZN9GG2132213D1Ev();
+Name_Map name_map_GG2132213[] = {
+ NSPAIR(_ZN9GG2132213C1Ev),
+ NSPAIR(_ZN9GG2132213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE213;
+extern VTBL_ENTRY _ZTI5EE213[];
+extern VTBL_ENTRY _ZTV5EE213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE213[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF221;
+extern VTBL_ENTRY _ZTI5FF221[];
+extern VTBL_ENTRY _ZTV5FF221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF221[];
+static Base_Class bases_GG2132213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE213, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF221, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2132213[];
+extern void _ZN9GG21322133fooEv();
+extern void _ZN9GG21322133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21322133fooEv,_ZTv0_n20_N9GG21322133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21322133fooEv,_ZThn8_N9GG21322133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21322133barEv,_ZTv0_n24_N9GG21322133barEv)();
+extern void ABISELECT(_ZThn16_N9GG21322133barEv,_ZThn8_N9GG21322133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21322133barEv,_ZTv0_n12_N9GG21322133barEv)();
+extern void ABISELECT(_ZThn32_N9GG21322133barEv,_ZThn16_N9GG21322133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21322133fooEv,_ZTv0_n12_N9GG21322133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21322133fooEv,_ZThn24_N9GG21322133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21322133fooEv,_ZTv0_n20_N9GG21322133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21322133fooEv,_ZThn32_N9GG21322133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21322133barEv,_ZTv0_n12_N9GG21322133barEv)();
+extern void ABISELECT(_ZThn80_N9GG21322133barEv,_ZThn40_N9GG21322133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2132213[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2132213[0]),
+ (VTBL_ENTRY)&_ZN9GG21322133fooEv,
+ (VTBL_ENTRY)&_ZN9GG21322133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2132213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21322133fooEv,_ZTv0_n20_N9GG21322133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21322133barEv,_ZTv0_n24_N9GG21322133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2132213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21322133barEv,_ZTv0_n12_N9GG21322133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2132213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21322133fooEv,_ZTv0_n12_N9GG21322133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2132213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21322133fooEv,_ZTv0_n20_N9GG21322133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2132213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21322133barEv,_ZTv0_n12_N9GG21322133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2132213[];
+extern void _ZN5EE2133fooEv();
+extern void _ZN5EE2133barEv();
+static VTBL_ENTRY _tg__ZTV5EE213__9GG2132213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&_ZN5EE2133fooEv,
+ (VTBL_ENTRY)&_ZN5EE2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv)();
+extern void ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE213__9GG2132213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE213__9GG2132213[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv),
+};
+extern void _ZN5FF2213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF221__9GG2132213[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN5FF2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF221__9GG2132213[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF221__9GG2132213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG2132213[] = {
+ {&(_ZTV9GG2132213[7]), 7,35},
+ {&(_ZTV9GG2132213[15]), 15,35},
+ {&(_ZTV9GG2132213[20]), 20,35},
+ {&(_ZTV9GG2132213[24]), 24,35},
+ {&(_ZTV9GG2132213[30]), 30,35},
+ {&(_ZTV9GG2132213[34]), 34,35},
+ {&(_tg__ZTV5EE213__9GG2132213[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE213__9GG2132213[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE213__9GG2132213[3]), 3,4},
+ {&(_tg__ZTV5FF221__9GG2132213[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF221__9GG2132213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF221__9GG2132213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2132213[];
+extern VTBL_ENTRY _ZTV9GG2132213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2132213[];
+static VTBL_ENTRY alt_thunk_names538[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21322133fooEv,_ZTv0_n12_N9GG21322133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21322133fooEv,_ZThn24_N9GG21322133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21322133barEv,_ZTv0_n12_N9GG21322133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21322133barEv,_ZThn40_N9GG21322133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21322133barEv,_ZThn16_N9GG21322133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG21322133barEv,_ZTv0_n24_N9GG21322133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21322133barEv,_ZThn8_N9GG21322133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21322133fooEv,_ZTv0_n20_N9GG21322133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21322133fooEv,_ZThn32_N9GG21322133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21322133fooEv,_ZThn8_N9GG21322133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2132213 = { "GG2132213", // class name
+ bases_GG2132213, 5,
+ &(vtc_GG2132213[0]), // expected_vtbl_contents
+ &(vtt_GG2132213[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2132213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2132213),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2132213),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names538,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2132222 : virtual EE213 , virtual FF222 {
+ int pg;
+ virtual void bar(); // _ZN9GG21322223barEv
+ ~GG2132222(); // tgen
+ GG2132222(); // tgen
+};
+//SIG(1 GG2132222) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 Fi} v2 v1 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v1 Fi} v1 Fi}
+
+
+void GG2132222 ::bar(){vfunc_called(this, "_ZN9GG21322223barEv");}
+GG2132222 ::~GG2132222(){ note_dtor("GG2132222", this);} // tgen
+GG2132222 ::GG2132222(){ note_ctor("GG2132222", this);} // tgen
+
+static void Test_GG2132222()
+{
+ extern Class_Descriptor cd_GG2132222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2132222, buf);
+ GG2132222 *dp, &lv = *(dp=new (buf) GG2132222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2132222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2132222)");
+ check_base_class_offset(lv, (AA2*)(EE213*), ABISELECT(32,16), "GG2132222");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(32,16), "GG2132222");
+ check_base_class_offset(lv, (BB1*)(EE213*), ABISELECT(48,24), "GG2132222");
+ check_base_class_offset(lv, (EE213*), ABISELECT(16,8), "GG2132222");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(80,40), "GG2132222");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG2132222");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2132222.pg");
+ test_class_info(&lv, &cd_GG2132222);
+ dp->~GG2132222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2132222(Test_GG2132222, "GG2132222", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2132222C1Ev();
+extern void _ZN9GG2132222D1Ev();
+Name_Map name_map_GG2132222[] = {
+ NSPAIR(_ZN9GG2132222C1Ev),
+ NSPAIR(_ZN9GG2132222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE213;
+extern VTBL_ENTRY _ZTI5EE213[];
+extern VTBL_ENTRY _ZTV5EE213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE213[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG2132222[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE213, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2132222[];
+extern void _ZN9GG21322223barEv();
+extern void _ZN5EE2133fooEv();
+extern void ABISELECT(_ZTv0_n48_N9GG21322223barEv,_ZTv0_n24_N9GG21322223barEv)();
+extern void ABISELECT(_ZThn16_N9GG21322223barEv,_ZThn8_N9GG21322223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21322223barEv,_ZTv0_n12_N9GG21322223barEv)();
+extern void ABISELECT(_ZThn32_N9GG21322223barEv,_ZThn16_N9GG21322223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21322223barEv,_ZTv0_n20_N9GG21322223barEv)();
+extern void ABISELECT(_ZThn64_N9GG21322223barEv,_ZThn32_N9GG21322223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21322223barEv,_ZTv0_n12_N9GG21322223barEv)();
+extern void ABISELECT(_ZThn80_N9GG21322223barEv,_ZThn40_N9GG21322223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2132222[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2132222[0]),
+ (VTBL_ENTRY)&_ZN9GG21322223barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2132222[0]),
+ (VTBL_ENTRY)&_ZN5EE2133fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21322223barEv,_ZTv0_n24_N9GG21322223barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2132222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21322223barEv,_ZTv0_n12_N9GG21322223barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2132222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2132222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21322223barEv,_ZTv0_n20_N9GG21322223barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2132222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21322223barEv,_ZTv0_n12_N9GG21322223barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2132222[];
+extern void _ZN5EE2133fooEv();
+extern void _ZN5EE2133barEv();
+static VTBL_ENTRY _tg__ZTV5EE213__9GG2132222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&_ZN5EE2133fooEv,
+ (VTBL_ENTRY)&_ZN5EE2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv)();
+extern void ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE213__9GG2132222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE213__9GG2132222[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv),
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG2132222[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG2132222[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG2132222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG2132222[] = {
+ {&(_ZTV9GG2132222[7]), 7,34},
+ {&(_ZTV9GG2132222[14]), 14,34},
+ {&(_ZTV9GG2132222[19]), 19,34},
+ {&(_ZTV9GG2132222[23]), 23,34},
+ {&(_ZTV9GG2132222[29]), 29,34},
+ {&(_ZTV9GG2132222[33]), 33,34},
+ {&(_tg__ZTV5EE213__9GG2132222[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE213__9GG2132222[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE213__9GG2132222[3]), 3,4},
+ {&(_tg__ZTV5FF222__9GG2132222[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG2132222[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG2132222[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2132222[];
+extern VTBL_ENTRY _ZTV9GG2132222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2132222[];
+static VTBL_ENTRY alt_thunk_names539[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21322223barEv,_ZTv0_n20_N9GG21322223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21322223barEv,_ZThn32_N9GG21322223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21322223barEv,_ZTv0_n12_N9GG21322223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21322223barEv,_ZThn40_N9GG21322223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21322223barEv,_ZThn16_N9GG21322223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG21322223barEv,_ZTv0_n24_N9GG21322223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21322223barEv,_ZThn8_N9GG21322223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2132222 = { "GG2132222", // class name
+ bases_GG2132222, 5,
+ &(vtc_GG2132222[0]), // expected_vtbl_contents
+ &(vtt_GG2132222[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2132222),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2132222),34, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2132222),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names539,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2132223 : virtual EE213 , virtual FF222 {
+ int pg;
+ virtual void foo(); // _ZN9GG21322233fooEv
+ virtual void bar(); // _ZN9GG21322233barEv
+ ~GG2132223(); // tgen
+ GG2132223(); // tgen
+};
+//SIG(1 GG2132223) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2132223 ::foo(){vfunc_called(this, "_ZN9GG21322233fooEv");}
+void GG2132223 ::bar(){vfunc_called(this, "_ZN9GG21322233barEv");}
+GG2132223 ::~GG2132223(){ note_dtor("GG2132223", this);} // tgen
+GG2132223 ::GG2132223(){ note_ctor("GG2132223", this);} // tgen
+
+static void Test_GG2132223()
+{
+ extern Class_Descriptor cd_GG2132223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2132223, buf);
+ GG2132223 *dp, &lv = *(dp=new (buf) GG2132223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2132223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2132223)");
+ check_base_class_offset(lv, (AA2*)(EE213*), ABISELECT(32,16), "GG2132223");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(32,16), "GG2132223");
+ check_base_class_offset(lv, (BB1*)(EE213*), ABISELECT(48,24), "GG2132223");
+ check_base_class_offset(lv, (EE213*), ABISELECT(16,8), "GG2132223");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(80,40), "GG2132223");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG2132223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2132223.pg");
+ test_class_info(&lv, &cd_GG2132223);
+ dp->~GG2132223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2132223(Test_GG2132223, "GG2132223", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2132223C1Ev();
+extern void _ZN9GG2132223D1Ev();
+Name_Map name_map_GG2132223[] = {
+ NSPAIR(_ZN9GG2132223C1Ev),
+ NSPAIR(_ZN9GG2132223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE213;
+extern VTBL_ENTRY _ZTI5EE213[];
+extern VTBL_ENTRY _ZTV5EE213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE213[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG2132223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE213, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2132223[];
+extern void _ZN9GG21322233fooEv();
+extern void _ZN9GG21322233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21322233fooEv,_ZTv0_n20_N9GG21322233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21322233fooEv,_ZThn8_N9GG21322233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21322233barEv,_ZTv0_n24_N9GG21322233barEv)();
+extern void ABISELECT(_ZThn16_N9GG21322233barEv,_ZThn8_N9GG21322233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21322233barEv,_ZTv0_n12_N9GG21322233barEv)();
+extern void ABISELECT(_ZThn32_N9GG21322233barEv,_ZThn16_N9GG21322233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21322233fooEv,_ZTv0_n12_N9GG21322233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21322233fooEv,_ZThn24_N9GG21322233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21322233barEv,_ZTv0_n20_N9GG21322233barEv)();
+extern void ABISELECT(_ZThn64_N9GG21322233barEv,_ZThn32_N9GG21322233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21322233barEv,_ZTv0_n12_N9GG21322233barEv)();
+extern void ABISELECT(_ZThn80_N9GG21322233barEv,_ZThn40_N9GG21322233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2132223[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2132223[0]),
+ (VTBL_ENTRY)&_ZN9GG21322233fooEv,
+ (VTBL_ENTRY)&_ZN9GG21322233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2132223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21322233fooEv,_ZTv0_n20_N9GG21322233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21322233barEv,_ZTv0_n24_N9GG21322233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2132223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21322233barEv,_ZTv0_n12_N9GG21322233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2132223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21322233fooEv,_ZTv0_n12_N9GG21322233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2132223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21322233barEv,_ZTv0_n20_N9GG21322233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2132223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21322233barEv,_ZTv0_n12_N9GG21322233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2132223[];
+extern void _ZN5EE2133fooEv();
+extern void _ZN5EE2133barEv();
+static VTBL_ENTRY _tg__ZTV5EE213__9GG2132223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&_ZN5EE2133fooEv,
+ (VTBL_ENTRY)&_ZN5EE2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv)();
+extern void ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE213__9GG2132223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE213__9GG2132223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv),
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG2132223[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG2132223[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG2132223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG2132223[] = {
+ {&(_ZTV9GG2132223[7]), 7,35},
+ {&(_ZTV9GG2132223[15]), 15,35},
+ {&(_ZTV9GG2132223[20]), 20,35},
+ {&(_ZTV9GG2132223[24]), 24,35},
+ {&(_ZTV9GG2132223[30]), 30,35},
+ {&(_ZTV9GG2132223[34]), 34,35},
+ {&(_tg__ZTV5EE213__9GG2132223[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE213__9GG2132223[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE213__9GG2132223[3]), 3,4},
+ {&(_tg__ZTV5FF222__9GG2132223[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG2132223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG2132223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2132223[];
+extern VTBL_ENTRY _ZTV9GG2132223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2132223[];
+static VTBL_ENTRY alt_thunk_names540[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21322233barEv,_ZTv0_n20_N9GG21322233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21322233barEv,_ZThn32_N9GG21322233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21322233fooEv,_ZTv0_n12_N9GG21322233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21322233fooEv,_ZThn24_N9GG21322233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21322233barEv,_ZTv0_n12_N9GG21322233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21322233barEv,_ZThn40_N9GG21322233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21322233barEv,_ZThn16_N9GG21322233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG21322233barEv,_ZTv0_n24_N9GG21322233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21322233barEv,_ZThn8_N9GG21322233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21322233fooEv,_ZTv0_n20_N9GG21322233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21322233fooEv,_ZThn8_N9GG21322233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2132223 = { "GG2132223", // class name
+ bases_GG2132223, 5,
+ &(vtc_GG2132223[0]), // expected_vtbl_contents
+ &(vtt_GG2132223[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2132223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2132223),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2132223),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names540,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2132233 : virtual EE213 , virtual FF223 {
+ int pg;
+ virtual void foo(); // _ZN9GG21322333fooEv
+ virtual void bar(); // _ZN9GG21322333barEv
+ ~GG2132233(); // tgen
+ GG2132233(); // tgen
+};
+//SIG(1 GG2132233) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2132233 ::foo(){vfunc_called(this, "_ZN9GG21322333fooEv");}
+void GG2132233 ::bar(){vfunc_called(this, "_ZN9GG21322333barEv");}
+GG2132233 ::~GG2132233(){ note_dtor("GG2132233", this);} // tgen
+GG2132233 ::GG2132233(){ note_ctor("GG2132233", this);} // tgen
+
+static void Test_GG2132233()
+{
+ extern Class_Descriptor cd_GG2132233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2132233, buf);
+ GG2132233 *dp, &lv = *(dp=new (buf) GG2132233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2132233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2132233)");
+ check_base_class_offset(lv, (AA2*)(EE213*), ABISELECT(32,16), "GG2132233");
+ check_base_class_offset(lv, (AA2*)(FF223*), ABISELECT(32,16), "GG2132233");
+ check_base_class_offset(lv, (BB1*)(EE213*), ABISELECT(48,24), "GG2132233");
+ check_base_class_offset(lv, (EE213*), ABISELECT(16,8), "GG2132233");
+ check_base_class_offset(lv, (BB2*)(FF223*), ABISELECT(80,40), "GG2132233");
+ check_base_class_offset(lv, (FF223*), ABISELECT(64,32), "GG2132233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2132233.pg");
+ test_class_info(&lv, &cd_GG2132233);
+ dp->~GG2132233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2132233(Test_GG2132233, "GG2132233", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2132233C1Ev();
+extern void _ZN9GG2132233D1Ev();
+Name_Map name_map_GG2132233[] = {
+ NSPAIR(_ZN9GG2132233C1Ev),
+ NSPAIR(_ZN9GG2132233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE213;
+extern VTBL_ENTRY _ZTI5EE213[];
+extern VTBL_ENTRY _ZTV5EE213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE213[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF223;
+extern VTBL_ENTRY _ZTI5FF223[];
+extern VTBL_ENTRY _ZTV5FF223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF223[];
+static Base_Class bases_GG2132233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE213, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF223, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2132233[];
+extern void _ZN9GG21322333fooEv();
+extern void _ZN9GG21322333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21322333fooEv,_ZTv0_n20_N9GG21322333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21322333fooEv,_ZThn8_N9GG21322333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21322333barEv,_ZTv0_n24_N9GG21322333barEv)();
+extern void ABISELECT(_ZThn16_N9GG21322333barEv,_ZThn8_N9GG21322333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21322333barEv,_ZTv0_n12_N9GG21322333barEv)();
+extern void ABISELECT(_ZThn32_N9GG21322333barEv,_ZThn16_N9GG21322333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21322333fooEv,_ZTv0_n12_N9GG21322333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21322333fooEv,_ZThn24_N9GG21322333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21322333fooEv,_ZTv0_n20_N9GG21322333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21322333fooEv,_ZThn32_N9GG21322333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21322333barEv,_ZTv0_n24_N9GG21322333barEv)();
+extern void ABISELECT(_ZThn64_N9GG21322333barEv,_ZThn32_N9GG21322333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21322333barEv,_ZTv0_n12_N9GG21322333barEv)();
+extern void ABISELECT(_ZThn80_N9GG21322333barEv,_ZThn40_N9GG21322333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2132233[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2132233[0]),
+ (VTBL_ENTRY)&_ZN9GG21322333fooEv,
+ (VTBL_ENTRY)&_ZN9GG21322333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2132233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21322333fooEv,_ZTv0_n20_N9GG21322333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21322333barEv,_ZTv0_n24_N9GG21322333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2132233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21322333barEv,_ZTv0_n12_N9GG21322333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2132233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21322333fooEv,_ZTv0_n12_N9GG21322333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2132233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21322333fooEv,_ZTv0_n20_N9GG21322333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21322333barEv,_ZTv0_n24_N9GG21322333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2132233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21322333barEv,_ZTv0_n12_N9GG21322333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2132233[];
+extern void _ZN5EE2133fooEv();
+extern void _ZN5EE2133barEv();
+static VTBL_ENTRY _tg__ZTV5EE213__9GG2132233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&_ZN5EE2133fooEv,
+ (VTBL_ENTRY)&_ZN5EE2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv)();
+extern void ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE213__9GG2132233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE213__9GG2132233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv),
+};
+extern void _ZN5FF2233fooEv();
+extern void _ZN5FF2233barEv();
+static VTBL_ENTRY _tg__ZTV5FF223__9GG2132233[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&_ZN5FF2233fooEv,
+ (VTBL_ENTRY)&_ZN5FF2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF223__9GG2132233[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+extern void ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF223__9GG2132233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+static VTT_ENTRY vtt_GG2132233[] = {
+ {&(_ZTV9GG2132233[7]), 7,37},
+ {&(_ZTV9GG2132233[15]), 15,37},
+ {&(_ZTV9GG2132233[20]), 20,37},
+ {&(_ZTV9GG2132233[24]), 24,37},
+ {&(_ZTV9GG2132233[31]), 31,37},
+ {&(_ZTV9GG2132233[36]), 36,37},
+ {&(_tg__ZTV5EE213__9GG2132233[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE213__9GG2132233[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE213__9GG2132233[3]), 3,4},
+ {&(_tg__ZTV5FF223__9GG2132233[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF223__9GG2132233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF223__9GG2132233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2132233[];
+extern VTBL_ENTRY _ZTV9GG2132233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2132233[];
+static VTBL_ENTRY alt_thunk_names541[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21322333fooEv,_ZTv0_n12_N9GG21322333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21322333fooEv,_ZThn24_N9GG21322333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21322333barEv,_ZTv0_n12_N9GG21322333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21322333barEv,_ZThn40_N9GG21322333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21322333barEv,_ZThn16_N9GG21322333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG21322333barEv,_ZTv0_n24_N9GG21322333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21322333barEv,_ZThn32_N9GG21322333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21322333barEv,_ZThn8_N9GG21322333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21322333fooEv,_ZTv0_n20_N9GG21322333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21322333fooEv,_ZThn32_N9GG21322333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21322333fooEv,_ZThn8_N9GG21322333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2132233 = { "GG2132233", // class name
+ bases_GG2132233, 5,
+ &(vtc_GG2132233[0]), // expected_vtbl_contents
+ &(vtt_GG2132233[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2132233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2132233),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2132233),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names541,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2132313 : virtual EE213 , virtual FF231 {
+ int pg;
+ virtual void foo(); // _ZN9GG21323133fooEv
+ virtual void bar(); // _ZN9GG21323133barEv
+ ~GG2132313(); // tgen
+ GG2132313(); // tgen
+};
+//SIG(1 GG2132313) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2132313 ::foo(){vfunc_called(this, "_ZN9GG21323133fooEv");}
+void GG2132313 ::bar(){vfunc_called(this, "_ZN9GG21323133barEv");}
+GG2132313 ::~GG2132313(){ note_dtor("GG2132313", this);} // tgen
+GG2132313 ::GG2132313(){ note_ctor("GG2132313", this);} // tgen
+
+static void Test_GG2132313()
+{
+ extern Class_Descriptor cd_GG2132313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2132313, buf);
+ GG2132313 *dp, &lv = *(dp=new (buf) GG2132313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2132313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2132313)");
+ check_base_class_offset(lv, (AA2*)(EE213*), ABISELECT(32,16), "GG2132313");
+ check_base_class_offset(lv, (AA2*)(FF231*), ABISELECT(32,16), "GG2132313");
+ check_base_class_offset(lv, (BB1*)(EE213*), ABISELECT(48,24), "GG2132313");
+ check_base_class_offset(lv, (EE213*), ABISELECT(16,8), "GG2132313");
+ check_base_class_offset(lv, (BB3*)(FF231*), ABISELECT(80,40), "GG2132313");
+ check_base_class_offset(lv, (FF231*), ABISELECT(64,32), "GG2132313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2132313.pg");
+ test_class_info(&lv, &cd_GG2132313);
+ dp->~GG2132313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2132313(Test_GG2132313, "GG2132313", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2132313C1Ev();
+extern void _ZN9GG2132313D1Ev();
+Name_Map name_map_GG2132313[] = {
+ NSPAIR(_ZN9GG2132313C1Ev),
+ NSPAIR(_ZN9GG2132313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE213;
+extern VTBL_ENTRY _ZTI5EE213[];
+extern VTBL_ENTRY _ZTV5EE213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE213[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF231;
+extern VTBL_ENTRY _ZTI5FF231[];
+extern VTBL_ENTRY _ZTV5FF231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF231[];
+static Base_Class bases_GG2132313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE213, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF231, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2132313[];
+extern void _ZN9GG21323133fooEv();
+extern void _ZN9GG21323133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21323133fooEv,_ZTv0_n20_N9GG21323133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21323133fooEv,_ZThn8_N9GG21323133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21323133barEv,_ZTv0_n24_N9GG21323133barEv)();
+extern void ABISELECT(_ZThn16_N9GG21323133barEv,_ZThn8_N9GG21323133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21323133barEv,_ZTv0_n12_N9GG21323133barEv)();
+extern void ABISELECT(_ZThn32_N9GG21323133barEv,_ZThn16_N9GG21323133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21323133fooEv,_ZTv0_n12_N9GG21323133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21323133fooEv,_ZThn24_N9GG21323133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21323133fooEv,_ZTv0_n20_N9GG21323133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21323133fooEv,_ZThn32_N9GG21323133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21323133fooEv,_ZTv0_n12_N9GG21323133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21323133fooEv,_ZThn40_N9GG21323133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21323133barEv,_ZTv0_n16_N9GG21323133barEv)();
+extern void ABISELECT(_ZThn80_N9GG21323133barEv,_ZThn40_N9GG21323133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2132313[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2132313[0]),
+ (VTBL_ENTRY)&_ZN9GG21323133fooEv,
+ (VTBL_ENTRY)&_ZN9GG21323133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2132313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21323133fooEv,_ZTv0_n20_N9GG21323133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21323133barEv,_ZTv0_n24_N9GG21323133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2132313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21323133barEv,_ZTv0_n12_N9GG21323133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2132313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21323133fooEv,_ZTv0_n12_N9GG21323133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2132313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21323133fooEv,_ZTv0_n20_N9GG21323133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2132313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21323133fooEv,_ZTv0_n12_N9GG21323133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21323133barEv,_ZTv0_n16_N9GG21323133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2132313[];
+extern void _ZN5EE2133fooEv();
+extern void _ZN5EE2133barEv();
+static VTBL_ENTRY _tg__ZTV5EE213__9GG2132313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&_ZN5EE2133fooEv,
+ (VTBL_ENTRY)&_ZN5EE2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv)();
+extern void ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE213__9GG2132313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE213__9GG2132313[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv),
+};
+extern void _ZN5FF2313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF231__9GG2132313[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN5FF2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF231__9GG2132313[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF2313fooEv,_ZThn8_N5FF2313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF231__9GG2132313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG2132313[] = {
+ {&(_ZTV9GG2132313[7]), 7,37},
+ {&(_ZTV9GG2132313[15]), 15,37},
+ {&(_ZTV9GG2132313[20]), 20,37},
+ {&(_ZTV9GG2132313[24]), 24,37},
+ {&(_ZTV9GG2132313[30]), 30,37},
+ {&(_ZTV9GG2132313[35]), 35,37},
+ {&(_tg__ZTV5EE213__9GG2132313[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE213__9GG2132313[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE213__9GG2132313[3]), 3,4},
+ {&(_tg__ZTV5FF231__9GG2132313[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF231__9GG2132313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF231__9GG2132313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2132313[];
+extern VTBL_ENTRY _ZTV9GG2132313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2132313[];
+static VTBL_ENTRY alt_thunk_names542[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2313fooEv,_ZThn8_N5FF2313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG21323133barEv,_ZTv0_n16_N9GG21323133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21323133barEv,_ZThn40_N9GG21323133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21323133fooEv,_ZTv0_n12_N9GG21323133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21323133fooEv,_ZThn40_N9GG21323133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21323133fooEv,_ZThn24_N9GG21323133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21323133barEv,_ZTv0_n12_N9GG21323133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21323133barEv,_ZThn16_N9GG21323133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG21323133barEv,_ZTv0_n24_N9GG21323133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21323133barEv,_ZThn8_N9GG21323133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21323133fooEv,_ZTv0_n20_N9GG21323133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21323133fooEv,_ZThn32_N9GG21323133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21323133fooEv,_ZThn8_N9GG21323133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2132313 = { "GG2132313", // class name
+ bases_GG2132313, 5,
+ &(vtc_GG2132313[0]), // expected_vtbl_contents
+ &(vtt_GG2132313[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2132313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2132313),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2132313),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names542,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2132323 : virtual EE213 , virtual FF232 {
+ int pg;
+ virtual void foo(); // _ZN9GG21323233fooEv
+ virtual void bar(); // _ZN9GG21323233barEv
+ ~GG2132323(); // tgen
+ GG2132323(); // tgen
+};
+//SIG(1 GG2132323) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2132323 ::foo(){vfunc_called(this, "_ZN9GG21323233fooEv");}
+void GG2132323 ::bar(){vfunc_called(this, "_ZN9GG21323233barEv");}
+GG2132323 ::~GG2132323(){ note_dtor("GG2132323", this);} // tgen
+GG2132323 ::GG2132323(){ note_ctor("GG2132323", this);} // tgen
+
+static void Test_GG2132323()
+{
+ extern Class_Descriptor cd_GG2132323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2132323, buf);
+ GG2132323 *dp, &lv = *(dp=new (buf) GG2132323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2132323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2132323)");
+ check_base_class_offset(lv, (AA2*)(EE213*), ABISELECT(32,16), "GG2132323");
+ check_base_class_offset(lv, (AA2*)(FF232*), ABISELECT(32,16), "GG2132323");
+ check_base_class_offset(lv, (BB1*)(EE213*), ABISELECT(48,24), "GG2132323");
+ check_base_class_offset(lv, (EE213*), ABISELECT(16,8), "GG2132323");
+ check_base_class_offset(lv, (BB3*)(FF232*), ABISELECT(80,40), "GG2132323");
+ check_base_class_offset(lv, (FF232*), ABISELECT(64,32), "GG2132323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2132323.pg");
+ test_class_info(&lv, &cd_GG2132323);
+ dp->~GG2132323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2132323(Test_GG2132323, "GG2132323", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2132323C1Ev();
+extern void _ZN9GG2132323D1Ev();
+Name_Map name_map_GG2132323[] = {
+ NSPAIR(_ZN9GG2132323C1Ev),
+ NSPAIR(_ZN9GG2132323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE213;
+extern VTBL_ENTRY _ZTI5EE213[];
+extern VTBL_ENTRY _ZTV5EE213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE213[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF232;
+extern VTBL_ENTRY _ZTI5FF232[];
+extern VTBL_ENTRY _ZTV5FF232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF232[];
+static Base_Class bases_GG2132323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE213, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF232, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2132323[];
+extern void _ZN9GG21323233fooEv();
+extern void _ZN9GG21323233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21323233fooEv,_ZTv0_n20_N9GG21323233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21323233fooEv,_ZThn8_N9GG21323233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21323233barEv,_ZTv0_n24_N9GG21323233barEv)();
+extern void ABISELECT(_ZThn16_N9GG21323233barEv,_ZThn8_N9GG21323233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21323233barEv,_ZTv0_n12_N9GG21323233barEv)();
+extern void ABISELECT(_ZThn32_N9GG21323233barEv,_ZThn16_N9GG21323233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21323233fooEv,_ZTv0_n12_N9GG21323233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21323233fooEv,_ZThn24_N9GG21323233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21323233barEv,_ZTv0_n20_N9GG21323233barEv)();
+extern void ABISELECT(_ZThn64_N9GG21323233barEv,_ZThn32_N9GG21323233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21323233fooEv,_ZTv0_n12_N9GG21323233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21323233fooEv,_ZThn40_N9GG21323233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21323233barEv,_ZTv0_n16_N9GG21323233barEv)();
+extern void ABISELECT(_ZThn80_N9GG21323233barEv,_ZThn40_N9GG21323233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2132323[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2132323[0]),
+ (VTBL_ENTRY)&_ZN9GG21323233fooEv,
+ (VTBL_ENTRY)&_ZN9GG21323233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2132323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21323233fooEv,_ZTv0_n20_N9GG21323233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21323233barEv,_ZTv0_n24_N9GG21323233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2132323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21323233barEv,_ZTv0_n12_N9GG21323233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2132323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21323233fooEv,_ZTv0_n12_N9GG21323233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2132323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21323233barEv,_ZTv0_n20_N9GG21323233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2132323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21323233fooEv,_ZTv0_n12_N9GG21323233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21323233barEv,_ZTv0_n16_N9GG21323233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2132323[];
+extern void _ZN5EE2133fooEv();
+extern void _ZN5EE2133barEv();
+static VTBL_ENTRY _tg__ZTV5EE213__9GG2132323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&_ZN5EE2133fooEv,
+ (VTBL_ENTRY)&_ZN5EE2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv)();
+extern void ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE213__9GG2132323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE213__9GG2132323[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv),
+};
+extern void _ZN5FF2323barEv();
+static VTBL_ENTRY _tg__ZTV5FF232__9GG2132323[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN5FF2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF232__9GG2132323[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv)();
+extern void ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF232__9GG2132323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv),
+};
+static VTT_ENTRY vtt_GG2132323[] = {
+ {&(_ZTV9GG2132323[7]), 7,37},
+ {&(_ZTV9GG2132323[15]), 15,37},
+ {&(_ZTV9GG2132323[20]), 20,37},
+ {&(_ZTV9GG2132323[24]), 24,37},
+ {&(_ZTV9GG2132323[30]), 30,37},
+ {&(_ZTV9GG2132323[35]), 35,37},
+ {&(_tg__ZTV5EE213__9GG2132323[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE213__9GG2132323[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE213__9GG2132323[3]), 3,4},
+ {&(_tg__ZTV5FF232__9GG2132323[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF232__9GG2132323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF232__9GG2132323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2132323[];
+extern VTBL_ENTRY _ZTV9GG2132323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2132323[];
+static VTBL_ENTRY alt_thunk_names543[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG21323233barEv,_ZTv0_n16_N9GG21323233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21323233barEv,_ZThn40_N9GG21323233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21323233barEv,_ZTv0_n20_N9GG21323233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21323233barEv,_ZThn32_N9GG21323233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21323233fooEv,_ZTv0_n12_N9GG21323233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21323233fooEv,_ZThn40_N9GG21323233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21323233fooEv,_ZThn24_N9GG21323233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21323233barEv,_ZTv0_n12_N9GG21323233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21323233barEv,_ZThn16_N9GG21323233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG21323233barEv,_ZTv0_n24_N9GG21323233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21323233barEv,_ZThn8_N9GG21323233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21323233fooEv,_ZTv0_n20_N9GG21323233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21323233fooEv,_ZThn8_N9GG21323233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2132323 = { "GG2132323", // class name
+ bases_GG2132323, 5,
+ &(vtc_GG2132323[0]), // expected_vtbl_contents
+ &(vtt_GG2132323[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2132323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2132323),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2132323),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names543,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2132333 : virtual EE213 , virtual FF233 {
+ int pg;
+ virtual void foo(); // _ZN9GG21323333fooEv
+ virtual void bar(); // _ZN9GG21323333barEv
+ ~GG2132333(); // tgen
+ GG2132333(); // tgen
+};
+//SIG(1 GG2132333) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2132333 ::foo(){vfunc_called(this, "_ZN9GG21323333fooEv");}
+void GG2132333 ::bar(){vfunc_called(this, "_ZN9GG21323333barEv");}
+GG2132333 ::~GG2132333(){ note_dtor("GG2132333", this);} // tgen
+GG2132333 ::GG2132333(){ note_ctor("GG2132333", this);} // tgen
+
+static void Test_GG2132333()
+{
+ extern Class_Descriptor cd_GG2132333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2132333, buf);
+ GG2132333 *dp, &lv = *(dp=new (buf) GG2132333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2132333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2132333)");
+ check_base_class_offset(lv, (AA2*)(EE213*), ABISELECT(32,16), "GG2132333");
+ check_base_class_offset(lv, (AA2*)(FF233*), ABISELECT(32,16), "GG2132333");
+ check_base_class_offset(lv, (BB1*)(EE213*), ABISELECT(48,24), "GG2132333");
+ check_base_class_offset(lv, (EE213*), ABISELECT(16,8), "GG2132333");
+ check_base_class_offset(lv, (BB3*)(FF233*), ABISELECT(80,40), "GG2132333");
+ check_base_class_offset(lv, (FF233*), ABISELECT(64,32), "GG2132333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2132333.pg");
+ test_class_info(&lv, &cd_GG2132333);
+ dp->~GG2132333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2132333(Test_GG2132333, "GG2132333", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2132333C1Ev();
+extern void _ZN9GG2132333D1Ev();
+Name_Map name_map_GG2132333[] = {
+ NSPAIR(_ZN9GG2132333C1Ev),
+ NSPAIR(_ZN9GG2132333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE213;
+extern VTBL_ENTRY _ZTI5EE213[];
+extern VTBL_ENTRY _ZTV5EE213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE213[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF233;
+extern VTBL_ENTRY _ZTI5FF233[];
+extern VTBL_ENTRY _ZTV5FF233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF233[];
+static Base_Class bases_GG2132333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE213, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF233, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2132333[];
+extern void _ZN9GG21323333fooEv();
+extern void _ZN9GG21323333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21323333fooEv,_ZTv0_n20_N9GG21323333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21323333fooEv,_ZThn8_N9GG21323333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21323333barEv,_ZTv0_n24_N9GG21323333barEv)();
+extern void ABISELECT(_ZThn16_N9GG21323333barEv,_ZThn8_N9GG21323333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21323333barEv,_ZTv0_n12_N9GG21323333barEv)();
+extern void ABISELECT(_ZThn32_N9GG21323333barEv,_ZThn16_N9GG21323333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21323333fooEv,_ZTv0_n12_N9GG21323333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21323333fooEv,_ZThn24_N9GG21323333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21323333fooEv,_ZTv0_n20_N9GG21323333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21323333fooEv,_ZThn32_N9GG21323333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21323333barEv,_ZTv0_n24_N9GG21323333barEv)();
+extern void ABISELECT(_ZThn64_N9GG21323333barEv,_ZThn32_N9GG21323333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21323333fooEv,_ZTv0_n12_N9GG21323333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21323333fooEv,_ZThn40_N9GG21323333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21323333barEv,_ZTv0_n16_N9GG21323333barEv)();
+extern void ABISELECT(_ZThn80_N9GG21323333barEv,_ZThn40_N9GG21323333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2132333[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2132333[0]),
+ (VTBL_ENTRY)&_ZN9GG21323333fooEv,
+ (VTBL_ENTRY)&_ZN9GG21323333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2132333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21323333fooEv,_ZTv0_n20_N9GG21323333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21323333barEv,_ZTv0_n24_N9GG21323333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2132333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21323333barEv,_ZTv0_n12_N9GG21323333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2132333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21323333fooEv,_ZTv0_n12_N9GG21323333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2132333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21323333fooEv,_ZTv0_n20_N9GG21323333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21323333barEv,_ZTv0_n24_N9GG21323333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2132333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21323333fooEv,_ZTv0_n12_N9GG21323333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21323333barEv,_ZTv0_n16_N9GG21323333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2132333[];
+extern void _ZN5EE2133fooEv();
+extern void _ZN5EE2133barEv();
+static VTBL_ENTRY _tg__ZTV5EE213__9GG2132333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&_ZN5EE2133fooEv,
+ (VTBL_ENTRY)&_ZN5EE2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv)();
+extern void ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE213__9GG2132333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE213__9GG2132333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv),
+};
+extern void _ZN5FF2333fooEv();
+extern void _ZN5FF2333barEv();
+static VTBL_ENTRY _tg__ZTV5FF233__9GG2132333[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&_ZN5FF2333fooEv,
+ (VTBL_ENTRY)&_ZN5FF2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF233__9GG2132333[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF2333fooEv,_ZThn8_N5FF2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv)();
+extern void ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF233__9GG2132333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv),
+};
+static VTT_ENTRY vtt_GG2132333[] = {
+ {&(_ZTV9GG2132333[7]), 7,39},
+ {&(_ZTV9GG2132333[15]), 15,39},
+ {&(_ZTV9GG2132333[20]), 20,39},
+ {&(_ZTV9GG2132333[24]), 24,39},
+ {&(_ZTV9GG2132333[31]), 31,39},
+ {&(_ZTV9GG2132333[37]), 37,39},
+ {&(_tg__ZTV5EE213__9GG2132333[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE213__9GG2132333[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE213__9GG2132333[3]), 3,4},
+ {&(_tg__ZTV5FF233__9GG2132333[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF233__9GG2132333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF233__9GG2132333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2132333[];
+extern VTBL_ENTRY _ZTV9GG2132333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2132333[];
+static VTBL_ENTRY alt_thunk_names544[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2333fooEv,_ZThn8_N5FF2333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG21323333barEv,_ZTv0_n16_N9GG21323333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21323333barEv,_ZThn40_N9GG21323333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21323333fooEv,_ZTv0_n12_N9GG21323333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21323333fooEv,_ZThn40_N9GG21323333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21323333fooEv,_ZThn24_N9GG21323333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21323333barEv,_ZTv0_n12_N9GG21323333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21323333barEv,_ZThn16_N9GG21323333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG21323333barEv,_ZTv0_n24_N9GG21323333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21323333barEv,_ZThn32_N9GG21323333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21323333barEv,_ZThn8_N9GG21323333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21323333fooEv,_ZTv0_n20_N9GG21323333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21323333fooEv,_ZThn32_N9GG21323333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21323333fooEv,_ZThn8_N9GG21323333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2132333 = { "GG2132333", // class name
+ bases_GG2132333, 5,
+ &(vtc_GG2132333[0]), // expected_vtbl_contents
+ &(vtt_GG2132333[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2132333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2132333),39, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2132333),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names544,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2133113 : virtual EE213 , virtual FF311 {
+ int pg;
+ virtual void foo(); // _ZN9GG21331133fooEv
+ virtual void bar(); // _ZN9GG21331133barEv
+ ~GG2133113(); // tgen
+ GG2133113(); // tgen
+};
+//SIG(1 GG2133113) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG2133113 ::foo(){vfunc_called(this, "_ZN9GG21331133fooEv");}
+void GG2133113 ::bar(){vfunc_called(this, "_ZN9GG21331133barEv");}
+GG2133113 ::~GG2133113(){ note_dtor("GG2133113", this);} // tgen
+GG2133113 ::GG2133113(){ note_ctor("GG2133113", this);} // tgen
+
+static void Test_GG2133113()
+{
+ extern Class_Descriptor cd_GG2133113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2133113, buf);
+ GG2133113 *dp, &lv = *(dp=new (buf) GG2133113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2133113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2133113)");
+ check_base_class_offset(lv, (AA2*)(EE213*), ABISELECT(32,16), "GG2133113");
+ check_base_class_offset(lv, (BB1*)(EE213*), ABISELECT(48,24), "GG2133113");
+ check_base_class_offset(lv, (BB1*)(FF311*), ABISELECT(48,24), "GG2133113");
+ check_base_class_offset(lv, (EE213*), ABISELECT(16,8), "GG2133113");
+ check_base_class_offset(lv, (AA3*)(FF311*), ABISELECT(80,40), "GG2133113");
+ check_base_class_offset(lv, (FF311*), ABISELECT(64,32), "GG2133113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2133113.pg");
+ test_class_info(&lv, &cd_GG2133113);
+ dp->~GG2133113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2133113(Test_GG2133113, "GG2133113", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2133113C1Ev();
+extern void _ZN9GG2133113D1Ev();
+Name_Map name_map_GG2133113[] = {
+ NSPAIR(_ZN9GG2133113C1Ev),
+ NSPAIR(_ZN9GG2133113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE213;
+extern VTBL_ENTRY _ZTI5EE213[];
+extern VTBL_ENTRY _ZTV5EE213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE213[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF311;
+extern VTBL_ENTRY _ZTI5FF311[];
+extern VTBL_ENTRY _ZTV5FF311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF311[];
+static Base_Class bases_GG2133113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE213, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF311, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2133113[];
+extern void _ZN9GG21331133fooEv();
+extern void _ZN9GG21331133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21331133fooEv,_ZTv0_n20_N9GG21331133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21331133fooEv,_ZThn8_N9GG21331133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21331133barEv,_ZTv0_n24_N9GG21331133barEv)();
+extern void ABISELECT(_ZThn16_N9GG21331133barEv,_ZThn8_N9GG21331133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21331133barEv,_ZTv0_n12_N9GG21331133barEv)();
+extern void ABISELECT(_ZThn32_N9GG21331133barEv,_ZThn16_N9GG21331133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21331133fooEv,_ZTv0_n12_N9GG21331133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21331133fooEv,_ZThn24_N9GG21331133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21331133fooEv,_ZTv0_n20_N9GG21331133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21331133fooEv,_ZThn32_N9GG21331133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21331133fooEv,_ZTv0_n12_N9GG21331133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21331133fooEv,_ZThn40_N9GG21331133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21331133barEv,_ZTv0_n16_N9GG21331133barEv)();
+extern void ABISELECT(_ZThn80_N9GG21331133barEv,_ZThn40_N9GG21331133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2133113[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2133113[0]),
+ (VTBL_ENTRY)&_ZN9GG21331133fooEv,
+ (VTBL_ENTRY)&_ZN9GG21331133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2133113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21331133fooEv,_ZTv0_n20_N9GG21331133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21331133barEv,_ZTv0_n24_N9GG21331133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2133113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21331133barEv,_ZTv0_n12_N9GG21331133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2133113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21331133fooEv,_ZTv0_n12_N9GG21331133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2133113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21331133fooEv,_ZTv0_n20_N9GG21331133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2133113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21331133fooEv,_ZTv0_n12_N9GG21331133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21331133barEv,_ZTv0_n16_N9GG21331133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2133113[];
+extern void _ZN5EE2133fooEv();
+extern void _ZN5EE2133barEv();
+static VTBL_ENTRY _tg__ZTV5EE213__9GG2133113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&_ZN5EE2133fooEv,
+ (VTBL_ENTRY)&_ZN5EE2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv)();
+extern void ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE213__9GG2133113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE213__9GG2133113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv),
+};
+extern void _ZN5FF3113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF311__9GG2133113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&_ZN5FF3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF311__9GG2133113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF311__9GG2133113[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+};
+static VTT_ENTRY vtt_GG2133113[] = {
+ {&(_ZTV9GG2133113[7]), 7,37},
+ {&(_ZTV9GG2133113[15]), 15,37},
+ {&(_ZTV9GG2133113[20]), 20,37},
+ {&(_ZTV9GG2133113[24]), 24,37},
+ {&(_ZTV9GG2133113[30]), 30,37},
+ {&(_ZTV9GG2133113[35]), 35,37},
+ {&(_tg__ZTV5EE213__9GG2133113[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE213__9GG2133113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE213__9GG2133113[3]), 3,4},
+ {&(_tg__ZTV5FF311__9GG2133113[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF311__9GG2133113[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF311__9GG2133113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2133113[];
+extern VTBL_ENTRY _ZTV9GG2133113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2133113[];
+static VTBL_ENTRY alt_thunk_names545[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG21331133barEv,_ZTv0_n16_N9GG21331133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21331133barEv,_ZThn40_N9GG21331133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21331133fooEv,_ZTv0_n12_N9GG21331133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21331133fooEv,_ZThn40_N9GG21331133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21331133fooEv,_ZThn24_N9GG21331133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21331133barEv,_ZTv0_n12_N9GG21331133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21331133barEv,_ZThn16_N9GG21331133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG21331133barEv,_ZTv0_n24_N9GG21331133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21331133barEv,_ZThn8_N9GG21331133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21331133fooEv,_ZTv0_n20_N9GG21331133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21331133fooEv,_ZThn32_N9GG21331133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21331133fooEv,_ZThn8_N9GG21331133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2133113 = { "GG2133113", // class name
+ bases_GG2133113, 5,
+ &(vtc_GG2133113[0]), // expected_vtbl_contents
+ &(vtt_GG2133113[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2133113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2133113),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2133113),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names545,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2133123 : virtual EE213 , virtual FF312 {
+ int pg;
+ virtual void foo(); // _ZN9GG21331233fooEv
+ virtual void bar(); // _ZN9GG21331233barEv
+ ~GG2133123(); // tgen
+ GG2133123(); // tgen
+};
+//SIG(1 GG2133123) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG2133123 ::foo(){vfunc_called(this, "_ZN9GG21331233fooEv");}
+void GG2133123 ::bar(){vfunc_called(this, "_ZN9GG21331233barEv");}
+GG2133123 ::~GG2133123(){ note_dtor("GG2133123", this);} // tgen
+GG2133123 ::GG2133123(){ note_ctor("GG2133123", this);} // tgen
+
+static void Test_GG2133123()
+{
+ extern Class_Descriptor cd_GG2133123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2133123, buf);
+ GG2133123 *dp, &lv = *(dp=new (buf) GG2133123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2133123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2133123)");
+ check_base_class_offset(lv, (AA2*)(EE213*), ABISELECT(32,16), "GG2133123");
+ check_base_class_offset(lv, (BB1*)(EE213*), ABISELECT(48,24), "GG2133123");
+ check_base_class_offset(lv, (BB1*)(FF312*), ABISELECT(48,24), "GG2133123");
+ check_base_class_offset(lv, (EE213*), ABISELECT(16,8), "GG2133123");
+ check_base_class_offset(lv, (AA3*)(FF312*), ABISELECT(80,40), "GG2133123");
+ check_base_class_offset(lv, (FF312*), ABISELECT(64,32), "GG2133123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2133123.pg");
+ test_class_info(&lv, &cd_GG2133123);
+ dp->~GG2133123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2133123(Test_GG2133123, "GG2133123", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2133123C1Ev();
+extern void _ZN9GG2133123D1Ev();
+Name_Map name_map_GG2133123[] = {
+ NSPAIR(_ZN9GG2133123C1Ev),
+ NSPAIR(_ZN9GG2133123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE213;
+extern VTBL_ENTRY _ZTI5EE213[];
+extern VTBL_ENTRY _ZTV5EE213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE213[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF312;
+extern VTBL_ENTRY _ZTI5FF312[];
+extern VTBL_ENTRY _ZTV5FF312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF312[];
+static Base_Class bases_GG2133123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE213, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF312, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2133123[];
+extern void _ZN9GG21331233fooEv();
+extern void _ZN9GG21331233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21331233fooEv,_ZTv0_n20_N9GG21331233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21331233fooEv,_ZThn8_N9GG21331233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21331233barEv,_ZTv0_n24_N9GG21331233barEv)();
+extern void ABISELECT(_ZThn16_N9GG21331233barEv,_ZThn8_N9GG21331233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21331233barEv,_ZTv0_n12_N9GG21331233barEv)();
+extern void ABISELECT(_ZThn32_N9GG21331233barEv,_ZThn16_N9GG21331233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21331233fooEv,_ZTv0_n12_N9GG21331233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21331233fooEv,_ZThn24_N9GG21331233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21331233barEv,_ZTv0_n20_N9GG21331233barEv)();
+extern void ABISELECT(_ZThn64_N9GG21331233barEv,_ZThn32_N9GG21331233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21331233fooEv,_ZTv0_n12_N9GG21331233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21331233fooEv,_ZThn40_N9GG21331233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21331233barEv,_ZTv0_n16_N9GG21331233barEv)();
+extern void ABISELECT(_ZThn80_N9GG21331233barEv,_ZThn40_N9GG21331233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2133123[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2133123[0]),
+ (VTBL_ENTRY)&_ZN9GG21331233fooEv,
+ (VTBL_ENTRY)&_ZN9GG21331233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2133123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21331233fooEv,_ZTv0_n20_N9GG21331233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21331233barEv,_ZTv0_n24_N9GG21331233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2133123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21331233barEv,_ZTv0_n12_N9GG21331233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2133123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21331233fooEv,_ZTv0_n12_N9GG21331233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2133123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21331233barEv,_ZTv0_n20_N9GG21331233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2133123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21331233fooEv,_ZTv0_n12_N9GG21331233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21331233barEv,_ZTv0_n16_N9GG21331233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2133123[];
+extern void _ZN5EE2133fooEv();
+extern void _ZN5EE2133barEv();
+static VTBL_ENTRY _tg__ZTV5EE213__9GG2133123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&_ZN5EE2133fooEv,
+ (VTBL_ENTRY)&_ZN5EE2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv)();
+extern void ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE213__9GG2133123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE213__9GG2133123[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv),
+};
+extern void _ZN5FF3123barEv();
+static VTBL_ENTRY _tg__ZTV5FF312__9GG2133123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN5FF3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv)();
+extern void ABISELECT(_ZThn16_N5FF3123barEv,_ZThn8_N5FF3123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF312__9GG2133123[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF312__9GG2133123[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG2133123[] = {
+ {&(_ZTV9GG2133123[7]), 7,37},
+ {&(_ZTV9GG2133123[15]), 15,37},
+ {&(_ZTV9GG2133123[20]), 20,37},
+ {&(_ZTV9GG2133123[24]), 24,37},
+ {&(_ZTV9GG2133123[30]), 30,37},
+ {&(_ZTV9GG2133123[35]), 35,37},
+ {&(_tg__ZTV5EE213__9GG2133123[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE213__9GG2133123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE213__9GG2133123[3]), 3,4},
+ {&(_tg__ZTV5FF312__9GG2133123[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF312__9GG2133123[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF312__9GG2133123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2133123[];
+extern VTBL_ENTRY _ZTV9GG2133123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2133123[];
+static VTBL_ENTRY alt_thunk_names546[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3123barEv,_ZThn8_N5FF3123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG21331233barEv,_ZTv0_n16_N9GG21331233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21331233barEv,_ZThn40_N9GG21331233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21331233barEv,_ZTv0_n20_N9GG21331233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21331233barEv,_ZThn32_N9GG21331233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21331233fooEv,_ZTv0_n12_N9GG21331233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21331233fooEv,_ZThn40_N9GG21331233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21331233fooEv,_ZThn24_N9GG21331233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21331233barEv,_ZTv0_n12_N9GG21331233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21331233barEv,_ZThn16_N9GG21331233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG21331233barEv,_ZTv0_n24_N9GG21331233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21331233barEv,_ZThn8_N9GG21331233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21331233fooEv,_ZTv0_n20_N9GG21331233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21331233fooEv,_ZThn8_N9GG21331233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2133123 = { "GG2133123", // class name
+ bases_GG2133123, 5,
+ &(vtc_GG2133123[0]), // expected_vtbl_contents
+ &(vtt_GG2133123[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2133123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2133123),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2133123),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names546,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2133133 : virtual EE213 , virtual FF313 {
+ int pg;
+ virtual void foo(); // _ZN9GG21331333fooEv
+ virtual void bar(); // _ZN9GG21331333barEv
+ ~GG2133133(); // tgen
+ GG2133133(); // tgen
+};
+//SIG(1 GG2133133) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2133133 ::foo(){vfunc_called(this, "_ZN9GG21331333fooEv");}
+void GG2133133 ::bar(){vfunc_called(this, "_ZN9GG21331333barEv");}
+GG2133133 ::~GG2133133(){ note_dtor("GG2133133", this);} // tgen
+GG2133133 ::GG2133133(){ note_ctor("GG2133133", this);} // tgen
+
+static void Test_GG2133133()
+{
+ extern Class_Descriptor cd_GG2133133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2133133, buf);
+ GG2133133 *dp, &lv = *(dp=new (buf) GG2133133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2133133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2133133)");
+ check_base_class_offset(lv, (AA2*)(EE213*), ABISELECT(32,16), "GG2133133");
+ check_base_class_offset(lv, (BB1*)(EE213*), ABISELECT(48,24), "GG2133133");
+ check_base_class_offset(lv, (BB1*)(FF313*), ABISELECT(48,24), "GG2133133");
+ check_base_class_offset(lv, (EE213*), ABISELECT(16,8), "GG2133133");
+ check_base_class_offset(lv, (AA3*)(FF313*), ABISELECT(80,40), "GG2133133");
+ check_base_class_offset(lv, (FF313*), ABISELECT(64,32), "GG2133133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2133133.pg");
+ test_class_info(&lv, &cd_GG2133133);
+ dp->~GG2133133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2133133(Test_GG2133133, "GG2133133", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2133133C1Ev();
+extern void _ZN9GG2133133D1Ev();
+Name_Map name_map_GG2133133[] = {
+ NSPAIR(_ZN9GG2133133C1Ev),
+ NSPAIR(_ZN9GG2133133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE213;
+extern VTBL_ENTRY _ZTI5EE213[];
+extern VTBL_ENTRY _ZTV5EE213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE213[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF313;
+extern VTBL_ENTRY _ZTI5FF313[];
+extern VTBL_ENTRY _ZTV5FF313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF313[];
+static Base_Class bases_GG2133133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE213, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF313, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2133133[];
+extern void _ZN9GG21331333fooEv();
+extern void _ZN9GG21331333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21331333fooEv,_ZTv0_n20_N9GG21331333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21331333fooEv,_ZThn8_N9GG21331333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21331333barEv,_ZTv0_n24_N9GG21331333barEv)();
+extern void ABISELECT(_ZThn16_N9GG21331333barEv,_ZThn8_N9GG21331333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21331333barEv,_ZTv0_n12_N9GG21331333barEv)();
+extern void ABISELECT(_ZThn32_N9GG21331333barEv,_ZThn16_N9GG21331333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21331333fooEv,_ZTv0_n12_N9GG21331333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21331333fooEv,_ZThn24_N9GG21331333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21331333fooEv,_ZTv0_n20_N9GG21331333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21331333fooEv,_ZThn32_N9GG21331333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21331333barEv,_ZTv0_n24_N9GG21331333barEv)();
+extern void ABISELECT(_ZThn64_N9GG21331333barEv,_ZThn32_N9GG21331333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21331333fooEv,_ZTv0_n12_N9GG21331333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21331333fooEv,_ZThn40_N9GG21331333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21331333barEv,_ZTv0_n16_N9GG21331333barEv)();
+extern void ABISELECT(_ZThn80_N9GG21331333barEv,_ZThn40_N9GG21331333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2133133[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2133133[0]),
+ (VTBL_ENTRY)&_ZN9GG21331333fooEv,
+ (VTBL_ENTRY)&_ZN9GG21331333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2133133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21331333fooEv,_ZTv0_n20_N9GG21331333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21331333barEv,_ZTv0_n24_N9GG21331333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2133133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21331333barEv,_ZTv0_n12_N9GG21331333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2133133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21331333fooEv,_ZTv0_n12_N9GG21331333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2133133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21331333fooEv,_ZTv0_n20_N9GG21331333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21331333barEv,_ZTv0_n24_N9GG21331333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2133133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21331333fooEv,_ZTv0_n12_N9GG21331333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21331333barEv,_ZTv0_n16_N9GG21331333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2133133[];
+extern void _ZN5EE2133fooEv();
+extern void _ZN5EE2133barEv();
+static VTBL_ENTRY _tg__ZTV5EE213__9GG2133133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&_ZN5EE2133fooEv,
+ (VTBL_ENTRY)&_ZN5EE2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv)();
+extern void ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE213__9GG2133133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE213__9GG2133133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv),
+};
+extern void _ZN5FF3133fooEv();
+extern void _ZN5FF3133barEv();
+static VTBL_ENTRY _tg__ZTV5FF313__9GG2133133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&_ZN5FF3133fooEv,
+ (VTBL_ENTRY)&_ZN5FF3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv)();
+extern void ABISELECT(_ZThn16_N5FF3133barEv,_ZThn8_N5FF3133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF313__9GG2133133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF313__9GG2133133[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+};
+static VTT_ENTRY vtt_GG2133133[] = {
+ {&(_ZTV9GG2133133[7]), 7,39},
+ {&(_ZTV9GG2133133[15]), 15,39},
+ {&(_ZTV9GG2133133[20]), 20,39},
+ {&(_ZTV9GG2133133[24]), 24,39},
+ {&(_ZTV9GG2133133[31]), 31,39},
+ {&(_ZTV9GG2133133[37]), 37,39},
+ {&(_tg__ZTV5EE213__9GG2133133[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE213__9GG2133133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE213__9GG2133133[3]), 3,4},
+ {&(_tg__ZTV5FF313__9GG2133133[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF313__9GG2133133[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF313__9GG2133133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2133133[];
+extern VTBL_ENTRY _ZTV9GG2133133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2133133[];
+static VTBL_ENTRY alt_thunk_names547[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3133barEv,_ZThn8_N5FF3133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG21331333barEv,_ZTv0_n16_N9GG21331333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21331333barEv,_ZThn40_N9GG21331333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21331333fooEv,_ZTv0_n12_N9GG21331333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21331333fooEv,_ZThn40_N9GG21331333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21331333fooEv,_ZThn24_N9GG21331333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21331333barEv,_ZTv0_n12_N9GG21331333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21331333barEv,_ZThn16_N9GG21331333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG21331333barEv,_ZTv0_n24_N9GG21331333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21331333barEv,_ZThn32_N9GG21331333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21331333barEv,_ZThn8_N9GG21331333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21331333fooEv,_ZTv0_n20_N9GG21331333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21331333fooEv,_ZThn32_N9GG21331333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21331333fooEv,_ZThn8_N9GG21331333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2133133 = { "GG2133133", // class name
+ bases_GG2133133, 5,
+ &(vtc_GG2133133[0]), // expected_vtbl_contents
+ &(vtt_GG2133133[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2133133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2133133),39, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2133133),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names547,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2133213 : virtual EE213 , virtual FF321 {
+ int pg;
+ virtual void foo(); // _ZN9GG21332133fooEv
+ virtual void bar(); // _ZN9GG21332133barEv
+ ~GG2133213(); // tgen
+ GG2133213(); // tgen
+};
+//SIG(1 GG2133213) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2133213 ::foo(){vfunc_called(this, "_ZN9GG21332133fooEv");}
+void GG2133213 ::bar(){vfunc_called(this, "_ZN9GG21332133barEv");}
+GG2133213 ::~GG2133213(){ note_dtor("GG2133213", this);} // tgen
+GG2133213 ::GG2133213(){ note_ctor("GG2133213", this);} // tgen
+
+static void Test_GG2133213()
+{
+ extern Class_Descriptor cd_GG2133213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2133213, buf);
+ GG2133213 *dp, &lv = *(dp=new (buf) GG2133213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2133213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2133213)");
+ check_base_class_offset(lv, (AA2*)(EE213*), ABISELECT(32,16), "GG2133213");
+ check_base_class_offset(lv, (BB1*)(EE213*), ABISELECT(48,24), "GG2133213");
+ check_base_class_offset(lv, (EE213*), ABISELECT(16,8), "GG2133213");
+ check_base_class_offset(lv, (AA3*)(FF321*), ABISELECT(80,40), "GG2133213");
+ check_base_class_offset(lv, (BB2*)(FF321*), ABISELECT(96,48), "GG2133213");
+ check_base_class_offset(lv, (FF321*), ABISELECT(64,32), "GG2133213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2133213.pg");
+ test_class_info(&lv, &cd_GG2133213);
+ dp->~GG2133213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2133213(Test_GG2133213, "GG2133213", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2133213C1Ev();
+extern void _ZN9GG2133213D1Ev();
+Name_Map name_map_GG2133213[] = {
+ NSPAIR(_ZN9GG2133213C1Ev),
+ NSPAIR(_ZN9GG2133213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE213;
+extern VTBL_ENTRY _ZTI5EE213[];
+extern VTBL_ENTRY _ZTV5EE213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE213[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF321;
+extern VTBL_ENTRY _ZTI5FF321[];
+extern VTBL_ENTRY _ZTV5FF321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF321[];
+static Base_Class bases_GG2133213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE213, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF321, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2133213[];
+extern void _ZN9GG21332133fooEv();
+extern void _ZN9GG21332133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21332133fooEv,_ZTv0_n20_N9GG21332133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21332133fooEv,_ZThn8_N9GG21332133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21332133barEv,_ZTv0_n24_N9GG21332133barEv)();
+extern void ABISELECT(_ZThn16_N9GG21332133barEv,_ZThn8_N9GG21332133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21332133barEv,_ZTv0_n12_N9GG21332133barEv)();
+extern void ABISELECT(_ZThn32_N9GG21332133barEv,_ZThn16_N9GG21332133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21332133fooEv,_ZTv0_n12_N9GG21332133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21332133fooEv,_ZThn24_N9GG21332133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21332133fooEv,_ZTv0_n20_N9GG21332133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21332133fooEv,_ZThn32_N9GG21332133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21332133fooEv,_ZTv0_n12_N9GG21332133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21332133fooEv,_ZThn40_N9GG21332133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21332133barEv,_ZTv0_n16_N9GG21332133barEv)();
+extern void ABISELECT(_ZThn80_N9GG21332133barEv,_ZThn40_N9GG21332133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21332133barEv,_ZTv0_n12_N9GG21332133barEv)();
+extern void ABISELECT(_ZThn96_N9GG21332133barEv,_ZThn48_N9GG21332133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2133213[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2133213[0]),
+ (VTBL_ENTRY)&_ZN9GG21332133fooEv,
+ (VTBL_ENTRY)&_ZN9GG21332133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2133213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21332133fooEv,_ZTv0_n20_N9GG21332133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21332133barEv,_ZTv0_n24_N9GG21332133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2133213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21332133barEv,_ZTv0_n12_N9GG21332133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2133213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21332133fooEv,_ZTv0_n12_N9GG21332133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2133213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21332133fooEv,_ZTv0_n20_N9GG21332133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2133213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21332133fooEv,_ZTv0_n12_N9GG21332133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21332133barEv,_ZTv0_n16_N9GG21332133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2133213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21332133barEv,_ZTv0_n12_N9GG21332133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2133213[];
+extern void _ZN5EE2133fooEv();
+extern void _ZN5EE2133barEv();
+static VTBL_ENTRY _tg__ZTV5EE213__9GG2133213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&_ZN5EE2133fooEv,
+ (VTBL_ENTRY)&_ZN5EE2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv)();
+extern void ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE213__9GG2133213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE213__9GG2133213[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv),
+};
+extern void _ZN5FF3213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF321__9GG2133213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN5FF3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3213fooEv,_ZThn8_N5FF3213fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF321__9GG2133213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF321__9GG2133213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG2133213[] = {
+ {&(_ZTV9GG2133213[8]), 8,42},
+ {&(_ZTV9GG2133213[16]), 16,42},
+ {&(_ZTV9GG2133213[21]), 21,42},
+ {&(_ZTV9GG2133213[25]), 25,42},
+ {&(_ZTV9GG2133213[31]), 31,42},
+ {&(_ZTV9GG2133213[36]), 36,42},
+ {&(_ZTV9GG2133213[41]), 41,42},
+ {&(_tg__ZTV5EE213__9GG2133213[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE213__9GG2133213[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE213__9GG2133213[3]), 3,4},
+ {&(_tg__ZTV5FF321__9GG2133213[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF321__9GG2133213[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF321__9GG2133213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2133213[];
+extern VTBL_ENTRY _ZTV9GG2133213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2133213[];
+static VTBL_ENTRY alt_thunk_names548[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3213fooEv,_ZThn8_N5FF3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG21332133barEv,_ZTv0_n16_N9GG21332133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21332133barEv,_ZThn40_N9GG21332133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21332133fooEv,_ZTv0_n12_N9GG21332133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21332133fooEv,_ZThn40_N9GG21332133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21332133fooEv,_ZThn24_N9GG21332133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21332133barEv,_ZTv0_n12_N9GG21332133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21332133barEv,_ZThn48_N9GG21332133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21332133barEv,_ZThn16_N9GG21332133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG21332133barEv,_ZTv0_n24_N9GG21332133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21332133barEv,_ZThn8_N9GG21332133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21332133fooEv,_ZTv0_n20_N9GG21332133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21332133fooEv,_ZThn32_N9GG21332133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21332133fooEv,_ZThn8_N9GG21332133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2133213 = { "GG2133213", // class name
+ bases_GG2133213, 6,
+ &(vtc_GG2133213[0]), // expected_vtbl_contents
+ &(vtt_GG2133213[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2133213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2133213),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2133213),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names548,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2133223 : virtual EE213 , virtual FF322 {
+ int pg;
+ virtual void foo(); // _ZN9GG21332233fooEv
+ virtual void bar(); // _ZN9GG21332233barEv
+ ~GG2133223(); // tgen
+ GG2133223(); // tgen
+};
+//SIG(1 GG2133223) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2133223 ::foo(){vfunc_called(this, "_ZN9GG21332233fooEv");}
+void GG2133223 ::bar(){vfunc_called(this, "_ZN9GG21332233barEv");}
+GG2133223 ::~GG2133223(){ note_dtor("GG2133223", this);} // tgen
+GG2133223 ::GG2133223(){ note_ctor("GG2133223", this);} // tgen
+
+static void Test_GG2133223()
+{
+ extern Class_Descriptor cd_GG2133223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2133223, buf);
+ GG2133223 *dp, &lv = *(dp=new (buf) GG2133223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2133223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2133223)");
+ check_base_class_offset(lv, (AA2*)(EE213*), ABISELECT(32,16), "GG2133223");
+ check_base_class_offset(lv, (BB1*)(EE213*), ABISELECT(48,24), "GG2133223");
+ check_base_class_offset(lv, (EE213*), ABISELECT(16,8), "GG2133223");
+ check_base_class_offset(lv, (AA3*)(FF322*), ABISELECT(80,40), "GG2133223");
+ check_base_class_offset(lv, (BB2*)(FF322*), ABISELECT(96,48), "GG2133223");
+ check_base_class_offset(lv, (FF322*), ABISELECT(64,32), "GG2133223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2133223.pg");
+ test_class_info(&lv, &cd_GG2133223);
+ dp->~GG2133223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2133223(Test_GG2133223, "GG2133223", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2133223C1Ev();
+extern void _ZN9GG2133223D1Ev();
+Name_Map name_map_GG2133223[] = {
+ NSPAIR(_ZN9GG2133223C1Ev),
+ NSPAIR(_ZN9GG2133223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE213;
+extern VTBL_ENTRY _ZTI5EE213[];
+extern VTBL_ENTRY _ZTV5EE213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE213[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF322;
+extern VTBL_ENTRY _ZTI5FF322[];
+extern VTBL_ENTRY _ZTV5FF322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF322[];
+static Base_Class bases_GG2133223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE213, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF322, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2133223[];
+extern void _ZN9GG21332233fooEv();
+extern void _ZN9GG21332233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21332233fooEv,_ZTv0_n20_N9GG21332233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21332233fooEv,_ZThn8_N9GG21332233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21332233barEv,_ZTv0_n24_N9GG21332233barEv)();
+extern void ABISELECT(_ZThn16_N9GG21332233barEv,_ZThn8_N9GG21332233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21332233barEv,_ZTv0_n12_N9GG21332233barEv)();
+extern void ABISELECT(_ZThn32_N9GG21332233barEv,_ZThn16_N9GG21332233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21332233fooEv,_ZTv0_n12_N9GG21332233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21332233fooEv,_ZThn24_N9GG21332233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21332233barEv,_ZTv0_n20_N9GG21332233barEv)();
+extern void ABISELECT(_ZThn64_N9GG21332233barEv,_ZThn32_N9GG21332233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21332233fooEv,_ZTv0_n12_N9GG21332233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21332233fooEv,_ZThn40_N9GG21332233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21332233barEv,_ZTv0_n16_N9GG21332233barEv)();
+extern void ABISELECT(_ZThn80_N9GG21332233barEv,_ZThn40_N9GG21332233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21332233barEv,_ZTv0_n12_N9GG21332233barEv)();
+extern void ABISELECT(_ZThn96_N9GG21332233barEv,_ZThn48_N9GG21332233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2133223[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2133223[0]),
+ (VTBL_ENTRY)&_ZN9GG21332233fooEv,
+ (VTBL_ENTRY)&_ZN9GG21332233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2133223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21332233fooEv,_ZTv0_n20_N9GG21332233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21332233barEv,_ZTv0_n24_N9GG21332233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2133223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21332233barEv,_ZTv0_n12_N9GG21332233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2133223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21332233fooEv,_ZTv0_n12_N9GG21332233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2133223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21332233barEv,_ZTv0_n20_N9GG21332233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2133223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21332233fooEv,_ZTv0_n12_N9GG21332233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21332233barEv,_ZTv0_n16_N9GG21332233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2133223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21332233barEv,_ZTv0_n12_N9GG21332233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2133223[];
+extern void _ZN5EE2133fooEv();
+extern void _ZN5EE2133barEv();
+static VTBL_ENTRY _tg__ZTV5EE213__9GG2133223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&_ZN5EE2133fooEv,
+ (VTBL_ENTRY)&_ZN5EE2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv)();
+extern void ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE213__9GG2133223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE213__9GG2133223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv),
+};
+extern void _ZN5FF3223barEv();
+static VTBL_ENTRY _tg__ZTV5FF322__9GG2133223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN5FF3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv)();
+extern void ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF322__9GG2133223[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv)();
+extern void ABISELECT(_ZThn32_N5FF3223barEv,_ZThn16_N5FF3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF322__9GG2133223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv),
+};
+static VTT_ENTRY vtt_GG2133223[] = {
+ {&(_ZTV9GG2133223[8]), 8,42},
+ {&(_ZTV9GG2133223[16]), 16,42},
+ {&(_ZTV9GG2133223[21]), 21,42},
+ {&(_ZTV9GG2133223[25]), 25,42},
+ {&(_ZTV9GG2133223[31]), 31,42},
+ {&(_ZTV9GG2133223[36]), 36,42},
+ {&(_ZTV9GG2133223[41]), 41,42},
+ {&(_tg__ZTV5EE213__9GG2133223[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE213__9GG2133223[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE213__9GG2133223[3]), 3,4},
+ {&(_tg__ZTV5FF322__9GG2133223[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF322__9GG2133223[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF322__9GG2133223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2133223[];
+extern VTBL_ENTRY _ZTV9GG2133223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2133223[];
+static VTBL_ENTRY alt_thunk_names549[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3223barEv,_ZThn16_N5FF3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG21332233barEv,_ZTv0_n16_N9GG21332233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21332233barEv,_ZThn40_N9GG21332233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21332233barEv,_ZTv0_n20_N9GG21332233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21332233barEv,_ZThn32_N9GG21332233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21332233fooEv,_ZTv0_n12_N9GG21332233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21332233fooEv,_ZThn40_N9GG21332233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21332233fooEv,_ZThn24_N9GG21332233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21332233barEv,_ZTv0_n12_N9GG21332233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21332233barEv,_ZThn48_N9GG21332233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21332233barEv,_ZThn16_N9GG21332233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG21332233barEv,_ZTv0_n24_N9GG21332233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21332233barEv,_ZThn8_N9GG21332233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21332233fooEv,_ZTv0_n20_N9GG21332233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21332233fooEv,_ZThn8_N9GG21332233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2133223 = { "GG2133223", // class name
+ bases_GG2133223, 6,
+ &(vtc_GG2133223[0]), // expected_vtbl_contents
+ &(vtt_GG2133223[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2133223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2133223),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2133223),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names549,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2133233 : virtual EE213 , virtual FF323 {
+ int pg;
+ virtual void foo(); // _ZN9GG21332333fooEv
+ virtual void bar(); // _ZN9GG21332333barEv
+ ~GG2133233(); // tgen
+ GG2133233(); // tgen
+};
+//SIG(1 GG2133233) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2133233 ::foo(){vfunc_called(this, "_ZN9GG21332333fooEv");}
+void GG2133233 ::bar(){vfunc_called(this, "_ZN9GG21332333barEv");}
+GG2133233 ::~GG2133233(){ note_dtor("GG2133233", this);} // tgen
+GG2133233 ::GG2133233(){ note_ctor("GG2133233", this);} // tgen
+
+static void Test_GG2133233()
+{
+ extern Class_Descriptor cd_GG2133233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2133233, buf);
+ GG2133233 *dp, &lv = *(dp=new (buf) GG2133233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2133233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2133233)");
+ check_base_class_offset(lv, (AA2*)(EE213*), ABISELECT(32,16), "GG2133233");
+ check_base_class_offset(lv, (BB1*)(EE213*), ABISELECT(48,24), "GG2133233");
+ check_base_class_offset(lv, (EE213*), ABISELECT(16,8), "GG2133233");
+ check_base_class_offset(lv, (AA3*)(FF323*), ABISELECT(80,40), "GG2133233");
+ check_base_class_offset(lv, (BB2*)(FF323*), ABISELECT(96,48), "GG2133233");
+ check_base_class_offset(lv, (FF323*), ABISELECT(64,32), "GG2133233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2133233.pg");
+ test_class_info(&lv, &cd_GG2133233);
+ dp->~GG2133233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2133233(Test_GG2133233, "GG2133233", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2133233C1Ev();
+extern void _ZN9GG2133233D1Ev();
+Name_Map name_map_GG2133233[] = {
+ NSPAIR(_ZN9GG2133233C1Ev),
+ NSPAIR(_ZN9GG2133233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE213;
+extern VTBL_ENTRY _ZTI5EE213[];
+extern VTBL_ENTRY _ZTV5EE213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE213[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF323;
+extern VTBL_ENTRY _ZTI5FF323[];
+extern VTBL_ENTRY _ZTV5FF323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF323[];
+static Base_Class bases_GG2133233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE213, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 40, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF323, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2133233[];
+extern void _ZN9GG21332333fooEv();
+extern void _ZN9GG21332333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21332333fooEv,_ZTv0_n20_N9GG21332333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21332333fooEv,_ZThn8_N9GG21332333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21332333barEv,_ZTv0_n24_N9GG21332333barEv)();
+extern void ABISELECT(_ZThn16_N9GG21332333barEv,_ZThn8_N9GG21332333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21332333barEv,_ZTv0_n12_N9GG21332333barEv)();
+extern void ABISELECT(_ZThn32_N9GG21332333barEv,_ZThn16_N9GG21332333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21332333fooEv,_ZTv0_n12_N9GG21332333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21332333fooEv,_ZThn24_N9GG21332333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21332333fooEv,_ZTv0_n20_N9GG21332333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21332333fooEv,_ZThn32_N9GG21332333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21332333barEv,_ZTv0_n24_N9GG21332333barEv)();
+extern void ABISELECT(_ZThn64_N9GG21332333barEv,_ZThn32_N9GG21332333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21332333fooEv,_ZTv0_n12_N9GG21332333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21332333fooEv,_ZThn40_N9GG21332333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21332333barEv,_ZTv0_n16_N9GG21332333barEv)();
+extern void ABISELECT(_ZThn80_N9GG21332333barEv,_ZThn40_N9GG21332333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21332333barEv,_ZTv0_n12_N9GG21332333barEv)();
+extern void ABISELECT(_ZThn96_N9GG21332333barEv,_ZThn48_N9GG21332333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2133233[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2133233[0]),
+ (VTBL_ENTRY)&_ZN9GG21332333fooEv,
+ (VTBL_ENTRY)&_ZN9GG21332333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2133233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21332333fooEv,_ZTv0_n20_N9GG21332333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21332333barEv,_ZTv0_n24_N9GG21332333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2133233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21332333barEv,_ZTv0_n12_N9GG21332333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2133233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21332333fooEv,_ZTv0_n12_N9GG21332333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2133233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21332333fooEv,_ZTv0_n20_N9GG21332333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21332333barEv,_ZTv0_n24_N9GG21332333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2133233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21332333fooEv,_ZTv0_n12_N9GG21332333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21332333barEv,_ZTv0_n16_N9GG21332333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2133233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21332333barEv,_ZTv0_n12_N9GG21332333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2133233[];
+extern void _ZN5EE2133fooEv();
+extern void _ZN5EE2133barEv();
+static VTBL_ENTRY _tg__ZTV5EE213__9GG2133233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&_ZN5EE2133fooEv,
+ (VTBL_ENTRY)&_ZN5EE2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv)();
+extern void ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE213__9GG2133233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE213__9GG2133233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv),
+};
+extern void _ZN5FF3233fooEv();
+extern void _ZN5FF3233barEv();
+static VTBL_ENTRY _tg__ZTV5FF323__9GG2133233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&_ZN5FF3233fooEv,
+ (VTBL_ENTRY)&_ZN5FF3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3233fooEv,_ZThn8_N5FF3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv)();
+extern void ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF323__9GG2133233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv)();
+extern void ABISELECT(_ZThn32_N5FF3233barEv,_ZThn16_N5FF3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF323__9GG2133233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv),
+};
+static VTT_ENTRY vtt_GG2133233[] = {
+ {&(_ZTV9GG2133233[8]), 8,44},
+ {&(_ZTV9GG2133233[16]), 16,44},
+ {&(_ZTV9GG2133233[21]), 21,44},
+ {&(_ZTV9GG2133233[25]), 25,44},
+ {&(_ZTV9GG2133233[32]), 32,44},
+ {&(_ZTV9GG2133233[38]), 38,44},
+ {&(_ZTV9GG2133233[43]), 43,44},
+ {&(_tg__ZTV5EE213__9GG2133233[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE213__9GG2133233[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE213__9GG2133233[3]), 3,4},
+ {&(_tg__ZTV5FF323__9GG2133233[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF323__9GG2133233[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF323__9GG2133233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2133233[];
+extern VTBL_ENTRY _ZTV9GG2133233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2133233[];
+static VTBL_ENTRY alt_thunk_names550[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3233barEv,_ZThn16_N5FF3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3233fooEv,_ZThn8_N5FF3233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG21332333barEv,_ZTv0_n16_N9GG21332333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21332333barEv,_ZThn40_N9GG21332333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21332333fooEv,_ZTv0_n12_N9GG21332333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21332333fooEv,_ZThn40_N9GG21332333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21332333fooEv,_ZThn24_N9GG21332333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21332333barEv,_ZTv0_n12_N9GG21332333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21332333barEv,_ZThn48_N9GG21332333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21332333barEv,_ZThn16_N9GG21332333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG21332333barEv,_ZTv0_n24_N9GG21332333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21332333barEv,_ZThn32_N9GG21332333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21332333barEv,_ZThn8_N9GG21332333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21332333fooEv,_ZTv0_n20_N9GG21332333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21332333fooEv,_ZThn32_N9GG21332333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21332333fooEv,_ZThn8_N9GG21332333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2133233 = { "GG2133233", // class name
+ bases_GG2133233, 6,
+ &(vtc_GG2133233[0]), // expected_vtbl_contents
+ &(vtt_GG2133233[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2133233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2133233),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2133233),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names550,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2133313 : virtual EE213 , virtual FF331 {
+ int pg;
+ virtual void foo(); // _ZN9GG21333133fooEv
+ virtual void bar(); // _ZN9GG21333133barEv
+ ~GG2133313(); // tgen
+ GG2133313(); // tgen
+};
+//SIG(1 GG2133313) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2133313 ::foo(){vfunc_called(this, "_ZN9GG21333133fooEv");}
+void GG2133313 ::bar(){vfunc_called(this, "_ZN9GG21333133barEv");}
+GG2133313 ::~GG2133313(){ note_dtor("GG2133313", this);} // tgen
+GG2133313 ::GG2133313(){ note_ctor("GG2133313", this);} // tgen
+
+static void Test_GG2133313()
+{
+ extern Class_Descriptor cd_GG2133313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2133313, buf);
+ GG2133313 *dp, &lv = *(dp=new (buf) GG2133313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2133313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2133313)");
+ check_base_class_offset(lv, (AA2*)(EE213*), ABISELECT(32,16), "GG2133313");
+ check_base_class_offset(lv, (BB1*)(EE213*), ABISELECT(48,24), "GG2133313");
+ check_base_class_offset(lv, (EE213*), ABISELECT(16,8), "GG2133313");
+ check_base_class_offset(lv, (AA3*)(FF331*), ABISELECT(80,40), "GG2133313");
+ check_base_class_offset(lv, (BB3*)(FF331*), ABISELECT(96,48), "GG2133313");
+ check_base_class_offset(lv, (FF331*), ABISELECT(64,32), "GG2133313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2133313.pg");
+ test_class_info(&lv, &cd_GG2133313);
+ dp->~GG2133313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2133313(Test_GG2133313, "GG2133313", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2133313C1Ev();
+extern void _ZN9GG2133313D1Ev();
+Name_Map name_map_GG2133313[] = {
+ NSPAIR(_ZN9GG2133313C1Ev),
+ NSPAIR(_ZN9GG2133313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE213;
+extern VTBL_ENTRY _ZTI5EE213[];
+extern VTBL_ENTRY _ZTV5EE213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE213[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF331;
+extern VTBL_ENTRY _ZTI5FF331[];
+extern VTBL_ENTRY _ZTV5FF331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF331[];
+static Base_Class bases_GG2133313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE213, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF331, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2133313[];
+extern void _ZN9GG21333133fooEv();
+extern void _ZN9GG21333133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21333133fooEv,_ZTv0_n20_N9GG21333133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21333133fooEv,_ZThn8_N9GG21333133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21333133barEv,_ZTv0_n24_N9GG21333133barEv)();
+extern void ABISELECT(_ZThn16_N9GG21333133barEv,_ZThn8_N9GG21333133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21333133barEv,_ZTv0_n12_N9GG21333133barEv)();
+extern void ABISELECT(_ZThn32_N9GG21333133barEv,_ZThn16_N9GG21333133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21333133fooEv,_ZTv0_n12_N9GG21333133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21333133fooEv,_ZThn24_N9GG21333133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21333133fooEv,_ZTv0_n20_N9GG21333133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21333133fooEv,_ZThn32_N9GG21333133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21333133fooEv,_ZTv0_n12_N9GG21333133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21333133fooEv,_ZThn40_N9GG21333133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21333133barEv,_ZTv0_n16_N9GG21333133barEv)();
+extern void ABISELECT(_ZThn80_N9GG21333133barEv,_ZThn40_N9GG21333133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21333133fooEv,_ZTv0_n12_N9GG21333133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG21333133fooEv,_ZThn48_N9GG21333133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21333133barEv,_ZTv0_n16_N9GG21333133barEv)();
+extern void ABISELECT(_ZThn96_N9GG21333133barEv,_ZThn48_N9GG21333133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2133313[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2133313[0]),
+ (VTBL_ENTRY)&_ZN9GG21333133fooEv,
+ (VTBL_ENTRY)&_ZN9GG21333133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2133313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21333133fooEv,_ZTv0_n20_N9GG21333133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21333133barEv,_ZTv0_n24_N9GG21333133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2133313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21333133barEv,_ZTv0_n12_N9GG21333133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2133313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21333133fooEv,_ZTv0_n12_N9GG21333133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2133313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21333133fooEv,_ZTv0_n20_N9GG21333133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2133313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21333133fooEv,_ZTv0_n12_N9GG21333133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21333133barEv,_ZTv0_n16_N9GG21333133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2133313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21333133fooEv,_ZTv0_n12_N9GG21333133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21333133barEv,_ZTv0_n16_N9GG21333133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2133313[];
+extern void _ZN5EE2133fooEv();
+extern void _ZN5EE2133barEv();
+static VTBL_ENTRY _tg__ZTV5EE213__9GG2133313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&_ZN5EE2133fooEv,
+ (VTBL_ENTRY)&_ZN5EE2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv)();
+extern void ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE213__9GG2133313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE213__9GG2133313[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv),
+};
+extern void _ZN5FF3313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF331__9GG2133313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&_ZN5FF3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF331__9GG2133313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3313fooEv,_ZThn16_N5FF3313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF331__9GG2133313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG2133313[] = {
+ {&(_ZTV9GG2133313[8]), 8,44},
+ {&(_ZTV9GG2133313[16]), 16,44},
+ {&(_ZTV9GG2133313[21]), 21,44},
+ {&(_ZTV9GG2133313[25]), 25,44},
+ {&(_ZTV9GG2133313[31]), 31,44},
+ {&(_ZTV9GG2133313[36]), 36,44},
+ {&(_ZTV9GG2133313[42]), 42,44},
+ {&(_tg__ZTV5EE213__9GG2133313[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE213__9GG2133313[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE213__9GG2133313[3]), 3,4},
+ {&(_tg__ZTV5FF331__9GG2133313[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF331__9GG2133313[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF331__9GG2133313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2133313[];
+extern VTBL_ENTRY _ZTV9GG2133313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2133313[];
+static VTBL_ENTRY alt_thunk_names551[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3313fooEv,_ZThn16_N5FF3313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG21333133barEv,_ZTv0_n16_N9GG21333133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21333133barEv,_ZThn48_N9GG21333133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21333133barEv,_ZThn40_N9GG21333133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21333133fooEv,_ZTv0_n12_N9GG21333133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21333133fooEv,_ZThn48_N9GG21333133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21333133fooEv,_ZThn40_N9GG21333133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21333133fooEv,_ZThn24_N9GG21333133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21333133barEv,_ZTv0_n12_N9GG21333133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21333133barEv,_ZThn16_N9GG21333133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG21333133barEv,_ZTv0_n24_N9GG21333133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21333133barEv,_ZThn8_N9GG21333133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21333133fooEv,_ZTv0_n20_N9GG21333133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21333133fooEv,_ZThn32_N9GG21333133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21333133fooEv,_ZThn8_N9GG21333133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2133313 = { "GG2133313", // class name
+ bases_GG2133313, 6,
+ &(vtc_GG2133313[0]), // expected_vtbl_contents
+ &(vtt_GG2133313[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2133313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2133313),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2133313),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names551,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2133323 : virtual EE213 , virtual FF332 {
+ int pg;
+ virtual void foo(); // _ZN9GG21333233fooEv
+ virtual void bar(); // _ZN9GG21333233barEv
+ ~GG2133323(); // tgen
+ GG2133323(); // tgen
+};
+//SIG(1 GG2133323) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2133323 ::foo(){vfunc_called(this, "_ZN9GG21333233fooEv");}
+void GG2133323 ::bar(){vfunc_called(this, "_ZN9GG21333233barEv");}
+GG2133323 ::~GG2133323(){ note_dtor("GG2133323", this);} // tgen
+GG2133323 ::GG2133323(){ note_ctor("GG2133323", this);} // tgen
+
+static void Test_GG2133323()
+{
+ extern Class_Descriptor cd_GG2133323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2133323, buf);
+ GG2133323 *dp, &lv = *(dp=new (buf) GG2133323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2133323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2133323)");
+ check_base_class_offset(lv, (AA2*)(EE213*), ABISELECT(32,16), "GG2133323");
+ check_base_class_offset(lv, (BB1*)(EE213*), ABISELECT(48,24), "GG2133323");
+ check_base_class_offset(lv, (EE213*), ABISELECT(16,8), "GG2133323");
+ check_base_class_offset(lv, (AA3*)(FF332*), ABISELECT(80,40), "GG2133323");
+ check_base_class_offset(lv, (BB3*)(FF332*), ABISELECT(96,48), "GG2133323");
+ check_base_class_offset(lv, (FF332*), ABISELECT(64,32), "GG2133323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2133323.pg");
+ test_class_info(&lv, &cd_GG2133323);
+ dp->~GG2133323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2133323(Test_GG2133323, "GG2133323", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2133323C1Ev();
+extern void _ZN9GG2133323D1Ev();
+Name_Map name_map_GG2133323[] = {
+ NSPAIR(_ZN9GG2133323C1Ev),
+ NSPAIR(_ZN9GG2133323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE213;
+extern VTBL_ENTRY _ZTI5EE213[];
+extern VTBL_ENTRY _ZTV5EE213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE213[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF332;
+extern VTBL_ENTRY _ZTI5FF332[];
+extern VTBL_ENTRY _ZTV5FF332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF332[];
+static Base_Class bases_GG2133323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE213, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF332, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2133323[];
+extern void _ZN9GG21333233fooEv();
+extern void _ZN9GG21333233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21333233fooEv,_ZTv0_n20_N9GG21333233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21333233fooEv,_ZThn8_N9GG21333233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21333233barEv,_ZTv0_n24_N9GG21333233barEv)();
+extern void ABISELECT(_ZThn16_N9GG21333233barEv,_ZThn8_N9GG21333233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21333233barEv,_ZTv0_n12_N9GG21333233barEv)();
+extern void ABISELECT(_ZThn32_N9GG21333233barEv,_ZThn16_N9GG21333233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21333233fooEv,_ZTv0_n12_N9GG21333233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21333233fooEv,_ZThn24_N9GG21333233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21333233barEv,_ZTv0_n20_N9GG21333233barEv)();
+extern void ABISELECT(_ZThn64_N9GG21333233barEv,_ZThn32_N9GG21333233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21333233fooEv,_ZTv0_n12_N9GG21333233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21333233fooEv,_ZThn40_N9GG21333233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21333233barEv,_ZTv0_n16_N9GG21333233barEv)();
+extern void ABISELECT(_ZThn80_N9GG21333233barEv,_ZThn40_N9GG21333233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21333233fooEv,_ZTv0_n12_N9GG21333233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG21333233fooEv,_ZThn48_N9GG21333233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21333233barEv,_ZTv0_n16_N9GG21333233barEv)();
+extern void ABISELECT(_ZThn96_N9GG21333233barEv,_ZThn48_N9GG21333233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2133323[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2133323[0]),
+ (VTBL_ENTRY)&_ZN9GG21333233fooEv,
+ (VTBL_ENTRY)&_ZN9GG21333233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2133323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21333233fooEv,_ZTv0_n20_N9GG21333233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21333233barEv,_ZTv0_n24_N9GG21333233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2133323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21333233barEv,_ZTv0_n12_N9GG21333233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2133323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21333233fooEv,_ZTv0_n12_N9GG21333233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2133323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21333233barEv,_ZTv0_n20_N9GG21333233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2133323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21333233fooEv,_ZTv0_n12_N9GG21333233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21333233barEv,_ZTv0_n16_N9GG21333233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2133323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21333233fooEv,_ZTv0_n12_N9GG21333233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21333233barEv,_ZTv0_n16_N9GG21333233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2133323[];
+extern void _ZN5EE2133fooEv();
+extern void _ZN5EE2133barEv();
+static VTBL_ENTRY _tg__ZTV5EE213__9GG2133323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&_ZN5EE2133fooEv,
+ (VTBL_ENTRY)&_ZN5EE2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv)();
+extern void ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE213__9GG2133323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE213__9GG2133323[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv),
+};
+extern void _ZN5FF3323barEv();
+static VTBL_ENTRY _tg__ZTV5FF332__9GG2133323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN5FF3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+extern void ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF332__9GG2133323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+extern void ABISELECT(_ZThn32_N5FF3323barEv,_ZThn16_N5FF3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF332__9GG2133323[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+static VTT_ENTRY vtt_GG2133323[] = {
+ {&(_ZTV9GG2133323[8]), 8,44},
+ {&(_ZTV9GG2133323[16]), 16,44},
+ {&(_ZTV9GG2133323[21]), 21,44},
+ {&(_ZTV9GG2133323[25]), 25,44},
+ {&(_ZTV9GG2133323[31]), 31,44},
+ {&(_ZTV9GG2133323[36]), 36,44},
+ {&(_ZTV9GG2133323[42]), 42,44},
+ {&(_tg__ZTV5EE213__9GG2133323[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE213__9GG2133323[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE213__9GG2133323[3]), 3,4},
+ {&(_tg__ZTV5FF332__9GG2133323[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF332__9GG2133323[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF332__9GG2133323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2133323[];
+extern VTBL_ENTRY _ZTV9GG2133323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2133323[];
+static VTBL_ENTRY alt_thunk_names552[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3323barEv,_ZThn16_N5FF3323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG21333233barEv,_ZTv0_n16_N9GG21333233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21333233barEv,_ZThn48_N9GG21333233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21333233barEv,_ZThn40_N9GG21333233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21333233barEv,_ZTv0_n20_N9GG21333233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21333233barEv,_ZThn32_N9GG21333233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21333233fooEv,_ZTv0_n12_N9GG21333233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21333233fooEv,_ZThn48_N9GG21333233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21333233fooEv,_ZThn40_N9GG21333233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21333233fooEv,_ZThn24_N9GG21333233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21333233barEv,_ZTv0_n12_N9GG21333233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21333233barEv,_ZThn16_N9GG21333233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG21333233barEv,_ZTv0_n24_N9GG21333233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21333233barEv,_ZThn8_N9GG21333233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21333233fooEv,_ZTv0_n20_N9GG21333233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21333233fooEv,_ZThn8_N9GG21333233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2133323 = { "GG2133323", // class name
+ bases_GG2133323, 6,
+ &(vtc_GG2133323[0]), // expected_vtbl_contents
+ &(vtt_GG2133323[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2133323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2133323),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2133323),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names552,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2133333 : virtual EE213 , virtual FF333 {
+ int pg;
+ virtual void foo(); // _ZN9GG21333333fooEv
+ virtual void bar(); // _ZN9GG21333333barEv
+ ~GG2133333(); // tgen
+ GG2133333(); // tgen
+};
+//SIG(1 GG2133333) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2133333 ::foo(){vfunc_called(this, "_ZN9GG21333333fooEv");}
+void GG2133333 ::bar(){vfunc_called(this, "_ZN9GG21333333barEv");}
+GG2133333 ::~GG2133333(){ note_dtor("GG2133333", this);} // tgen
+GG2133333 ::GG2133333(){ note_ctor("GG2133333", this);} // tgen
+
+static void Test_GG2133333()
+{
+ extern Class_Descriptor cd_GG2133333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2133333, buf);
+ GG2133333 *dp, &lv = *(dp=new (buf) GG2133333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2133333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2133333)");
+ check_base_class_offset(lv, (AA2*)(EE213*), ABISELECT(32,16), "GG2133333");
+ check_base_class_offset(lv, (BB1*)(EE213*), ABISELECT(48,24), "GG2133333");
+ check_base_class_offset(lv, (EE213*), ABISELECT(16,8), "GG2133333");
+ check_base_class_offset(lv, (AA3*)(FF333*), ABISELECT(80,40), "GG2133333");
+ check_base_class_offset(lv, (BB3*)(FF333*), ABISELECT(96,48), "GG2133333");
+ check_base_class_offset(lv, (FF333*), ABISELECT(64,32), "GG2133333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2133333.pg");
+ test_class_info(&lv, &cd_GG2133333);
+ dp->~GG2133333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2133333(Test_GG2133333, "GG2133333", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2133333C1Ev();
+extern void _ZN9GG2133333D1Ev();
+Name_Map name_map_GG2133333[] = {
+ NSPAIR(_ZN9GG2133333C1Ev),
+ NSPAIR(_ZN9GG2133333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE213;
+extern VTBL_ENTRY _ZTI5EE213[];
+extern VTBL_ENTRY _ZTV5EE213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE213[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF333;
+extern VTBL_ENTRY _ZTI5FF333[];
+extern VTBL_ENTRY _ZTV5FF333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF333[];
+static Base_Class bases_GG2133333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE213, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 40, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF333, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2133333[];
+extern void _ZN9GG21333333fooEv();
+extern void _ZN9GG21333333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG21333333fooEv,_ZTv0_n20_N9GG21333333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG21333333fooEv,_ZThn8_N9GG21333333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21333333barEv,_ZTv0_n24_N9GG21333333barEv)();
+extern void ABISELECT(_ZThn16_N9GG21333333barEv,_ZThn8_N9GG21333333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21333333barEv,_ZTv0_n12_N9GG21333333barEv)();
+extern void ABISELECT(_ZThn32_N9GG21333333barEv,_ZThn16_N9GG21333333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21333333fooEv,_ZTv0_n12_N9GG21333333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG21333333fooEv,_ZThn24_N9GG21333333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG21333333fooEv,_ZTv0_n20_N9GG21333333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG21333333fooEv,_ZThn32_N9GG21333333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG21333333barEv,_ZTv0_n24_N9GG21333333barEv)();
+extern void ABISELECT(_ZThn64_N9GG21333333barEv,_ZThn32_N9GG21333333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21333333fooEv,_ZTv0_n12_N9GG21333333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG21333333fooEv,_ZThn40_N9GG21333333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21333333barEv,_ZTv0_n16_N9GG21333333barEv)();
+extern void ABISELECT(_ZThn80_N9GG21333333barEv,_ZThn40_N9GG21333333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG21333333fooEv,_ZTv0_n12_N9GG21333333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG21333333fooEv,_ZThn48_N9GG21333333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG21333333barEv,_ZTv0_n16_N9GG21333333barEv)();
+extern void ABISELECT(_ZThn96_N9GG21333333barEv,_ZThn48_N9GG21333333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2133333[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2133333[0]),
+ (VTBL_ENTRY)&_ZN9GG21333333fooEv,
+ (VTBL_ENTRY)&_ZN9GG21333333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2133333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21333333fooEv,_ZTv0_n20_N9GG21333333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21333333barEv,_ZTv0_n24_N9GG21333333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2133333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21333333barEv,_ZTv0_n12_N9GG21333333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2133333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21333333fooEv,_ZTv0_n12_N9GG21333333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2133333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG21333333fooEv,_ZTv0_n20_N9GG21333333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG21333333barEv,_ZTv0_n24_N9GG21333333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2133333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21333333fooEv,_ZTv0_n12_N9GG21333333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21333333barEv,_ZTv0_n16_N9GG21333333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2133333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG21333333fooEv,_ZTv0_n12_N9GG21333333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG21333333barEv,_ZTv0_n16_N9GG21333333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2133333[];
+extern void _ZN5EE2133fooEv();
+extern void _ZN5EE2133barEv();
+static VTBL_ENTRY _tg__ZTV5EE213__9GG2133333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&_ZN5EE2133fooEv,
+ (VTBL_ENTRY)&_ZN5EE2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv)();
+extern void ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE213__9GG2133333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE213__9GG2133333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv),
+};
+extern void _ZN5FF3333fooEv();
+extern void _ZN5FF3333barEv();
+static VTBL_ENTRY _tg__ZTV5FF333__9GG2133333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&_ZN5FF3333fooEv,
+ (VTBL_ENTRY)&_ZN5FF3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+extern void ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF333__9GG2133333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3333fooEv,_ZThn16_N5FF3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+extern void ABISELECT(_ZThn32_N5FF3333barEv,_ZThn16_N5FF3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF333__9GG2133333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+static VTT_ENTRY vtt_GG2133333[] = {
+ {&(_ZTV9GG2133333[8]), 8,46},
+ {&(_ZTV9GG2133333[16]), 16,46},
+ {&(_ZTV9GG2133333[21]), 21,46},
+ {&(_ZTV9GG2133333[25]), 25,46},
+ {&(_ZTV9GG2133333[32]), 32,46},
+ {&(_ZTV9GG2133333[38]), 38,46},
+ {&(_ZTV9GG2133333[44]), 44,46},
+ {&(_tg__ZTV5EE213__9GG2133333[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE213__9GG2133333[3]), 3,4},
+ {&(_tg__ZTV3BB1__5EE213__9GG2133333[3]), 3,4},
+ {&(_tg__ZTV5FF333__9GG2133333[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF333__9GG2133333[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF333__9GG2133333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2133333[];
+extern VTBL_ENTRY _ZTV9GG2133333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2133333[];
+static VTBL_ENTRY alt_thunk_names553[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3333barEv,_ZThn16_N5FF3333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3333fooEv,_ZThn16_N5FF3333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133fooEv,_ZTv0_n12_N5EE2133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2133fooEv,_ZThn16_N5EE2133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2133barEv,_ZTv0_n12_N5EE2133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2133barEv,_ZThn8_N5EE2133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG21333333barEv,_ZTv0_n16_N9GG21333333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21333333barEv,_ZThn48_N9GG21333333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21333333barEv,_ZThn40_N9GG21333333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21333333fooEv,_ZTv0_n12_N9GG21333333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG21333333fooEv,_ZThn48_N9GG21333333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG21333333fooEv,_ZThn40_N9GG21333333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG21333333fooEv,_ZThn24_N9GG21333333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG21333333barEv,_ZTv0_n12_N9GG21333333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG21333333barEv,_ZThn16_N9GG21333333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG21333333barEv,_ZTv0_n24_N9GG21333333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21333333barEv,_ZThn32_N9GG21333333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21333333barEv,_ZThn8_N9GG21333333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG21333333fooEv,_ZTv0_n20_N9GG21333333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG21333333fooEv,_ZThn32_N9GG21333333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG21333333fooEv,_ZThn8_N9GG21333333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2133333 = { "GG2133333", // class name
+ bases_GG2133333, 6,
+ &(vtc_GG2133333[0]), // expected_vtbl_contents
+ &(vtt_GG2133333[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2133333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2133333),46, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2133333),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names553,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2211111 : virtual EE221 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG22111113fooEv
+ ~GG2211111(); // tgen
+ GG2211111(); // tgen
+};
+//SIG(1 GG2211111) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v3 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+void GG2211111 ::foo(){vfunc_called(this, "_ZN9GG22111113fooEv");}
+GG2211111 ::~GG2211111(){ note_dtor("GG2211111", this);} // tgen
+GG2211111 ::GG2211111(){ note_ctor("GG2211111", this);} // tgen
+
+static void Test_GG2211111()
+{
+ extern Class_Descriptor cd_GG2211111;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2211111, buf);
+ GG2211111 *dp, &lv = *(dp=new (buf) GG2211111());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2211111)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2211111)");
+ check_base_class_offset(lv, (AA2*)(EE221*), ABISELECT(32,16), "GG2211111");
+ check_base_class_offset(lv, (BB2*)(EE221*), ABISELECT(48,24), "GG2211111");
+ check_base_class_offset(lv, (EE221*), ABISELECT(16,8), "GG2211111");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(80,40), "GG2211111");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(96,48), "GG2211111");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG2211111");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2211111.pg");
+ test_class_info(&lv, &cd_GG2211111);
+ dp->~GG2211111();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2211111(Test_GG2211111, "GG2211111", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2211111C1Ev();
+extern void _ZN9GG2211111D1Ev();
+Name_Map name_map_GG2211111[] = {
+ NSPAIR(_ZN9GG2211111C1Ev),
+ NSPAIR(_ZN9GG2211111D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE221;
+extern VTBL_ENTRY _ZTI5EE221[];
+extern VTBL_ENTRY _ZTV5EE221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE221[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG2211111[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE221, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2211111[];
+extern void _ZN9GG22111113fooEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22111113fooEv,_ZTv0_n20_N9GG22111113fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22111113fooEv,_ZThn8_N9GG22111113fooEv)() __attribute__((weak));
+extern void _ZN3AA23barEv();
+extern void _ZN3BB23barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22111113fooEv,_ZTv0_n20_N9GG22111113fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22111113fooEv,_ZThn32_N9GG22111113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22111113fooEv,_ZTv0_n12_N9GG22111113fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22111113fooEv,_ZThn40_N9GG22111113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22111113fooEv,_ZTv0_n12_N9GG22111113fooEv)();
+extern void ABISELECT(_ZThn96_N9GG22111113fooEv,_ZThn48_N9GG22111113fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2211111[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2211111[0]),
+ (VTBL_ENTRY)&_ZN9GG22111113fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2211111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22111113fooEv,_ZTv0_n20_N9GG22111113fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2211111[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2211111[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2211111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22111113fooEv,_ZTv0_n20_N9GG22111113fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2211111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22111113fooEv,_ZTv0_n12_N9GG22111113fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2211111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22111113fooEv,_ZTv0_n12_N9GG22111113fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2211111[];
+extern void _ZN5EE2213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE221__9GG2211111[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN5EE2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE221__9GG2211111[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE221__9GG2211111[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG2211111[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG2211111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG2211111[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG2211111[] = {
+ {&(_ZTV9GG2211111[8]), 8,37},
+ {&(_ZTV9GG2211111[14]), 14,37},
+ {&(_ZTV9GG2211111[18]), 18,37},
+ {&(_ZTV9GG2211111[22]), 22,37},
+ {&(_ZTV9GG2211111[28]), 28,37},
+ {&(_ZTV9GG2211111[32]), 32,37},
+ {&(_ZTV9GG2211111[36]), 36,37},
+ {&(_tg__ZTV5EE221__9GG2211111[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE221__9GG2211111[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE221__9GG2211111[3]), 3,4},
+ {&(_tg__ZTV5FF111__9GG2211111[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG2211111[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG2211111[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2211111[];
+extern VTBL_ENTRY _ZTV9GG2211111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2211111[];
+static VTBL_ENTRY alt_thunk_names554[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22111113fooEv,_ZTv0_n12_N9GG22111113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22111113fooEv,_ZThn48_N9GG22111113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22111113fooEv,_ZThn40_N9GG22111113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22111113fooEv,_ZTv0_n20_N9GG22111113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22111113fooEv,_ZThn32_N9GG22111113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22111113fooEv,_ZThn8_N9GG22111113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2211111 = { "GG2211111", // class name
+ bases_GG2211111, 6,
+ &(vtc_GG2211111[0]), // expected_vtbl_contents
+ &(vtt_GG2211111[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2211111),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2211111),37, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2211111),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names554,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2211113 : virtual EE221 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG22111133fooEv
+ virtual void bar(); // _ZN9GG22111133barEv
+ ~GG2211113(); // tgen
+ GG2211113(); // tgen
+};
+//SIG(1 GG2211113) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2211113 ::foo(){vfunc_called(this, "_ZN9GG22111133fooEv");}
+void GG2211113 ::bar(){vfunc_called(this, "_ZN9GG22111133barEv");}
+GG2211113 ::~GG2211113(){ note_dtor("GG2211113", this);} // tgen
+GG2211113 ::GG2211113(){ note_ctor("GG2211113", this);} // tgen
+
+static void Test_GG2211113()
+{
+ extern Class_Descriptor cd_GG2211113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2211113, buf);
+ GG2211113 *dp, &lv = *(dp=new (buf) GG2211113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2211113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2211113)");
+ check_base_class_offset(lv, (AA2*)(EE221*), ABISELECT(32,16), "GG2211113");
+ check_base_class_offset(lv, (BB2*)(EE221*), ABISELECT(48,24), "GG2211113");
+ check_base_class_offset(lv, (EE221*), ABISELECT(16,8), "GG2211113");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(80,40), "GG2211113");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(96,48), "GG2211113");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG2211113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2211113.pg");
+ test_class_info(&lv, &cd_GG2211113);
+ dp->~GG2211113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2211113(Test_GG2211113, "GG2211113", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2211113C1Ev();
+extern void _ZN9GG2211113D1Ev();
+Name_Map name_map_GG2211113[] = {
+ NSPAIR(_ZN9GG2211113C1Ev),
+ NSPAIR(_ZN9GG2211113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE221;
+extern VTBL_ENTRY _ZTI5EE221[];
+extern VTBL_ENTRY _ZTV5EE221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE221[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG2211113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE221, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2211113[];
+extern void _ZN9GG22111133fooEv();
+extern void _ZN9GG22111133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22111133fooEv,_ZTv0_n20_N9GG22111133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22111133fooEv,_ZThn8_N9GG22111133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22111133barEv,_ZTv0_n12_N9GG22111133barEv)();
+extern void ABISELECT(_ZThn32_N9GG22111133barEv,_ZThn16_N9GG22111133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22111133barEv,_ZTv0_n12_N9GG22111133barEv)();
+extern void ABISELECT(_ZThn48_N9GG22111133barEv,_ZThn24_N9GG22111133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22111133fooEv,_ZTv0_n20_N9GG22111133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22111133fooEv,_ZThn32_N9GG22111133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22111133fooEv,_ZTv0_n12_N9GG22111133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22111133fooEv,_ZThn40_N9GG22111133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22111133fooEv,_ZTv0_n12_N9GG22111133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG22111133fooEv,_ZThn48_N9GG22111133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2211113[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2211113[0]),
+ (VTBL_ENTRY)&_ZN9GG22111133fooEv,
+ (VTBL_ENTRY)&_ZN9GG22111133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2211113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22111133fooEv,_ZTv0_n20_N9GG22111133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2211113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22111133barEv,_ZTv0_n12_N9GG22111133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2211113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22111133barEv,_ZTv0_n12_N9GG22111133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2211113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22111133fooEv,_ZTv0_n20_N9GG22111133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2211113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22111133fooEv,_ZTv0_n12_N9GG22111133fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2211113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22111133fooEv,_ZTv0_n12_N9GG22111133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2211113[];
+extern void _ZN5EE2213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE221__9GG2211113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN5EE2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE221__9GG2211113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE221__9GG2211113[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG2211113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG2211113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG2211113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG2211113[] = {
+ {&(_ZTV9GG2211113[8]), 8,38},
+ {&(_ZTV9GG2211113[15]), 15,38},
+ {&(_ZTV9GG2211113[19]), 19,38},
+ {&(_ZTV9GG2211113[23]), 23,38},
+ {&(_ZTV9GG2211113[29]), 29,38},
+ {&(_ZTV9GG2211113[33]), 33,38},
+ {&(_ZTV9GG2211113[37]), 37,38},
+ {&(_tg__ZTV5EE221__9GG2211113[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE221__9GG2211113[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE221__9GG2211113[3]), 3,4},
+ {&(_tg__ZTV5FF111__9GG2211113[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG2211113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG2211113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2211113[];
+extern VTBL_ENTRY _ZTV9GG2211113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2211113[];
+static VTBL_ENTRY alt_thunk_names555[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22111133fooEv,_ZTv0_n12_N9GG22111133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22111133fooEv,_ZThn48_N9GG22111133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22111133fooEv,_ZThn40_N9GG22111133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22111133barEv,_ZTv0_n12_N9GG22111133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22111133barEv,_ZThn24_N9GG22111133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22111133barEv,_ZThn16_N9GG22111133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22111133fooEv,_ZTv0_n20_N9GG22111133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22111133fooEv,_ZThn32_N9GG22111133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22111133fooEv,_ZThn8_N9GG22111133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2211113 = { "GG2211113", // class name
+ bases_GG2211113, 6,
+ &(vtc_GG2211113[0]), // expected_vtbl_contents
+ &(vtt_GG2211113[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2211113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2211113),38, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2211113),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names555,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2211123 : virtual EE221 , virtual FF112 {
+ int pg;
+ virtual void foo(); // _ZN9GG22111233fooEv
+ virtual void bar(); // _ZN9GG22111233barEv
+ ~GG2211123(); // tgen
+ GG2211123(); // tgen
+};
+//SIG(1 GG2211123) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2211123 ::foo(){vfunc_called(this, "_ZN9GG22111233fooEv");}
+void GG2211123 ::bar(){vfunc_called(this, "_ZN9GG22111233barEv");}
+GG2211123 ::~GG2211123(){ note_dtor("GG2211123", this);} // tgen
+GG2211123 ::GG2211123(){ note_ctor("GG2211123", this);} // tgen
+
+static void Test_GG2211123()
+{
+ extern Class_Descriptor cd_GG2211123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2211123, buf);
+ GG2211123 *dp, &lv = *(dp=new (buf) GG2211123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2211123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2211123)");
+ check_base_class_offset(lv, (AA2*)(EE221*), ABISELECT(32,16), "GG2211123");
+ check_base_class_offset(lv, (BB2*)(EE221*), ABISELECT(48,24), "GG2211123");
+ check_base_class_offset(lv, (EE221*), ABISELECT(16,8), "GG2211123");
+ check_base_class_offset(lv, (AA1*)(FF112*), ABISELECT(80,40), "GG2211123");
+ check_base_class_offset(lv, (BB1*)(FF112*), ABISELECT(96,48), "GG2211123");
+ check_base_class_offset(lv, (FF112*), ABISELECT(64,32), "GG2211123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2211123.pg");
+ test_class_info(&lv, &cd_GG2211123);
+ dp->~GG2211123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2211123(Test_GG2211123, "GG2211123", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2211123C1Ev();
+extern void _ZN9GG2211123D1Ev();
+Name_Map name_map_GG2211123[] = {
+ NSPAIR(_ZN9GG2211123C1Ev),
+ NSPAIR(_ZN9GG2211123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE221;
+extern VTBL_ENTRY _ZTI5EE221[];
+extern VTBL_ENTRY _ZTV5EE221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE221[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF112;
+extern VTBL_ENTRY _ZTI5FF112[];
+extern VTBL_ENTRY _ZTV5FF112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF112[];
+static Base_Class bases_GG2211123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE221, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF112, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2211123[];
+extern void _ZN9GG22111233fooEv();
+extern void _ZN9GG22111233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22111233fooEv,_ZTv0_n20_N9GG22111233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22111233fooEv,_ZThn8_N9GG22111233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22111233barEv,_ZTv0_n12_N9GG22111233barEv)();
+extern void ABISELECT(_ZThn32_N9GG22111233barEv,_ZThn16_N9GG22111233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22111233barEv,_ZTv0_n12_N9GG22111233barEv)();
+extern void ABISELECT(_ZThn48_N9GG22111233barEv,_ZThn24_N9GG22111233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22111233barEv,_ZTv0_n20_N9GG22111233barEv)();
+extern void ABISELECT(_ZThn64_N9GG22111233barEv,_ZThn32_N9GG22111233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22111233fooEv,_ZTv0_n12_N9GG22111233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22111233fooEv,_ZThn40_N9GG22111233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22111233fooEv,_ZTv0_n12_N9GG22111233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG22111233fooEv,_ZThn48_N9GG22111233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2211123[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2211123[0]),
+ (VTBL_ENTRY)&_ZN9GG22111233fooEv,
+ (VTBL_ENTRY)&_ZN9GG22111233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2211123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22111233fooEv,_ZTv0_n20_N9GG22111233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2211123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22111233barEv,_ZTv0_n12_N9GG22111233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2211123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22111233barEv,_ZTv0_n12_N9GG22111233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2211123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22111233barEv,_ZTv0_n20_N9GG22111233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2211123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22111233fooEv,_ZTv0_n12_N9GG22111233fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2211123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22111233fooEv,_ZTv0_n12_N9GG22111233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2211123[];
+extern void _ZN5EE2213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE221__9GG2211123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN5EE2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE221__9GG2211123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE221__9GG2211123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF1123barEv();
+static VTBL_ENTRY _tg__ZTV5FF112__9GG2211123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN5FF1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF112__9GG2211123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF112__9GG2211123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG2211123[] = {
+ {&(_ZTV9GG2211123[8]), 8,38},
+ {&(_ZTV9GG2211123[15]), 15,38},
+ {&(_ZTV9GG2211123[19]), 19,38},
+ {&(_ZTV9GG2211123[23]), 23,38},
+ {&(_ZTV9GG2211123[29]), 29,38},
+ {&(_ZTV9GG2211123[33]), 33,38},
+ {&(_ZTV9GG2211123[37]), 37,38},
+ {&(_tg__ZTV5EE221__9GG2211123[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE221__9GG2211123[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE221__9GG2211123[3]), 3,4},
+ {&(_tg__ZTV5FF112__9GG2211123[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF112__9GG2211123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF112__9GG2211123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2211123[];
+extern VTBL_ENTRY _ZTV9GG2211123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2211123[];
+static VTBL_ENTRY alt_thunk_names556[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22111233fooEv,_ZTv0_n12_N9GG22111233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22111233fooEv,_ZThn48_N9GG22111233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22111233fooEv,_ZThn40_N9GG22111233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22111233barEv,_ZTv0_n20_N9GG22111233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22111233barEv,_ZThn32_N9GG22111233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22111233barEv,_ZTv0_n12_N9GG22111233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22111233barEv,_ZThn24_N9GG22111233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22111233barEv,_ZThn16_N9GG22111233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22111233fooEv,_ZTv0_n20_N9GG22111233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22111233fooEv,_ZThn8_N9GG22111233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2211123 = { "GG2211123", // class name
+ bases_GG2211123, 6,
+ &(vtc_GG2211123[0]), // expected_vtbl_contents
+ &(vtt_GG2211123[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2211123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2211123),38, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2211123),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names556,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2211133 : virtual EE221 , virtual FF113 {
+ int pg;
+ virtual void foo(); // _ZN9GG22111333fooEv
+ virtual void bar(); // _ZN9GG22111333barEv
+ ~GG2211133(); // tgen
+ GG2211133(); // tgen
+};
+//SIG(1 GG2211133) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2211133 ::foo(){vfunc_called(this, "_ZN9GG22111333fooEv");}
+void GG2211133 ::bar(){vfunc_called(this, "_ZN9GG22111333barEv");}
+GG2211133 ::~GG2211133(){ note_dtor("GG2211133", this);} // tgen
+GG2211133 ::GG2211133(){ note_ctor("GG2211133", this);} // tgen
+
+static void Test_GG2211133()
+{
+ extern Class_Descriptor cd_GG2211133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2211133, buf);
+ GG2211133 *dp, &lv = *(dp=new (buf) GG2211133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2211133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2211133)");
+ check_base_class_offset(lv, (AA2*)(EE221*), ABISELECT(32,16), "GG2211133");
+ check_base_class_offset(lv, (BB2*)(EE221*), ABISELECT(48,24), "GG2211133");
+ check_base_class_offset(lv, (EE221*), ABISELECT(16,8), "GG2211133");
+ check_base_class_offset(lv, (AA1*)(FF113*), ABISELECT(80,40), "GG2211133");
+ check_base_class_offset(lv, (BB1*)(FF113*), ABISELECT(96,48), "GG2211133");
+ check_base_class_offset(lv, (FF113*), ABISELECT(64,32), "GG2211133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2211133.pg");
+ test_class_info(&lv, &cd_GG2211133);
+ dp->~GG2211133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2211133(Test_GG2211133, "GG2211133", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2211133C1Ev();
+extern void _ZN9GG2211133D1Ev();
+Name_Map name_map_GG2211133[] = {
+ NSPAIR(_ZN9GG2211133C1Ev),
+ NSPAIR(_ZN9GG2211133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE221;
+extern VTBL_ENTRY _ZTI5EE221[];
+extern VTBL_ENTRY _ZTV5EE221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE221[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF113;
+extern VTBL_ENTRY _ZTI5FF113[];
+extern VTBL_ENTRY _ZTV5FF113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF113[];
+static Base_Class bases_GG2211133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE221, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF113, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2211133[];
+extern void _ZN9GG22111333fooEv();
+extern void _ZN9GG22111333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22111333fooEv,_ZTv0_n20_N9GG22111333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22111333fooEv,_ZThn8_N9GG22111333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22111333barEv,_ZTv0_n12_N9GG22111333barEv)();
+extern void ABISELECT(_ZThn32_N9GG22111333barEv,_ZThn16_N9GG22111333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22111333barEv,_ZTv0_n12_N9GG22111333barEv)();
+extern void ABISELECT(_ZThn48_N9GG22111333barEv,_ZThn24_N9GG22111333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22111333fooEv,_ZTv0_n20_N9GG22111333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22111333fooEv,_ZThn32_N9GG22111333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22111333barEv,_ZTv0_n24_N9GG22111333barEv)();
+extern void ABISELECT(_ZThn64_N9GG22111333barEv,_ZThn32_N9GG22111333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22111333fooEv,_ZTv0_n12_N9GG22111333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22111333fooEv,_ZThn40_N9GG22111333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22111333fooEv,_ZTv0_n12_N9GG22111333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG22111333fooEv,_ZThn48_N9GG22111333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2211133[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2211133[0]),
+ (VTBL_ENTRY)&_ZN9GG22111333fooEv,
+ (VTBL_ENTRY)&_ZN9GG22111333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2211133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22111333fooEv,_ZTv0_n20_N9GG22111333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2211133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22111333barEv,_ZTv0_n12_N9GG22111333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2211133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22111333barEv,_ZTv0_n12_N9GG22111333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2211133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22111333fooEv,_ZTv0_n20_N9GG22111333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22111333barEv,_ZTv0_n24_N9GG22111333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2211133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22111333fooEv,_ZTv0_n12_N9GG22111333fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2211133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22111333fooEv,_ZTv0_n12_N9GG22111333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2211133[];
+extern void _ZN5EE2213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE221__9GG2211133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN5EE2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE221__9GG2211133[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE221__9GG2211133[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF1133fooEv();
+extern void _ZN5FF1133barEv();
+static VTBL_ENTRY _tg__ZTV5FF113__9GG2211133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&_ZN5FF1133fooEv,
+ (VTBL_ENTRY)&_ZN5FF1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF113__9GG2211133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1133fooEv,_ZThn16_N5FF1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF113__9GG2211133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+static VTT_ENTRY vtt_GG2211133[] = {
+ {&(_ZTV9GG2211133[8]), 8,40},
+ {&(_ZTV9GG2211133[15]), 15,40},
+ {&(_ZTV9GG2211133[19]), 19,40},
+ {&(_ZTV9GG2211133[23]), 23,40},
+ {&(_ZTV9GG2211133[30]), 30,40},
+ {&(_ZTV9GG2211133[35]), 35,40},
+ {&(_ZTV9GG2211133[39]), 39,40},
+ {&(_tg__ZTV5EE221__9GG2211133[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE221__9GG2211133[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE221__9GG2211133[3]), 3,4},
+ {&(_tg__ZTV5FF113__9GG2211133[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF113__9GG2211133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF113__9GG2211133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2211133[];
+extern VTBL_ENTRY _ZTV9GG2211133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2211133[];
+static VTBL_ENTRY alt_thunk_names557[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1133fooEv,_ZThn16_N5FF1133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22111333fooEv,_ZTv0_n12_N9GG22111333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22111333fooEv,_ZThn48_N9GG22111333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22111333fooEv,_ZThn40_N9GG22111333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22111333barEv,_ZTv0_n24_N9GG22111333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22111333barEv,_ZThn32_N9GG22111333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22111333barEv,_ZTv0_n12_N9GG22111333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22111333barEv,_ZThn24_N9GG22111333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22111333barEv,_ZThn16_N9GG22111333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22111333fooEv,_ZTv0_n20_N9GG22111333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22111333fooEv,_ZThn32_N9GG22111333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22111333fooEv,_ZThn8_N9GG22111333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2211133 = { "GG2211133", // class name
+ bases_GG2211133, 6,
+ &(vtc_GG2211133[0]), // expected_vtbl_contents
+ &(vtt_GG2211133[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2211133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2211133),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2211133),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names557,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2211213 : virtual EE221 , virtual FF121 {
+ int pg;
+ virtual void foo(); // _ZN9GG22112133fooEv
+ virtual void bar(); // _ZN9GG22112133barEv
+ ~GG2211213(); // tgen
+ GG2211213(); // tgen
+};
+//SIG(1 GG2211213) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG2211213 ::foo(){vfunc_called(this, "_ZN9GG22112133fooEv");}
+void GG2211213 ::bar(){vfunc_called(this, "_ZN9GG22112133barEv");}
+GG2211213 ::~GG2211213(){ note_dtor("GG2211213", this);} // tgen
+GG2211213 ::GG2211213(){ note_ctor("GG2211213", this);} // tgen
+
+static void Test_GG2211213()
+{
+ extern Class_Descriptor cd_GG2211213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2211213, buf);
+ GG2211213 *dp, &lv = *(dp=new (buf) GG2211213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2211213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2211213)");
+ check_base_class_offset(lv, (AA2*)(EE221*), ABISELECT(32,16), "GG2211213");
+ check_base_class_offset(lv, (BB2*)(EE221*), ABISELECT(48,24), "GG2211213");
+ check_base_class_offset(lv, (BB2*)(FF121*), ABISELECT(48,24), "GG2211213");
+ check_base_class_offset(lv, (EE221*), ABISELECT(16,8), "GG2211213");
+ check_base_class_offset(lv, (AA1*)(FF121*), ABISELECT(80,40), "GG2211213");
+ check_base_class_offset(lv, (FF121*), ABISELECT(64,32), "GG2211213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2211213.pg");
+ test_class_info(&lv, &cd_GG2211213);
+ dp->~GG2211213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2211213(Test_GG2211213, "GG2211213", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2211213C1Ev();
+extern void _ZN9GG2211213D1Ev();
+Name_Map name_map_GG2211213[] = {
+ NSPAIR(_ZN9GG2211213C1Ev),
+ NSPAIR(_ZN9GG2211213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE221;
+extern VTBL_ENTRY _ZTI5EE221[];
+extern VTBL_ENTRY _ZTV5EE221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE221[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF121;
+extern VTBL_ENTRY _ZTI5FF121[];
+extern VTBL_ENTRY _ZTV5FF121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF121[];
+static Base_Class bases_GG2211213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE221, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF121, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2211213[];
+extern void _ZN9GG22112133fooEv();
+extern void _ZN9GG22112133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22112133fooEv,_ZTv0_n20_N9GG22112133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22112133fooEv,_ZThn8_N9GG22112133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22112133barEv,_ZTv0_n12_N9GG22112133barEv)();
+extern void ABISELECT(_ZThn32_N9GG22112133barEv,_ZThn16_N9GG22112133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22112133barEv,_ZTv0_n12_N9GG22112133barEv)();
+extern void ABISELECT(_ZThn48_N9GG22112133barEv,_ZThn24_N9GG22112133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22112133fooEv,_ZTv0_n20_N9GG22112133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22112133fooEv,_ZThn32_N9GG22112133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22112133fooEv,_ZTv0_n12_N9GG22112133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22112133fooEv,_ZThn40_N9GG22112133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2211213[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2211213[0]),
+ (VTBL_ENTRY)&_ZN9GG22112133fooEv,
+ (VTBL_ENTRY)&_ZN9GG22112133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2211213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22112133fooEv,_ZTv0_n20_N9GG22112133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2211213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22112133barEv,_ZTv0_n12_N9GG22112133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2211213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22112133barEv,_ZTv0_n12_N9GG22112133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2211213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22112133fooEv,_ZTv0_n20_N9GG22112133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2211213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22112133fooEv,_ZTv0_n12_N9GG22112133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2211213[];
+extern void _ZN5EE2213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE221__9GG2211213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN5EE2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE221__9GG2211213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE221__9GG2211213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF1213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF121__9GG2211213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN5FF1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1213fooEv,_ZThn8_N5FF1213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF121__9GG2211213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF121__9GG2211213[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG2211213[] = {
+ {&(_ZTV9GG2211213[7]), 7,33},
+ {&(_ZTV9GG2211213[14]), 14,33},
+ {&(_ZTV9GG2211213[18]), 18,33},
+ {&(_ZTV9GG2211213[22]), 22,33},
+ {&(_ZTV9GG2211213[28]), 28,33},
+ {&(_ZTV9GG2211213[32]), 32,33},
+ {&(_tg__ZTV5EE221__9GG2211213[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE221__9GG2211213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE221__9GG2211213[3]), 3,4},
+ {&(_tg__ZTV5FF121__9GG2211213[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF121__9GG2211213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF121__9GG2211213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2211213[];
+extern VTBL_ENTRY _ZTV9GG2211213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2211213[];
+static VTBL_ENTRY alt_thunk_names558[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1213fooEv,_ZThn8_N5FF1213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22112133fooEv,_ZTv0_n12_N9GG22112133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22112133fooEv,_ZThn40_N9GG22112133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22112133barEv,_ZTv0_n12_N9GG22112133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22112133barEv,_ZThn24_N9GG22112133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22112133barEv,_ZThn16_N9GG22112133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22112133fooEv,_ZTv0_n20_N9GG22112133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22112133fooEv,_ZThn32_N9GG22112133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22112133fooEv,_ZThn8_N9GG22112133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2211213 = { "GG2211213", // class name
+ bases_GG2211213, 5,
+ &(vtc_GG2211213[0]), // expected_vtbl_contents
+ &(vtt_GG2211213[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2211213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2211213),33, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2211213),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names558,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2211223 : virtual EE221 , virtual FF122 {
+ int pg;
+ virtual void foo(); // _ZN9GG22112233fooEv
+ virtual void bar(); // _ZN9GG22112233barEv
+ ~GG2211223(); // tgen
+ GG2211223(); // tgen
+};
+//SIG(1 GG2211223) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG2211223 ::foo(){vfunc_called(this, "_ZN9GG22112233fooEv");}
+void GG2211223 ::bar(){vfunc_called(this, "_ZN9GG22112233barEv");}
+GG2211223 ::~GG2211223(){ note_dtor("GG2211223", this);} // tgen
+GG2211223 ::GG2211223(){ note_ctor("GG2211223", this);} // tgen
+
+static void Test_GG2211223()
+{
+ extern Class_Descriptor cd_GG2211223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2211223, buf);
+ GG2211223 *dp, &lv = *(dp=new (buf) GG2211223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2211223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2211223)");
+ check_base_class_offset(lv, (AA2*)(EE221*), ABISELECT(32,16), "GG2211223");
+ check_base_class_offset(lv, (BB2*)(EE221*), ABISELECT(48,24), "GG2211223");
+ check_base_class_offset(lv, (BB2*)(FF122*), ABISELECT(48,24), "GG2211223");
+ check_base_class_offset(lv, (EE221*), ABISELECT(16,8), "GG2211223");
+ check_base_class_offset(lv, (AA1*)(FF122*), ABISELECT(80,40), "GG2211223");
+ check_base_class_offset(lv, (FF122*), ABISELECT(64,32), "GG2211223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2211223.pg");
+ test_class_info(&lv, &cd_GG2211223);
+ dp->~GG2211223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2211223(Test_GG2211223, "GG2211223", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2211223C1Ev();
+extern void _ZN9GG2211223D1Ev();
+Name_Map name_map_GG2211223[] = {
+ NSPAIR(_ZN9GG2211223C1Ev),
+ NSPAIR(_ZN9GG2211223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE221;
+extern VTBL_ENTRY _ZTI5EE221[];
+extern VTBL_ENTRY _ZTV5EE221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE221[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF122;
+extern VTBL_ENTRY _ZTI5FF122[];
+extern VTBL_ENTRY _ZTV5FF122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF122[];
+static Base_Class bases_GG2211223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE221, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF122, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2211223[];
+extern void _ZN9GG22112233fooEv();
+extern void _ZN9GG22112233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22112233fooEv,_ZTv0_n20_N9GG22112233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22112233fooEv,_ZThn8_N9GG22112233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22112233barEv,_ZTv0_n12_N9GG22112233barEv)();
+extern void ABISELECT(_ZThn32_N9GG22112233barEv,_ZThn16_N9GG22112233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22112233barEv,_ZTv0_n12_N9GG22112233barEv)();
+extern void ABISELECT(_ZThn48_N9GG22112233barEv,_ZThn24_N9GG22112233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22112233barEv,_ZTv0_n20_N9GG22112233barEv)();
+extern void ABISELECT(_ZThn64_N9GG22112233barEv,_ZThn32_N9GG22112233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22112233fooEv,_ZTv0_n12_N9GG22112233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22112233fooEv,_ZThn40_N9GG22112233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2211223[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2211223[0]),
+ (VTBL_ENTRY)&_ZN9GG22112233fooEv,
+ (VTBL_ENTRY)&_ZN9GG22112233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2211223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22112233fooEv,_ZTv0_n20_N9GG22112233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2211223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22112233barEv,_ZTv0_n12_N9GG22112233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2211223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22112233barEv,_ZTv0_n12_N9GG22112233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2211223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22112233barEv,_ZTv0_n20_N9GG22112233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2211223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22112233fooEv,_ZTv0_n12_N9GG22112233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2211223[];
+extern void _ZN5EE2213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE221__9GG2211223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN5EE2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE221__9GG2211223[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE221__9GG2211223[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF1223barEv();
+static VTBL_ENTRY _tg__ZTV5FF122__9GG2211223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN5FF1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF122__9GG2211223[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF122__9GG2211223[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv),
+};
+static VTT_ENTRY vtt_GG2211223[] = {
+ {&(_ZTV9GG2211223[7]), 7,33},
+ {&(_ZTV9GG2211223[14]), 14,33},
+ {&(_ZTV9GG2211223[18]), 18,33},
+ {&(_ZTV9GG2211223[22]), 22,33},
+ {&(_ZTV9GG2211223[28]), 28,33},
+ {&(_ZTV9GG2211223[32]), 32,33},
+ {&(_tg__ZTV5EE221__9GG2211223[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE221__9GG2211223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE221__9GG2211223[3]), 3,4},
+ {&(_tg__ZTV5FF122__9GG2211223[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF122__9GG2211223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF122__9GG2211223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2211223[];
+extern VTBL_ENTRY _ZTV9GG2211223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2211223[];
+static VTBL_ENTRY alt_thunk_names559[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22112233fooEv,_ZTv0_n12_N9GG22112233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22112233fooEv,_ZThn40_N9GG22112233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22112233barEv,_ZTv0_n20_N9GG22112233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22112233barEv,_ZThn32_N9GG22112233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22112233barEv,_ZTv0_n12_N9GG22112233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22112233barEv,_ZThn24_N9GG22112233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22112233barEv,_ZThn16_N9GG22112233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22112233fooEv,_ZTv0_n20_N9GG22112233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22112233fooEv,_ZThn8_N9GG22112233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2211223 = { "GG2211223", // class name
+ bases_GG2211223, 5,
+ &(vtc_GG2211223[0]), // expected_vtbl_contents
+ &(vtt_GG2211223[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2211223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2211223),33, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2211223),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names559,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2211233 : virtual EE221 , virtual FF123 {
+ int pg;
+ virtual void foo(); // _ZN9GG22112333fooEv
+ virtual void bar(); // _ZN9GG22112333barEv
+ ~GG2211233(); // tgen
+ GG2211233(); // tgen
+};
+//SIG(1 GG2211233) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2211233 ::foo(){vfunc_called(this, "_ZN9GG22112333fooEv");}
+void GG2211233 ::bar(){vfunc_called(this, "_ZN9GG22112333barEv");}
+GG2211233 ::~GG2211233(){ note_dtor("GG2211233", this);} // tgen
+GG2211233 ::GG2211233(){ note_ctor("GG2211233", this);} // tgen
+
+static void Test_GG2211233()
+{
+ extern Class_Descriptor cd_GG2211233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2211233, buf);
+ GG2211233 *dp, &lv = *(dp=new (buf) GG2211233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2211233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2211233)");
+ check_base_class_offset(lv, (AA2*)(EE221*), ABISELECT(32,16), "GG2211233");
+ check_base_class_offset(lv, (BB2*)(EE221*), ABISELECT(48,24), "GG2211233");
+ check_base_class_offset(lv, (BB2*)(FF123*), ABISELECT(48,24), "GG2211233");
+ check_base_class_offset(lv, (EE221*), ABISELECT(16,8), "GG2211233");
+ check_base_class_offset(lv, (AA1*)(FF123*), ABISELECT(80,40), "GG2211233");
+ check_base_class_offset(lv, (FF123*), ABISELECT(64,32), "GG2211233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2211233.pg");
+ test_class_info(&lv, &cd_GG2211233);
+ dp->~GG2211233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2211233(Test_GG2211233, "GG2211233", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2211233C1Ev();
+extern void _ZN9GG2211233D1Ev();
+Name_Map name_map_GG2211233[] = {
+ NSPAIR(_ZN9GG2211233C1Ev),
+ NSPAIR(_ZN9GG2211233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE221;
+extern VTBL_ENTRY _ZTI5EE221[];
+extern VTBL_ENTRY _ZTV5EE221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE221[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF123;
+extern VTBL_ENTRY _ZTI5FF123[];
+extern VTBL_ENTRY _ZTV5FF123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF123[];
+static Base_Class bases_GG2211233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE221, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF123, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2211233[];
+extern void _ZN9GG22112333fooEv();
+extern void _ZN9GG22112333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22112333fooEv,_ZTv0_n20_N9GG22112333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22112333fooEv,_ZThn8_N9GG22112333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22112333barEv,_ZTv0_n12_N9GG22112333barEv)();
+extern void ABISELECT(_ZThn32_N9GG22112333barEv,_ZThn16_N9GG22112333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22112333barEv,_ZTv0_n12_N9GG22112333barEv)();
+extern void ABISELECT(_ZThn48_N9GG22112333barEv,_ZThn24_N9GG22112333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22112333fooEv,_ZTv0_n20_N9GG22112333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22112333fooEv,_ZThn32_N9GG22112333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22112333barEv,_ZTv0_n24_N9GG22112333barEv)();
+extern void ABISELECT(_ZThn64_N9GG22112333barEv,_ZThn32_N9GG22112333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22112333fooEv,_ZTv0_n12_N9GG22112333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22112333fooEv,_ZThn40_N9GG22112333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2211233[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2211233[0]),
+ (VTBL_ENTRY)&_ZN9GG22112333fooEv,
+ (VTBL_ENTRY)&_ZN9GG22112333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2211233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22112333fooEv,_ZTv0_n20_N9GG22112333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2211233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22112333barEv,_ZTv0_n12_N9GG22112333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2211233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22112333barEv,_ZTv0_n12_N9GG22112333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2211233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22112333fooEv,_ZTv0_n20_N9GG22112333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22112333barEv,_ZTv0_n24_N9GG22112333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2211233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22112333fooEv,_ZTv0_n12_N9GG22112333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2211233[];
+extern void _ZN5EE2213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE221__9GG2211233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN5EE2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE221__9GG2211233[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE221__9GG2211233[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF1233fooEv();
+extern void _ZN5FF1233barEv();
+static VTBL_ENTRY _tg__ZTV5FF123__9GG2211233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&_ZN5FF1233fooEv,
+ (VTBL_ENTRY)&_ZN5FF1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1233fooEv,_ZThn8_N5FF1233fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF123__9GG2211233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF123__9GG2211233[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv),
+};
+static VTT_ENTRY vtt_GG2211233[] = {
+ {&(_ZTV9GG2211233[7]), 7,35},
+ {&(_ZTV9GG2211233[14]), 14,35},
+ {&(_ZTV9GG2211233[18]), 18,35},
+ {&(_ZTV9GG2211233[22]), 22,35},
+ {&(_ZTV9GG2211233[29]), 29,35},
+ {&(_ZTV9GG2211233[34]), 34,35},
+ {&(_tg__ZTV5EE221__9GG2211233[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE221__9GG2211233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE221__9GG2211233[3]), 3,4},
+ {&(_tg__ZTV5FF123__9GG2211233[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF123__9GG2211233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF123__9GG2211233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2211233[];
+extern VTBL_ENTRY _ZTV9GG2211233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2211233[];
+static VTBL_ENTRY alt_thunk_names560[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1233fooEv,_ZThn8_N5FF1233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22112333fooEv,_ZTv0_n12_N9GG22112333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22112333fooEv,_ZThn40_N9GG22112333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22112333barEv,_ZTv0_n24_N9GG22112333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22112333barEv,_ZThn32_N9GG22112333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22112333barEv,_ZTv0_n12_N9GG22112333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22112333barEv,_ZThn24_N9GG22112333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22112333barEv,_ZThn16_N9GG22112333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22112333fooEv,_ZTv0_n20_N9GG22112333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22112333fooEv,_ZThn32_N9GG22112333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22112333fooEv,_ZThn8_N9GG22112333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2211233 = { "GG2211233", // class name
+ bases_GG2211233, 5,
+ &(vtc_GG2211233[0]), // expected_vtbl_contents
+ &(vtt_GG2211233[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2211233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2211233),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2211233),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names560,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2211313 : virtual EE221 , virtual FF131 {
+ int pg;
+ virtual void foo(); // _ZN9GG22113133fooEv
+ virtual void bar(); // _ZN9GG22113133barEv
+ ~GG2211313(); // tgen
+ GG2211313(); // tgen
+};
+//SIG(1 GG2211313) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2211313 ::foo(){vfunc_called(this, "_ZN9GG22113133fooEv");}
+void GG2211313 ::bar(){vfunc_called(this, "_ZN9GG22113133barEv");}
+GG2211313 ::~GG2211313(){ note_dtor("GG2211313", this);} // tgen
+GG2211313 ::GG2211313(){ note_ctor("GG2211313", this);} // tgen
+
+static void Test_GG2211313()
+{
+ extern Class_Descriptor cd_GG2211313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2211313, buf);
+ GG2211313 *dp, &lv = *(dp=new (buf) GG2211313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2211313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2211313)");
+ check_base_class_offset(lv, (AA2*)(EE221*), ABISELECT(32,16), "GG2211313");
+ check_base_class_offset(lv, (BB2*)(EE221*), ABISELECT(48,24), "GG2211313");
+ check_base_class_offset(lv, (EE221*), ABISELECT(16,8), "GG2211313");
+ check_base_class_offset(lv, (AA1*)(FF131*), ABISELECT(80,40), "GG2211313");
+ check_base_class_offset(lv, (BB3*)(FF131*), ABISELECT(96,48), "GG2211313");
+ check_base_class_offset(lv, (FF131*), ABISELECT(64,32), "GG2211313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2211313.pg");
+ test_class_info(&lv, &cd_GG2211313);
+ dp->~GG2211313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2211313(Test_GG2211313, "GG2211313", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2211313C1Ev();
+extern void _ZN9GG2211313D1Ev();
+Name_Map name_map_GG2211313[] = {
+ NSPAIR(_ZN9GG2211313C1Ev),
+ NSPAIR(_ZN9GG2211313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE221;
+extern VTBL_ENTRY _ZTI5EE221[];
+extern VTBL_ENTRY _ZTV5EE221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE221[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF131;
+extern VTBL_ENTRY _ZTI5FF131[];
+extern VTBL_ENTRY _ZTV5FF131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF131[];
+static Base_Class bases_GG2211313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE221, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF131, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2211313[];
+extern void _ZN9GG22113133fooEv();
+extern void _ZN9GG22113133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22113133fooEv,_ZTv0_n20_N9GG22113133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22113133fooEv,_ZThn8_N9GG22113133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22113133barEv,_ZTv0_n12_N9GG22113133barEv)();
+extern void ABISELECT(_ZThn32_N9GG22113133barEv,_ZThn16_N9GG22113133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22113133barEv,_ZTv0_n12_N9GG22113133barEv)();
+extern void ABISELECT(_ZThn48_N9GG22113133barEv,_ZThn24_N9GG22113133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22113133fooEv,_ZTv0_n20_N9GG22113133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22113133fooEv,_ZThn32_N9GG22113133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22113133fooEv,_ZTv0_n12_N9GG22113133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22113133fooEv,_ZThn40_N9GG22113133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22113133fooEv,_ZTv0_n12_N9GG22113133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG22113133fooEv,_ZThn48_N9GG22113133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22113133barEv,_ZTv0_n16_N9GG22113133barEv)();
+extern void ABISELECT(_ZThn96_N9GG22113133barEv,_ZThn48_N9GG22113133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2211313[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2211313[0]),
+ (VTBL_ENTRY)&_ZN9GG22113133fooEv,
+ (VTBL_ENTRY)&_ZN9GG22113133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2211313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22113133fooEv,_ZTv0_n20_N9GG22113133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2211313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22113133barEv,_ZTv0_n12_N9GG22113133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2211313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22113133barEv,_ZTv0_n12_N9GG22113133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2211313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22113133fooEv,_ZTv0_n20_N9GG22113133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2211313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22113133fooEv,_ZTv0_n12_N9GG22113133fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2211313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22113133fooEv,_ZTv0_n12_N9GG22113133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22113133barEv,_ZTv0_n16_N9GG22113133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2211313[];
+extern void _ZN5EE2213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE221__9GG2211313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN5EE2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE221__9GG2211313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE221__9GG2211313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF1313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF131__9GG2211313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&_ZN5FF1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF131__9GG2211313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1313fooEv,_ZThn16_N5FF1313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF131__9GG2211313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG2211313[] = {
+ {&(_ZTV9GG2211313[8]), 8,40},
+ {&(_ZTV9GG2211313[15]), 15,40},
+ {&(_ZTV9GG2211313[19]), 19,40},
+ {&(_ZTV9GG2211313[23]), 23,40},
+ {&(_ZTV9GG2211313[29]), 29,40},
+ {&(_ZTV9GG2211313[33]), 33,40},
+ {&(_ZTV9GG2211313[38]), 38,40},
+ {&(_tg__ZTV5EE221__9GG2211313[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE221__9GG2211313[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE221__9GG2211313[3]), 3,4},
+ {&(_tg__ZTV5FF131__9GG2211313[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF131__9GG2211313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF131__9GG2211313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2211313[];
+extern VTBL_ENTRY _ZTV9GG2211313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2211313[];
+static VTBL_ENTRY alt_thunk_names561[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1313fooEv,_ZThn16_N5FF1313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22113133barEv,_ZTv0_n16_N9GG22113133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22113133barEv,_ZThn48_N9GG22113133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22113133fooEv,_ZTv0_n12_N9GG22113133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22113133fooEv,_ZThn48_N9GG22113133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22113133fooEv,_ZThn40_N9GG22113133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22113133barEv,_ZTv0_n12_N9GG22113133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22113133barEv,_ZThn24_N9GG22113133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22113133barEv,_ZThn16_N9GG22113133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22113133fooEv,_ZTv0_n20_N9GG22113133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22113133fooEv,_ZThn32_N9GG22113133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22113133fooEv,_ZThn8_N9GG22113133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2211313 = { "GG2211313", // class name
+ bases_GG2211313, 6,
+ &(vtc_GG2211313[0]), // expected_vtbl_contents
+ &(vtt_GG2211313[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2211313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2211313),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2211313),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names561,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2211323 : virtual EE221 , virtual FF132 {
+ int pg;
+ virtual void foo(); // _ZN9GG22113233fooEv
+ virtual void bar(); // _ZN9GG22113233barEv
+ ~GG2211323(); // tgen
+ GG2211323(); // tgen
+};
+//SIG(1 GG2211323) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2211323 ::foo(){vfunc_called(this, "_ZN9GG22113233fooEv");}
+void GG2211323 ::bar(){vfunc_called(this, "_ZN9GG22113233barEv");}
+GG2211323 ::~GG2211323(){ note_dtor("GG2211323", this);} // tgen
+GG2211323 ::GG2211323(){ note_ctor("GG2211323", this);} // tgen
+
+static void Test_GG2211323()
+{
+ extern Class_Descriptor cd_GG2211323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2211323, buf);
+ GG2211323 *dp, &lv = *(dp=new (buf) GG2211323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2211323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2211323)");
+ check_base_class_offset(lv, (AA2*)(EE221*), ABISELECT(32,16), "GG2211323");
+ check_base_class_offset(lv, (BB2*)(EE221*), ABISELECT(48,24), "GG2211323");
+ check_base_class_offset(lv, (EE221*), ABISELECT(16,8), "GG2211323");
+ check_base_class_offset(lv, (AA1*)(FF132*), ABISELECT(80,40), "GG2211323");
+ check_base_class_offset(lv, (BB3*)(FF132*), ABISELECT(96,48), "GG2211323");
+ check_base_class_offset(lv, (FF132*), ABISELECT(64,32), "GG2211323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2211323.pg");
+ test_class_info(&lv, &cd_GG2211323);
+ dp->~GG2211323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2211323(Test_GG2211323, "GG2211323", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2211323C1Ev();
+extern void _ZN9GG2211323D1Ev();
+Name_Map name_map_GG2211323[] = {
+ NSPAIR(_ZN9GG2211323C1Ev),
+ NSPAIR(_ZN9GG2211323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE221;
+extern VTBL_ENTRY _ZTI5EE221[];
+extern VTBL_ENTRY _ZTV5EE221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE221[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF132;
+extern VTBL_ENTRY _ZTI5FF132[];
+extern VTBL_ENTRY _ZTV5FF132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF132[];
+static Base_Class bases_GG2211323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE221, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF132, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2211323[];
+extern void _ZN9GG22113233fooEv();
+extern void _ZN9GG22113233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22113233fooEv,_ZTv0_n20_N9GG22113233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22113233fooEv,_ZThn8_N9GG22113233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22113233barEv,_ZTv0_n12_N9GG22113233barEv)();
+extern void ABISELECT(_ZThn32_N9GG22113233barEv,_ZThn16_N9GG22113233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22113233barEv,_ZTv0_n12_N9GG22113233barEv)();
+extern void ABISELECT(_ZThn48_N9GG22113233barEv,_ZThn24_N9GG22113233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22113233barEv,_ZTv0_n20_N9GG22113233barEv)();
+extern void ABISELECT(_ZThn64_N9GG22113233barEv,_ZThn32_N9GG22113233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22113233fooEv,_ZTv0_n12_N9GG22113233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22113233fooEv,_ZThn40_N9GG22113233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22113233fooEv,_ZTv0_n12_N9GG22113233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG22113233fooEv,_ZThn48_N9GG22113233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22113233barEv,_ZTv0_n16_N9GG22113233barEv)();
+extern void ABISELECT(_ZThn96_N9GG22113233barEv,_ZThn48_N9GG22113233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2211323[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2211323[0]),
+ (VTBL_ENTRY)&_ZN9GG22113233fooEv,
+ (VTBL_ENTRY)&_ZN9GG22113233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2211323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22113233fooEv,_ZTv0_n20_N9GG22113233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2211323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22113233barEv,_ZTv0_n12_N9GG22113233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2211323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22113233barEv,_ZTv0_n12_N9GG22113233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2211323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22113233barEv,_ZTv0_n20_N9GG22113233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2211323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22113233fooEv,_ZTv0_n12_N9GG22113233fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2211323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22113233fooEv,_ZTv0_n12_N9GG22113233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22113233barEv,_ZTv0_n16_N9GG22113233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2211323[];
+extern void _ZN5EE2213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE221__9GG2211323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN5EE2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE221__9GG2211323[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE221__9GG2211323[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF1323barEv();
+static VTBL_ENTRY _tg__ZTV5FF132__9GG2211323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN5FF1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF132__9GG2211323[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv)();
+extern void ABISELECT(_ZThn32_N5FF1323barEv,_ZThn16_N5FF1323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF132__9GG2211323[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv),
+};
+static VTT_ENTRY vtt_GG2211323[] = {
+ {&(_ZTV9GG2211323[8]), 8,40},
+ {&(_ZTV9GG2211323[15]), 15,40},
+ {&(_ZTV9GG2211323[19]), 19,40},
+ {&(_ZTV9GG2211323[23]), 23,40},
+ {&(_ZTV9GG2211323[29]), 29,40},
+ {&(_ZTV9GG2211323[33]), 33,40},
+ {&(_ZTV9GG2211323[38]), 38,40},
+ {&(_tg__ZTV5EE221__9GG2211323[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE221__9GG2211323[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE221__9GG2211323[3]), 3,4},
+ {&(_tg__ZTV5FF132__9GG2211323[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF132__9GG2211323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF132__9GG2211323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2211323[];
+extern VTBL_ENTRY _ZTV9GG2211323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2211323[];
+static VTBL_ENTRY alt_thunk_names562[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1323barEv,_ZThn16_N5FF1323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22113233barEv,_ZTv0_n16_N9GG22113233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22113233barEv,_ZThn48_N9GG22113233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22113233fooEv,_ZTv0_n12_N9GG22113233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22113233fooEv,_ZThn48_N9GG22113233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22113233fooEv,_ZThn40_N9GG22113233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22113233barEv,_ZTv0_n20_N9GG22113233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22113233barEv,_ZThn32_N9GG22113233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22113233barEv,_ZTv0_n12_N9GG22113233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22113233barEv,_ZThn24_N9GG22113233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22113233barEv,_ZThn16_N9GG22113233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22113233fooEv,_ZTv0_n20_N9GG22113233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22113233fooEv,_ZThn8_N9GG22113233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2211323 = { "GG2211323", // class name
+ bases_GG2211323, 6,
+ &(vtc_GG2211323[0]), // expected_vtbl_contents
+ &(vtt_GG2211323[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2211323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2211323),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2211323),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names562,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2211333 : virtual EE221 , virtual FF133 {
+ int pg;
+ virtual void foo(); // _ZN9GG22113333fooEv
+ virtual void bar(); // _ZN9GG22113333barEv
+ ~GG2211333(); // tgen
+ GG2211333(); // tgen
+};
+//SIG(1 GG2211333) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2211333 ::foo(){vfunc_called(this, "_ZN9GG22113333fooEv");}
+void GG2211333 ::bar(){vfunc_called(this, "_ZN9GG22113333barEv");}
+GG2211333 ::~GG2211333(){ note_dtor("GG2211333", this);} // tgen
+GG2211333 ::GG2211333(){ note_ctor("GG2211333", this);} // tgen
+
+static void Test_GG2211333()
+{
+ extern Class_Descriptor cd_GG2211333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2211333, buf);
+ GG2211333 *dp, &lv = *(dp=new (buf) GG2211333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2211333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2211333)");
+ check_base_class_offset(lv, (AA2*)(EE221*), ABISELECT(32,16), "GG2211333");
+ check_base_class_offset(lv, (BB2*)(EE221*), ABISELECT(48,24), "GG2211333");
+ check_base_class_offset(lv, (EE221*), ABISELECT(16,8), "GG2211333");
+ check_base_class_offset(lv, (AA1*)(FF133*), ABISELECT(80,40), "GG2211333");
+ check_base_class_offset(lv, (BB3*)(FF133*), ABISELECT(96,48), "GG2211333");
+ check_base_class_offset(lv, (FF133*), ABISELECT(64,32), "GG2211333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2211333.pg");
+ test_class_info(&lv, &cd_GG2211333);
+ dp->~GG2211333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2211333(Test_GG2211333, "GG2211333", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2211333C1Ev();
+extern void _ZN9GG2211333D1Ev();
+Name_Map name_map_GG2211333[] = {
+ NSPAIR(_ZN9GG2211333C1Ev),
+ NSPAIR(_ZN9GG2211333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE221;
+extern VTBL_ENTRY _ZTI5EE221[];
+extern VTBL_ENTRY _ZTV5EE221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE221[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF133;
+extern VTBL_ENTRY _ZTI5FF133[];
+extern VTBL_ENTRY _ZTV5FF133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF133[];
+static Base_Class bases_GG2211333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE221, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF133, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2211333[];
+extern void _ZN9GG22113333fooEv();
+extern void _ZN9GG22113333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22113333fooEv,_ZTv0_n20_N9GG22113333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22113333fooEv,_ZThn8_N9GG22113333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22113333barEv,_ZTv0_n12_N9GG22113333barEv)();
+extern void ABISELECT(_ZThn32_N9GG22113333barEv,_ZThn16_N9GG22113333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22113333barEv,_ZTv0_n12_N9GG22113333barEv)();
+extern void ABISELECT(_ZThn48_N9GG22113333barEv,_ZThn24_N9GG22113333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22113333fooEv,_ZTv0_n20_N9GG22113333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22113333fooEv,_ZThn32_N9GG22113333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22113333barEv,_ZTv0_n24_N9GG22113333barEv)();
+extern void ABISELECT(_ZThn64_N9GG22113333barEv,_ZThn32_N9GG22113333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22113333fooEv,_ZTv0_n12_N9GG22113333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22113333fooEv,_ZThn40_N9GG22113333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22113333fooEv,_ZTv0_n12_N9GG22113333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG22113333fooEv,_ZThn48_N9GG22113333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22113333barEv,_ZTv0_n16_N9GG22113333barEv)();
+extern void ABISELECT(_ZThn96_N9GG22113333barEv,_ZThn48_N9GG22113333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2211333[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2211333[0]),
+ (VTBL_ENTRY)&_ZN9GG22113333fooEv,
+ (VTBL_ENTRY)&_ZN9GG22113333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2211333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22113333fooEv,_ZTv0_n20_N9GG22113333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2211333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22113333barEv,_ZTv0_n12_N9GG22113333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2211333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22113333barEv,_ZTv0_n12_N9GG22113333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2211333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22113333fooEv,_ZTv0_n20_N9GG22113333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22113333barEv,_ZTv0_n24_N9GG22113333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2211333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22113333fooEv,_ZTv0_n12_N9GG22113333fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2211333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22113333fooEv,_ZTv0_n12_N9GG22113333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22113333barEv,_ZTv0_n16_N9GG22113333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2211333[];
+extern void _ZN5EE2213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE221__9GG2211333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN5EE2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE221__9GG2211333[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE221__9GG2211333[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF1333fooEv();
+extern void _ZN5FF1333barEv();
+static VTBL_ENTRY _tg__ZTV5FF133__9GG2211333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&_ZN5FF1333fooEv,
+ (VTBL_ENTRY)&_ZN5FF1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF133__9GG2211333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1333fooEv,_ZThn16_N5FF1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv)();
+extern void ABISELECT(_ZThn32_N5FF1333barEv,_ZThn16_N5FF1333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF133__9GG2211333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv),
+};
+static VTT_ENTRY vtt_GG2211333[] = {
+ {&(_ZTV9GG2211333[8]), 8,42},
+ {&(_ZTV9GG2211333[15]), 15,42},
+ {&(_ZTV9GG2211333[19]), 19,42},
+ {&(_ZTV9GG2211333[23]), 23,42},
+ {&(_ZTV9GG2211333[30]), 30,42},
+ {&(_ZTV9GG2211333[35]), 35,42},
+ {&(_ZTV9GG2211333[40]), 40,42},
+ {&(_tg__ZTV5EE221__9GG2211333[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE221__9GG2211333[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE221__9GG2211333[3]), 3,4},
+ {&(_tg__ZTV5FF133__9GG2211333[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF133__9GG2211333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF133__9GG2211333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2211333[];
+extern VTBL_ENTRY _ZTV9GG2211333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2211333[];
+static VTBL_ENTRY alt_thunk_names563[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1333barEv,_ZThn16_N5FF1333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1333fooEv,_ZThn16_N5FF1333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22113333barEv,_ZTv0_n16_N9GG22113333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22113333barEv,_ZThn48_N9GG22113333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22113333fooEv,_ZTv0_n12_N9GG22113333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22113333fooEv,_ZThn48_N9GG22113333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22113333fooEv,_ZThn40_N9GG22113333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22113333barEv,_ZTv0_n24_N9GG22113333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22113333barEv,_ZThn32_N9GG22113333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22113333barEv,_ZTv0_n12_N9GG22113333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22113333barEv,_ZThn24_N9GG22113333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22113333barEv,_ZThn16_N9GG22113333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22113333fooEv,_ZTv0_n20_N9GG22113333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22113333fooEv,_ZThn32_N9GG22113333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22113333fooEv,_ZThn8_N9GG22113333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2211333 = { "GG2211333", // class name
+ bases_GG2211333, 6,
+ &(vtc_GG2211333[0]), // expected_vtbl_contents
+ &(vtt_GG2211333[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2211333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2211333),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2211333),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names563,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2212113 : virtual EE221 , virtual FF211 {
+ int pg;
+ virtual void foo(); // _ZN9GG22121133fooEv
+ virtual void bar(); // _ZN9GG22121133barEv
+ ~GG2212113(); // tgen
+ GG2212113(); // tgen
+};
+//SIG(1 GG2212113) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2212113 ::foo(){vfunc_called(this, "_ZN9GG22121133fooEv");}
+void GG2212113 ::bar(){vfunc_called(this, "_ZN9GG22121133barEv");}
+GG2212113 ::~GG2212113(){ note_dtor("GG2212113", this);} // tgen
+GG2212113 ::GG2212113(){ note_ctor("GG2212113", this);} // tgen
+
+static void Test_GG2212113()
+{
+ extern Class_Descriptor cd_GG2212113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2212113, buf);
+ GG2212113 *dp, &lv = *(dp=new (buf) GG2212113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2212113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2212113)");
+ check_base_class_offset(lv, (AA2*)(EE221*), ABISELECT(32,16), "GG2212113");
+ check_base_class_offset(lv, (AA2*)(FF211*), ABISELECT(32,16), "GG2212113");
+ check_base_class_offset(lv, (BB2*)(EE221*), ABISELECT(48,24), "GG2212113");
+ check_base_class_offset(lv, (EE221*), ABISELECT(16,8), "GG2212113");
+ check_base_class_offset(lv, (BB1*)(FF211*), ABISELECT(80,40), "GG2212113");
+ check_base_class_offset(lv, (FF211*), ABISELECT(64,32), "GG2212113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2212113.pg");
+ test_class_info(&lv, &cd_GG2212113);
+ dp->~GG2212113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2212113(Test_GG2212113, "GG2212113", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2212113C1Ev();
+extern void _ZN9GG2212113D1Ev();
+Name_Map name_map_GG2212113[] = {
+ NSPAIR(_ZN9GG2212113C1Ev),
+ NSPAIR(_ZN9GG2212113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE221;
+extern VTBL_ENTRY _ZTI5EE221[];
+extern VTBL_ENTRY _ZTV5EE221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE221[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF211;
+extern VTBL_ENTRY _ZTI5FF211[];
+extern VTBL_ENTRY _ZTV5FF211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF211[];
+static Base_Class bases_GG2212113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE221, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF211, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2212113[];
+extern void _ZN9GG22121133fooEv();
+extern void _ZN9GG22121133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22121133fooEv,_ZTv0_n20_N9GG22121133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22121133fooEv,_ZThn8_N9GG22121133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22121133barEv,_ZTv0_n12_N9GG22121133barEv)();
+extern void ABISELECT(_ZThn32_N9GG22121133barEv,_ZThn16_N9GG22121133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22121133barEv,_ZTv0_n12_N9GG22121133barEv)();
+extern void ABISELECT(_ZThn48_N9GG22121133barEv,_ZThn24_N9GG22121133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22121133fooEv,_ZTv0_n20_N9GG22121133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22121133fooEv,_ZThn32_N9GG22121133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22121133fooEv,_ZTv0_n12_N9GG22121133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22121133fooEv,_ZThn40_N9GG22121133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2212113[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2212113[0]),
+ (VTBL_ENTRY)&_ZN9GG22121133fooEv,
+ (VTBL_ENTRY)&_ZN9GG22121133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2212113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22121133fooEv,_ZTv0_n20_N9GG22121133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2212113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22121133barEv,_ZTv0_n12_N9GG22121133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2212113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22121133barEv,_ZTv0_n12_N9GG22121133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2212113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22121133fooEv,_ZTv0_n20_N9GG22121133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2212113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22121133fooEv,_ZTv0_n12_N9GG22121133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2212113[];
+extern void _ZN5EE2213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE221__9GG2212113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN5EE2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE221__9GG2212113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE221__9GG2212113[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF2113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF211__9GG2212113[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN5FF2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF211__9GG2212113[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF2113fooEv,_ZThn8_N5FF2113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF211__9GG2212113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv),
+};
+static VTT_ENTRY vtt_GG2212113[] = {
+ {&(_ZTV9GG2212113[7]), 7,33},
+ {&(_ZTV9GG2212113[14]), 14,33},
+ {&(_ZTV9GG2212113[18]), 18,33},
+ {&(_ZTV9GG2212113[22]), 22,33},
+ {&(_ZTV9GG2212113[28]), 28,33},
+ {&(_ZTV9GG2212113[32]), 32,33},
+ {&(_tg__ZTV5EE221__9GG2212113[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE221__9GG2212113[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE221__9GG2212113[3]), 3,4},
+ {&(_tg__ZTV5FF211__9GG2212113[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF211__9GG2212113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF211__9GG2212113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2212113[];
+extern VTBL_ENTRY _ZTV9GG2212113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2212113[];
+static VTBL_ENTRY alt_thunk_names564[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2113fooEv,_ZThn8_N5FF2113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22121133fooEv,_ZTv0_n12_N9GG22121133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22121133fooEv,_ZThn40_N9GG22121133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22121133barEv,_ZTv0_n12_N9GG22121133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22121133barEv,_ZThn24_N9GG22121133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22121133barEv,_ZThn16_N9GG22121133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22121133fooEv,_ZTv0_n20_N9GG22121133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22121133fooEv,_ZThn32_N9GG22121133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22121133fooEv,_ZThn8_N9GG22121133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2212113 = { "GG2212113", // class name
+ bases_GG2212113, 5,
+ &(vtc_GG2212113[0]), // expected_vtbl_contents
+ &(vtt_GG2212113[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2212113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2212113),33, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2212113),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names564,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2212123 : virtual EE221 , virtual FF212 {
+ int pg;
+ virtual void foo(); // _ZN9GG22121233fooEv
+ virtual void bar(); // _ZN9GG22121233barEv
+ ~GG2212123(); // tgen
+ GG2212123(); // tgen
+};
+//SIG(1 GG2212123) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2212123 ::foo(){vfunc_called(this, "_ZN9GG22121233fooEv");}
+void GG2212123 ::bar(){vfunc_called(this, "_ZN9GG22121233barEv");}
+GG2212123 ::~GG2212123(){ note_dtor("GG2212123", this);} // tgen
+GG2212123 ::GG2212123(){ note_ctor("GG2212123", this);} // tgen
+
+static void Test_GG2212123()
+{
+ extern Class_Descriptor cd_GG2212123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2212123, buf);
+ GG2212123 *dp, &lv = *(dp=new (buf) GG2212123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2212123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2212123)");
+ check_base_class_offset(lv, (AA2*)(EE221*), ABISELECT(32,16), "GG2212123");
+ check_base_class_offset(lv, (AA2*)(FF212*), ABISELECT(32,16), "GG2212123");
+ check_base_class_offset(lv, (BB2*)(EE221*), ABISELECT(48,24), "GG2212123");
+ check_base_class_offset(lv, (EE221*), ABISELECT(16,8), "GG2212123");
+ check_base_class_offset(lv, (BB1*)(FF212*), ABISELECT(80,40), "GG2212123");
+ check_base_class_offset(lv, (FF212*), ABISELECT(64,32), "GG2212123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2212123.pg");
+ test_class_info(&lv, &cd_GG2212123);
+ dp->~GG2212123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2212123(Test_GG2212123, "GG2212123", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2212123C1Ev();
+extern void _ZN9GG2212123D1Ev();
+Name_Map name_map_GG2212123[] = {
+ NSPAIR(_ZN9GG2212123C1Ev),
+ NSPAIR(_ZN9GG2212123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE221;
+extern VTBL_ENTRY _ZTI5EE221[];
+extern VTBL_ENTRY _ZTV5EE221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE221[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF212;
+extern VTBL_ENTRY _ZTI5FF212[];
+extern VTBL_ENTRY _ZTV5FF212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF212[];
+static Base_Class bases_GG2212123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE221, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF212, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2212123[];
+extern void _ZN9GG22121233fooEv();
+extern void _ZN9GG22121233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22121233fooEv,_ZTv0_n20_N9GG22121233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22121233fooEv,_ZThn8_N9GG22121233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22121233barEv,_ZTv0_n12_N9GG22121233barEv)();
+extern void ABISELECT(_ZThn32_N9GG22121233barEv,_ZThn16_N9GG22121233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22121233barEv,_ZTv0_n12_N9GG22121233barEv)();
+extern void ABISELECT(_ZThn48_N9GG22121233barEv,_ZThn24_N9GG22121233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22121233barEv,_ZTv0_n20_N9GG22121233barEv)();
+extern void ABISELECT(_ZThn64_N9GG22121233barEv,_ZThn32_N9GG22121233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22121233fooEv,_ZTv0_n12_N9GG22121233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22121233fooEv,_ZThn40_N9GG22121233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2212123[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2212123[0]),
+ (VTBL_ENTRY)&_ZN9GG22121233fooEv,
+ (VTBL_ENTRY)&_ZN9GG22121233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2212123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22121233fooEv,_ZTv0_n20_N9GG22121233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2212123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22121233barEv,_ZTv0_n12_N9GG22121233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2212123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22121233barEv,_ZTv0_n12_N9GG22121233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2212123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22121233barEv,_ZTv0_n20_N9GG22121233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2212123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22121233fooEv,_ZTv0_n12_N9GG22121233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2212123[];
+extern void _ZN5EE2213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE221__9GG2212123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN5EE2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE221__9GG2212123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE221__9GG2212123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF2123barEv();
+static VTBL_ENTRY _tg__ZTV5FF212__9GG2212123[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN5FF2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF212__9GG2212123[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF212__9GG2212123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG2212123[] = {
+ {&(_ZTV9GG2212123[7]), 7,33},
+ {&(_ZTV9GG2212123[14]), 14,33},
+ {&(_ZTV9GG2212123[18]), 18,33},
+ {&(_ZTV9GG2212123[22]), 22,33},
+ {&(_ZTV9GG2212123[28]), 28,33},
+ {&(_ZTV9GG2212123[32]), 32,33},
+ {&(_tg__ZTV5EE221__9GG2212123[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE221__9GG2212123[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE221__9GG2212123[3]), 3,4},
+ {&(_tg__ZTV5FF212__9GG2212123[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF212__9GG2212123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF212__9GG2212123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2212123[];
+extern VTBL_ENTRY _ZTV9GG2212123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2212123[];
+static VTBL_ENTRY alt_thunk_names565[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22121233fooEv,_ZTv0_n12_N9GG22121233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22121233fooEv,_ZThn40_N9GG22121233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22121233barEv,_ZTv0_n20_N9GG22121233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22121233barEv,_ZThn32_N9GG22121233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22121233barEv,_ZTv0_n12_N9GG22121233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22121233barEv,_ZThn24_N9GG22121233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22121233barEv,_ZThn16_N9GG22121233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22121233fooEv,_ZTv0_n20_N9GG22121233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22121233fooEv,_ZThn8_N9GG22121233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2212123 = { "GG2212123", // class name
+ bases_GG2212123, 5,
+ &(vtc_GG2212123[0]), // expected_vtbl_contents
+ &(vtt_GG2212123[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2212123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2212123),33, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2212123),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names565,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2212133 : virtual EE221 , virtual FF213 {
+ int pg;
+ virtual void foo(); // _ZN9GG22121333fooEv
+ virtual void bar(); // _ZN9GG22121333barEv
+ ~GG2212133(); // tgen
+ GG2212133(); // tgen
+};
+//SIG(1 GG2212133) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2212133 ::foo(){vfunc_called(this, "_ZN9GG22121333fooEv");}
+void GG2212133 ::bar(){vfunc_called(this, "_ZN9GG22121333barEv");}
+GG2212133 ::~GG2212133(){ note_dtor("GG2212133", this);} // tgen
+GG2212133 ::GG2212133(){ note_ctor("GG2212133", this);} // tgen
+
+static void Test_GG2212133()
+{
+ extern Class_Descriptor cd_GG2212133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2212133, buf);
+ GG2212133 *dp, &lv = *(dp=new (buf) GG2212133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2212133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2212133)");
+ check_base_class_offset(lv, (AA2*)(EE221*), ABISELECT(32,16), "GG2212133");
+ check_base_class_offset(lv, (AA2*)(FF213*), ABISELECT(32,16), "GG2212133");
+ check_base_class_offset(lv, (BB2*)(EE221*), ABISELECT(48,24), "GG2212133");
+ check_base_class_offset(lv, (EE221*), ABISELECT(16,8), "GG2212133");
+ check_base_class_offset(lv, (BB1*)(FF213*), ABISELECT(80,40), "GG2212133");
+ check_base_class_offset(lv, (FF213*), ABISELECT(64,32), "GG2212133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2212133.pg");
+ test_class_info(&lv, &cd_GG2212133);
+ dp->~GG2212133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2212133(Test_GG2212133, "GG2212133", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2212133C1Ev();
+extern void _ZN9GG2212133D1Ev();
+Name_Map name_map_GG2212133[] = {
+ NSPAIR(_ZN9GG2212133C1Ev),
+ NSPAIR(_ZN9GG2212133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE221;
+extern VTBL_ENTRY _ZTI5EE221[];
+extern VTBL_ENTRY _ZTV5EE221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE221[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF213;
+extern VTBL_ENTRY _ZTI5FF213[];
+extern VTBL_ENTRY _ZTV5FF213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF213[];
+static Base_Class bases_GG2212133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE221, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF213, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2212133[];
+extern void _ZN9GG22121333fooEv();
+extern void _ZN9GG22121333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22121333fooEv,_ZTv0_n20_N9GG22121333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22121333fooEv,_ZThn8_N9GG22121333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22121333barEv,_ZTv0_n12_N9GG22121333barEv)();
+extern void ABISELECT(_ZThn32_N9GG22121333barEv,_ZThn16_N9GG22121333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22121333barEv,_ZTv0_n12_N9GG22121333barEv)();
+extern void ABISELECT(_ZThn48_N9GG22121333barEv,_ZThn24_N9GG22121333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22121333fooEv,_ZTv0_n20_N9GG22121333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22121333fooEv,_ZThn32_N9GG22121333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22121333barEv,_ZTv0_n24_N9GG22121333barEv)();
+extern void ABISELECT(_ZThn64_N9GG22121333barEv,_ZThn32_N9GG22121333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22121333fooEv,_ZTv0_n12_N9GG22121333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22121333fooEv,_ZThn40_N9GG22121333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2212133[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2212133[0]),
+ (VTBL_ENTRY)&_ZN9GG22121333fooEv,
+ (VTBL_ENTRY)&_ZN9GG22121333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2212133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22121333fooEv,_ZTv0_n20_N9GG22121333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2212133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22121333barEv,_ZTv0_n12_N9GG22121333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2212133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22121333barEv,_ZTv0_n12_N9GG22121333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2212133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22121333fooEv,_ZTv0_n20_N9GG22121333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22121333barEv,_ZTv0_n24_N9GG22121333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2212133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22121333fooEv,_ZTv0_n12_N9GG22121333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2212133[];
+extern void _ZN5EE2213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE221__9GG2212133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN5EE2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE221__9GG2212133[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE221__9GG2212133[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF2133fooEv();
+extern void _ZN5FF2133barEv();
+static VTBL_ENTRY _tg__ZTV5FF213__9GG2212133[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&_ZN5FF2133fooEv,
+ (VTBL_ENTRY)&_ZN5FF2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF213__9GG2212133[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF2133fooEv,_ZThn8_N5FF2133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF213__9GG2212133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv),
+};
+static VTT_ENTRY vtt_GG2212133[] = {
+ {&(_ZTV9GG2212133[7]), 7,35},
+ {&(_ZTV9GG2212133[14]), 14,35},
+ {&(_ZTV9GG2212133[18]), 18,35},
+ {&(_ZTV9GG2212133[22]), 22,35},
+ {&(_ZTV9GG2212133[29]), 29,35},
+ {&(_ZTV9GG2212133[34]), 34,35},
+ {&(_tg__ZTV5EE221__9GG2212133[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE221__9GG2212133[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE221__9GG2212133[3]), 3,4},
+ {&(_tg__ZTV5FF213__9GG2212133[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF213__9GG2212133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF213__9GG2212133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2212133[];
+extern VTBL_ENTRY _ZTV9GG2212133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2212133[];
+static VTBL_ENTRY alt_thunk_names566[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2133fooEv,_ZThn8_N5FF2133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22121333fooEv,_ZTv0_n12_N9GG22121333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22121333fooEv,_ZThn40_N9GG22121333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22121333barEv,_ZTv0_n24_N9GG22121333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22121333barEv,_ZThn32_N9GG22121333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22121333barEv,_ZTv0_n12_N9GG22121333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22121333barEv,_ZThn24_N9GG22121333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22121333barEv,_ZThn16_N9GG22121333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22121333fooEv,_ZTv0_n20_N9GG22121333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22121333fooEv,_ZThn32_N9GG22121333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22121333fooEv,_ZThn8_N9GG22121333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2212133 = { "GG2212133", // class name
+ bases_GG2212133, 5,
+ &(vtc_GG2212133[0]), // expected_vtbl_contents
+ &(vtt_GG2212133[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2212133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2212133),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2212133),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names566,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2212213 : virtual EE221 , virtual FF221 {
+ int pg;
+ virtual void foo(); // _ZN9GG22122133fooEv
+ virtual void bar(); // _ZN9GG22122133barEv
+ ~GG2212213(); // tgen
+ GG2212213(); // tgen
+};
+//SIG(1 GG2212213) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC3 VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG2212213 ::foo(){vfunc_called(this, "_ZN9GG22122133fooEv");}
+void GG2212213 ::bar(){vfunc_called(this, "_ZN9GG22122133barEv");}
+GG2212213 ::~GG2212213(){ note_dtor("GG2212213", this);} // tgen
+GG2212213 ::GG2212213(){ note_ctor("GG2212213", this);} // tgen
+
+static void Test_GG2212213()
+{
+ extern Class_Descriptor cd_GG2212213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG2212213, buf);
+ GG2212213 *dp, &lv = *(dp=new (buf) GG2212213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG2212213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2212213)");
+ check_base_class_offset(lv, (AA2*)(EE221*), ABISELECT(32,16), "GG2212213");
+ check_base_class_offset(lv, (AA2*)(FF221*), ABISELECT(32,16), "GG2212213");
+ check_base_class_offset(lv, (BB2*)(EE221*), ABISELECT(48,24), "GG2212213");
+ check_base_class_offset(lv, (BB2*)(FF221*), ABISELECT(48,24), "GG2212213");
+ check_base_class_offset(lv, (EE221*), ABISELECT(16,8), "GG2212213");
+ check_base_class_offset(lv, (FF221*), ABISELECT(64,32), "GG2212213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2212213.pg");
+ test_class_info(&lv, &cd_GG2212213);
+ dp->~GG2212213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2212213(Test_GG2212213, "GG2212213", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG2212213C1Ev();
+extern void _ZN9GG2212213D1Ev();
+Name_Map name_map_GG2212213[] = {
+ NSPAIR(_ZN9GG2212213C1Ev),
+ NSPAIR(_ZN9GG2212213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE221;
+extern VTBL_ENTRY _ZTI5EE221[];
+extern VTBL_ENTRY _ZTV5EE221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE221[];
+extern Class_Descriptor cd_FF221;
+extern VTBL_ENTRY _ZTI5FF221[];
+extern VTBL_ENTRY _ZTV5FF221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF221[];
+static Base_Class bases_GG2212213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE221, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF221, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2212213[];
+extern void _ZN9GG22122133fooEv();
+extern void _ZN9GG22122133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22122133fooEv,_ZTv0_n20_N9GG22122133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22122133fooEv,_ZThn8_N9GG22122133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22122133barEv,_ZTv0_n12_N9GG22122133barEv)();
+extern void ABISELECT(_ZThn32_N9GG22122133barEv,_ZThn16_N9GG22122133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22122133barEv,_ZTv0_n12_N9GG22122133barEv)();
+extern void ABISELECT(_ZThn48_N9GG22122133barEv,_ZThn24_N9GG22122133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22122133fooEv,_ZTv0_n20_N9GG22122133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22122133fooEv,_ZThn32_N9GG22122133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2212213[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2212213[0]),
+ (VTBL_ENTRY)&_ZN9GG22122133fooEv,
+ (VTBL_ENTRY)&_ZN9GG22122133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2212213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22122133fooEv,_ZTv0_n20_N9GG22122133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2212213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22122133barEv,_ZTv0_n12_N9GG22122133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2212213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22122133barEv,_ZTv0_n12_N9GG22122133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2212213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22122133fooEv,_ZTv0_n20_N9GG22122133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2212213[];
+extern void _ZN5EE2213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE221__9GG2212213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN5EE2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE221__9GG2212213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE221__9GG2212213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF2213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF221__9GG2212213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN5FF2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF221__9GG2212213[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF221__9GG2212213[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG2212213[] = {
+ {&(_ZTV9GG2212213[6]), 6,28},
+ {&(_ZTV9GG2212213[13]), 13,28},
+ {&(_ZTV9GG2212213[17]), 17,28},
+ {&(_ZTV9GG2212213[21]), 21,28},
+ {&(_ZTV9GG2212213[27]), 27,28},
+ {&(_tg__ZTV5EE221__9GG2212213[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE221__9GG2212213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE221__9GG2212213[3]), 3,4},
+ {&(_tg__ZTV5FF221__9GG2212213[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF221__9GG2212213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF221__9GG2212213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2212213[];
+extern VTBL_ENTRY _ZTV9GG2212213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2212213[];
+static VTBL_ENTRY alt_thunk_names567[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22122133barEv,_ZTv0_n12_N9GG22122133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22122133barEv,_ZThn24_N9GG22122133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22122133barEv,_ZThn16_N9GG22122133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22122133fooEv,_ZTv0_n20_N9GG22122133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22122133fooEv,_ZThn32_N9GG22122133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22122133fooEv,_ZThn8_N9GG22122133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2212213 = { "GG2212213", // class name
+ bases_GG2212213, 4,
+ &(vtc_GG2212213[0]), // expected_vtbl_contents
+ &(vtt_GG2212213[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG2212213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2212213),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2212213),11, //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 GG2212222 : virtual EE221 , virtual FF222 {
+ int pg;
+ virtual void bar(); // _ZN9GG22122223barEv
+ ~GG2212222(); // tgen
+ GG2212222(); // tgen
+};
+//SIG(1 GG2212222) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC3 VBC4 v1 Fi} v1 Fi}
+
+
+void GG2212222 ::bar(){vfunc_called(this, "_ZN9GG22122223barEv");}
+GG2212222 ::~GG2212222(){ note_dtor("GG2212222", this);} // tgen
+GG2212222 ::GG2212222(){ note_ctor("GG2212222", this);} // tgen
+
+static void Test_GG2212222()
+{
+ extern Class_Descriptor cd_GG2212222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG2212222, buf);
+ GG2212222 *dp, &lv = *(dp=new (buf) GG2212222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG2212222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2212222)");
+ check_base_class_offset(lv, (AA2*)(EE221*), ABISELECT(32,16), "GG2212222");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(32,16), "GG2212222");
+ check_base_class_offset(lv, (BB2*)(EE221*), ABISELECT(48,24), "GG2212222");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(48,24), "GG2212222");
+ check_base_class_offset(lv, (EE221*), ABISELECT(16,8), "GG2212222");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG2212222");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2212222.pg");
+ test_class_info(&lv, &cd_GG2212222);
+ dp->~GG2212222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2212222(Test_GG2212222, "GG2212222", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG2212222C1Ev();
+extern void _ZN9GG2212222D1Ev();
+Name_Map name_map_GG2212222[] = {
+ NSPAIR(_ZN9GG2212222C1Ev),
+ NSPAIR(_ZN9GG2212222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE221;
+extern VTBL_ENTRY _ZTI5EE221[];
+extern VTBL_ENTRY _ZTV5EE221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE221[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG2212222[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE221, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2212222[];
+extern void _ZN9GG22122223barEv();
+extern void _ZN5EE2213fooEv();
+extern void ABISELECT(_ZTv0_n24_N9GG22122223barEv,_ZTv0_n12_N9GG22122223barEv)();
+extern void ABISELECT(_ZThn32_N9GG22122223barEv,_ZThn16_N9GG22122223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22122223barEv,_ZTv0_n12_N9GG22122223barEv)();
+extern void ABISELECT(_ZThn48_N9GG22122223barEv,_ZThn24_N9GG22122223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22122223barEv,_ZTv0_n20_N9GG22122223barEv)();
+extern void ABISELECT(_ZThn64_N9GG22122223barEv,_ZThn32_N9GG22122223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2212222[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2212222[0]),
+ (VTBL_ENTRY)&_ZN9GG22122223barEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2212222[0]),
+ (VTBL_ENTRY)&_ZN5EE2213fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2212222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22122223barEv,_ZTv0_n12_N9GG22122223barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2212222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22122223barEv,_ZTv0_n12_N9GG22122223barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2212222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22122223barEv,_ZTv0_n20_N9GG22122223barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2212222[];
+extern void _ZN5EE2213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE221__9GG2212222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN5EE2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE221__9GG2212222[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE221__9GG2212222[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG2212222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG2212222[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG2212222[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG2212222[] = {
+ {&(_ZTV9GG2212222[6]), 6,27},
+ {&(_ZTV9GG2212222[12]), 12,27},
+ {&(_ZTV9GG2212222[16]), 16,27},
+ {&(_ZTV9GG2212222[20]), 20,27},
+ {&(_ZTV9GG2212222[26]), 26,27},
+ {&(_tg__ZTV5EE221__9GG2212222[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE221__9GG2212222[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE221__9GG2212222[3]), 3,4},
+ {&(_tg__ZTV5FF222__9GG2212222[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG2212222[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG2212222[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2212222[];
+extern VTBL_ENTRY _ZTV9GG2212222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2212222[];
+static VTBL_ENTRY alt_thunk_names568[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22122223barEv,_ZTv0_n20_N9GG22122223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22122223barEv,_ZThn32_N9GG22122223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22122223barEv,_ZTv0_n12_N9GG22122223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22122223barEv,_ZThn24_N9GG22122223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22122223barEv,_ZThn16_N9GG22122223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2212222 = { "GG2212222", // class name
+ bases_GG2212222, 4,
+ &(vtc_GG2212222[0]), // expected_vtbl_contents
+ &(vtt_GG2212222[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG2212222),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2212222),27, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2212222),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names568,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2212223 : virtual EE221 , virtual FF222 {
+ int pg;
+ virtual void foo(); // _ZN9GG22122233fooEv
+ virtual void bar(); // _ZN9GG22122233barEv
+ ~GG2212223(); // tgen
+ GG2212223(); // tgen
+};
+//SIG(1 GG2212223) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC3 VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG2212223 ::foo(){vfunc_called(this, "_ZN9GG22122233fooEv");}
+void GG2212223 ::bar(){vfunc_called(this, "_ZN9GG22122233barEv");}
+GG2212223 ::~GG2212223(){ note_dtor("GG2212223", this);} // tgen
+GG2212223 ::GG2212223(){ note_ctor("GG2212223", this);} // tgen
+
+static void Test_GG2212223()
+{
+ extern Class_Descriptor cd_GG2212223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG2212223, buf);
+ GG2212223 *dp, &lv = *(dp=new (buf) GG2212223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG2212223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2212223)");
+ check_base_class_offset(lv, (AA2*)(EE221*), ABISELECT(32,16), "GG2212223");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(32,16), "GG2212223");
+ check_base_class_offset(lv, (BB2*)(EE221*), ABISELECT(48,24), "GG2212223");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(48,24), "GG2212223");
+ check_base_class_offset(lv, (EE221*), ABISELECT(16,8), "GG2212223");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG2212223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2212223.pg");
+ test_class_info(&lv, &cd_GG2212223);
+ dp->~GG2212223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2212223(Test_GG2212223, "GG2212223", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG2212223C1Ev();
+extern void _ZN9GG2212223D1Ev();
+Name_Map name_map_GG2212223[] = {
+ NSPAIR(_ZN9GG2212223C1Ev),
+ NSPAIR(_ZN9GG2212223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE221;
+extern VTBL_ENTRY _ZTI5EE221[];
+extern VTBL_ENTRY _ZTV5EE221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE221[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG2212223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE221, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2212223[];
+extern void _ZN9GG22122233fooEv();
+extern void _ZN9GG22122233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22122233fooEv,_ZTv0_n20_N9GG22122233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22122233fooEv,_ZThn8_N9GG22122233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22122233barEv,_ZTv0_n12_N9GG22122233barEv)();
+extern void ABISELECT(_ZThn32_N9GG22122233barEv,_ZThn16_N9GG22122233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22122233barEv,_ZTv0_n12_N9GG22122233barEv)();
+extern void ABISELECT(_ZThn48_N9GG22122233barEv,_ZThn24_N9GG22122233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22122233barEv,_ZTv0_n20_N9GG22122233barEv)();
+extern void ABISELECT(_ZThn64_N9GG22122233barEv,_ZThn32_N9GG22122233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2212223[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2212223[0]),
+ (VTBL_ENTRY)&_ZN9GG22122233fooEv,
+ (VTBL_ENTRY)&_ZN9GG22122233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2212223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22122233fooEv,_ZTv0_n20_N9GG22122233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2212223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22122233barEv,_ZTv0_n12_N9GG22122233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2212223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22122233barEv,_ZTv0_n12_N9GG22122233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2212223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22122233barEv,_ZTv0_n20_N9GG22122233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2212223[];
+extern void _ZN5EE2213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE221__9GG2212223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN5EE2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE221__9GG2212223[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE221__9GG2212223[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG2212223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG2212223[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG2212223[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG2212223[] = {
+ {&(_ZTV9GG2212223[6]), 6,28},
+ {&(_ZTV9GG2212223[13]), 13,28},
+ {&(_ZTV9GG2212223[17]), 17,28},
+ {&(_ZTV9GG2212223[21]), 21,28},
+ {&(_ZTV9GG2212223[27]), 27,28},
+ {&(_tg__ZTV5EE221__9GG2212223[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE221__9GG2212223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE221__9GG2212223[3]), 3,4},
+ {&(_tg__ZTV5FF222__9GG2212223[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG2212223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG2212223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2212223[];
+extern VTBL_ENTRY _ZTV9GG2212223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2212223[];
+static VTBL_ENTRY alt_thunk_names569[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22122233barEv,_ZTv0_n20_N9GG22122233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22122233barEv,_ZThn32_N9GG22122233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22122233barEv,_ZTv0_n12_N9GG22122233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22122233barEv,_ZThn24_N9GG22122233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22122233barEv,_ZThn16_N9GG22122233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22122233fooEv,_ZTv0_n20_N9GG22122233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22122233fooEv,_ZThn8_N9GG22122233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2212223 = { "GG2212223", // class name
+ bases_GG2212223, 4,
+ &(vtc_GG2212223[0]), // expected_vtbl_contents
+ &(vtt_GG2212223[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG2212223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2212223),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2212223),11, //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 GG2212233 : virtual EE221 , virtual FF223 {
+ int pg;
+ virtual void foo(); // _ZN9GG22122333fooEv
+ virtual void bar(); // _ZN9GG22122333barEv
+ ~GG2212233(); // tgen
+ GG2212233(); // tgen
+};
+//SIG(1 GG2212233) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC3 VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2212233 ::foo(){vfunc_called(this, "_ZN9GG22122333fooEv");}
+void GG2212233 ::bar(){vfunc_called(this, "_ZN9GG22122333barEv");}
+GG2212233 ::~GG2212233(){ note_dtor("GG2212233", this);} // tgen
+GG2212233 ::GG2212233(){ note_ctor("GG2212233", this);} // tgen
+
+static void Test_GG2212233()
+{
+ extern Class_Descriptor cd_GG2212233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG2212233, buf);
+ GG2212233 *dp, &lv = *(dp=new (buf) GG2212233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG2212233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2212233)");
+ check_base_class_offset(lv, (AA2*)(EE221*), ABISELECT(32,16), "GG2212233");
+ check_base_class_offset(lv, (AA2*)(FF223*), ABISELECT(32,16), "GG2212233");
+ check_base_class_offset(lv, (BB2*)(EE221*), ABISELECT(48,24), "GG2212233");
+ check_base_class_offset(lv, (BB2*)(FF223*), ABISELECT(48,24), "GG2212233");
+ check_base_class_offset(lv, (EE221*), ABISELECT(16,8), "GG2212233");
+ check_base_class_offset(lv, (FF223*), ABISELECT(64,32), "GG2212233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2212233.pg");
+ test_class_info(&lv, &cd_GG2212233);
+ dp->~GG2212233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2212233(Test_GG2212233, "GG2212233", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG2212233C1Ev();
+extern void _ZN9GG2212233D1Ev();
+Name_Map name_map_GG2212233[] = {
+ NSPAIR(_ZN9GG2212233C1Ev),
+ NSPAIR(_ZN9GG2212233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE221;
+extern VTBL_ENTRY _ZTI5EE221[];
+extern VTBL_ENTRY _ZTV5EE221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE221[];
+extern Class_Descriptor cd_FF223;
+extern VTBL_ENTRY _ZTI5FF223[];
+extern VTBL_ENTRY _ZTV5FF223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF223[];
+static Base_Class bases_GG2212233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE221, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF223, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2212233[];
+extern void _ZN9GG22122333fooEv();
+extern void _ZN9GG22122333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22122333fooEv,_ZTv0_n20_N9GG22122333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22122333fooEv,_ZThn8_N9GG22122333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22122333barEv,_ZTv0_n12_N9GG22122333barEv)();
+extern void ABISELECT(_ZThn32_N9GG22122333barEv,_ZThn16_N9GG22122333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22122333barEv,_ZTv0_n12_N9GG22122333barEv)();
+extern void ABISELECT(_ZThn48_N9GG22122333barEv,_ZThn24_N9GG22122333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22122333fooEv,_ZTv0_n20_N9GG22122333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22122333fooEv,_ZThn32_N9GG22122333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22122333barEv,_ZTv0_n24_N9GG22122333barEv)();
+extern void ABISELECT(_ZThn64_N9GG22122333barEv,_ZThn32_N9GG22122333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2212233[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2212233[0]),
+ (VTBL_ENTRY)&_ZN9GG22122333fooEv,
+ (VTBL_ENTRY)&_ZN9GG22122333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2212233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22122333fooEv,_ZTv0_n20_N9GG22122333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2212233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22122333barEv,_ZTv0_n12_N9GG22122333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2212233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22122333barEv,_ZTv0_n12_N9GG22122333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2212233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22122333fooEv,_ZTv0_n20_N9GG22122333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22122333barEv,_ZTv0_n24_N9GG22122333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2212233[];
+extern void _ZN5EE2213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE221__9GG2212233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN5EE2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE221__9GG2212233[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE221__9GG2212233[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF2233fooEv();
+extern void _ZN5FF2233barEv();
+static VTBL_ENTRY _tg__ZTV5FF223__9GG2212233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&_ZN5FF2233fooEv,
+ (VTBL_ENTRY)&_ZN5FF2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF223__9GG2212233[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF223__9GG2212233[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+static VTT_ENTRY vtt_GG2212233[] = {
+ {&(_ZTV9GG2212233[6]), 6,30},
+ {&(_ZTV9GG2212233[13]), 13,30},
+ {&(_ZTV9GG2212233[17]), 17,30},
+ {&(_ZTV9GG2212233[21]), 21,30},
+ {&(_ZTV9GG2212233[28]), 28,30},
+ {&(_tg__ZTV5EE221__9GG2212233[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE221__9GG2212233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE221__9GG2212233[3]), 3,4},
+ {&(_tg__ZTV5FF223__9GG2212233[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF223__9GG2212233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF223__9GG2212233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2212233[];
+extern VTBL_ENTRY _ZTV9GG2212233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2212233[];
+static VTBL_ENTRY alt_thunk_names570[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22122333barEv,_ZTv0_n24_N9GG22122333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22122333barEv,_ZThn32_N9GG22122333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22122333barEv,_ZTv0_n12_N9GG22122333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22122333barEv,_ZThn24_N9GG22122333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22122333barEv,_ZThn16_N9GG22122333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22122333fooEv,_ZTv0_n20_N9GG22122333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22122333fooEv,_ZThn32_N9GG22122333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22122333fooEv,_ZThn8_N9GG22122333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2212233 = { "GG2212233", // class name
+ bases_GG2212233, 4,
+ &(vtc_GG2212233[0]), // expected_vtbl_contents
+ &(vtt_GG2212233[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG2212233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2212233),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2212233),11, //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 GG2212313 : virtual EE221 , virtual FF231 {
+ int pg;
+ virtual void foo(); // _ZN9GG22123133fooEv
+ virtual void bar(); // _ZN9GG22123133barEv
+ ~GG2212313(); // tgen
+ GG2212313(); // tgen
+};
+//SIG(1 GG2212313) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2212313 ::foo(){vfunc_called(this, "_ZN9GG22123133fooEv");}
+void GG2212313 ::bar(){vfunc_called(this, "_ZN9GG22123133barEv");}
+GG2212313 ::~GG2212313(){ note_dtor("GG2212313", this);} // tgen
+GG2212313 ::GG2212313(){ note_ctor("GG2212313", this);} // tgen
+
+static void Test_GG2212313()
+{
+ extern Class_Descriptor cd_GG2212313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2212313, buf);
+ GG2212313 *dp, &lv = *(dp=new (buf) GG2212313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2212313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2212313)");
+ check_base_class_offset(lv, (AA2*)(EE221*), ABISELECT(32,16), "GG2212313");
+ check_base_class_offset(lv, (AA2*)(FF231*), ABISELECT(32,16), "GG2212313");
+ check_base_class_offset(lv, (BB2*)(EE221*), ABISELECT(48,24), "GG2212313");
+ check_base_class_offset(lv, (EE221*), ABISELECT(16,8), "GG2212313");
+ check_base_class_offset(lv, (BB3*)(FF231*), ABISELECT(80,40), "GG2212313");
+ check_base_class_offset(lv, (FF231*), ABISELECT(64,32), "GG2212313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2212313.pg");
+ test_class_info(&lv, &cd_GG2212313);
+ dp->~GG2212313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2212313(Test_GG2212313, "GG2212313", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2212313C1Ev();
+extern void _ZN9GG2212313D1Ev();
+Name_Map name_map_GG2212313[] = {
+ NSPAIR(_ZN9GG2212313C1Ev),
+ NSPAIR(_ZN9GG2212313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE221;
+extern VTBL_ENTRY _ZTI5EE221[];
+extern VTBL_ENTRY _ZTV5EE221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE221[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF231;
+extern VTBL_ENTRY _ZTI5FF231[];
+extern VTBL_ENTRY _ZTV5FF231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF231[];
+static Base_Class bases_GG2212313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE221, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF231, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2212313[];
+extern void _ZN9GG22123133fooEv();
+extern void _ZN9GG22123133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22123133fooEv,_ZTv0_n20_N9GG22123133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22123133fooEv,_ZThn8_N9GG22123133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22123133barEv,_ZTv0_n12_N9GG22123133barEv)();
+extern void ABISELECT(_ZThn32_N9GG22123133barEv,_ZThn16_N9GG22123133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22123133barEv,_ZTv0_n12_N9GG22123133barEv)();
+extern void ABISELECT(_ZThn48_N9GG22123133barEv,_ZThn24_N9GG22123133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22123133fooEv,_ZTv0_n20_N9GG22123133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22123133fooEv,_ZThn32_N9GG22123133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22123133fooEv,_ZTv0_n12_N9GG22123133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22123133fooEv,_ZThn40_N9GG22123133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22123133barEv,_ZTv0_n16_N9GG22123133barEv)();
+extern void ABISELECT(_ZThn80_N9GG22123133barEv,_ZThn40_N9GG22123133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2212313[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2212313[0]),
+ (VTBL_ENTRY)&_ZN9GG22123133fooEv,
+ (VTBL_ENTRY)&_ZN9GG22123133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2212313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22123133fooEv,_ZTv0_n20_N9GG22123133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2212313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22123133barEv,_ZTv0_n12_N9GG22123133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2212313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22123133barEv,_ZTv0_n12_N9GG22123133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2212313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22123133fooEv,_ZTv0_n20_N9GG22123133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2212313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22123133fooEv,_ZTv0_n12_N9GG22123133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22123133barEv,_ZTv0_n16_N9GG22123133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2212313[];
+extern void _ZN5EE2213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE221__9GG2212313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN5EE2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE221__9GG2212313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE221__9GG2212313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF2313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF231__9GG2212313[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN5FF2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF231__9GG2212313[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF2313fooEv,_ZThn8_N5FF2313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF231__9GG2212313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG2212313[] = {
+ {&(_ZTV9GG2212313[7]), 7,35},
+ {&(_ZTV9GG2212313[14]), 14,35},
+ {&(_ZTV9GG2212313[18]), 18,35},
+ {&(_ZTV9GG2212313[22]), 22,35},
+ {&(_ZTV9GG2212313[28]), 28,35},
+ {&(_ZTV9GG2212313[33]), 33,35},
+ {&(_tg__ZTV5EE221__9GG2212313[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE221__9GG2212313[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE221__9GG2212313[3]), 3,4},
+ {&(_tg__ZTV5FF231__9GG2212313[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF231__9GG2212313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF231__9GG2212313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2212313[];
+extern VTBL_ENTRY _ZTV9GG2212313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2212313[];
+static VTBL_ENTRY alt_thunk_names571[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2313fooEv,_ZThn8_N5FF2313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22123133barEv,_ZTv0_n16_N9GG22123133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22123133barEv,_ZThn40_N9GG22123133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22123133fooEv,_ZTv0_n12_N9GG22123133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22123133fooEv,_ZThn40_N9GG22123133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22123133barEv,_ZTv0_n12_N9GG22123133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22123133barEv,_ZThn24_N9GG22123133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22123133barEv,_ZThn16_N9GG22123133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22123133fooEv,_ZTv0_n20_N9GG22123133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22123133fooEv,_ZThn32_N9GG22123133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22123133fooEv,_ZThn8_N9GG22123133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2212313 = { "GG2212313", // class name
+ bases_GG2212313, 5,
+ &(vtc_GG2212313[0]), // expected_vtbl_contents
+ &(vtt_GG2212313[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2212313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2212313),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2212313),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names571,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2212323 : virtual EE221 , virtual FF232 {
+ int pg;
+ virtual void foo(); // _ZN9GG22123233fooEv
+ virtual void bar(); // _ZN9GG22123233barEv
+ ~GG2212323(); // tgen
+ GG2212323(); // tgen
+};
+//SIG(1 GG2212323) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2212323 ::foo(){vfunc_called(this, "_ZN9GG22123233fooEv");}
+void GG2212323 ::bar(){vfunc_called(this, "_ZN9GG22123233barEv");}
+GG2212323 ::~GG2212323(){ note_dtor("GG2212323", this);} // tgen
+GG2212323 ::GG2212323(){ note_ctor("GG2212323", this);} // tgen
+
+static void Test_GG2212323()
+{
+ extern Class_Descriptor cd_GG2212323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2212323, buf);
+ GG2212323 *dp, &lv = *(dp=new (buf) GG2212323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2212323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2212323)");
+ check_base_class_offset(lv, (AA2*)(EE221*), ABISELECT(32,16), "GG2212323");
+ check_base_class_offset(lv, (AA2*)(FF232*), ABISELECT(32,16), "GG2212323");
+ check_base_class_offset(lv, (BB2*)(EE221*), ABISELECT(48,24), "GG2212323");
+ check_base_class_offset(lv, (EE221*), ABISELECT(16,8), "GG2212323");
+ check_base_class_offset(lv, (BB3*)(FF232*), ABISELECT(80,40), "GG2212323");
+ check_base_class_offset(lv, (FF232*), ABISELECT(64,32), "GG2212323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2212323.pg");
+ test_class_info(&lv, &cd_GG2212323);
+ dp->~GG2212323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2212323(Test_GG2212323, "GG2212323", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2212323C1Ev();
+extern void _ZN9GG2212323D1Ev();
+Name_Map name_map_GG2212323[] = {
+ NSPAIR(_ZN9GG2212323C1Ev),
+ NSPAIR(_ZN9GG2212323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE221;
+extern VTBL_ENTRY _ZTI5EE221[];
+extern VTBL_ENTRY _ZTV5EE221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE221[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF232;
+extern VTBL_ENTRY _ZTI5FF232[];
+extern VTBL_ENTRY _ZTV5FF232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF232[];
+static Base_Class bases_GG2212323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE221, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF232, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2212323[];
+extern void _ZN9GG22123233fooEv();
+extern void _ZN9GG22123233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22123233fooEv,_ZTv0_n20_N9GG22123233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22123233fooEv,_ZThn8_N9GG22123233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22123233barEv,_ZTv0_n12_N9GG22123233barEv)();
+extern void ABISELECT(_ZThn32_N9GG22123233barEv,_ZThn16_N9GG22123233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22123233barEv,_ZTv0_n12_N9GG22123233barEv)();
+extern void ABISELECT(_ZThn48_N9GG22123233barEv,_ZThn24_N9GG22123233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22123233barEv,_ZTv0_n20_N9GG22123233barEv)();
+extern void ABISELECT(_ZThn64_N9GG22123233barEv,_ZThn32_N9GG22123233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22123233fooEv,_ZTv0_n12_N9GG22123233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22123233fooEv,_ZThn40_N9GG22123233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22123233barEv,_ZTv0_n16_N9GG22123233barEv)();
+extern void ABISELECT(_ZThn80_N9GG22123233barEv,_ZThn40_N9GG22123233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2212323[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2212323[0]),
+ (VTBL_ENTRY)&_ZN9GG22123233fooEv,
+ (VTBL_ENTRY)&_ZN9GG22123233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2212323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22123233fooEv,_ZTv0_n20_N9GG22123233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2212323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22123233barEv,_ZTv0_n12_N9GG22123233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2212323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22123233barEv,_ZTv0_n12_N9GG22123233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2212323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22123233barEv,_ZTv0_n20_N9GG22123233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2212323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22123233fooEv,_ZTv0_n12_N9GG22123233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22123233barEv,_ZTv0_n16_N9GG22123233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2212323[];
+extern void _ZN5EE2213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE221__9GG2212323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN5EE2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE221__9GG2212323[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE221__9GG2212323[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF2323barEv();
+static VTBL_ENTRY _tg__ZTV5FF232__9GG2212323[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN5FF2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF232__9GG2212323[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv)();
+extern void ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF232__9GG2212323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv),
+};
+static VTT_ENTRY vtt_GG2212323[] = {
+ {&(_ZTV9GG2212323[7]), 7,35},
+ {&(_ZTV9GG2212323[14]), 14,35},
+ {&(_ZTV9GG2212323[18]), 18,35},
+ {&(_ZTV9GG2212323[22]), 22,35},
+ {&(_ZTV9GG2212323[28]), 28,35},
+ {&(_ZTV9GG2212323[33]), 33,35},
+ {&(_tg__ZTV5EE221__9GG2212323[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE221__9GG2212323[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE221__9GG2212323[3]), 3,4},
+ {&(_tg__ZTV5FF232__9GG2212323[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF232__9GG2212323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF232__9GG2212323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2212323[];
+extern VTBL_ENTRY _ZTV9GG2212323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2212323[];
+static VTBL_ENTRY alt_thunk_names572[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22123233barEv,_ZTv0_n16_N9GG22123233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22123233barEv,_ZThn40_N9GG22123233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22123233fooEv,_ZTv0_n12_N9GG22123233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22123233fooEv,_ZThn40_N9GG22123233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22123233barEv,_ZTv0_n20_N9GG22123233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22123233barEv,_ZThn32_N9GG22123233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22123233barEv,_ZTv0_n12_N9GG22123233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22123233barEv,_ZThn24_N9GG22123233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22123233barEv,_ZThn16_N9GG22123233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22123233fooEv,_ZTv0_n20_N9GG22123233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22123233fooEv,_ZThn8_N9GG22123233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2212323 = { "GG2212323", // class name
+ bases_GG2212323, 5,
+ &(vtc_GG2212323[0]), // expected_vtbl_contents
+ &(vtt_GG2212323[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2212323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2212323),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2212323),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names572,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2212333 : virtual EE221 , virtual FF233 {
+ int pg;
+ virtual void foo(); // _ZN9GG22123333fooEv
+ virtual void bar(); // _ZN9GG22123333barEv
+ ~GG2212333(); // tgen
+ GG2212333(); // tgen
+};
+//SIG(1 GG2212333) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2212333 ::foo(){vfunc_called(this, "_ZN9GG22123333fooEv");}
+void GG2212333 ::bar(){vfunc_called(this, "_ZN9GG22123333barEv");}
+GG2212333 ::~GG2212333(){ note_dtor("GG2212333", this);} // tgen
+GG2212333 ::GG2212333(){ note_ctor("GG2212333", this);} // tgen
+
+static void Test_GG2212333()
+{
+ extern Class_Descriptor cd_GG2212333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2212333, buf);
+ GG2212333 *dp, &lv = *(dp=new (buf) GG2212333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2212333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2212333)");
+ check_base_class_offset(lv, (AA2*)(EE221*), ABISELECT(32,16), "GG2212333");
+ check_base_class_offset(lv, (AA2*)(FF233*), ABISELECT(32,16), "GG2212333");
+ check_base_class_offset(lv, (BB2*)(EE221*), ABISELECT(48,24), "GG2212333");
+ check_base_class_offset(lv, (EE221*), ABISELECT(16,8), "GG2212333");
+ check_base_class_offset(lv, (BB3*)(FF233*), ABISELECT(80,40), "GG2212333");
+ check_base_class_offset(lv, (FF233*), ABISELECT(64,32), "GG2212333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2212333.pg");
+ test_class_info(&lv, &cd_GG2212333);
+ dp->~GG2212333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2212333(Test_GG2212333, "GG2212333", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2212333C1Ev();
+extern void _ZN9GG2212333D1Ev();
+Name_Map name_map_GG2212333[] = {
+ NSPAIR(_ZN9GG2212333C1Ev),
+ NSPAIR(_ZN9GG2212333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE221;
+extern VTBL_ENTRY _ZTI5EE221[];
+extern VTBL_ENTRY _ZTV5EE221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE221[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF233;
+extern VTBL_ENTRY _ZTI5FF233[];
+extern VTBL_ENTRY _ZTV5FF233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF233[];
+static Base_Class bases_GG2212333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE221, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF233, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2212333[];
+extern void _ZN9GG22123333fooEv();
+extern void _ZN9GG22123333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22123333fooEv,_ZTv0_n20_N9GG22123333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22123333fooEv,_ZThn8_N9GG22123333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22123333barEv,_ZTv0_n12_N9GG22123333barEv)();
+extern void ABISELECT(_ZThn32_N9GG22123333barEv,_ZThn16_N9GG22123333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22123333barEv,_ZTv0_n12_N9GG22123333barEv)();
+extern void ABISELECT(_ZThn48_N9GG22123333barEv,_ZThn24_N9GG22123333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22123333fooEv,_ZTv0_n20_N9GG22123333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22123333fooEv,_ZThn32_N9GG22123333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22123333barEv,_ZTv0_n24_N9GG22123333barEv)();
+extern void ABISELECT(_ZThn64_N9GG22123333barEv,_ZThn32_N9GG22123333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22123333fooEv,_ZTv0_n12_N9GG22123333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22123333fooEv,_ZThn40_N9GG22123333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22123333barEv,_ZTv0_n16_N9GG22123333barEv)();
+extern void ABISELECT(_ZThn80_N9GG22123333barEv,_ZThn40_N9GG22123333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2212333[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2212333[0]),
+ (VTBL_ENTRY)&_ZN9GG22123333fooEv,
+ (VTBL_ENTRY)&_ZN9GG22123333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2212333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22123333fooEv,_ZTv0_n20_N9GG22123333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2212333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22123333barEv,_ZTv0_n12_N9GG22123333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2212333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22123333barEv,_ZTv0_n12_N9GG22123333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2212333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22123333fooEv,_ZTv0_n20_N9GG22123333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22123333barEv,_ZTv0_n24_N9GG22123333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2212333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22123333fooEv,_ZTv0_n12_N9GG22123333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22123333barEv,_ZTv0_n16_N9GG22123333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2212333[];
+extern void _ZN5EE2213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE221__9GG2212333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN5EE2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE221__9GG2212333[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE221__9GG2212333[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF2333fooEv();
+extern void _ZN5FF2333barEv();
+static VTBL_ENTRY _tg__ZTV5FF233__9GG2212333[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&_ZN5FF2333fooEv,
+ (VTBL_ENTRY)&_ZN5FF2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF233__9GG2212333[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF2333fooEv,_ZThn8_N5FF2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv)();
+extern void ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF233__9GG2212333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv),
+};
+static VTT_ENTRY vtt_GG2212333[] = {
+ {&(_ZTV9GG2212333[7]), 7,37},
+ {&(_ZTV9GG2212333[14]), 14,37},
+ {&(_ZTV9GG2212333[18]), 18,37},
+ {&(_ZTV9GG2212333[22]), 22,37},
+ {&(_ZTV9GG2212333[29]), 29,37},
+ {&(_ZTV9GG2212333[35]), 35,37},
+ {&(_tg__ZTV5EE221__9GG2212333[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE221__9GG2212333[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE221__9GG2212333[3]), 3,4},
+ {&(_tg__ZTV5FF233__9GG2212333[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF233__9GG2212333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF233__9GG2212333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2212333[];
+extern VTBL_ENTRY _ZTV9GG2212333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2212333[];
+static VTBL_ENTRY alt_thunk_names573[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2333fooEv,_ZThn8_N5FF2333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22123333barEv,_ZTv0_n16_N9GG22123333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22123333barEv,_ZThn40_N9GG22123333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22123333fooEv,_ZTv0_n12_N9GG22123333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22123333fooEv,_ZThn40_N9GG22123333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22123333barEv,_ZTv0_n24_N9GG22123333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22123333barEv,_ZThn32_N9GG22123333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22123333barEv,_ZTv0_n12_N9GG22123333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22123333barEv,_ZThn24_N9GG22123333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22123333barEv,_ZThn16_N9GG22123333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22123333fooEv,_ZTv0_n20_N9GG22123333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22123333fooEv,_ZThn32_N9GG22123333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22123333fooEv,_ZThn8_N9GG22123333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2212333 = { "GG2212333", // class name
+ bases_GG2212333, 5,
+ &(vtc_GG2212333[0]), // expected_vtbl_contents
+ &(vtt_GG2212333[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2212333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2212333),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2212333),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names573,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2213113 : virtual EE221 , virtual FF311 {
+ int pg;
+ virtual void foo(); // _ZN9GG22131133fooEv
+ virtual void bar(); // _ZN9GG22131133barEv
+ ~GG2213113(); // tgen
+ GG2213113(); // tgen
+};
+//SIG(1 GG2213113) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2213113 ::foo(){vfunc_called(this, "_ZN9GG22131133fooEv");}
+void GG2213113 ::bar(){vfunc_called(this, "_ZN9GG22131133barEv");}
+GG2213113 ::~GG2213113(){ note_dtor("GG2213113", this);} // tgen
+GG2213113 ::GG2213113(){ note_ctor("GG2213113", this);} // tgen
+
+static void Test_GG2213113()
+{
+ extern Class_Descriptor cd_GG2213113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2213113, buf);
+ GG2213113 *dp, &lv = *(dp=new (buf) GG2213113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2213113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2213113)");
+ check_base_class_offset(lv, (AA2*)(EE221*), ABISELECT(32,16), "GG2213113");
+ check_base_class_offset(lv, (BB2*)(EE221*), ABISELECT(48,24), "GG2213113");
+ check_base_class_offset(lv, (EE221*), ABISELECT(16,8), "GG2213113");
+ check_base_class_offset(lv, (AA3*)(FF311*), ABISELECT(80,40), "GG2213113");
+ check_base_class_offset(lv, (BB1*)(FF311*), ABISELECT(96,48), "GG2213113");
+ check_base_class_offset(lv, (FF311*), ABISELECT(64,32), "GG2213113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2213113.pg");
+ test_class_info(&lv, &cd_GG2213113);
+ dp->~GG2213113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2213113(Test_GG2213113, "GG2213113", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2213113C1Ev();
+extern void _ZN9GG2213113D1Ev();
+Name_Map name_map_GG2213113[] = {
+ NSPAIR(_ZN9GG2213113C1Ev),
+ NSPAIR(_ZN9GG2213113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE221;
+extern VTBL_ENTRY _ZTI5EE221[];
+extern VTBL_ENTRY _ZTV5EE221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE221[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF311;
+extern VTBL_ENTRY _ZTI5FF311[];
+extern VTBL_ENTRY _ZTV5FF311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF311[];
+static Base_Class bases_GG2213113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE221, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF311, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2213113[];
+extern void _ZN9GG22131133fooEv();
+extern void _ZN9GG22131133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22131133fooEv,_ZTv0_n20_N9GG22131133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22131133fooEv,_ZThn8_N9GG22131133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22131133barEv,_ZTv0_n12_N9GG22131133barEv)();
+extern void ABISELECT(_ZThn32_N9GG22131133barEv,_ZThn16_N9GG22131133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22131133barEv,_ZTv0_n12_N9GG22131133barEv)();
+extern void ABISELECT(_ZThn48_N9GG22131133barEv,_ZThn24_N9GG22131133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22131133fooEv,_ZTv0_n20_N9GG22131133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22131133fooEv,_ZThn32_N9GG22131133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22131133fooEv,_ZTv0_n12_N9GG22131133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22131133fooEv,_ZThn40_N9GG22131133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22131133barEv,_ZTv0_n16_N9GG22131133barEv)();
+extern void ABISELECT(_ZThn80_N9GG22131133barEv,_ZThn40_N9GG22131133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22131133fooEv,_ZTv0_n12_N9GG22131133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG22131133fooEv,_ZThn48_N9GG22131133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2213113[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2213113[0]),
+ (VTBL_ENTRY)&_ZN9GG22131133fooEv,
+ (VTBL_ENTRY)&_ZN9GG22131133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2213113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22131133fooEv,_ZTv0_n20_N9GG22131133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2213113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22131133barEv,_ZTv0_n12_N9GG22131133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2213113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22131133barEv,_ZTv0_n12_N9GG22131133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2213113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22131133fooEv,_ZTv0_n20_N9GG22131133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2213113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22131133fooEv,_ZTv0_n12_N9GG22131133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22131133barEv,_ZTv0_n16_N9GG22131133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2213113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22131133fooEv,_ZTv0_n12_N9GG22131133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2213113[];
+extern void _ZN5EE2213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE221__9GG2213113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN5EE2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE221__9GG2213113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE221__9GG2213113[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF3113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF311__9GG2213113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&_ZN5FF3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF311__9GG2213113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3113fooEv,_ZThn16_N5FF3113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF311__9GG2213113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+};
+static VTT_ENTRY vtt_GG2213113[] = {
+ {&(_ZTV9GG2213113[8]), 8,40},
+ {&(_ZTV9GG2213113[15]), 15,40},
+ {&(_ZTV9GG2213113[19]), 19,40},
+ {&(_ZTV9GG2213113[23]), 23,40},
+ {&(_ZTV9GG2213113[29]), 29,40},
+ {&(_ZTV9GG2213113[34]), 34,40},
+ {&(_ZTV9GG2213113[39]), 39,40},
+ {&(_tg__ZTV5EE221__9GG2213113[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE221__9GG2213113[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE221__9GG2213113[3]), 3,4},
+ {&(_tg__ZTV5FF311__9GG2213113[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF311__9GG2213113[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF311__9GG2213113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2213113[];
+extern VTBL_ENTRY _ZTV9GG2213113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2213113[];
+static VTBL_ENTRY alt_thunk_names574[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3113fooEv,_ZThn16_N5FF3113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22131133barEv,_ZTv0_n16_N9GG22131133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22131133barEv,_ZThn40_N9GG22131133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22131133fooEv,_ZTv0_n12_N9GG22131133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22131133fooEv,_ZThn48_N9GG22131133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22131133fooEv,_ZThn40_N9GG22131133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22131133barEv,_ZTv0_n12_N9GG22131133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22131133barEv,_ZThn24_N9GG22131133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22131133barEv,_ZThn16_N9GG22131133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22131133fooEv,_ZTv0_n20_N9GG22131133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22131133fooEv,_ZThn32_N9GG22131133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22131133fooEv,_ZThn8_N9GG22131133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2213113 = { "GG2213113", // class name
+ bases_GG2213113, 6,
+ &(vtc_GG2213113[0]), // expected_vtbl_contents
+ &(vtt_GG2213113[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2213113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2213113),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2213113),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names574,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2213123 : virtual EE221 , virtual FF312 {
+ int pg;
+ virtual void foo(); // _ZN9GG22131233fooEv
+ virtual void bar(); // _ZN9GG22131233barEv
+ ~GG2213123(); // tgen
+ GG2213123(); // tgen
+};
+//SIG(1 GG2213123) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2213123 ::foo(){vfunc_called(this, "_ZN9GG22131233fooEv");}
+void GG2213123 ::bar(){vfunc_called(this, "_ZN9GG22131233barEv");}
+GG2213123 ::~GG2213123(){ note_dtor("GG2213123", this);} // tgen
+GG2213123 ::GG2213123(){ note_ctor("GG2213123", this);} // tgen
+
+static void Test_GG2213123()
+{
+ extern Class_Descriptor cd_GG2213123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2213123, buf);
+ GG2213123 *dp, &lv = *(dp=new (buf) GG2213123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2213123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2213123)");
+ check_base_class_offset(lv, (AA2*)(EE221*), ABISELECT(32,16), "GG2213123");
+ check_base_class_offset(lv, (BB2*)(EE221*), ABISELECT(48,24), "GG2213123");
+ check_base_class_offset(lv, (EE221*), ABISELECT(16,8), "GG2213123");
+ check_base_class_offset(lv, (AA3*)(FF312*), ABISELECT(80,40), "GG2213123");
+ check_base_class_offset(lv, (BB1*)(FF312*), ABISELECT(96,48), "GG2213123");
+ check_base_class_offset(lv, (FF312*), ABISELECT(64,32), "GG2213123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2213123.pg");
+ test_class_info(&lv, &cd_GG2213123);
+ dp->~GG2213123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2213123(Test_GG2213123, "GG2213123", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2213123C1Ev();
+extern void _ZN9GG2213123D1Ev();
+Name_Map name_map_GG2213123[] = {
+ NSPAIR(_ZN9GG2213123C1Ev),
+ NSPAIR(_ZN9GG2213123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE221;
+extern VTBL_ENTRY _ZTI5EE221[];
+extern VTBL_ENTRY _ZTV5EE221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE221[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF312;
+extern VTBL_ENTRY _ZTI5FF312[];
+extern VTBL_ENTRY _ZTV5FF312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF312[];
+static Base_Class bases_GG2213123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE221, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF312, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2213123[];
+extern void _ZN9GG22131233fooEv();
+extern void _ZN9GG22131233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22131233fooEv,_ZTv0_n20_N9GG22131233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22131233fooEv,_ZThn8_N9GG22131233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22131233barEv,_ZTv0_n12_N9GG22131233barEv)();
+extern void ABISELECT(_ZThn32_N9GG22131233barEv,_ZThn16_N9GG22131233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22131233barEv,_ZTv0_n12_N9GG22131233barEv)();
+extern void ABISELECT(_ZThn48_N9GG22131233barEv,_ZThn24_N9GG22131233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22131233barEv,_ZTv0_n20_N9GG22131233barEv)();
+extern void ABISELECT(_ZThn64_N9GG22131233barEv,_ZThn32_N9GG22131233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22131233fooEv,_ZTv0_n12_N9GG22131233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22131233fooEv,_ZThn40_N9GG22131233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22131233barEv,_ZTv0_n16_N9GG22131233barEv)();
+extern void ABISELECT(_ZThn80_N9GG22131233barEv,_ZThn40_N9GG22131233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22131233fooEv,_ZTv0_n12_N9GG22131233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG22131233fooEv,_ZThn48_N9GG22131233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2213123[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2213123[0]),
+ (VTBL_ENTRY)&_ZN9GG22131233fooEv,
+ (VTBL_ENTRY)&_ZN9GG22131233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2213123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22131233fooEv,_ZTv0_n20_N9GG22131233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2213123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22131233barEv,_ZTv0_n12_N9GG22131233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2213123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22131233barEv,_ZTv0_n12_N9GG22131233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2213123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22131233barEv,_ZTv0_n20_N9GG22131233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2213123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22131233fooEv,_ZTv0_n12_N9GG22131233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22131233barEv,_ZTv0_n16_N9GG22131233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2213123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22131233fooEv,_ZTv0_n12_N9GG22131233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2213123[];
+extern void _ZN5EE2213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE221__9GG2213123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN5EE2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE221__9GG2213123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE221__9GG2213123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF3123barEv();
+static VTBL_ENTRY _tg__ZTV5FF312__9GG2213123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN5FF3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv)();
+extern void ABISELECT(_ZThn16_N5FF3123barEv,_ZThn8_N5FF3123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF312__9GG2213123[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF312__9GG2213123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG2213123[] = {
+ {&(_ZTV9GG2213123[8]), 8,40},
+ {&(_ZTV9GG2213123[15]), 15,40},
+ {&(_ZTV9GG2213123[19]), 19,40},
+ {&(_ZTV9GG2213123[23]), 23,40},
+ {&(_ZTV9GG2213123[29]), 29,40},
+ {&(_ZTV9GG2213123[34]), 34,40},
+ {&(_ZTV9GG2213123[39]), 39,40},
+ {&(_tg__ZTV5EE221__9GG2213123[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE221__9GG2213123[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE221__9GG2213123[3]), 3,4},
+ {&(_tg__ZTV5FF312__9GG2213123[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF312__9GG2213123[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF312__9GG2213123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2213123[];
+extern VTBL_ENTRY _ZTV9GG2213123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2213123[];
+static VTBL_ENTRY alt_thunk_names575[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3123barEv,_ZThn8_N5FF3123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22131233barEv,_ZTv0_n16_N9GG22131233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22131233barEv,_ZThn40_N9GG22131233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22131233fooEv,_ZTv0_n12_N9GG22131233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22131233fooEv,_ZThn48_N9GG22131233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22131233fooEv,_ZThn40_N9GG22131233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22131233barEv,_ZTv0_n20_N9GG22131233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22131233barEv,_ZThn32_N9GG22131233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22131233barEv,_ZTv0_n12_N9GG22131233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22131233barEv,_ZThn24_N9GG22131233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22131233barEv,_ZThn16_N9GG22131233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22131233fooEv,_ZTv0_n20_N9GG22131233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22131233fooEv,_ZThn8_N9GG22131233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2213123 = { "GG2213123", // class name
+ bases_GG2213123, 6,
+ &(vtc_GG2213123[0]), // expected_vtbl_contents
+ &(vtt_GG2213123[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2213123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2213123),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2213123),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names575,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2213133 : virtual EE221 , virtual FF313 {
+ int pg;
+ virtual void foo(); // _ZN9GG22131333fooEv
+ virtual void bar(); // _ZN9GG22131333barEv
+ ~GG2213133(); // tgen
+ GG2213133(); // tgen
+};
+//SIG(1 GG2213133) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2213133 ::foo(){vfunc_called(this, "_ZN9GG22131333fooEv");}
+void GG2213133 ::bar(){vfunc_called(this, "_ZN9GG22131333barEv");}
+GG2213133 ::~GG2213133(){ note_dtor("GG2213133", this);} // tgen
+GG2213133 ::GG2213133(){ note_ctor("GG2213133", this);} // tgen
+
+static void Test_GG2213133()
+{
+ extern Class_Descriptor cd_GG2213133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2213133, buf);
+ GG2213133 *dp, &lv = *(dp=new (buf) GG2213133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2213133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2213133)");
+ check_base_class_offset(lv, (AA2*)(EE221*), ABISELECT(32,16), "GG2213133");
+ check_base_class_offset(lv, (BB2*)(EE221*), ABISELECT(48,24), "GG2213133");
+ check_base_class_offset(lv, (EE221*), ABISELECT(16,8), "GG2213133");
+ check_base_class_offset(lv, (AA3*)(FF313*), ABISELECT(80,40), "GG2213133");
+ check_base_class_offset(lv, (BB1*)(FF313*), ABISELECT(96,48), "GG2213133");
+ check_base_class_offset(lv, (FF313*), ABISELECT(64,32), "GG2213133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2213133.pg");
+ test_class_info(&lv, &cd_GG2213133);
+ dp->~GG2213133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2213133(Test_GG2213133, "GG2213133", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2213133C1Ev();
+extern void _ZN9GG2213133D1Ev();
+Name_Map name_map_GG2213133[] = {
+ NSPAIR(_ZN9GG2213133C1Ev),
+ NSPAIR(_ZN9GG2213133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE221;
+extern VTBL_ENTRY _ZTI5EE221[];
+extern VTBL_ENTRY _ZTV5EE221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE221[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF313;
+extern VTBL_ENTRY _ZTI5FF313[];
+extern VTBL_ENTRY _ZTV5FF313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF313[];
+static Base_Class bases_GG2213133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE221, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF313, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2213133[];
+extern void _ZN9GG22131333fooEv();
+extern void _ZN9GG22131333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22131333fooEv,_ZTv0_n20_N9GG22131333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22131333fooEv,_ZThn8_N9GG22131333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22131333barEv,_ZTv0_n12_N9GG22131333barEv)();
+extern void ABISELECT(_ZThn32_N9GG22131333barEv,_ZThn16_N9GG22131333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22131333barEv,_ZTv0_n12_N9GG22131333barEv)();
+extern void ABISELECT(_ZThn48_N9GG22131333barEv,_ZThn24_N9GG22131333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22131333fooEv,_ZTv0_n20_N9GG22131333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22131333fooEv,_ZThn32_N9GG22131333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22131333barEv,_ZTv0_n24_N9GG22131333barEv)();
+extern void ABISELECT(_ZThn64_N9GG22131333barEv,_ZThn32_N9GG22131333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22131333fooEv,_ZTv0_n12_N9GG22131333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22131333fooEv,_ZThn40_N9GG22131333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22131333barEv,_ZTv0_n16_N9GG22131333barEv)();
+extern void ABISELECT(_ZThn80_N9GG22131333barEv,_ZThn40_N9GG22131333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22131333fooEv,_ZTv0_n12_N9GG22131333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG22131333fooEv,_ZThn48_N9GG22131333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2213133[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2213133[0]),
+ (VTBL_ENTRY)&_ZN9GG22131333fooEv,
+ (VTBL_ENTRY)&_ZN9GG22131333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2213133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22131333fooEv,_ZTv0_n20_N9GG22131333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2213133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22131333barEv,_ZTv0_n12_N9GG22131333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2213133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22131333barEv,_ZTv0_n12_N9GG22131333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2213133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22131333fooEv,_ZTv0_n20_N9GG22131333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22131333barEv,_ZTv0_n24_N9GG22131333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2213133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22131333fooEv,_ZTv0_n12_N9GG22131333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22131333barEv,_ZTv0_n16_N9GG22131333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2213133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22131333fooEv,_ZTv0_n12_N9GG22131333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2213133[];
+extern void _ZN5EE2213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE221__9GG2213133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN5EE2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE221__9GG2213133[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE221__9GG2213133[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF3133fooEv();
+extern void _ZN5FF3133barEv();
+static VTBL_ENTRY _tg__ZTV5FF313__9GG2213133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&_ZN5FF3133fooEv,
+ (VTBL_ENTRY)&_ZN5FF3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv)();
+extern void ABISELECT(_ZThn16_N5FF3133barEv,_ZThn8_N5FF3133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF313__9GG2213133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3133fooEv,_ZThn16_N5FF3133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF313__9GG2213133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+};
+static VTT_ENTRY vtt_GG2213133[] = {
+ {&(_ZTV9GG2213133[8]), 8,42},
+ {&(_ZTV9GG2213133[15]), 15,42},
+ {&(_ZTV9GG2213133[19]), 19,42},
+ {&(_ZTV9GG2213133[23]), 23,42},
+ {&(_ZTV9GG2213133[30]), 30,42},
+ {&(_ZTV9GG2213133[36]), 36,42},
+ {&(_ZTV9GG2213133[41]), 41,42},
+ {&(_tg__ZTV5EE221__9GG2213133[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE221__9GG2213133[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE221__9GG2213133[3]), 3,4},
+ {&(_tg__ZTV5FF313__9GG2213133[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF313__9GG2213133[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF313__9GG2213133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2213133[];
+extern VTBL_ENTRY _ZTV9GG2213133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2213133[];
+static VTBL_ENTRY alt_thunk_names576[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3133barEv,_ZThn8_N5FF3133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3133fooEv,_ZThn16_N5FF3133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22131333barEv,_ZTv0_n16_N9GG22131333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22131333barEv,_ZThn40_N9GG22131333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22131333fooEv,_ZTv0_n12_N9GG22131333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22131333fooEv,_ZThn48_N9GG22131333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22131333fooEv,_ZThn40_N9GG22131333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22131333barEv,_ZTv0_n24_N9GG22131333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22131333barEv,_ZThn32_N9GG22131333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22131333barEv,_ZTv0_n12_N9GG22131333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22131333barEv,_ZThn24_N9GG22131333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22131333barEv,_ZThn16_N9GG22131333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22131333fooEv,_ZTv0_n20_N9GG22131333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22131333fooEv,_ZThn32_N9GG22131333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22131333fooEv,_ZThn8_N9GG22131333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2213133 = { "GG2213133", // class name
+ bases_GG2213133, 6,
+ &(vtc_GG2213133[0]), // expected_vtbl_contents
+ &(vtt_GG2213133[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2213133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2213133),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2213133),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names576,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2213213 : virtual EE221 , virtual FF321 {
+ int pg;
+ virtual void foo(); // _ZN9GG22132133fooEv
+ virtual void bar(); // _ZN9GG22132133barEv
+ ~GG2213213(); // tgen
+ GG2213213(); // tgen
+};
+//SIG(1 GG2213213) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG2213213 ::foo(){vfunc_called(this, "_ZN9GG22132133fooEv");}
+void GG2213213 ::bar(){vfunc_called(this, "_ZN9GG22132133barEv");}
+GG2213213 ::~GG2213213(){ note_dtor("GG2213213", this);} // tgen
+GG2213213 ::GG2213213(){ note_ctor("GG2213213", this);} // tgen
+
+static void Test_GG2213213()
+{
+ extern Class_Descriptor cd_GG2213213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2213213, buf);
+ GG2213213 *dp, &lv = *(dp=new (buf) GG2213213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2213213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2213213)");
+ check_base_class_offset(lv, (AA2*)(EE221*), ABISELECT(32,16), "GG2213213");
+ check_base_class_offset(lv, (BB2*)(EE221*), ABISELECT(48,24), "GG2213213");
+ check_base_class_offset(lv, (BB2*)(FF321*), ABISELECT(48,24), "GG2213213");
+ check_base_class_offset(lv, (EE221*), ABISELECT(16,8), "GG2213213");
+ check_base_class_offset(lv, (AA3*)(FF321*), ABISELECT(80,40), "GG2213213");
+ check_base_class_offset(lv, (FF321*), ABISELECT(64,32), "GG2213213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2213213.pg");
+ test_class_info(&lv, &cd_GG2213213);
+ dp->~GG2213213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2213213(Test_GG2213213, "GG2213213", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2213213C1Ev();
+extern void _ZN9GG2213213D1Ev();
+Name_Map name_map_GG2213213[] = {
+ NSPAIR(_ZN9GG2213213C1Ev),
+ NSPAIR(_ZN9GG2213213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE221;
+extern VTBL_ENTRY _ZTI5EE221[];
+extern VTBL_ENTRY _ZTV5EE221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE221[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF321;
+extern VTBL_ENTRY _ZTI5FF321[];
+extern VTBL_ENTRY _ZTV5FF321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF321[];
+static Base_Class bases_GG2213213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE221, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF321, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2213213[];
+extern void _ZN9GG22132133fooEv();
+extern void _ZN9GG22132133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22132133fooEv,_ZTv0_n20_N9GG22132133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22132133fooEv,_ZThn8_N9GG22132133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22132133barEv,_ZTv0_n12_N9GG22132133barEv)();
+extern void ABISELECT(_ZThn32_N9GG22132133barEv,_ZThn16_N9GG22132133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22132133barEv,_ZTv0_n12_N9GG22132133barEv)();
+extern void ABISELECT(_ZThn48_N9GG22132133barEv,_ZThn24_N9GG22132133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22132133fooEv,_ZTv0_n20_N9GG22132133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22132133fooEv,_ZThn32_N9GG22132133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22132133fooEv,_ZTv0_n12_N9GG22132133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22132133fooEv,_ZThn40_N9GG22132133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22132133barEv,_ZTv0_n16_N9GG22132133barEv)();
+extern void ABISELECT(_ZThn80_N9GG22132133barEv,_ZThn40_N9GG22132133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2213213[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2213213[0]),
+ (VTBL_ENTRY)&_ZN9GG22132133fooEv,
+ (VTBL_ENTRY)&_ZN9GG22132133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2213213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22132133fooEv,_ZTv0_n20_N9GG22132133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2213213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22132133barEv,_ZTv0_n12_N9GG22132133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2213213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22132133barEv,_ZTv0_n12_N9GG22132133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2213213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22132133fooEv,_ZTv0_n20_N9GG22132133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2213213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22132133fooEv,_ZTv0_n12_N9GG22132133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22132133barEv,_ZTv0_n16_N9GG22132133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2213213[];
+extern void _ZN5EE2213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE221__9GG2213213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN5EE2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE221__9GG2213213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE221__9GG2213213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF3213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF321__9GG2213213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN5FF3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3213fooEv,_ZThn8_N5FF3213fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF321__9GG2213213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF321__9GG2213213[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG2213213[] = {
+ {&(_ZTV9GG2213213[7]), 7,35},
+ {&(_ZTV9GG2213213[14]), 14,35},
+ {&(_ZTV9GG2213213[18]), 18,35},
+ {&(_ZTV9GG2213213[22]), 22,35},
+ {&(_ZTV9GG2213213[28]), 28,35},
+ {&(_ZTV9GG2213213[33]), 33,35},
+ {&(_tg__ZTV5EE221__9GG2213213[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE221__9GG2213213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE221__9GG2213213[3]), 3,4},
+ {&(_tg__ZTV5FF321__9GG2213213[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF321__9GG2213213[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF321__9GG2213213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2213213[];
+extern VTBL_ENTRY _ZTV9GG2213213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2213213[];
+static VTBL_ENTRY alt_thunk_names577[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3213fooEv,_ZThn8_N5FF3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22132133barEv,_ZTv0_n16_N9GG22132133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22132133barEv,_ZThn40_N9GG22132133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22132133fooEv,_ZTv0_n12_N9GG22132133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22132133fooEv,_ZThn40_N9GG22132133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22132133barEv,_ZTv0_n12_N9GG22132133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22132133barEv,_ZThn24_N9GG22132133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22132133barEv,_ZThn16_N9GG22132133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22132133fooEv,_ZTv0_n20_N9GG22132133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22132133fooEv,_ZThn32_N9GG22132133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22132133fooEv,_ZThn8_N9GG22132133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2213213 = { "GG2213213", // class name
+ bases_GG2213213, 5,
+ &(vtc_GG2213213[0]), // expected_vtbl_contents
+ &(vtt_GG2213213[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2213213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2213213),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2213213),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names577,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2213223 : virtual EE221 , virtual FF322 {
+ int pg;
+ virtual void foo(); // _ZN9GG22132233fooEv
+ virtual void bar(); // _ZN9GG22132233barEv
+ ~GG2213223(); // tgen
+ GG2213223(); // tgen
+};
+//SIG(1 GG2213223) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG2213223 ::foo(){vfunc_called(this, "_ZN9GG22132233fooEv");}
+void GG2213223 ::bar(){vfunc_called(this, "_ZN9GG22132233barEv");}
+GG2213223 ::~GG2213223(){ note_dtor("GG2213223", this);} // tgen
+GG2213223 ::GG2213223(){ note_ctor("GG2213223", this);} // tgen
+
+static void Test_GG2213223()
+{
+ extern Class_Descriptor cd_GG2213223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2213223, buf);
+ GG2213223 *dp, &lv = *(dp=new (buf) GG2213223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2213223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2213223)");
+ check_base_class_offset(lv, (AA2*)(EE221*), ABISELECT(32,16), "GG2213223");
+ check_base_class_offset(lv, (BB2*)(EE221*), ABISELECT(48,24), "GG2213223");
+ check_base_class_offset(lv, (BB2*)(FF322*), ABISELECT(48,24), "GG2213223");
+ check_base_class_offset(lv, (EE221*), ABISELECT(16,8), "GG2213223");
+ check_base_class_offset(lv, (AA3*)(FF322*), ABISELECT(80,40), "GG2213223");
+ check_base_class_offset(lv, (FF322*), ABISELECT(64,32), "GG2213223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2213223.pg");
+ test_class_info(&lv, &cd_GG2213223);
+ dp->~GG2213223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2213223(Test_GG2213223, "GG2213223", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2213223C1Ev();
+extern void _ZN9GG2213223D1Ev();
+Name_Map name_map_GG2213223[] = {
+ NSPAIR(_ZN9GG2213223C1Ev),
+ NSPAIR(_ZN9GG2213223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE221;
+extern VTBL_ENTRY _ZTI5EE221[];
+extern VTBL_ENTRY _ZTV5EE221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE221[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF322;
+extern VTBL_ENTRY _ZTI5FF322[];
+extern VTBL_ENTRY _ZTV5FF322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF322[];
+static Base_Class bases_GG2213223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE221, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF322, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2213223[];
+extern void _ZN9GG22132233fooEv();
+extern void _ZN9GG22132233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22132233fooEv,_ZTv0_n20_N9GG22132233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22132233fooEv,_ZThn8_N9GG22132233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22132233barEv,_ZTv0_n12_N9GG22132233barEv)();
+extern void ABISELECT(_ZThn32_N9GG22132233barEv,_ZThn16_N9GG22132233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22132233barEv,_ZTv0_n12_N9GG22132233barEv)();
+extern void ABISELECT(_ZThn48_N9GG22132233barEv,_ZThn24_N9GG22132233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22132233barEv,_ZTv0_n20_N9GG22132233barEv)();
+extern void ABISELECT(_ZThn64_N9GG22132233barEv,_ZThn32_N9GG22132233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22132233fooEv,_ZTv0_n12_N9GG22132233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22132233fooEv,_ZThn40_N9GG22132233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22132233barEv,_ZTv0_n16_N9GG22132233barEv)();
+extern void ABISELECT(_ZThn80_N9GG22132233barEv,_ZThn40_N9GG22132233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2213223[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2213223[0]),
+ (VTBL_ENTRY)&_ZN9GG22132233fooEv,
+ (VTBL_ENTRY)&_ZN9GG22132233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2213223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22132233fooEv,_ZTv0_n20_N9GG22132233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2213223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22132233barEv,_ZTv0_n12_N9GG22132233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2213223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22132233barEv,_ZTv0_n12_N9GG22132233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2213223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22132233barEv,_ZTv0_n20_N9GG22132233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2213223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22132233fooEv,_ZTv0_n12_N9GG22132233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22132233barEv,_ZTv0_n16_N9GG22132233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2213223[];
+extern void _ZN5EE2213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE221__9GG2213223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN5EE2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE221__9GG2213223[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE221__9GG2213223[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF3223barEv();
+static VTBL_ENTRY _tg__ZTV5FF322__9GG2213223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN5FF3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv)();
+extern void ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF322__9GG2213223[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF322__9GG2213223[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv),
+};
+static VTT_ENTRY vtt_GG2213223[] = {
+ {&(_ZTV9GG2213223[7]), 7,35},
+ {&(_ZTV9GG2213223[14]), 14,35},
+ {&(_ZTV9GG2213223[18]), 18,35},
+ {&(_ZTV9GG2213223[22]), 22,35},
+ {&(_ZTV9GG2213223[28]), 28,35},
+ {&(_ZTV9GG2213223[33]), 33,35},
+ {&(_tg__ZTV5EE221__9GG2213223[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE221__9GG2213223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE221__9GG2213223[3]), 3,4},
+ {&(_tg__ZTV5FF322__9GG2213223[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF322__9GG2213223[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF322__9GG2213223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2213223[];
+extern VTBL_ENTRY _ZTV9GG2213223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2213223[];
+static VTBL_ENTRY alt_thunk_names578[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22132233barEv,_ZTv0_n16_N9GG22132233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22132233barEv,_ZThn40_N9GG22132233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22132233fooEv,_ZTv0_n12_N9GG22132233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22132233fooEv,_ZThn40_N9GG22132233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22132233barEv,_ZTv0_n20_N9GG22132233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22132233barEv,_ZThn32_N9GG22132233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22132233barEv,_ZTv0_n12_N9GG22132233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22132233barEv,_ZThn24_N9GG22132233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22132233barEv,_ZThn16_N9GG22132233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22132233fooEv,_ZTv0_n20_N9GG22132233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22132233fooEv,_ZThn8_N9GG22132233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2213223 = { "GG2213223", // class name
+ bases_GG2213223, 5,
+ &(vtc_GG2213223[0]), // expected_vtbl_contents
+ &(vtt_GG2213223[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2213223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2213223),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2213223),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names578,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2213233 : virtual EE221 , virtual FF323 {
+ int pg;
+ virtual void foo(); // _ZN9GG22132333fooEv
+ virtual void bar(); // _ZN9GG22132333barEv
+ ~GG2213233(); // tgen
+ GG2213233(); // tgen
+};
+//SIG(1 GG2213233) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2213233 ::foo(){vfunc_called(this, "_ZN9GG22132333fooEv");}
+void GG2213233 ::bar(){vfunc_called(this, "_ZN9GG22132333barEv");}
+GG2213233 ::~GG2213233(){ note_dtor("GG2213233", this);} // tgen
+GG2213233 ::GG2213233(){ note_ctor("GG2213233", this);} // tgen
+
+static void Test_GG2213233()
+{
+ extern Class_Descriptor cd_GG2213233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2213233, buf);
+ GG2213233 *dp, &lv = *(dp=new (buf) GG2213233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2213233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2213233)");
+ check_base_class_offset(lv, (AA2*)(EE221*), ABISELECT(32,16), "GG2213233");
+ check_base_class_offset(lv, (BB2*)(EE221*), ABISELECT(48,24), "GG2213233");
+ check_base_class_offset(lv, (BB2*)(FF323*), ABISELECT(48,24), "GG2213233");
+ check_base_class_offset(lv, (EE221*), ABISELECT(16,8), "GG2213233");
+ check_base_class_offset(lv, (AA3*)(FF323*), ABISELECT(80,40), "GG2213233");
+ check_base_class_offset(lv, (FF323*), ABISELECT(64,32), "GG2213233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2213233.pg");
+ test_class_info(&lv, &cd_GG2213233);
+ dp->~GG2213233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2213233(Test_GG2213233, "GG2213233", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2213233C1Ev();
+extern void _ZN9GG2213233D1Ev();
+Name_Map name_map_GG2213233[] = {
+ NSPAIR(_ZN9GG2213233C1Ev),
+ NSPAIR(_ZN9GG2213233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE221;
+extern VTBL_ENTRY _ZTI5EE221[];
+extern VTBL_ENTRY _ZTV5EE221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE221[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF323;
+extern VTBL_ENTRY _ZTI5FF323[];
+extern VTBL_ENTRY _ZTV5FF323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF323[];
+static Base_Class bases_GG2213233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE221, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF323, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2213233[];
+extern void _ZN9GG22132333fooEv();
+extern void _ZN9GG22132333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22132333fooEv,_ZTv0_n20_N9GG22132333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22132333fooEv,_ZThn8_N9GG22132333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22132333barEv,_ZTv0_n12_N9GG22132333barEv)();
+extern void ABISELECT(_ZThn32_N9GG22132333barEv,_ZThn16_N9GG22132333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22132333barEv,_ZTv0_n12_N9GG22132333barEv)();
+extern void ABISELECT(_ZThn48_N9GG22132333barEv,_ZThn24_N9GG22132333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22132333fooEv,_ZTv0_n20_N9GG22132333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22132333fooEv,_ZThn32_N9GG22132333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22132333barEv,_ZTv0_n24_N9GG22132333barEv)();
+extern void ABISELECT(_ZThn64_N9GG22132333barEv,_ZThn32_N9GG22132333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22132333fooEv,_ZTv0_n12_N9GG22132333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22132333fooEv,_ZThn40_N9GG22132333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22132333barEv,_ZTv0_n16_N9GG22132333barEv)();
+extern void ABISELECT(_ZThn80_N9GG22132333barEv,_ZThn40_N9GG22132333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2213233[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2213233[0]),
+ (VTBL_ENTRY)&_ZN9GG22132333fooEv,
+ (VTBL_ENTRY)&_ZN9GG22132333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2213233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22132333fooEv,_ZTv0_n20_N9GG22132333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2213233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22132333barEv,_ZTv0_n12_N9GG22132333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2213233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22132333barEv,_ZTv0_n12_N9GG22132333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2213233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22132333fooEv,_ZTv0_n20_N9GG22132333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22132333barEv,_ZTv0_n24_N9GG22132333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2213233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22132333fooEv,_ZTv0_n12_N9GG22132333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22132333barEv,_ZTv0_n16_N9GG22132333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2213233[];
+extern void _ZN5EE2213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE221__9GG2213233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN5EE2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE221__9GG2213233[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE221__9GG2213233[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF3233fooEv();
+extern void _ZN5FF3233barEv();
+static VTBL_ENTRY _tg__ZTV5FF323__9GG2213233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&_ZN5FF3233fooEv,
+ (VTBL_ENTRY)&_ZN5FF3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3233fooEv,_ZThn8_N5FF3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv)();
+extern void ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF323__9GG2213233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF323__9GG2213233[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv),
+};
+static VTT_ENTRY vtt_GG2213233[] = {
+ {&(_ZTV9GG2213233[7]), 7,37},
+ {&(_ZTV9GG2213233[14]), 14,37},
+ {&(_ZTV9GG2213233[18]), 18,37},
+ {&(_ZTV9GG2213233[22]), 22,37},
+ {&(_ZTV9GG2213233[29]), 29,37},
+ {&(_ZTV9GG2213233[35]), 35,37},
+ {&(_tg__ZTV5EE221__9GG2213233[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE221__9GG2213233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE221__9GG2213233[3]), 3,4},
+ {&(_tg__ZTV5FF323__9GG2213233[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF323__9GG2213233[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF323__9GG2213233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2213233[];
+extern VTBL_ENTRY _ZTV9GG2213233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2213233[];
+static VTBL_ENTRY alt_thunk_names579[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3233fooEv,_ZThn8_N5FF3233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22132333barEv,_ZTv0_n16_N9GG22132333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22132333barEv,_ZThn40_N9GG22132333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22132333fooEv,_ZTv0_n12_N9GG22132333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22132333fooEv,_ZThn40_N9GG22132333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22132333barEv,_ZTv0_n24_N9GG22132333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22132333barEv,_ZThn32_N9GG22132333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22132333barEv,_ZTv0_n12_N9GG22132333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22132333barEv,_ZThn24_N9GG22132333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22132333barEv,_ZThn16_N9GG22132333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22132333fooEv,_ZTv0_n20_N9GG22132333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22132333fooEv,_ZThn32_N9GG22132333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22132333fooEv,_ZThn8_N9GG22132333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2213233 = { "GG2213233", // class name
+ bases_GG2213233, 5,
+ &(vtc_GG2213233[0]), // expected_vtbl_contents
+ &(vtt_GG2213233[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2213233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2213233),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2213233),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names579,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2213313 : virtual EE221 , virtual FF331 {
+ int pg;
+ virtual void foo(); // _ZN9GG22133133fooEv
+ virtual void bar(); // _ZN9GG22133133barEv
+ ~GG2213313(); // tgen
+ GG2213313(); // tgen
+};
+//SIG(1 GG2213313) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2213313 ::foo(){vfunc_called(this, "_ZN9GG22133133fooEv");}
+void GG2213313 ::bar(){vfunc_called(this, "_ZN9GG22133133barEv");}
+GG2213313 ::~GG2213313(){ note_dtor("GG2213313", this);} // tgen
+GG2213313 ::GG2213313(){ note_ctor("GG2213313", this);} // tgen
+
+static void Test_GG2213313()
+{
+ extern Class_Descriptor cd_GG2213313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2213313, buf);
+ GG2213313 *dp, &lv = *(dp=new (buf) GG2213313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2213313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2213313)");
+ check_base_class_offset(lv, (AA2*)(EE221*), ABISELECT(32,16), "GG2213313");
+ check_base_class_offset(lv, (BB2*)(EE221*), ABISELECT(48,24), "GG2213313");
+ check_base_class_offset(lv, (EE221*), ABISELECT(16,8), "GG2213313");
+ check_base_class_offset(lv, (AA3*)(FF331*), ABISELECT(80,40), "GG2213313");
+ check_base_class_offset(lv, (BB3*)(FF331*), ABISELECT(96,48), "GG2213313");
+ check_base_class_offset(lv, (FF331*), ABISELECT(64,32), "GG2213313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2213313.pg");
+ test_class_info(&lv, &cd_GG2213313);
+ dp->~GG2213313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2213313(Test_GG2213313, "GG2213313", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2213313C1Ev();
+extern void _ZN9GG2213313D1Ev();
+Name_Map name_map_GG2213313[] = {
+ NSPAIR(_ZN9GG2213313C1Ev),
+ NSPAIR(_ZN9GG2213313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE221;
+extern VTBL_ENTRY _ZTI5EE221[];
+extern VTBL_ENTRY _ZTV5EE221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE221[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF331;
+extern VTBL_ENTRY _ZTI5FF331[];
+extern VTBL_ENTRY _ZTV5FF331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF331[];
+static Base_Class bases_GG2213313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE221, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF331, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2213313[];
+extern void _ZN9GG22133133fooEv();
+extern void _ZN9GG22133133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22133133fooEv,_ZTv0_n20_N9GG22133133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22133133fooEv,_ZThn8_N9GG22133133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22133133barEv,_ZTv0_n12_N9GG22133133barEv)();
+extern void ABISELECT(_ZThn32_N9GG22133133barEv,_ZThn16_N9GG22133133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22133133barEv,_ZTv0_n12_N9GG22133133barEv)();
+extern void ABISELECT(_ZThn48_N9GG22133133barEv,_ZThn24_N9GG22133133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22133133fooEv,_ZTv0_n20_N9GG22133133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22133133fooEv,_ZThn32_N9GG22133133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22133133fooEv,_ZTv0_n12_N9GG22133133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22133133fooEv,_ZThn40_N9GG22133133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22133133barEv,_ZTv0_n16_N9GG22133133barEv)();
+extern void ABISELECT(_ZThn80_N9GG22133133barEv,_ZThn40_N9GG22133133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22133133fooEv,_ZTv0_n12_N9GG22133133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG22133133fooEv,_ZThn48_N9GG22133133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22133133barEv,_ZTv0_n16_N9GG22133133barEv)();
+extern void ABISELECT(_ZThn96_N9GG22133133barEv,_ZThn48_N9GG22133133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2213313[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2213313[0]),
+ (VTBL_ENTRY)&_ZN9GG22133133fooEv,
+ (VTBL_ENTRY)&_ZN9GG22133133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2213313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22133133fooEv,_ZTv0_n20_N9GG22133133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2213313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22133133barEv,_ZTv0_n12_N9GG22133133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2213313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22133133barEv,_ZTv0_n12_N9GG22133133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2213313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22133133fooEv,_ZTv0_n20_N9GG22133133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2213313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22133133fooEv,_ZTv0_n12_N9GG22133133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22133133barEv,_ZTv0_n16_N9GG22133133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2213313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22133133fooEv,_ZTv0_n12_N9GG22133133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22133133barEv,_ZTv0_n16_N9GG22133133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2213313[];
+extern void _ZN5EE2213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE221__9GG2213313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN5EE2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE221__9GG2213313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE221__9GG2213313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF3313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF331__9GG2213313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&_ZN5FF3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF331__9GG2213313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3313fooEv,_ZThn16_N5FF3313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF331__9GG2213313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG2213313[] = {
+ {&(_ZTV9GG2213313[8]), 8,42},
+ {&(_ZTV9GG2213313[15]), 15,42},
+ {&(_ZTV9GG2213313[19]), 19,42},
+ {&(_ZTV9GG2213313[23]), 23,42},
+ {&(_ZTV9GG2213313[29]), 29,42},
+ {&(_ZTV9GG2213313[34]), 34,42},
+ {&(_ZTV9GG2213313[40]), 40,42},
+ {&(_tg__ZTV5EE221__9GG2213313[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE221__9GG2213313[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE221__9GG2213313[3]), 3,4},
+ {&(_tg__ZTV5FF331__9GG2213313[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF331__9GG2213313[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF331__9GG2213313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2213313[];
+extern VTBL_ENTRY _ZTV9GG2213313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2213313[];
+static VTBL_ENTRY alt_thunk_names580[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3313fooEv,_ZThn16_N5FF3313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22133133barEv,_ZTv0_n16_N9GG22133133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22133133barEv,_ZThn48_N9GG22133133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22133133barEv,_ZThn40_N9GG22133133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22133133fooEv,_ZTv0_n12_N9GG22133133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22133133fooEv,_ZThn48_N9GG22133133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22133133fooEv,_ZThn40_N9GG22133133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22133133barEv,_ZTv0_n12_N9GG22133133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22133133barEv,_ZThn24_N9GG22133133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22133133barEv,_ZThn16_N9GG22133133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22133133fooEv,_ZTv0_n20_N9GG22133133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22133133fooEv,_ZThn32_N9GG22133133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22133133fooEv,_ZThn8_N9GG22133133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2213313 = { "GG2213313", // class name
+ bases_GG2213313, 6,
+ &(vtc_GG2213313[0]), // expected_vtbl_contents
+ &(vtt_GG2213313[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2213313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2213313),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2213313),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names580,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2213323 : virtual EE221 , virtual FF332 {
+ int pg;
+ virtual void foo(); // _ZN9GG22133233fooEv
+ virtual void bar(); // _ZN9GG22133233barEv
+ ~GG2213323(); // tgen
+ GG2213323(); // tgen
+};
+//SIG(1 GG2213323) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2213323 ::foo(){vfunc_called(this, "_ZN9GG22133233fooEv");}
+void GG2213323 ::bar(){vfunc_called(this, "_ZN9GG22133233barEv");}
+GG2213323 ::~GG2213323(){ note_dtor("GG2213323", this);} // tgen
+GG2213323 ::GG2213323(){ note_ctor("GG2213323", this);} // tgen
+
+static void Test_GG2213323()
+{
+ extern Class_Descriptor cd_GG2213323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2213323, buf);
+ GG2213323 *dp, &lv = *(dp=new (buf) GG2213323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2213323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2213323)");
+ check_base_class_offset(lv, (AA2*)(EE221*), ABISELECT(32,16), "GG2213323");
+ check_base_class_offset(lv, (BB2*)(EE221*), ABISELECT(48,24), "GG2213323");
+ check_base_class_offset(lv, (EE221*), ABISELECT(16,8), "GG2213323");
+ check_base_class_offset(lv, (AA3*)(FF332*), ABISELECT(80,40), "GG2213323");
+ check_base_class_offset(lv, (BB3*)(FF332*), ABISELECT(96,48), "GG2213323");
+ check_base_class_offset(lv, (FF332*), ABISELECT(64,32), "GG2213323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2213323.pg");
+ test_class_info(&lv, &cd_GG2213323);
+ dp->~GG2213323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2213323(Test_GG2213323, "GG2213323", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2213323C1Ev();
+extern void _ZN9GG2213323D1Ev();
+Name_Map name_map_GG2213323[] = {
+ NSPAIR(_ZN9GG2213323C1Ev),
+ NSPAIR(_ZN9GG2213323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE221;
+extern VTBL_ENTRY _ZTI5EE221[];
+extern VTBL_ENTRY _ZTV5EE221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE221[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF332;
+extern VTBL_ENTRY _ZTI5FF332[];
+extern VTBL_ENTRY _ZTV5FF332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF332[];
+static Base_Class bases_GG2213323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE221, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF332, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2213323[];
+extern void _ZN9GG22133233fooEv();
+extern void _ZN9GG22133233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22133233fooEv,_ZTv0_n20_N9GG22133233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22133233fooEv,_ZThn8_N9GG22133233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22133233barEv,_ZTv0_n12_N9GG22133233barEv)();
+extern void ABISELECT(_ZThn32_N9GG22133233barEv,_ZThn16_N9GG22133233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22133233barEv,_ZTv0_n12_N9GG22133233barEv)();
+extern void ABISELECT(_ZThn48_N9GG22133233barEv,_ZThn24_N9GG22133233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22133233barEv,_ZTv0_n20_N9GG22133233barEv)();
+extern void ABISELECT(_ZThn64_N9GG22133233barEv,_ZThn32_N9GG22133233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22133233fooEv,_ZTv0_n12_N9GG22133233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22133233fooEv,_ZThn40_N9GG22133233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22133233barEv,_ZTv0_n16_N9GG22133233barEv)();
+extern void ABISELECT(_ZThn80_N9GG22133233barEv,_ZThn40_N9GG22133233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22133233fooEv,_ZTv0_n12_N9GG22133233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG22133233fooEv,_ZThn48_N9GG22133233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22133233barEv,_ZTv0_n16_N9GG22133233barEv)();
+extern void ABISELECT(_ZThn96_N9GG22133233barEv,_ZThn48_N9GG22133233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2213323[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2213323[0]),
+ (VTBL_ENTRY)&_ZN9GG22133233fooEv,
+ (VTBL_ENTRY)&_ZN9GG22133233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2213323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22133233fooEv,_ZTv0_n20_N9GG22133233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2213323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22133233barEv,_ZTv0_n12_N9GG22133233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2213323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22133233barEv,_ZTv0_n12_N9GG22133233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2213323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22133233barEv,_ZTv0_n20_N9GG22133233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2213323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22133233fooEv,_ZTv0_n12_N9GG22133233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22133233barEv,_ZTv0_n16_N9GG22133233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2213323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22133233fooEv,_ZTv0_n12_N9GG22133233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22133233barEv,_ZTv0_n16_N9GG22133233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2213323[];
+extern void _ZN5EE2213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE221__9GG2213323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN5EE2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE221__9GG2213323[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE221__9GG2213323[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF3323barEv();
+static VTBL_ENTRY _tg__ZTV5FF332__9GG2213323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN5FF3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+extern void ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF332__9GG2213323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+extern void ABISELECT(_ZThn32_N5FF3323barEv,_ZThn16_N5FF3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF332__9GG2213323[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+static VTT_ENTRY vtt_GG2213323[] = {
+ {&(_ZTV9GG2213323[8]), 8,42},
+ {&(_ZTV9GG2213323[15]), 15,42},
+ {&(_ZTV9GG2213323[19]), 19,42},
+ {&(_ZTV9GG2213323[23]), 23,42},
+ {&(_ZTV9GG2213323[29]), 29,42},
+ {&(_ZTV9GG2213323[34]), 34,42},
+ {&(_ZTV9GG2213323[40]), 40,42},
+ {&(_tg__ZTV5EE221__9GG2213323[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE221__9GG2213323[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE221__9GG2213323[3]), 3,4},
+ {&(_tg__ZTV5FF332__9GG2213323[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF332__9GG2213323[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF332__9GG2213323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2213323[];
+extern VTBL_ENTRY _ZTV9GG2213323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2213323[];
+static VTBL_ENTRY alt_thunk_names581[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3323barEv,_ZThn16_N5FF3323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22133233barEv,_ZTv0_n16_N9GG22133233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22133233barEv,_ZThn48_N9GG22133233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22133233barEv,_ZThn40_N9GG22133233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22133233fooEv,_ZTv0_n12_N9GG22133233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22133233fooEv,_ZThn48_N9GG22133233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22133233fooEv,_ZThn40_N9GG22133233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22133233barEv,_ZTv0_n20_N9GG22133233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22133233barEv,_ZThn32_N9GG22133233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22133233barEv,_ZTv0_n12_N9GG22133233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22133233barEv,_ZThn24_N9GG22133233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22133233barEv,_ZThn16_N9GG22133233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22133233fooEv,_ZTv0_n20_N9GG22133233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22133233fooEv,_ZThn8_N9GG22133233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2213323 = { "GG2213323", // class name
+ bases_GG2213323, 6,
+ &(vtc_GG2213323[0]), // expected_vtbl_contents
+ &(vtt_GG2213323[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2213323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2213323),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2213323),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names581,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2213333 : virtual EE221 , virtual FF333 {
+ int pg;
+ virtual void foo(); // _ZN9GG22133333fooEv
+ virtual void bar(); // _ZN9GG22133333barEv
+ ~GG2213333(); // tgen
+ GG2213333(); // tgen
+};
+//SIG(1 GG2213333) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2213333 ::foo(){vfunc_called(this, "_ZN9GG22133333fooEv");}
+void GG2213333 ::bar(){vfunc_called(this, "_ZN9GG22133333barEv");}
+GG2213333 ::~GG2213333(){ note_dtor("GG2213333", this);} // tgen
+GG2213333 ::GG2213333(){ note_ctor("GG2213333", this);} // tgen
+
+static void Test_GG2213333()
+{
+ extern Class_Descriptor cd_GG2213333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2213333, buf);
+ GG2213333 *dp, &lv = *(dp=new (buf) GG2213333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2213333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2213333)");
+ check_base_class_offset(lv, (AA2*)(EE221*), ABISELECT(32,16), "GG2213333");
+ check_base_class_offset(lv, (BB2*)(EE221*), ABISELECT(48,24), "GG2213333");
+ check_base_class_offset(lv, (EE221*), ABISELECT(16,8), "GG2213333");
+ check_base_class_offset(lv, (AA3*)(FF333*), ABISELECT(80,40), "GG2213333");
+ check_base_class_offset(lv, (BB3*)(FF333*), ABISELECT(96,48), "GG2213333");
+ check_base_class_offset(lv, (FF333*), ABISELECT(64,32), "GG2213333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2213333.pg");
+ test_class_info(&lv, &cd_GG2213333);
+ dp->~GG2213333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2213333(Test_GG2213333, "GG2213333", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2213333C1Ev();
+extern void _ZN9GG2213333D1Ev();
+Name_Map name_map_GG2213333[] = {
+ NSPAIR(_ZN9GG2213333C1Ev),
+ NSPAIR(_ZN9GG2213333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE221;
+extern VTBL_ENTRY _ZTI5EE221[];
+extern VTBL_ENTRY _ZTV5EE221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE221[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF333;
+extern VTBL_ENTRY _ZTI5FF333[];
+extern VTBL_ENTRY _ZTV5FF333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF333[];
+static Base_Class bases_GG2213333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE221, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF333, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2213333[];
+extern void _ZN9GG22133333fooEv();
+extern void _ZN9GG22133333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22133333fooEv,_ZTv0_n20_N9GG22133333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22133333fooEv,_ZThn8_N9GG22133333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22133333barEv,_ZTv0_n12_N9GG22133333barEv)();
+extern void ABISELECT(_ZThn32_N9GG22133333barEv,_ZThn16_N9GG22133333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22133333barEv,_ZTv0_n12_N9GG22133333barEv)();
+extern void ABISELECT(_ZThn48_N9GG22133333barEv,_ZThn24_N9GG22133333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22133333fooEv,_ZTv0_n20_N9GG22133333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22133333fooEv,_ZThn32_N9GG22133333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22133333barEv,_ZTv0_n24_N9GG22133333barEv)();
+extern void ABISELECT(_ZThn64_N9GG22133333barEv,_ZThn32_N9GG22133333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22133333fooEv,_ZTv0_n12_N9GG22133333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22133333fooEv,_ZThn40_N9GG22133333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22133333barEv,_ZTv0_n16_N9GG22133333barEv)();
+extern void ABISELECT(_ZThn80_N9GG22133333barEv,_ZThn40_N9GG22133333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22133333fooEv,_ZTv0_n12_N9GG22133333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG22133333fooEv,_ZThn48_N9GG22133333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22133333barEv,_ZTv0_n16_N9GG22133333barEv)();
+extern void ABISELECT(_ZThn96_N9GG22133333barEv,_ZThn48_N9GG22133333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2213333[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2213333[0]),
+ (VTBL_ENTRY)&_ZN9GG22133333fooEv,
+ (VTBL_ENTRY)&_ZN9GG22133333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2213333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22133333fooEv,_ZTv0_n20_N9GG22133333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2213333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22133333barEv,_ZTv0_n12_N9GG22133333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2213333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22133333barEv,_ZTv0_n12_N9GG22133333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2213333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22133333fooEv,_ZTv0_n20_N9GG22133333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22133333barEv,_ZTv0_n24_N9GG22133333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2213333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22133333fooEv,_ZTv0_n12_N9GG22133333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22133333barEv,_ZTv0_n16_N9GG22133333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2213333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22133333fooEv,_ZTv0_n12_N9GG22133333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22133333barEv,_ZTv0_n16_N9GG22133333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2213333[];
+extern void _ZN5EE2213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE221__9GG2213333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN5EE2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE221__9GG2213333[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE221__9GG2213333[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF3333fooEv();
+extern void _ZN5FF3333barEv();
+static VTBL_ENTRY _tg__ZTV5FF333__9GG2213333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&_ZN5FF3333fooEv,
+ (VTBL_ENTRY)&_ZN5FF3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+extern void ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF333__9GG2213333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3333fooEv,_ZThn16_N5FF3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+extern void ABISELECT(_ZThn32_N5FF3333barEv,_ZThn16_N5FF3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF333__9GG2213333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+static VTT_ENTRY vtt_GG2213333[] = {
+ {&(_ZTV9GG2213333[8]), 8,44},
+ {&(_ZTV9GG2213333[15]), 15,44},
+ {&(_ZTV9GG2213333[19]), 19,44},
+ {&(_ZTV9GG2213333[23]), 23,44},
+ {&(_ZTV9GG2213333[30]), 30,44},
+ {&(_ZTV9GG2213333[36]), 36,44},
+ {&(_ZTV9GG2213333[42]), 42,44},
+ {&(_tg__ZTV5EE221__9GG2213333[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE221__9GG2213333[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE221__9GG2213333[3]), 3,4},
+ {&(_tg__ZTV5FF333__9GG2213333[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF333__9GG2213333[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF333__9GG2213333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2213333[];
+extern VTBL_ENTRY _ZTV9GG2213333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2213333[];
+static VTBL_ENTRY alt_thunk_names582[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3333barEv,_ZThn16_N5FF3333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3333fooEv,_ZThn16_N5FF3333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22133333barEv,_ZTv0_n16_N9GG22133333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22133333barEv,_ZThn48_N9GG22133333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22133333barEv,_ZThn40_N9GG22133333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22133333fooEv,_ZTv0_n12_N9GG22133333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22133333fooEv,_ZThn48_N9GG22133333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22133333fooEv,_ZThn40_N9GG22133333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22133333barEv,_ZTv0_n24_N9GG22133333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22133333barEv,_ZThn32_N9GG22133333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22133333barEv,_ZTv0_n12_N9GG22133333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22133333barEv,_ZThn24_N9GG22133333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22133333barEv,_ZThn16_N9GG22133333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22133333fooEv,_ZTv0_n20_N9GG22133333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22133333fooEv,_ZThn32_N9GG22133333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22133333fooEv,_ZThn8_N9GG22133333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2213333 = { "GG2213333", // class name
+ bases_GG2213333, 6,
+ &(vtc_GG2213333[0]), // expected_vtbl_contents
+ &(vtt_GG2213333[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2213333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2213333),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2213333),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names582,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2221111 : virtual EE222 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG22211113fooEv
+ ~GG2221111(); // tgen
+ GG2221111(); // tgen
+};
+//SIG(1 GG2221111) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+void GG2221111 ::foo(){vfunc_called(this, "_ZN9GG22211113fooEv");}
+GG2221111 ::~GG2221111(){ note_dtor("GG2221111", this);} // tgen
+GG2221111 ::GG2221111(){ note_ctor("GG2221111", this);} // tgen
+
+static void Test_GG2221111()
+{
+ extern Class_Descriptor cd_GG2221111;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2221111, buf);
+ GG2221111 *dp, &lv = *(dp=new (buf) GG2221111());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2221111)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2221111)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2221111");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2221111");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2221111");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(80,40), "GG2221111");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(96,48), "GG2221111");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG2221111");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2221111.pg");
+ test_class_info(&lv, &cd_GG2221111);
+ dp->~GG2221111();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2221111(Test_GG2221111, "GG2221111", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2221111C1Ev();
+extern void _ZN9GG2221111D1Ev();
+Name_Map name_map_GG2221111[] = {
+ NSPAIR(_ZN9GG2221111C1Ev),
+ NSPAIR(_ZN9GG2221111D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG2221111[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2221111[];
+extern void _ZN9GG22211113fooEv();
+extern void _ZN5EE2223barEv();
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22211113fooEv,_ZTv0_n20_N9GG22211113fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22211113fooEv,_ZThn32_N9GG22211113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22211113fooEv,_ZTv0_n12_N9GG22211113fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22211113fooEv,_ZThn40_N9GG22211113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22211113fooEv,_ZTv0_n12_N9GG22211113fooEv)();
+extern void ABISELECT(_ZThn96_N9GG22211113fooEv,_ZThn48_N9GG22211113fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2221111[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2221111[0]),
+ (VTBL_ENTRY)&_ZN9GG22211113fooEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2221111[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2221111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2221111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2221111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22211113fooEv,_ZTv0_n20_N9GG22211113fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2221111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22211113fooEv,_ZTv0_n12_N9GG22211113fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2221111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22211113fooEv,_ZTv0_n12_N9GG22211113fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2221111[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2221111[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2221111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2221111[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG2221111[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG2221111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG2221111[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG2221111[] = {
+ {&(_ZTV9GG2221111[8]), 8,37},
+ {&(_ZTV9GG2221111[14]), 14,37},
+ {&(_ZTV9GG2221111[18]), 18,37},
+ {&(_ZTV9GG2221111[22]), 22,37},
+ {&(_ZTV9GG2221111[28]), 28,37},
+ {&(_ZTV9GG2221111[32]), 32,37},
+ {&(_ZTV9GG2221111[36]), 36,37},
+ {&(_tg__ZTV5EE222__9GG2221111[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2221111[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2221111[3]), 3,4},
+ {&(_tg__ZTV5FF111__9GG2221111[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG2221111[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG2221111[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2221111[];
+extern VTBL_ENTRY _ZTV9GG2221111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2221111[];
+static VTBL_ENTRY alt_thunk_names583[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22211113fooEv,_ZTv0_n12_N9GG22211113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22211113fooEv,_ZThn48_N9GG22211113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22211113fooEv,_ZThn40_N9GG22211113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22211113fooEv,_ZTv0_n20_N9GG22211113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22211113fooEv,_ZThn32_N9GG22211113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2221111 = { "GG2221111", // class name
+ bases_GG2221111, 6,
+ &(vtc_GG2221111[0]), // expected_vtbl_contents
+ &(vtt_GG2221111[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2221111),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2221111),37, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2221111),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names583,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2221112 : virtual EE222 , virtual FF111 {
+ int pg;
+ virtual void bar(); // _ZN9GG22211123barEv
+ ~GG2221112(); // tgen
+ GG2221112(); // tgen
+};
+//SIG(1 GG2221112) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v2 Fi} v2 Fi} v1 Fi}
+
+
+void GG2221112 ::bar(){vfunc_called(this, "_ZN9GG22211123barEv");}
+GG2221112 ::~GG2221112(){ note_dtor("GG2221112", this);} // tgen
+GG2221112 ::GG2221112(){ note_ctor("GG2221112", this);} // tgen
+
+static void Test_GG2221112()
+{
+ extern Class_Descriptor cd_GG2221112;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2221112, buf);
+ GG2221112 *dp, &lv = *(dp=new (buf) GG2221112());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2221112)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2221112)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2221112");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2221112");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2221112");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(80,40), "GG2221112");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(96,48), "GG2221112");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG2221112");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2221112.pg");
+ test_class_info(&lv, &cd_GG2221112);
+ dp->~GG2221112();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2221112(Test_GG2221112, "GG2221112", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2221112C1Ev();
+extern void _ZN9GG2221112D1Ev();
+Name_Map name_map_GG2221112[] = {
+ NSPAIR(_ZN9GG2221112C1Ev),
+ NSPAIR(_ZN9GG2221112D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG2221112[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2221112[];
+extern void _ZN9GG22211123barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22211123barEv,_ZTv0_n20_N9GG22211123barEv)();
+extern void ABISELECT(_ZThn16_N9GG22211123barEv,_ZThn8_N9GG22211123barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22211123barEv,_ZTv0_n12_N9GG22211123barEv)();
+extern void ABISELECT(_ZThn32_N9GG22211123barEv,_ZThn16_N9GG22211123barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22211123barEv,_ZTv0_n12_N9GG22211123barEv)();
+extern void ABISELECT(_ZThn48_N9GG22211123barEv,_ZThn24_N9GG22211123barEv)() __attribute__((weak));
+extern void _ZN5FF1113fooEv();
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2221112[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2221112[0]),
+ (VTBL_ENTRY)&_ZN9GG22211123barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2221112[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22211123barEv,_ZTv0_n20_N9GG22211123barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2221112[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22211123barEv,_ZTv0_n12_N9GG22211123barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2221112[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22211123barEv,_ZTv0_n12_N9GG22211123barEv),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2221112[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2221112[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2221112[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2221112[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2221112[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2221112[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2221112[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG2221112[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG2221112[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG2221112[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG2221112[] = {
+ {&(_ZTV9GG2221112[8]), 8,37},
+ {&(_ZTV9GG2221112[14]), 14,37},
+ {&(_ZTV9GG2221112[18]), 18,37},
+ {&(_ZTV9GG2221112[22]), 22,37},
+ {&(_ZTV9GG2221112[28]), 28,37},
+ {&(_ZTV9GG2221112[32]), 32,37},
+ {&(_ZTV9GG2221112[36]), 36,37},
+ {&(_tg__ZTV5EE222__9GG2221112[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2221112[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2221112[3]), 3,4},
+ {&(_tg__ZTV5FF111__9GG2221112[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG2221112[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG2221112[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2221112[];
+extern VTBL_ENTRY _ZTV9GG2221112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2221112[];
+static VTBL_ENTRY alt_thunk_names584[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22211123barEv,_ZTv0_n12_N9GG22211123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22211123barEv,_ZThn24_N9GG22211123barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22211123barEv,_ZThn16_N9GG22211123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22211123barEv,_ZTv0_n20_N9GG22211123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22211123barEv,_ZThn8_N9GG22211123barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2221112 = { "GG2221112", // class name
+ bases_GG2221112, 6,
+ &(vtc_GG2221112[0]), // expected_vtbl_contents
+ &(vtt_GG2221112[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2221112),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2221112),37, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2221112),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names584,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2221113 : virtual EE222 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG22211133fooEv
+ virtual void bar(); // _ZN9GG22211133barEv
+ ~GG2221113(); // tgen
+ GG2221113(); // tgen
+};
+//SIG(1 GG2221113) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2221113 ::foo(){vfunc_called(this, "_ZN9GG22211133fooEv");}
+void GG2221113 ::bar(){vfunc_called(this, "_ZN9GG22211133barEv");}
+GG2221113 ::~GG2221113(){ note_dtor("GG2221113", this);} // tgen
+GG2221113 ::GG2221113(){ note_ctor("GG2221113", this);} // tgen
+
+static void Test_GG2221113()
+{
+ extern Class_Descriptor cd_GG2221113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2221113, buf);
+ GG2221113 *dp, &lv = *(dp=new (buf) GG2221113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2221113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2221113)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2221113");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2221113");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2221113");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(80,40), "GG2221113");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(96,48), "GG2221113");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG2221113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2221113.pg");
+ test_class_info(&lv, &cd_GG2221113);
+ dp->~GG2221113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2221113(Test_GG2221113, "GG2221113", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2221113C1Ev();
+extern void _ZN9GG2221113D1Ev();
+Name_Map name_map_GG2221113[] = {
+ NSPAIR(_ZN9GG2221113C1Ev),
+ NSPAIR(_ZN9GG2221113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG2221113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2221113[];
+extern void _ZN9GG22211133fooEv();
+extern void _ZN9GG22211133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22211133barEv,_ZTv0_n20_N9GG22211133barEv)();
+extern void ABISELECT(_ZThn16_N9GG22211133barEv,_ZThn8_N9GG22211133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22211133barEv,_ZTv0_n12_N9GG22211133barEv)();
+extern void ABISELECT(_ZThn32_N9GG22211133barEv,_ZThn16_N9GG22211133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22211133barEv,_ZTv0_n12_N9GG22211133barEv)();
+extern void ABISELECT(_ZThn48_N9GG22211133barEv,_ZThn24_N9GG22211133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22211133fooEv,_ZTv0_n20_N9GG22211133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22211133fooEv,_ZThn32_N9GG22211133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22211133fooEv,_ZTv0_n12_N9GG22211133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22211133fooEv,_ZThn40_N9GG22211133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22211133fooEv,_ZTv0_n12_N9GG22211133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG22211133fooEv,_ZThn48_N9GG22211133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2221113[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2221113[0]),
+ (VTBL_ENTRY)&_ZN9GG22211133fooEv,
+ (VTBL_ENTRY)&_ZN9GG22211133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2221113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22211133barEv,_ZTv0_n20_N9GG22211133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2221113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22211133barEv,_ZTv0_n12_N9GG22211133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2221113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22211133barEv,_ZTv0_n12_N9GG22211133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2221113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22211133fooEv,_ZTv0_n20_N9GG22211133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2221113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22211133fooEv,_ZTv0_n12_N9GG22211133fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2221113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22211133fooEv,_ZTv0_n12_N9GG22211133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2221113[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2221113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2221113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2221113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG2221113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG2221113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG2221113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG2221113[] = {
+ {&(_ZTV9GG2221113[8]), 8,38},
+ {&(_ZTV9GG2221113[15]), 15,38},
+ {&(_ZTV9GG2221113[19]), 19,38},
+ {&(_ZTV9GG2221113[23]), 23,38},
+ {&(_ZTV9GG2221113[29]), 29,38},
+ {&(_ZTV9GG2221113[33]), 33,38},
+ {&(_ZTV9GG2221113[37]), 37,38},
+ {&(_tg__ZTV5EE222__9GG2221113[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2221113[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2221113[3]), 3,4},
+ {&(_tg__ZTV5FF111__9GG2221113[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG2221113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG2221113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2221113[];
+extern VTBL_ENTRY _ZTV9GG2221113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2221113[];
+static VTBL_ENTRY alt_thunk_names585[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22211133fooEv,_ZTv0_n12_N9GG22211133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22211133fooEv,_ZThn48_N9GG22211133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22211133fooEv,_ZThn40_N9GG22211133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22211133fooEv,_ZTv0_n20_N9GG22211133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22211133fooEv,_ZThn32_N9GG22211133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22211133barEv,_ZTv0_n12_N9GG22211133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22211133barEv,_ZThn24_N9GG22211133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22211133barEv,_ZThn16_N9GG22211133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22211133barEv,_ZTv0_n20_N9GG22211133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22211133barEv,_ZThn8_N9GG22211133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2221113 = { "GG2221113", // class name
+ bases_GG2221113, 6,
+ &(vtc_GG2221113[0]), // expected_vtbl_contents
+ &(vtt_GG2221113[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2221113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2221113),38, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2221113),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names585,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2221122 : virtual EE222 , virtual FF112 {
+ int pg;
+ virtual void bar(); // _ZN9GG22211223barEv
+ ~GG2221122(); // tgen
+ GG2221122(); // tgen
+};
+//SIG(1 GG2221122) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v3 Fi} v1 Fi} v1 Fi}
+
+
+void GG2221122 ::bar(){vfunc_called(this, "_ZN9GG22211223barEv");}
+GG2221122 ::~GG2221122(){ note_dtor("GG2221122", this);} // tgen
+GG2221122 ::GG2221122(){ note_ctor("GG2221122", this);} // tgen
+
+static void Test_GG2221122()
+{
+ extern Class_Descriptor cd_GG2221122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2221122, buf);
+ GG2221122 *dp, &lv = *(dp=new (buf) GG2221122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2221122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2221122)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2221122");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2221122");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2221122");
+ check_base_class_offset(lv, (AA1*)(FF112*), ABISELECT(80,40), "GG2221122");
+ check_base_class_offset(lv, (BB1*)(FF112*), ABISELECT(96,48), "GG2221122");
+ check_base_class_offset(lv, (FF112*), ABISELECT(64,32), "GG2221122");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2221122.pg");
+ test_class_info(&lv, &cd_GG2221122);
+ dp->~GG2221122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2221122(Test_GG2221122, "GG2221122", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2221122C1Ev();
+extern void _ZN9GG2221122D1Ev();
+Name_Map name_map_GG2221122[] = {
+ NSPAIR(_ZN9GG2221122C1Ev),
+ NSPAIR(_ZN9GG2221122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF112;
+extern VTBL_ENTRY _ZTI5FF112[];
+extern VTBL_ENTRY _ZTV5FF112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF112[];
+static Base_Class bases_GG2221122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF112, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2221122[];
+extern void _ZN9GG22211223barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22211223barEv,_ZTv0_n20_N9GG22211223barEv)();
+extern void ABISELECT(_ZThn16_N9GG22211223barEv,_ZThn8_N9GG22211223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22211223barEv,_ZTv0_n12_N9GG22211223barEv)();
+extern void ABISELECT(_ZThn32_N9GG22211223barEv,_ZThn16_N9GG22211223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22211223barEv,_ZTv0_n12_N9GG22211223barEv)();
+extern void ABISELECT(_ZThn48_N9GG22211223barEv,_ZThn24_N9GG22211223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22211223barEv,_ZTv0_n20_N9GG22211223barEv)();
+extern void ABISELECT(_ZThn64_N9GG22211223barEv,_ZThn32_N9GG22211223barEv)() __attribute__((weak));
+extern void _ZN3AA13fooEv();
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY vtc_GG2221122[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2221122[0]),
+ (VTBL_ENTRY)&_ZN9GG22211223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2221122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22211223barEv,_ZTv0_n20_N9GG22211223barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2221122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22211223barEv,_ZTv0_n12_N9GG22211223barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2221122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22211223barEv,_ZTv0_n12_N9GG22211223barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2221122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22211223barEv,_ZTv0_n20_N9GG22211223barEv),
+ 0,
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2221122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+ 0,
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2221122[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern VTBL_ENTRY _ZTV9GG2221122[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2221122[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2221122[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2221122[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF1123barEv();
+static VTBL_ENTRY _tg__ZTV5FF112__9GG2221122[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN5FF1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF112__9GG2221122[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF112__9GG2221122[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG2221122[] = {
+ {&(_ZTV9GG2221122[8]), 8,37},
+ {&(_ZTV9GG2221122[14]), 14,37},
+ {&(_ZTV9GG2221122[18]), 18,37},
+ {&(_ZTV9GG2221122[22]), 22,37},
+ {&(_ZTV9GG2221122[28]), 28,37},
+ {&(_ZTV9GG2221122[32]), 32,37},
+ {&(_ZTV9GG2221122[36]), 36,37},
+ {&(_tg__ZTV5EE222__9GG2221122[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2221122[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2221122[3]), 3,4},
+ {&(_tg__ZTV5FF112__9GG2221122[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF112__9GG2221122[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF112__9GG2221122[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2221122[];
+extern VTBL_ENTRY _ZTV9GG2221122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2221122[];
+static VTBL_ENTRY alt_thunk_names586[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22211223barEv,_ZTv0_n12_N9GG22211223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22211223barEv,_ZThn24_N9GG22211223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22211223barEv,_ZThn16_N9GG22211223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22211223barEv,_ZTv0_n20_N9GG22211223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22211223barEv,_ZThn32_N9GG22211223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22211223barEv,_ZThn8_N9GG22211223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2221122 = { "GG2221122", // class name
+ bases_GG2221122, 6,
+ &(vtc_GG2221122[0]), // expected_vtbl_contents
+ &(vtt_GG2221122[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2221122),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2221122),37, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2221122),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names586,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2221123 : virtual EE222 , virtual FF112 {
+ int pg;
+ virtual void foo(); // _ZN9GG22211233fooEv
+ virtual void bar(); // _ZN9GG22211233barEv
+ ~GG2221123(); // tgen
+ GG2221123(); // tgen
+};
+//SIG(1 GG2221123) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2221123 ::foo(){vfunc_called(this, "_ZN9GG22211233fooEv");}
+void GG2221123 ::bar(){vfunc_called(this, "_ZN9GG22211233barEv");}
+GG2221123 ::~GG2221123(){ note_dtor("GG2221123", this);} // tgen
+GG2221123 ::GG2221123(){ note_ctor("GG2221123", this);} // tgen
+
+static void Test_GG2221123()
+{
+ extern Class_Descriptor cd_GG2221123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2221123, buf);
+ GG2221123 *dp, &lv = *(dp=new (buf) GG2221123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2221123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2221123)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2221123");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2221123");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2221123");
+ check_base_class_offset(lv, (AA1*)(FF112*), ABISELECT(80,40), "GG2221123");
+ check_base_class_offset(lv, (BB1*)(FF112*), ABISELECT(96,48), "GG2221123");
+ check_base_class_offset(lv, (FF112*), ABISELECT(64,32), "GG2221123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2221123.pg");
+ test_class_info(&lv, &cd_GG2221123);
+ dp->~GG2221123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2221123(Test_GG2221123, "GG2221123", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2221123C1Ev();
+extern void _ZN9GG2221123D1Ev();
+Name_Map name_map_GG2221123[] = {
+ NSPAIR(_ZN9GG2221123C1Ev),
+ NSPAIR(_ZN9GG2221123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF112;
+extern VTBL_ENTRY _ZTI5FF112[];
+extern VTBL_ENTRY _ZTV5FF112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF112[];
+static Base_Class bases_GG2221123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF112, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2221123[];
+extern void _ZN9GG22211233fooEv();
+extern void _ZN9GG22211233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22211233barEv,_ZTv0_n20_N9GG22211233barEv)();
+extern void ABISELECT(_ZThn16_N9GG22211233barEv,_ZThn8_N9GG22211233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22211233barEv,_ZTv0_n12_N9GG22211233barEv)();
+extern void ABISELECT(_ZThn32_N9GG22211233barEv,_ZThn16_N9GG22211233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22211233barEv,_ZTv0_n12_N9GG22211233barEv)();
+extern void ABISELECT(_ZThn48_N9GG22211233barEv,_ZThn24_N9GG22211233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22211233barEv,_ZTv0_n20_N9GG22211233barEv)();
+extern void ABISELECT(_ZThn64_N9GG22211233barEv,_ZThn32_N9GG22211233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22211233fooEv,_ZTv0_n12_N9GG22211233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22211233fooEv,_ZThn40_N9GG22211233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22211233fooEv,_ZTv0_n12_N9GG22211233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG22211233fooEv,_ZThn48_N9GG22211233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2221123[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2221123[0]),
+ (VTBL_ENTRY)&_ZN9GG22211233fooEv,
+ (VTBL_ENTRY)&_ZN9GG22211233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2221123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22211233barEv,_ZTv0_n20_N9GG22211233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2221123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22211233barEv,_ZTv0_n12_N9GG22211233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2221123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22211233barEv,_ZTv0_n12_N9GG22211233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2221123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22211233barEv,_ZTv0_n20_N9GG22211233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2221123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22211233fooEv,_ZTv0_n12_N9GG22211233fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2221123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22211233fooEv,_ZTv0_n12_N9GG22211233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2221123[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2221123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2221123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2221123[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF1123barEv();
+static VTBL_ENTRY _tg__ZTV5FF112__9GG2221123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN5FF1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF112__9GG2221123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF112__9GG2221123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG2221123[] = {
+ {&(_ZTV9GG2221123[8]), 8,38},
+ {&(_ZTV9GG2221123[15]), 15,38},
+ {&(_ZTV9GG2221123[19]), 19,38},
+ {&(_ZTV9GG2221123[23]), 23,38},
+ {&(_ZTV9GG2221123[29]), 29,38},
+ {&(_ZTV9GG2221123[33]), 33,38},
+ {&(_ZTV9GG2221123[37]), 37,38},
+ {&(_tg__ZTV5EE222__9GG2221123[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2221123[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2221123[3]), 3,4},
+ {&(_tg__ZTV5FF112__9GG2221123[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF112__9GG2221123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF112__9GG2221123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2221123[];
+extern VTBL_ENTRY _ZTV9GG2221123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2221123[];
+static VTBL_ENTRY alt_thunk_names587[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22211233fooEv,_ZTv0_n12_N9GG22211233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22211233fooEv,_ZThn48_N9GG22211233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22211233fooEv,_ZThn40_N9GG22211233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22211233barEv,_ZTv0_n12_N9GG22211233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22211233barEv,_ZThn24_N9GG22211233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22211233barEv,_ZThn16_N9GG22211233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22211233barEv,_ZTv0_n20_N9GG22211233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22211233barEv,_ZThn32_N9GG22211233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22211233barEv,_ZThn8_N9GG22211233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2221123 = { "GG2221123", // class name
+ bases_GG2221123, 6,
+ &(vtc_GG2221123[0]), // expected_vtbl_contents
+ &(vtt_GG2221123[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2221123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2221123),38, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2221123),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names587,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2221132 : virtual EE222 , virtual FF113 {
+ int pg;
+ virtual void bar(); // _ZN9GG22211323barEv
+ ~GG2221132(); // tgen
+ GG2221132(); // tgen
+};
+//SIG(1 GG2221132) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void GG2221132 ::bar(){vfunc_called(this, "_ZN9GG22211323barEv");}
+GG2221132 ::~GG2221132(){ note_dtor("GG2221132", this);} // tgen
+GG2221132 ::GG2221132(){ note_ctor("GG2221132", this);} // tgen
+
+static void Test_GG2221132()
+{
+ extern Class_Descriptor cd_GG2221132;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2221132, buf);
+ GG2221132 *dp, &lv = *(dp=new (buf) GG2221132());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2221132)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2221132)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2221132");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2221132");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2221132");
+ check_base_class_offset(lv, (AA1*)(FF113*), ABISELECT(80,40), "GG2221132");
+ check_base_class_offset(lv, (BB1*)(FF113*), ABISELECT(96,48), "GG2221132");
+ check_base_class_offset(lv, (FF113*), ABISELECT(64,32), "GG2221132");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2221132.pg");
+ test_class_info(&lv, &cd_GG2221132);
+ dp->~GG2221132();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2221132(Test_GG2221132, "GG2221132", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2221132C1Ev();
+extern void _ZN9GG2221132D1Ev();
+Name_Map name_map_GG2221132[] = {
+ NSPAIR(_ZN9GG2221132C1Ev),
+ NSPAIR(_ZN9GG2221132D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF113;
+extern VTBL_ENTRY _ZTI5FF113[];
+extern VTBL_ENTRY _ZTV5FF113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF113[];
+static Base_Class bases_GG2221132[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF113, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2221132[];
+extern void _ZN9GG22211323barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22211323barEv,_ZTv0_n20_N9GG22211323barEv)();
+extern void ABISELECT(_ZThn16_N9GG22211323barEv,_ZThn8_N9GG22211323barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22211323barEv,_ZTv0_n12_N9GG22211323barEv)();
+extern void ABISELECT(_ZThn32_N9GG22211323barEv,_ZThn16_N9GG22211323barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22211323barEv,_ZTv0_n12_N9GG22211323barEv)();
+extern void ABISELECT(_ZThn48_N9GG22211323barEv,_ZThn24_N9GG22211323barEv)() __attribute__((weak));
+extern void _ZN5FF1133fooEv();
+extern void ABISELECT(_ZTv0_n48_N9GG22211323barEv,_ZTv0_n24_N9GG22211323barEv)();
+extern void ABISELECT(_ZThn64_N9GG22211323barEv,_ZThn32_N9GG22211323barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1133fooEv,_ZThn16_N5FF1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2221132[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2221132[0]),
+ (VTBL_ENTRY)&_ZN9GG22211323barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2221132[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22211323barEv,_ZTv0_n20_N9GG22211323barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2221132[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22211323barEv,_ZTv0_n12_N9GG22211323barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2221132[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22211323barEv,_ZTv0_n12_N9GG22211323barEv),
+ ABISELECT(-64,-32),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2221132[0]),
+ (VTBL_ENTRY)&_ZN5FF1133fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22211323barEv,_ZTv0_n24_N9GG22211323barEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2221132[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2221132[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2221132[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2221132[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2221132[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2221132[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF1133fooEv();
+extern void _ZN5FF1133barEv();
+static VTBL_ENTRY _tg__ZTV5FF113__9GG2221132[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&_ZN5FF1133fooEv,
+ (VTBL_ENTRY)&_ZN5FF1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF113__9GG2221132[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1133fooEv,_ZThn16_N5FF1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF113__9GG2221132[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+static VTT_ENTRY vtt_GG2221132[] = {
+ {&(_ZTV9GG2221132[8]), 8,39},
+ {&(_ZTV9GG2221132[14]), 14,39},
+ {&(_ZTV9GG2221132[18]), 18,39},
+ {&(_ZTV9GG2221132[22]), 22,39},
+ {&(_ZTV9GG2221132[29]), 29,39},
+ {&(_ZTV9GG2221132[34]), 34,39},
+ {&(_ZTV9GG2221132[38]), 38,39},
+ {&(_tg__ZTV5EE222__9GG2221132[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2221132[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2221132[3]), 3,4},
+ {&(_tg__ZTV5FF113__9GG2221132[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF113__9GG2221132[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF113__9GG2221132[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2221132[];
+extern VTBL_ENTRY _ZTV9GG2221132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2221132[];
+static VTBL_ENTRY alt_thunk_names588[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1133fooEv,_ZThn16_N5FF1133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1133fooEv,_ZThn16_N5FF1133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22211323barEv,_ZTv0_n24_N9GG22211323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22211323barEv,_ZThn32_N9GG22211323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22211323barEv,_ZTv0_n12_N9GG22211323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22211323barEv,_ZThn24_N9GG22211323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22211323barEv,_ZThn16_N9GG22211323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22211323barEv,_ZTv0_n20_N9GG22211323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22211323barEv,_ZThn8_N9GG22211323barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2221132 = { "GG2221132", // class name
+ bases_GG2221132, 6,
+ &(vtc_GG2221132[0]), // expected_vtbl_contents
+ &(vtt_GG2221132[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2221132),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2221132),39, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2221132),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names588,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2221133 : virtual EE222 , virtual FF113 {
+ int pg;
+ virtual void foo(); // _ZN9GG22211333fooEv
+ virtual void bar(); // _ZN9GG22211333barEv
+ ~GG2221133(); // tgen
+ GG2221133(); // tgen
+};
+//SIG(1 GG2221133) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2221133 ::foo(){vfunc_called(this, "_ZN9GG22211333fooEv");}
+void GG2221133 ::bar(){vfunc_called(this, "_ZN9GG22211333barEv");}
+GG2221133 ::~GG2221133(){ note_dtor("GG2221133", this);} // tgen
+GG2221133 ::GG2221133(){ note_ctor("GG2221133", this);} // tgen
+
+static void Test_GG2221133()
+{
+ extern Class_Descriptor cd_GG2221133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2221133, buf);
+ GG2221133 *dp, &lv = *(dp=new (buf) GG2221133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2221133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2221133)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2221133");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2221133");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2221133");
+ check_base_class_offset(lv, (AA1*)(FF113*), ABISELECT(80,40), "GG2221133");
+ check_base_class_offset(lv, (BB1*)(FF113*), ABISELECT(96,48), "GG2221133");
+ check_base_class_offset(lv, (FF113*), ABISELECT(64,32), "GG2221133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2221133.pg");
+ test_class_info(&lv, &cd_GG2221133);
+ dp->~GG2221133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2221133(Test_GG2221133, "GG2221133", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2221133C1Ev();
+extern void _ZN9GG2221133D1Ev();
+Name_Map name_map_GG2221133[] = {
+ NSPAIR(_ZN9GG2221133C1Ev),
+ NSPAIR(_ZN9GG2221133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF113;
+extern VTBL_ENTRY _ZTI5FF113[];
+extern VTBL_ENTRY _ZTV5FF113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF113[];
+static Base_Class bases_GG2221133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF113, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2221133[];
+extern void _ZN9GG22211333fooEv();
+extern void _ZN9GG22211333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22211333barEv,_ZTv0_n20_N9GG22211333barEv)();
+extern void ABISELECT(_ZThn16_N9GG22211333barEv,_ZThn8_N9GG22211333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22211333barEv,_ZTv0_n12_N9GG22211333barEv)();
+extern void ABISELECT(_ZThn32_N9GG22211333barEv,_ZThn16_N9GG22211333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22211333barEv,_ZTv0_n12_N9GG22211333barEv)();
+extern void ABISELECT(_ZThn48_N9GG22211333barEv,_ZThn24_N9GG22211333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22211333fooEv,_ZTv0_n20_N9GG22211333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22211333fooEv,_ZThn32_N9GG22211333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22211333barEv,_ZTv0_n24_N9GG22211333barEv)();
+extern void ABISELECT(_ZThn64_N9GG22211333barEv,_ZThn32_N9GG22211333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22211333fooEv,_ZTv0_n12_N9GG22211333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22211333fooEv,_ZThn40_N9GG22211333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22211333fooEv,_ZTv0_n12_N9GG22211333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG22211333fooEv,_ZThn48_N9GG22211333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2221133[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2221133[0]),
+ (VTBL_ENTRY)&_ZN9GG22211333fooEv,
+ (VTBL_ENTRY)&_ZN9GG22211333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2221133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22211333barEv,_ZTv0_n20_N9GG22211333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2221133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22211333barEv,_ZTv0_n12_N9GG22211333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2221133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22211333barEv,_ZTv0_n12_N9GG22211333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2221133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22211333fooEv,_ZTv0_n20_N9GG22211333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22211333barEv,_ZTv0_n24_N9GG22211333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2221133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22211333fooEv,_ZTv0_n12_N9GG22211333fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2221133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22211333fooEv,_ZTv0_n12_N9GG22211333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2221133[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2221133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2221133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2221133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF1133fooEv();
+extern void _ZN5FF1133barEv();
+static VTBL_ENTRY _tg__ZTV5FF113__9GG2221133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&_ZN5FF1133fooEv,
+ (VTBL_ENTRY)&_ZN5FF1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF113__9GG2221133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1133fooEv,_ZThn16_N5FF1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF113__9GG2221133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+static VTT_ENTRY vtt_GG2221133[] = {
+ {&(_ZTV9GG2221133[8]), 8,40},
+ {&(_ZTV9GG2221133[15]), 15,40},
+ {&(_ZTV9GG2221133[19]), 19,40},
+ {&(_ZTV9GG2221133[23]), 23,40},
+ {&(_ZTV9GG2221133[30]), 30,40},
+ {&(_ZTV9GG2221133[35]), 35,40},
+ {&(_ZTV9GG2221133[39]), 39,40},
+ {&(_tg__ZTV5EE222__9GG2221133[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2221133[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2221133[3]), 3,4},
+ {&(_tg__ZTV5FF113__9GG2221133[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF113__9GG2221133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF113__9GG2221133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2221133[];
+extern VTBL_ENTRY _ZTV9GG2221133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2221133[];
+static VTBL_ENTRY alt_thunk_names589[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1133fooEv,_ZThn16_N5FF1133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22211333fooEv,_ZTv0_n12_N9GG22211333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22211333fooEv,_ZThn48_N9GG22211333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22211333fooEv,_ZThn40_N9GG22211333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22211333barEv,_ZTv0_n24_N9GG22211333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22211333barEv,_ZThn32_N9GG22211333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22211333fooEv,_ZTv0_n20_N9GG22211333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22211333fooEv,_ZThn32_N9GG22211333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22211333barEv,_ZTv0_n12_N9GG22211333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22211333barEv,_ZThn24_N9GG22211333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22211333barEv,_ZThn16_N9GG22211333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22211333barEv,_ZTv0_n20_N9GG22211333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22211333barEv,_ZThn8_N9GG22211333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2221133 = { "GG2221133", // class name
+ bases_GG2221133, 6,
+ &(vtc_GG2221133[0]), // expected_vtbl_contents
+ &(vtt_GG2221133[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2221133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2221133),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2221133),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names589,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2221212 : virtual EE222 , virtual FF121 {
+ int pg;
+ virtual void bar(); // _ZN9GG22212123barEv
+ ~GG2221212(); // tgen
+ GG2221212(); // tgen
+};
+//SIG(1 GG2221212) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v2 Fi} v1 Fi}
+
+
+void GG2221212 ::bar(){vfunc_called(this, "_ZN9GG22212123barEv");}
+GG2221212 ::~GG2221212(){ note_dtor("GG2221212", this);} // tgen
+GG2221212 ::GG2221212(){ note_ctor("GG2221212", this);} // tgen
+
+static void Test_GG2221212()
+{
+ extern Class_Descriptor cd_GG2221212;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2221212, buf);
+ GG2221212 *dp, &lv = *(dp=new (buf) GG2221212());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2221212)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2221212)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2221212");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2221212");
+ check_base_class_offset(lv, (BB2*)(FF121*), ABISELECT(48,24), "GG2221212");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2221212");
+ check_base_class_offset(lv, (AA1*)(FF121*), ABISELECT(80,40), "GG2221212");
+ check_base_class_offset(lv, (FF121*), ABISELECT(64,32), "GG2221212");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2221212.pg");
+ test_class_info(&lv, &cd_GG2221212);
+ dp->~GG2221212();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2221212(Test_GG2221212, "GG2221212", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2221212C1Ev();
+extern void _ZN9GG2221212D1Ev();
+Name_Map name_map_GG2221212[] = {
+ NSPAIR(_ZN9GG2221212C1Ev),
+ NSPAIR(_ZN9GG2221212D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF121;
+extern VTBL_ENTRY _ZTI5FF121[];
+extern VTBL_ENTRY _ZTV5FF121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF121[];
+static Base_Class bases_GG2221212[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF121, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2221212[];
+extern void _ZN9GG22212123barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22212123barEv,_ZTv0_n20_N9GG22212123barEv)();
+extern void ABISELECT(_ZThn16_N9GG22212123barEv,_ZThn8_N9GG22212123barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22212123barEv,_ZTv0_n12_N9GG22212123barEv)();
+extern void ABISELECT(_ZThn32_N9GG22212123barEv,_ZThn16_N9GG22212123barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22212123barEv,_ZTv0_n12_N9GG22212123barEv)();
+extern void ABISELECT(_ZThn48_N9GG22212123barEv,_ZThn24_N9GG22212123barEv)() __attribute__((weak));
+extern void _ZN5FF1213fooEv();
+extern void ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1213fooEv,_ZThn8_N5FF1213fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2221212[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2221212[0]),
+ (VTBL_ENTRY)&_ZN9GG22212123barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2221212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22212123barEv,_ZTv0_n20_N9GG22212123barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2221212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22212123barEv,_ZTv0_n12_N9GG22212123barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2221212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22212123barEv,_ZTv0_n12_N9GG22212123barEv),
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2221212[0]),
+ (VTBL_ENTRY)&_ZN5FF1213fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2221212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2221212[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2221212[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2221212[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2221212[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF1213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF121__9GG2221212[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN5FF1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1213fooEv,_ZThn8_N5FF1213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF121__9GG2221212[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF121__9GG2221212[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG2221212[] = {
+ {&(_ZTV9GG2221212[7]), 7,32},
+ {&(_ZTV9GG2221212[13]), 13,32},
+ {&(_ZTV9GG2221212[17]), 17,32},
+ {&(_ZTV9GG2221212[21]), 21,32},
+ {&(_ZTV9GG2221212[27]), 27,32},
+ {&(_ZTV9GG2221212[31]), 31,32},
+ {&(_tg__ZTV5EE222__9GG2221212[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2221212[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2221212[3]), 3,4},
+ {&(_tg__ZTV5FF121__9GG2221212[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF121__9GG2221212[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF121__9GG2221212[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2221212[];
+extern VTBL_ENTRY _ZTV9GG2221212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2221212[];
+static VTBL_ENTRY alt_thunk_names590[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1213fooEv,_ZThn8_N5FF1213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1213fooEv,_ZThn8_N5FF1213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22212123barEv,_ZTv0_n12_N9GG22212123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22212123barEv,_ZThn24_N9GG22212123barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22212123barEv,_ZThn16_N9GG22212123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22212123barEv,_ZTv0_n20_N9GG22212123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22212123barEv,_ZThn8_N9GG22212123barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2221212 = { "GG2221212", // class name
+ bases_GG2221212, 5,
+ &(vtc_GG2221212[0]), // expected_vtbl_contents
+ &(vtt_GG2221212[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2221212),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2221212),32, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2221212),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names590,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2221213 : virtual EE222 , virtual FF121 {
+ int pg;
+ virtual void foo(); // _ZN9GG22212133fooEv
+ virtual void bar(); // _ZN9GG22212133barEv
+ ~GG2221213(); // tgen
+ GG2221213(); // tgen
+};
+//SIG(1 GG2221213) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG2221213 ::foo(){vfunc_called(this, "_ZN9GG22212133fooEv");}
+void GG2221213 ::bar(){vfunc_called(this, "_ZN9GG22212133barEv");}
+GG2221213 ::~GG2221213(){ note_dtor("GG2221213", this);} // tgen
+GG2221213 ::GG2221213(){ note_ctor("GG2221213", this);} // tgen
+
+static void Test_GG2221213()
+{
+ extern Class_Descriptor cd_GG2221213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2221213, buf);
+ GG2221213 *dp, &lv = *(dp=new (buf) GG2221213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2221213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2221213)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2221213");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2221213");
+ check_base_class_offset(lv, (BB2*)(FF121*), ABISELECT(48,24), "GG2221213");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2221213");
+ check_base_class_offset(lv, (AA1*)(FF121*), ABISELECT(80,40), "GG2221213");
+ check_base_class_offset(lv, (FF121*), ABISELECT(64,32), "GG2221213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2221213.pg");
+ test_class_info(&lv, &cd_GG2221213);
+ dp->~GG2221213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2221213(Test_GG2221213, "GG2221213", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2221213C1Ev();
+extern void _ZN9GG2221213D1Ev();
+Name_Map name_map_GG2221213[] = {
+ NSPAIR(_ZN9GG2221213C1Ev),
+ NSPAIR(_ZN9GG2221213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF121;
+extern VTBL_ENTRY _ZTI5FF121[];
+extern VTBL_ENTRY _ZTV5FF121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF121[];
+static Base_Class bases_GG2221213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF121, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2221213[];
+extern void _ZN9GG22212133fooEv();
+extern void _ZN9GG22212133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22212133barEv,_ZTv0_n20_N9GG22212133barEv)();
+extern void ABISELECT(_ZThn16_N9GG22212133barEv,_ZThn8_N9GG22212133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22212133barEv,_ZTv0_n12_N9GG22212133barEv)();
+extern void ABISELECT(_ZThn32_N9GG22212133barEv,_ZThn16_N9GG22212133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22212133barEv,_ZTv0_n12_N9GG22212133barEv)();
+extern void ABISELECT(_ZThn48_N9GG22212133barEv,_ZThn24_N9GG22212133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22212133fooEv,_ZTv0_n20_N9GG22212133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22212133fooEv,_ZThn32_N9GG22212133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22212133fooEv,_ZTv0_n12_N9GG22212133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22212133fooEv,_ZThn40_N9GG22212133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2221213[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2221213[0]),
+ (VTBL_ENTRY)&_ZN9GG22212133fooEv,
+ (VTBL_ENTRY)&_ZN9GG22212133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2221213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22212133barEv,_ZTv0_n20_N9GG22212133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2221213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22212133barEv,_ZTv0_n12_N9GG22212133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2221213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22212133barEv,_ZTv0_n12_N9GG22212133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2221213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22212133fooEv,_ZTv0_n20_N9GG22212133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2221213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22212133fooEv,_ZTv0_n12_N9GG22212133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2221213[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2221213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2221213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2221213[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF1213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF121__9GG2221213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN5FF1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1213fooEv,_ZThn8_N5FF1213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF121__9GG2221213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF121__9GG2221213[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG2221213[] = {
+ {&(_ZTV9GG2221213[7]), 7,33},
+ {&(_ZTV9GG2221213[14]), 14,33},
+ {&(_ZTV9GG2221213[18]), 18,33},
+ {&(_ZTV9GG2221213[22]), 22,33},
+ {&(_ZTV9GG2221213[28]), 28,33},
+ {&(_ZTV9GG2221213[32]), 32,33},
+ {&(_tg__ZTV5EE222__9GG2221213[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2221213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2221213[3]), 3,4},
+ {&(_tg__ZTV5FF121__9GG2221213[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF121__9GG2221213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF121__9GG2221213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2221213[];
+extern VTBL_ENTRY _ZTV9GG2221213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2221213[];
+static VTBL_ENTRY alt_thunk_names591[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1213fooEv,_ZThn8_N5FF1213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22212133fooEv,_ZTv0_n12_N9GG22212133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22212133fooEv,_ZThn40_N9GG22212133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22212133fooEv,_ZTv0_n20_N9GG22212133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22212133fooEv,_ZThn32_N9GG22212133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22212133barEv,_ZTv0_n12_N9GG22212133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22212133barEv,_ZThn24_N9GG22212133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22212133barEv,_ZThn16_N9GG22212133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22212133barEv,_ZTv0_n20_N9GG22212133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22212133barEv,_ZThn8_N9GG22212133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2221213 = { "GG2221213", // class name
+ bases_GG2221213, 5,
+ &(vtc_GG2221213[0]), // expected_vtbl_contents
+ &(vtt_GG2221213[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2221213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2221213),33, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2221213),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names591,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2221222 : virtual EE222 , virtual FF122 {
+ int pg;
+ virtual void bar(); // _ZN9GG22212223barEv
+ ~GG2221222(); // tgen
+ GG2221222(); // tgen
+};
+//SIG(1 GG2221222) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v1 Fi} v1 Fi}
+
+
+void GG2221222 ::bar(){vfunc_called(this, "_ZN9GG22212223barEv");}
+GG2221222 ::~GG2221222(){ note_dtor("GG2221222", this);} // tgen
+GG2221222 ::GG2221222(){ note_ctor("GG2221222", this);} // tgen
+
+static void Test_GG2221222()
+{
+ extern Class_Descriptor cd_GG2221222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2221222, buf);
+ GG2221222 *dp, &lv = *(dp=new (buf) GG2221222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2221222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2221222)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2221222");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2221222");
+ check_base_class_offset(lv, (BB2*)(FF122*), ABISELECT(48,24), "GG2221222");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2221222");
+ check_base_class_offset(lv, (AA1*)(FF122*), ABISELECT(80,40), "GG2221222");
+ check_base_class_offset(lv, (FF122*), ABISELECT(64,32), "GG2221222");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2221222.pg");
+ test_class_info(&lv, &cd_GG2221222);
+ dp->~GG2221222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2221222(Test_GG2221222, "GG2221222", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2221222C1Ev();
+extern void _ZN9GG2221222D1Ev();
+Name_Map name_map_GG2221222[] = {
+ NSPAIR(_ZN9GG2221222C1Ev),
+ NSPAIR(_ZN9GG2221222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF122;
+extern VTBL_ENTRY _ZTI5FF122[];
+extern VTBL_ENTRY _ZTV5FF122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF122[];
+static Base_Class bases_GG2221222[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF122, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2221222[];
+extern void _ZN9GG22212223barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22212223barEv,_ZTv0_n20_N9GG22212223barEv)();
+extern void ABISELECT(_ZThn16_N9GG22212223barEv,_ZThn8_N9GG22212223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22212223barEv,_ZTv0_n12_N9GG22212223barEv)();
+extern void ABISELECT(_ZThn32_N9GG22212223barEv,_ZThn16_N9GG22212223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22212223barEv,_ZTv0_n12_N9GG22212223barEv)();
+extern void ABISELECT(_ZThn48_N9GG22212223barEv,_ZThn24_N9GG22212223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22212223barEv,_ZTv0_n20_N9GG22212223barEv)();
+extern void ABISELECT(_ZThn64_N9GG22212223barEv,_ZThn32_N9GG22212223barEv)() __attribute__((weak));
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY vtc_GG2221222[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2221222[0]),
+ (VTBL_ENTRY)&_ZN9GG22212223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2221222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22212223barEv,_ZTv0_n20_N9GG22212223barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2221222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22212223barEv,_ZTv0_n12_N9GG22212223barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2221222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22212223barEv,_ZTv0_n12_N9GG22212223barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2221222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22212223barEv,_ZTv0_n20_N9GG22212223barEv),
+ 0,
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2221222[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern VTBL_ENTRY _ZTV9GG2221222[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2221222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2221222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2221222[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF1223barEv();
+static VTBL_ENTRY _tg__ZTV5FF122__9GG2221222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN5FF1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF122__9GG2221222[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF122__9GG2221222[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv),
+};
+static VTT_ENTRY vtt_GG2221222[] = {
+ {&(_ZTV9GG2221222[7]), 7,32},
+ {&(_ZTV9GG2221222[13]), 13,32},
+ {&(_ZTV9GG2221222[17]), 17,32},
+ {&(_ZTV9GG2221222[21]), 21,32},
+ {&(_ZTV9GG2221222[27]), 27,32},
+ {&(_ZTV9GG2221222[31]), 31,32},
+ {&(_tg__ZTV5EE222__9GG2221222[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2221222[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2221222[3]), 3,4},
+ {&(_tg__ZTV5FF122__9GG2221222[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF122__9GG2221222[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF122__9GG2221222[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2221222[];
+extern VTBL_ENTRY _ZTV9GG2221222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2221222[];
+static VTBL_ENTRY alt_thunk_names592[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22212223barEv,_ZTv0_n12_N9GG22212223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22212223barEv,_ZThn24_N9GG22212223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22212223barEv,_ZThn16_N9GG22212223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22212223barEv,_ZTv0_n20_N9GG22212223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22212223barEv,_ZThn32_N9GG22212223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22212223barEv,_ZThn8_N9GG22212223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2221222 = { "GG2221222", // class name
+ bases_GG2221222, 5,
+ &(vtc_GG2221222[0]), // expected_vtbl_contents
+ &(vtt_GG2221222[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2221222),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2221222),32, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2221222),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names592,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2221223 : virtual EE222 , virtual FF122 {
+ int pg;
+ virtual void foo(); // _ZN9GG22212233fooEv
+ virtual void bar(); // _ZN9GG22212233barEv
+ ~GG2221223(); // tgen
+ GG2221223(); // tgen
+};
+//SIG(1 GG2221223) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG2221223 ::foo(){vfunc_called(this, "_ZN9GG22212233fooEv");}
+void GG2221223 ::bar(){vfunc_called(this, "_ZN9GG22212233barEv");}
+GG2221223 ::~GG2221223(){ note_dtor("GG2221223", this);} // tgen
+GG2221223 ::GG2221223(){ note_ctor("GG2221223", this);} // tgen
+
+static void Test_GG2221223()
+{
+ extern Class_Descriptor cd_GG2221223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2221223, buf);
+ GG2221223 *dp, &lv = *(dp=new (buf) GG2221223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2221223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2221223)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2221223");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2221223");
+ check_base_class_offset(lv, (BB2*)(FF122*), ABISELECT(48,24), "GG2221223");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2221223");
+ check_base_class_offset(lv, (AA1*)(FF122*), ABISELECT(80,40), "GG2221223");
+ check_base_class_offset(lv, (FF122*), ABISELECT(64,32), "GG2221223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2221223.pg");
+ test_class_info(&lv, &cd_GG2221223);
+ dp->~GG2221223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2221223(Test_GG2221223, "GG2221223", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2221223C1Ev();
+extern void _ZN9GG2221223D1Ev();
+Name_Map name_map_GG2221223[] = {
+ NSPAIR(_ZN9GG2221223C1Ev),
+ NSPAIR(_ZN9GG2221223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF122;
+extern VTBL_ENTRY _ZTI5FF122[];
+extern VTBL_ENTRY _ZTV5FF122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF122[];
+static Base_Class bases_GG2221223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF122, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2221223[];
+extern void _ZN9GG22212233fooEv();
+extern void _ZN9GG22212233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22212233barEv,_ZTv0_n20_N9GG22212233barEv)();
+extern void ABISELECT(_ZThn16_N9GG22212233barEv,_ZThn8_N9GG22212233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22212233barEv,_ZTv0_n12_N9GG22212233barEv)();
+extern void ABISELECT(_ZThn32_N9GG22212233barEv,_ZThn16_N9GG22212233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22212233barEv,_ZTv0_n12_N9GG22212233barEv)();
+extern void ABISELECT(_ZThn48_N9GG22212233barEv,_ZThn24_N9GG22212233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22212233barEv,_ZTv0_n20_N9GG22212233barEv)();
+extern void ABISELECT(_ZThn64_N9GG22212233barEv,_ZThn32_N9GG22212233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22212233fooEv,_ZTv0_n12_N9GG22212233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22212233fooEv,_ZThn40_N9GG22212233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2221223[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2221223[0]),
+ (VTBL_ENTRY)&_ZN9GG22212233fooEv,
+ (VTBL_ENTRY)&_ZN9GG22212233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2221223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22212233barEv,_ZTv0_n20_N9GG22212233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2221223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22212233barEv,_ZTv0_n12_N9GG22212233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2221223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22212233barEv,_ZTv0_n12_N9GG22212233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2221223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22212233barEv,_ZTv0_n20_N9GG22212233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2221223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22212233fooEv,_ZTv0_n12_N9GG22212233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2221223[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2221223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2221223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2221223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF1223barEv();
+static VTBL_ENTRY _tg__ZTV5FF122__9GG2221223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN5FF1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF122__9GG2221223[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF122__9GG2221223[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv),
+};
+static VTT_ENTRY vtt_GG2221223[] = {
+ {&(_ZTV9GG2221223[7]), 7,33},
+ {&(_ZTV9GG2221223[14]), 14,33},
+ {&(_ZTV9GG2221223[18]), 18,33},
+ {&(_ZTV9GG2221223[22]), 22,33},
+ {&(_ZTV9GG2221223[28]), 28,33},
+ {&(_ZTV9GG2221223[32]), 32,33},
+ {&(_tg__ZTV5EE222__9GG2221223[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2221223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2221223[3]), 3,4},
+ {&(_tg__ZTV5FF122__9GG2221223[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF122__9GG2221223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF122__9GG2221223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2221223[];
+extern VTBL_ENTRY _ZTV9GG2221223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2221223[];
+static VTBL_ENTRY alt_thunk_names593[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22212233fooEv,_ZTv0_n12_N9GG22212233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22212233fooEv,_ZThn40_N9GG22212233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22212233barEv,_ZTv0_n12_N9GG22212233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22212233barEv,_ZThn24_N9GG22212233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22212233barEv,_ZThn16_N9GG22212233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22212233barEv,_ZTv0_n20_N9GG22212233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22212233barEv,_ZThn32_N9GG22212233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22212233barEv,_ZThn8_N9GG22212233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2221223 = { "GG2221223", // class name
+ bases_GG2221223, 5,
+ &(vtc_GG2221223[0]), // expected_vtbl_contents
+ &(vtt_GG2221223[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2221223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2221223),33, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2221223),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names593,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2221232 : virtual EE222 , virtual FF123 {
+ int pg;
+ virtual void bar(); // _ZN9GG22212323barEv
+ ~GG2221232(); // tgen
+ GG2221232(); // tgen
+};
+//SIG(1 GG2221232) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v2 v1 Fi} v1 Fi}
+
+
+void GG2221232 ::bar(){vfunc_called(this, "_ZN9GG22212323barEv");}
+GG2221232 ::~GG2221232(){ note_dtor("GG2221232", this);} // tgen
+GG2221232 ::GG2221232(){ note_ctor("GG2221232", this);} // tgen
+
+static void Test_GG2221232()
+{
+ extern Class_Descriptor cd_GG2221232;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2221232, buf);
+ GG2221232 *dp, &lv = *(dp=new (buf) GG2221232());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2221232)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2221232)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2221232");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2221232");
+ check_base_class_offset(lv, (BB2*)(FF123*), ABISELECT(48,24), "GG2221232");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2221232");
+ check_base_class_offset(lv, (AA1*)(FF123*), ABISELECT(80,40), "GG2221232");
+ check_base_class_offset(lv, (FF123*), ABISELECT(64,32), "GG2221232");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2221232.pg");
+ test_class_info(&lv, &cd_GG2221232);
+ dp->~GG2221232();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2221232(Test_GG2221232, "GG2221232", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2221232C1Ev();
+extern void _ZN9GG2221232D1Ev();
+Name_Map name_map_GG2221232[] = {
+ NSPAIR(_ZN9GG2221232C1Ev),
+ NSPAIR(_ZN9GG2221232D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF123;
+extern VTBL_ENTRY _ZTI5FF123[];
+extern VTBL_ENTRY _ZTV5FF123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF123[];
+static Base_Class bases_GG2221232[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF123, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2221232[];
+extern void _ZN9GG22212323barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22212323barEv,_ZTv0_n20_N9GG22212323barEv)();
+extern void ABISELECT(_ZThn16_N9GG22212323barEv,_ZThn8_N9GG22212323barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22212323barEv,_ZTv0_n12_N9GG22212323barEv)();
+extern void ABISELECT(_ZThn32_N9GG22212323barEv,_ZThn16_N9GG22212323barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22212323barEv,_ZTv0_n12_N9GG22212323barEv)();
+extern void ABISELECT(_ZThn48_N9GG22212323barEv,_ZThn24_N9GG22212323barEv)() __attribute__((weak));
+extern void _ZN5FF1233fooEv();
+extern void ABISELECT(_ZTv0_n48_N9GG22212323barEv,_ZTv0_n24_N9GG22212323barEv)();
+extern void ABISELECT(_ZThn64_N9GG22212323barEv,_ZThn32_N9GG22212323barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1233fooEv,_ZThn8_N5FF1233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2221232[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2221232[0]),
+ (VTBL_ENTRY)&_ZN9GG22212323barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2221232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22212323barEv,_ZTv0_n20_N9GG22212323barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2221232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22212323barEv,_ZTv0_n12_N9GG22212323barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2221232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22212323barEv,_ZTv0_n12_N9GG22212323barEv),
+ ABISELECT(-64,-32),
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2221232[0]),
+ (VTBL_ENTRY)&_ZN5FF1233fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22212323barEv,_ZTv0_n24_N9GG22212323barEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2221232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2221232[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2221232[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2221232[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2221232[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF1233fooEv();
+extern void _ZN5FF1233barEv();
+static VTBL_ENTRY _tg__ZTV5FF123__9GG2221232[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&_ZN5FF1233fooEv,
+ (VTBL_ENTRY)&_ZN5FF1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1233fooEv,_ZThn8_N5FF1233fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF123__9GG2221232[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF123__9GG2221232[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv),
+};
+static VTT_ENTRY vtt_GG2221232[] = {
+ {&(_ZTV9GG2221232[7]), 7,34},
+ {&(_ZTV9GG2221232[13]), 13,34},
+ {&(_ZTV9GG2221232[17]), 17,34},
+ {&(_ZTV9GG2221232[21]), 21,34},
+ {&(_ZTV9GG2221232[28]), 28,34},
+ {&(_ZTV9GG2221232[33]), 33,34},
+ {&(_tg__ZTV5EE222__9GG2221232[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2221232[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2221232[3]), 3,4},
+ {&(_tg__ZTV5FF123__9GG2221232[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF123__9GG2221232[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF123__9GG2221232[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2221232[];
+extern VTBL_ENTRY _ZTV9GG2221232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2221232[];
+static VTBL_ENTRY alt_thunk_names594[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1233fooEv,_ZThn8_N5FF1233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1233fooEv,_ZThn8_N5FF1233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22212323barEv,_ZTv0_n24_N9GG22212323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22212323barEv,_ZThn32_N9GG22212323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22212323barEv,_ZTv0_n12_N9GG22212323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22212323barEv,_ZThn24_N9GG22212323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22212323barEv,_ZThn16_N9GG22212323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22212323barEv,_ZTv0_n20_N9GG22212323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22212323barEv,_ZThn8_N9GG22212323barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2221232 = { "GG2221232", // class name
+ bases_GG2221232, 5,
+ &(vtc_GG2221232[0]), // expected_vtbl_contents
+ &(vtt_GG2221232[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2221232),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2221232),34, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2221232),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names594,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2221233 : virtual EE222 , virtual FF123 {
+ int pg;
+ virtual void foo(); // _ZN9GG22212333fooEv
+ virtual void bar(); // _ZN9GG22212333barEv
+ ~GG2221233(); // tgen
+ GG2221233(); // tgen
+};
+//SIG(1 GG2221233) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2221233 ::foo(){vfunc_called(this, "_ZN9GG22212333fooEv");}
+void GG2221233 ::bar(){vfunc_called(this, "_ZN9GG22212333barEv");}
+GG2221233 ::~GG2221233(){ note_dtor("GG2221233", this);} // tgen
+GG2221233 ::GG2221233(){ note_ctor("GG2221233", this);} // tgen
+
+static void Test_GG2221233()
+{
+ extern Class_Descriptor cd_GG2221233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2221233, buf);
+ GG2221233 *dp, &lv = *(dp=new (buf) GG2221233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2221233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2221233)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2221233");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2221233");
+ check_base_class_offset(lv, (BB2*)(FF123*), ABISELECT(48,24), "GG2221233");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2221233");
+ check_base_class_offset(lv, (AA1*)(FF123*), ABISELECT(80,40), "GG2221233");
+ check_base_class_offset(lv, (FF123*), ABISELECT(64,32), "GG2221233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2221233.pg");
+ test_class_info(&lv, &cd_GG2221233);
+ dp->~GG2221233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2221233(Test_GG2221233, "GG2221233", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2221233C1Ev();
+extern void _ZN9GG2221233D1Ev();
+Name_Map name_map_GG2221233[] = {
+ NSPAIR(_ZN9GG2221233C1Ev),
+ NSPAIR(_ZN9GG2221233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF123;
+extern VTBL_ENTRY _ZTI5FF123[];
+extern VTBL_ENTRY _ZTV5FF123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF123[];
+static Base_Class bases_GG2221233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF123, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2221233[];
+extern void _ZN9GG22212333fooEv();
+extern void _ZN9GG22212333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22212333barEv,_ZTv0_n20_N9GG22212333barEv)();
+extern void ABISELECT(_ZThn16_N9GG22212333barEv,_ZThn8_N9GG22212333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22212333barEv,_ZTv0_n12_N9GG22212333barEv)();
+extern void ABISELECT(_ZThn32_N9GG22212333barEv,_ZThn16_N9GG22212333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22212333barEv,_ZTv0_n12_N9GG22212333barEv)();
+extern void ABISELECT(_ZThn48_N9GG22212333barEv,_ZThn24_N9GG22212333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22212333fooEv,_ZTv0_n20_N9GG22212333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22212333fooEv,_ZThn32_N9GG22212333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22212333barEv,_ZTv0_n24_N9GG22212333barEv)();
+extern void ABISELECT(_ZThn64_N9GG22212333barEv,_ZThn32_N9GG22212333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22212333fooEv,_ZTv0_n12_N9GG22212333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22212333fooEv,_ZThn40_N9GG22212333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2221233[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2221233[0]),
+ (VTBL_ENTRY)&_ZN9GG22212333fooEv,
+ (VTBL_ENTRY)&_ZN9GG22212333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2221233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22212333barEv,_ZTv0_n20_N9GG22212333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2221233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22212333barEv,_ZTv0_n12_N9GG22212333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2221233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22212333barEv,_ZTv0_n12_N9GG22212333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2221233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22212333fooEv,_ZTv0_n20_N9GG22212333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22212333barEv,_ZTv0_n24_N9GG22212333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2221233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22212333fooEv,_ZTv0_n12_N9GG22212333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2221233[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2221233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2221233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2221233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF1233fooEv();
+extern void _ZN5FF1233barEv();
+static VTBL_ENTRY _tg__ZTV5FF123__9GG2221233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&_ZN5FF1233fooEv,
+ (VTBL_ENTRY)&_ZN5FF1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1233fooEv,_ZThn8_N5FF1233fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF123__9GG2221233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF123__9GG2221233[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv),
+};
+static VTT_ENTRY vtt_GG2221233[] = {
+ {&(_ZTV9GG2221233[7]), 7,35},
+ {&(_ZTV9GG2221233[14]), 14,35},
+ {&(_ZTV9GG2221233[18]), 18,35},
+ {&(_ZTV9GG2221233[22]), 22,35},
+ {&(_ZTV9GG2221233[29]), 29,35},
+ {&(_ZTV9GG2221233[34]), 34,35},
+ {&(_tg__ZTV5EE222__9GG2221233[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2221233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2221233[3]), 3,4},
+ {&(_tg__ZTV5FF123__9GG2221233[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF123__9GG2221233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF123__9GG2221233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2221233[];
+extern VTBL_ENTRY _ZTV9GG2221233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2221233[];
+static VTBL_ENTRY alt_thunk_names595[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1233fooEv,_ZThn8_N5FF1233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22212333fooEv,_ZTv0_n12_N9GG22212333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22212333fooEv,_ZThn40_N9GG22212333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22212333barEv,_ZTv0_n24_N9GG22212333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22212333barEv,_ZThn32_N9GG22212333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22212333fooEv,_ZTv0_n20_N9GG22212333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22212333fooEv,_ZThn32_N9GG22212333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22212333barEv,_ZTv0_n12_N9GG22212333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22212333barEv,_ZThn24_N9GG22212333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22212333barEv,_ZThn16_N9GG22212333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22212333barEv,_ZTv0_n20_N9GG22212333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22212333barEv,_ZThn8_N9GG22212333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2221233 = { "GG2221233", // class name
+ bases_GG2221233, 5,
+ &(vtc_GG2221233[0]), // expected_vtbl_contents
+ &(vtt_GG2221233[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2221233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2221233),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2221233),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names595,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2221312 : virtual EE222 , virtual FF131 {
+ int pg;
+ virtual void bar(); // _ZN9GG22213123barEv
+ ~GG2221312(); // tgen
+ GG2221312(); // tgen
+};
+//SIG(1 GG2221312) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void GG2221312 ::bar(){vfunc_called(this, "_ZN9GG22213123barEv");}
+GG2221312 ::~GG2221312(){ note_dtor("GG2221312", this);} // tgen
+GG2221312 ::GG2221312(){ note_ctor("GG2221312", this);} // tgen
+
+static void Test_GG2221312()
+{
+ extern Class_Descriptor cd_GG2221312;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2221312, buf);
+ GG2221312 *dp, &lv = *(dp=new (buf) GG2221312());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2221312)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2221312)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2221312");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2221312");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2221312");
+ check_base_class_offset(lv, (AA1*)(FF131*), ABISELECT(80,40), "GG2221312");
+ check_base_class_offset(lv, (BB3*)(FF131*), ABISELECT(96,48), "GG2221312");
+ check_base_class_offset(lv, (FF131*), ABISELECT(64,32), "GG2221312");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2221312.pg");
+ test_class_info(&lv, &cd_GG2221312);
+ dp->~GG2221312();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2221312(Test_GG2221312, "GG2221312", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2221312C1Ev();
+extern void _ZN9GG2221312D1Ev();
+Name_Map name_map_GG2221312[] = {
+ NSPAIR(_ZN9GG2221312C1Ev),
+ NSPAIR(_ZN9GG2221312D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF131;
+extern VTBL_ENTRY _ZTI5FF131[];
+extern VTBL_ENTRY _ZTV5FF131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF131[];
+static Base_Class bases_GG2221312[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF131, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2221312[];
+extern void _ZN9GG22213123barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22213123barEv,_ZTv0_n20_N9GG22213123barEv)();
+extern void ABISELECT(_ZThn16_N9GG22213123barEv,_ZThn8_N9GG22213123barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22213123barEv,_ZTv0_n12_N9GG22213123barEv)();
+extern void ABISELECT(_ZThn32_N9GG22213123barEv,_ZThn16_N9GG22213123barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22213123barEv,_ZTv0_n12_N9GG22213123barEv)();
+extern void ABISELECT(_ZThn48_N9GG22213123barEv,_ZThn24_N9GG22213123barEv)() __attribute__((weak));
+extern void _ZN5FF1313fooEv();
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1313fooEv,_ZThn16_N5FF1313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22213123barEv,_ZTv0_n16_N9GG22213123barEv)();
+extern void ABISELECT(_ZThn96_N9GG22213123barEv,_ZThn48_N9GG22213123barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2221312[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2221312[0]),
+ (VTBL_ENTRY)&_ZN9GG22213123barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2221312[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22213123barEv,_ZTv0_n20_N9GG22213123barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2221312[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22213123barEv,_ZTv0_n12_N9GG22213123barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2221312[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22213123barEv,_ZTv0_n12_N9GG22213123barEv),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2221312[0]),
+ (VTBL_ENTRY)&_ZN5FF1313fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2221312[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-32,-16),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2221312[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22213123barEv,_ZTv0_n16_N9GG22213123barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2221312[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2221312[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2221312[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2221312[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF1313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF131__9GG2221312[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&_ZN5FF1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF131__9GG2221312[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1313fooEv,_ZThn16_N5FF1313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF131__9GG2221312[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG2221312[] = {
+ {&(_ZTV9GG2221312[8]), 8,39},
+ {&(_ZTV9GG2221312[14]), 14,39},
+ {&(_ZTV9GG2221312[18]), 18,39},
+ {&(_ZTV9GG2221312[22]), 22,39},
+ {&(_ZTV9GG2221312[28]), 28,39},
+ {&(_ZTV9GG2221312[32]), 32,39},
+ {&(_ZTV9GG2221312[37]), 37,39},
+ {&(_tg__ZTV5EE222__9GG2221312[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2221312[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2221312[3]), 3,4},
+ {&(_tg__ZTV5FF131__9GG2221312[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF131__9GG2221312[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF131__9GG2221312[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2221312[];
+extern VTBL_ENTRY _ZTV9GG2221312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2221312[];
+static VTBL_ENTRY alt_thunk_names596[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22213123barEv,_ZTv0_n16_N9GG22213123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22213123barEv,_ZThn48_N9GG22213123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1313fooEv,_ZThn16_N5FF1313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1313fooEv,_ZThn16_N5FF1313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22213123barEv,_ZTv0_n12_N9GG22213123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22213123barEv,_ZThn24_N9GG22213123barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22213123barEv,_ZThn16_N9GG22213123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22213123barEv,_ZTv0_n20_N9GG22213123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22213123barEv,_ZThn8_N9GG22213123barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2221312 = { "GG2221312", // class name
+ bases_GG2221312, 6,
+ &(vtc_GG2221312[0]), // expected_vtbl_contents
+ &(vtt_GG2221312[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2221312),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2221312),39, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2221312),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names596,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2221313 : virtual EE222 , virtual FF131 {
+ int pg;
+ virtual void foo(); // _ZN9GG22213133fooEv
+ virtual void bar(); // _ZN9GG22213133barEv
+ ~GG2221313(); // tgen
+ GG2221313(); // tgen
+};
+//SIG(1 GG2221313) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2221313 ::foo(){vfunc_called(this, "_ZN9GG22213133fooEv");}
+void GG2221313 ::bar(){vfunc_called(this, "_ZN9GG22213133barEv");}
+GG2221313 ::~GG2221313(){ note_dtor("GG2221313", this);} // tgen
+GG2221313 ::GG2221313(){ note_ctor("GG2221313", this);} // tgen
+
+static void Test_GG2221313()
+{
+ extern Class_Descriptor cd_GG2221313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2221313, buf);
+ GG2221313 *dp, &lv = *(dp=new (buf) GG2221313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2221313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2221313)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2221313");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2221313");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2221313");
+ check_base_class_offset(lv, (AA1*)(FF131*), ABISELECT(80,40), "GG2221313");
+ check_base_class_offset(lv, (BB3*)(FF131*), ABISELECT(96,48), "GG2221313");
+ check_base_class_offset(lv, (FF131*), ABISELECT(64,32), "GG2221313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2221313.pg");
+ test_class_info(&lv, &cd_GG2221313);
+ dp->~GG2221313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2221313(Test_GG2221313, "GG2221313", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2221313C1Ev();
+extern void _ZN9GG2221313D1Ev();
+Name_Map name_map_GG2221313[] = {
+ NSPAIR(_ZN9GG2221313C1Ev),
+ NSPAIR(_ZN9GG2221313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF131;
+extern VTBL_ENTRY _ZTI5FF131[];
+extern VTBL_ENTRY _ZTV5FF131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF131[];
+static Base_Class bases_GG2221313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF131, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2221313[];
+extern void _ZN9GG22213133fooEv();
+extern void _ZN9GG22213133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22213133barEv,_ZTv0_n20_N9GG22213133barEv)();
+extern void ABISELECT(_ZThn16_N9GG22213133barEv,_ZThn8_N9GG22213133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22213133barEv,_ZTv0_n12_N9GG22213133barEv)();
+extern void ABISELECT(_ZThn32_N9GG22213133barEv,_ZThn16_N9GG22213133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22213133barEv,_ZTv0_n12_N9GG22213133barEv)();
+extern void ABISELECT(_ZThn48_N9GG22213133barEv,_ZThn24_N9GG22213133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22213133fooEv,_ZTv0_n20_N9GG22213133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22213133fooEv,_ZThn32_N9GG22213133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22213133fooEv,_ZTv0_n12_N9GG22213133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22213133fooEv,_ZThn40_N9GG22213133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22213133fooEv,_ZTv0_n12_N9GG22213133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG22213133fooEv,_ZThn48_N9GG22213133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22213133barEv,_ZTv0_n16_N9GG22213133barEv)();
+extern void ABISELECT(_ZThn96_N9GG22213133barEv,_ZThn48_N9GG22213133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2221313[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2221313[0]),
+ (VTBL_ENTRY)&_ZN9GG22213133fooEv,
+ (VTBL_ENTRY)&_ZN9GG22213133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2221313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22213133barEv,_ZTv0_n20_N9GG22213133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2221313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22213133barEv,_ZTv0_n12_N9GG22213133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2221313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22213133barEv,_ZTv0_n12_N9GG22213133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2221313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22213133fooEv,_ZTv0_n20_N9GG22213133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2221313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22213133fooEv,_ZTv0_n12_N9GG22213133fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2221313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22213133fooEv,_ZTv0_n12_N9GG22213133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22213133barEv,_ZTv0_n16_N9GG22213133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2221313[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2221313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2221313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2221313[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF1313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF131__9GG2221313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&_ZN5FF1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF131__9GG2221313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1313fooEv,_ZThn16_N5FF1313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF131__9GG2221313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG2221313[] = {
+ {&(_ZTV9GG2221313[8]), 8,40},
+ {&(_ZTV9GG2221313[15]), 15,40},
+ {&(_ZTV9GG2221313[19]), 19,40},
+ {&(_ZTV9GG2221313[23]), 23,40},
+ {&(_ZTV9GG2221313[29]), 29,40},
+ {&(_ZTV9GG2221313[33]), 33,40},
+ {&(_ZTV9GG2221313[38]), 38,40},
+ {&(_tg__ZTV5EE222__9GG2221313[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2221313[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2221313[3]), 3,4},
+ {&(_tg__ZTV5FF131__9GG2221313[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF131__9GG2221313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF131__9GG2221313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2221313[];
+extern VTBL_ENTRY _ZTV9GG2221313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2221313[];
+static VTBL_ENTRY alt_thunk_names597[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1313fooEv,_ZThn16_N5FF1313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22213133barEv,_ZTv0_n16_N9GG22213133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22213133barEv,_ZThn48_N9GG22213133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22213133fooEv,_ZTv0_n12_N9GG22213133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22213133fooEv,_ZThn48_N9GG22213133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22213133fooEv,_ZThn40_N9GG22213133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22213133fooEv,_ZTv0_n20_N9GG22213133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22213133fooEv,_ZThn32_N9GG22213133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22213133barEv,_ZTv0_n12_N9GG22213133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22213133barEv,_ZThn24_N9GG22213133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22213133barEv,_ZThn16_N9GG22213133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22213133barEv,_ZTv0_n20_N9GG22213133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22213133barEv,_ZThn8_N9GG22213133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2221313 = { "GG2221313", // class name
+ bases_GG2221313, 6,
+ &(vtc_GG2221313[0]), // expected_vtbl_contents
+ &(vtt_GG2221313[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2221313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2221313),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2221313),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names597,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2221322 : virtual EE222 , virtual FF132 {
+ int pg;
+ virtual void bar(); // _ZN9GG22213223barEv
+ ~GG2221322(); // tgen
+ GG2221322(); // tgen
+};
+//SIG(1 GG2221322) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v3 v1 Fi} v1 Fi} v1 Fi}
+
+
+void GG2221322 ::bar(){vfunc_called(this, "_ZN9GG22213223barEv");}
+GG2221322 ::~GG2221322(){ note_dtor("GG2221322", this);} // tgen
+GG2221322 ::GG2221322(){ note_ctor("GG2221322", this);} // tgen
+
+static void Test_GG2221322()
+{
+ extern Class_Descriptor cd_GG2221322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2221322, buf);
+ GG2221322 *dp, &lv = *(dp=new (buf) GG2221322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2221322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2221322)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2221322");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2221322");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2221322");
+ check_base_class_offset(lv, (AA1*)(FF132*), ABISELECT(80,40), "GG2221322");
+ check_base_class_offset(lv, (BB3*)(FF132*), ABISELECT(96,48), "GG2221322");
+ check_base_class_offset(lv, (FF132*), ABISELECT(64,32), "GG2221322");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2221322.pg");
+ test_class_info(&lv, &cd_GG2221322);
+ dp->~GG2221322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2221322(Test_GG2221322, "GG2221322", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2221322C1Ev();
+extern void _ZN9GG2221322D1Ev();
+Name_Map name_map_GG2221322[] = {
+ NSPAIR(_ZN9GG2221322C1Ev),
+ NSPAIR(_ZN9GG2221322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF132;
+extern VTBL_ENTRY _ZTI5FF132[];
+extern VTBL_ENTRY _ZTV5FF132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF132[];
+static Base_Class bases_GG2221322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF132, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2221322[];
+extern void _ZN9GG22213223barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22213223barEv,_ZTv0_n20_N9GG22213223barEv)();
+extern void ABISELECT(_ZThn16_N9GG22213223barEv,_ZThn8_N9GG22213223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22213223barEv,_ZTv0_n12_N9GG22213223barEv)();
+extern void ABISELECT(_ZThn32_N9GG22213223barEv,_ZThn16_N9GG22213223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22213223barEv,_ZTv0_n12_N9GG22213223barEv)();
+extern void ABISELECT(_ZThn48_N9GG22213223barEv,_ZThn24_N9GG22213223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22213223barEv,_ZTv0_n20_N9GG22213223barEv)();
+extern void ABISELECT(_ZThn64_N9GG22213223barEv,_ZThn32_N9GG22213223barEv)() __attribute__((weak));
+extern void _ZN3AA13fooEv();
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N9GG22213223barEv,_ZTv0_n16_N9GG22213223barEv)();
+extern void ABISELECT(_ZThn96_N9GG22213223barEv,_ZThn48_N9GG22213223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2221322[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2221322[0]),
+ (VTBL_ENTRY)&_ZN9GG22213223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2221322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22213223barEv,_ZTv0_n20_N9GG22213223barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2221322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22213223barEv,_ZTv0_n12_N9GG22213223barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2221322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22213223barEv,_ZTv0_n12_N9GG22213223barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2221322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22213223barEv,_ZTv0_n20_N9GG22213223barEv),
+ 0,
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2221322[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+ ABISELECT(-96,-48),
+ 0,
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2221322[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22213223barEv,_ZTv0_n16_N9GG22213223barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2221322[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2221322[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2221322[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2221322[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF1323barEv();
+static VTBL_ENTRY _tg__ZTV5FF132__9GG2221322[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN5FF1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF132__9GG2221322[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv)();
+extern void ABISELECT(_ZThn32_N5FF1323barEv,_ZThn16_N5FF1323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF132__9GG2221322[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv),
+};
+static VTT_ENTRY vtt_GG2221322[] = {
+ {&(_ZTV9GG2221322[8]), 8,39},
+ {&(_ZTV9GG2221322[14]), 14,39},
+ {&(_ZTV9GG2221322[18]), 18,39},
+ {&(_ZTV9GG2221322[22]), 22,39},
+ {&(_ZTV9GG2221322[28]), 28,39},
+ {&(_ZTV9GG2221322[32]), 32,39},
+ {&(_ZTV9GG2221322[37]), 37,39},
+ {&(_tg__ZTV5EE222__9GG2221322[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2221322[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2221322[3]), 3,4},
+ {&(_tg__ZTV5FF132__9GG2221322[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF132__9GG2221322[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF132__9GG2221322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2221322[];
+extern VTBL_ENTRY _ZTV9GG2221322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2221322[];
+static VTBL_ENTRY alt_thunk_names598[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1323barEv,_ZThn16_N5FF1323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22213223barEv,_ZTv0_n16_N9GG22213223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22213223barEv,_ZThn48_N9GG22213223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22213223barEv,_ZTv0_n12_N9GG22213223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22213223barEv,_ZThn24_N9GG22213223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22213223barEv,_ZThn16_N9GG22213223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22213223barEv,_ZTv0_n20_N9GG22213223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22213223barEv,_ZThn32_N9GG22213223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22213223barEv,_ZThn8_N9GG22213223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2221322 = { "GG2221322", // class name
+ bases_GG2221322, 6,
+ &(vtc_GG2221322[0]), // expected_vtbl_contents
+ &(vtt_GG2221322[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2221322),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2221322),39, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2221322),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names598,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2221323 : virtual EE222 , virtual FF132 {
+ int pg;
+ virtual void foo(); // _ZN9GG22213233fooEv
+ virtual void bar(); // _ZN9GG22213233barEv
+ ~GG2221323(); // tgen
+ GG2221323(); // tgen
+};
+//SIG(1 GG2221323) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2221323 ::foo(){vfunc_called(this, "_ZN9GG22213233fooEv");}
+void GG2221323 ::bar(){vfunc_called(this, "_ZN9GG22213233barEv");}
+GG2221323 ::~GG2221323(){ note_dtor("GG2221323", this);} // tgen
+GG2221323 ::GG2221323(){ note_ctor("GG2221323", this);} // tgen
+
+static void Test_GG2221323()
+{
+ extern Class_Descriptor cd_GG2221323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2221323, buf);
+ GG2221323 *dp, &lv = *(dp=new (buf) GG2221323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2221323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2221323)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2221323");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2221323");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2221323");
+ check_base_class_offset(lv, (AA1*)(FF132*), ABISELECT(80,40), "GG2221323");
+ check_base_class_offset(lv, (BB3*)(FF132*), ABISELECT(96,48), "GG2221323");
+ check_base_class_offset(lv, (FF132*), ABISELECT(64,32), "GG2221323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2221323.pg");
+ test_class_info(&lv, &cd_GG2221323);
+ dp->~GG2221323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2221323(Test_GG2221323, "GG2221323", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2221323C1Ev();
+extern void _ZN9GG2221323D1Ev();
+Name_Map name_map_GG2221323[] = {
+ NSPAIR(_ZN9GG2221323C1Ev),
+ NSPAIR(_ZN9GG2221323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF132;
+extern VTBL_ENTRY _ZTI5FF132[];
+extern VTBL_ENTRY _ZTV5FF132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF132[];
+static Base_Class bases_GG2221323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF132, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2221323[];
+extern void _ZN9GG22213233fooEv();
+extern void _ZN9GG22213233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22213233barEv,_ZTv0_n20_N9GG22213233barEv)();
+extern void ABISELECT(_ZThn16_N9GG22213233barEv,_ZThn8_N9GG22213233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22213233barEv,_ZTv0_n12_N9GG22213233barEv)();
+extern void ABISELECT(_ZThn32_N9GG22213233barEv,_ZThn16_N9GG22213233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22213233barEv,_ZTv0_n12_N9GG22213233barEv)();
+extern void ABISELECT(_ZThn48_N9GG22213233barEv,_ZThn24_N9GG22213233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22213233barEv,_ZTv0_n20_N9GG22213233barEv)();
+extern void ABISELECT(_ZThn64_N9GG22213233barEv,_ZThn32_N9GG22213233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22213233fooEv,_ZTv0_n12_N9GG22213233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22213233fooEv,_ZThn40_N9GG22213233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22213233fooEv,_ZTv0_n12_N9GG22213233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG22213233fooEv,_ZThn48_N9GG22213233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22213233barEv,_ZTv0_n16_N9GG22213233barEv)();
+extern void ABISELECT(_ZThn96_N9GG22213233barEv,_ZThn48_N9GG22213233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2221323[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2221323[0]),
+ (VTBL_ENTRY)&_ZN9GG22213233fooEv,
+ (VTBL_ENTRY)&_ZN9GG22213233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2221323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22213233barEv,_ZTv0_n20_N9GG22213233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2221323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22213233barEv,_ZTv0_n12_N9GG22213233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2221323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22213233barEv,_ZTv0_n12_N9GG22213233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2221323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22213233barEv,_ZTv0_n20_N9GG22213233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2221323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22213233fooEv,_ZTv0_n12_N9GG22213233fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2221323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22213233fooEv,_ZTv0_n12_N9GG22213233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22213233barEv,_ZTv0_n16_N9GG22213233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2221323[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2221323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2221323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2221323[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF1323barEv();
+static VTBL_ENTRY _tg__ZTV5FF132__9GG2221323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN5FF1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF132__9GG2221323[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv)();
+extern void ABISELECT(_ZThn32_N5FF1323barEv,_ZThn16_N5FF1323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF132__9GG2221323[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv),
+};
+static VTT_ENTRY vtt_GG2221323[] = {
+ {&(_ZTV9GG2221323[8]), 8,40},
+ {&(_ZTV9GG2221323[15]), 15,40},
+ {&(_ZTV9GG2221323[19]), 19,40},
+ {&(_ZTV9GG2221323[23]), 23,40},
+ {&(_ZTV9GG2221323[29]), 29,40},
+ {&(_ZTV9GG2221323[33]), 33,40},
+ {&(_ZTV9GG2221323[38]), 38,40},
+ {&(_tg__ZTV5EE222__9GG2221323[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2221323[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2221323[3]), 3,4},
+ {&(_tg__ZTV5FF132__9GG2221323[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF132__9GG2221323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF132__9GG2221323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2221323[];
+extern VTBL_ENTRY _ZTV9GG2221323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2221323[];
+static VTBL_ENTRY alt_thunk_names599[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1323barEv,_ZThn16_N5FF1323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22213233barEv,_ZTv0_n16_N9GG22213233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22213233barEv,_ZThn48_N9GG22213233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22213233fooEv,_ZTv0_n12_N9GG22213233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22213233fooEv,_ZThn48_N9GG22213233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22213233fooEv,_ZThn40_N9GG22213233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22213233barEv,_ZTv0_n12_N9GG22213233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22213233barEv,_ZThn24_N9GG22213233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22213233barEv,_ZThn16_N9GG22213233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22213233barEv,_ZTv0_n20_N9GG22213233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22213233barEv,_ZThn32_N9GG22213233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22213233barEv,_ZThn8_N9GG22213233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2221323 = { "GG2221323", // class name
+ bases_GG2221323, 6,
+ &(vtc_GG2221323[0]), // expected_vtbl_contents
+ &(vtt_GG2221323[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2221323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2221323),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2221323),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names599,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2221332 : virtual EE222 , virtual FF133 {
+ int pg;
+ virtual void bar(); // _ZN9GG22213323barEv
+ ~GG2221332(); // tgen
+ GG2221332(); // tgen
+};
+//SIG(1 GG2221332) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v2 v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void GG2221332 ::bar(){vfunc_called(this, "_ZN9GG22213323barEv");}
+GG2221332 ::~GG2221332(){ note_dtor("GG2221332", this);} // tgen
+GG2221332 ::GG2221332(){ note_ctor("GG2221332", this);} // tgen
+
+static void Test_GG2221332()
+{
+ extern Class_Descriptor cd_GG2221332;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2221332, buf);
+ GG2221332 *dp, &lv = *(dp=new (buf) GG2221332());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2221332)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2221332)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2221332");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2221332");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2221332");
+ check_base_class_offset(lv, (AA1*)(FF133*), ABISELECT(80,40), "GG2221332");
+ check_base_class_offset(lv, (BB3*)(FF133*), ABISELECT(96,48), "GG2221332");
+ check_base_class_offset(lv, (FF133*), ABISELECT(64,32), "GG2221332");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2221332.pg");
+ test_class_info(&lv, &cd_GG2221332);
+ dp->~GG2221332();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2221332(Test_GG2221332, "GG2221332", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2221332C1Ev();
+extern void _ZN9GG2221332D1Ev();
+Name_Map name_map_GG2221332[] = {
+ NSPAIR(_ZN9GG2221332C1Ev),
+ NSPAIR(_ZN9GG2221332D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF133;
+extern VTBL_ENTRY _ZTI5FF133[];
+extern VTBL_ENTRY _ZTV5FF133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF133[];
+static Base_Class bases_GG2221332[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF133, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2221332[];
+extern void _ZN9GG22213323barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22213323barEv,_ZTv0_n20_N9GG22213323barEv)();
+extern void ABISELECT(_ZThn16_N9GG22213323barEv,_ZThn8_N9GG22213323barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22213323barEv,_ZTv0_n12_N9GG22213323barEv)();
+extern void ABISELECT(_ZThn32_N9GG22213323barEv,_ZThn16_N9GG22213323barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22213323barEv,_ZTv0_n12_N9GG22213323barEv)();
+extern void ABISELECT(_ZThn48_N9GG22213323barEv,_ZThn24_N9GG22213323barEv)() __attribute__((weak));
+extern void _ZN5FF1333fooEv();
+extern void ABISELECT(_ZTv0_n48_N9GG22213323barEv,_ZTv0_n24_N9GG22213323barEv)();
+extern void ABISELECT(_ZThn64_N9GG22213323barEv,_ZThn32_N9GG22213323barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1333fooEv,_ZThn16_N5FF1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22213323barEv,_ZTv0_n16_N9GG22213323barEv)();
+extern void ABISELECT(_ZThn96_N9GG22213323barEv,_ZThn48_N9GG22213323barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2221332[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2221332[0]),
+ (VTBL_ENTRY)&_ZN9GG22213323barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2221332[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22213323barEv,_ZTv0_n20_N9GG22213323barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2221332[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22213323barEv,_ZTv0_n12_N9GG22213323barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2221332[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22213323barEv,_ZTv0_n12_N9GG22213323barEv),
+ ABISELECT(-64,-32),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2221332[0]),
+ (VTBL_ENTRY)&_ZN5FF1333fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22213323barEv,_ZTv0_n24_N9GG22213323barEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2221332[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-32,-16),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2221332[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22213323barEv,_ZTv0_n16_N9GG22213323barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2221332[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2221332[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2221332[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2221332[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF1333fooEv();
+extern void _ZN5FF1333barEv();
+static VTBL_ENTRY _tg__ZTV5FF133__9GG2221332[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&_ZN5FF1333fooEv,
+ (VTBL_ENTRY)&_ZN5FF1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF133__9GG2221332[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1333fooEv,_ZThn16_N5FF1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv)();
+extern void ABISELECT(_ZThn32_N5FF1333barEv,_ZThn16_N5FF1333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF133__9GG2221332[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv),
+};
+static VTT_ENTRY vtt_GG2221332[] = {
+ {&(_ZTV9GG2221332[8]), 8,41},
+ {&(_ZTV9GG2221332[14]), 14,41},
+ {&(_ZTV9GG2221332[18]), 18,41},
+ {&(_ZTV9GG2221332[22]), 22,41},
+ {&(_ZTV9GG2221332[29]), 29,41},
+ {&(_ZTV9GG2221332[34]), 34,41},
+ {&(_ZTV9GG2221332[39]), 39,41},
+ {&(_tg__ZTV5EE222__9GG2221332[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2221332[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2221332[3]), 3,4},
+ {&(_tg__ZTV5FF133__9GG2221332[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF133__9GG2221332[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF133__9GG2221332[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2221332[];
+extern VTBL_ENTRY _ZTV9GG2221332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2221332[];
+static VTBL_ENTRY alt_thunk_names600[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1333barEv,_ZThn16_N5FF1333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22213323barEv,_ZTv0_n16_N9GG22213323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22213323barEv,_ZThn48_N9GG22213323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1333fooEv,_ZThn16_N5FF1333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1333fooEv,_ZThn16_N5FF1333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22213323barEv,_ZTv0_n24_N9GG22213323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22213323barEv,_ZThn32_N9GG22213323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22213323barEv,_ZTv0_n12_N9GG22213323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22213323barEv,_ZThn24_N9GG22213323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22213323barEv,_ZThn16_N9GG22213323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22213323barEv,_ZTv0_n20_N9GG22213323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22213323barEv,_ZThn8_N9GG22213323barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2221332 = { "GG2221332", // class name
+ bases_GG2221332, 6,
+ &(vtc_GG2221332[0]), // expected_vtbl_contents
+ &(vtt_GG2221332[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2221332),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2221332),41, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2221332),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names600,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2221333 : virtual EE222 , virtual FF133 {
+ int pg;
+ virtual void foo(); // _ZN9GG22213333fooEv
+ virtual void bar(); // _ZN9GG22213333barEv
+ ~GG2221333(); // tgen
+ GG2221333(); // tgen
+};
+//SIG(1 GG2221333) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2221333 ::foo(){vfunc_called(this, "_ZN9GG22213333fooEv");}
+void GG2221333 ::bar(){vfunc_called(this, "_ZN9GG22213333barEv");}
+GG2221333 ::~GG2221333(){ note_dtor("GG2221333", this);} // tgen
+GG2221333 ::GG2221333(){ note_ctor("GG2221333", this);} // tgen
+
+static void Test_GG2221333()
+{
+ extern Class_Descriptor cd_GG2221333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2221333, buf);
+ GG2221333 *dp, &lv = *(dp=new (buf) GG2221333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2221333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2221333)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2221333");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2221333");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2221333");
+ check_base_class_offset(lv, (AA1*)(FF133*), ABISELECT(80,40), "GG2221333");
+ check_base_class_offset(lv, (BB3*)(FF133*), ABISELECT(96,48), "GG2221333");
+ check_base_class_offset(lv, (FF133*), ABISELECT(64,32), "GG2221333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2221333.pg");
+ test_class_info(&lv, &cd_GG2221333);
+ dp->~GG2221333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2221333(Test_GG2221333, "GG2221333", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2221333C1Ev();
+extern void _ZN9GG2221333D1Ev();
+Name_Map name_map_GG2221333[] = {
+ NSPAIR(_ZN9GG2221333C1Ev),
+ NSPAIR(_ZN9GG2221333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF133;
+extern VTBL_ENTRY _ZTI5FF133[];
+extern VTBL_ENTRY _ZTV5FF133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF133[];
+static Base_Class bases_GG2221333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF133, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2221333[];
+extern void _ZN9GG22213333fooEv();
+extern void _ZN9GG22213333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22213333barEv,_ZTv0_n20_N9GG22213333barEv)();
+extern void ABISELECT(_ZThn16_N9GG22213333barEv,_ZThn8_N9GG22213333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22213333barEv,_ZTv0_n12_N9GG22213333barEv)();
+extern void ABISELECT(_ZThn32_N9GG22213333barEv,_ZThn16_N9GG22213333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22213333barEv,_ZTv0_n12_N9GG22213333barEv)();
+extern void ABISELECT(_ZThn48_N9GG22213333barEv,_ZThn24_N9GG22213333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22213333fooEv,_ZTv0_n20_N9GG22213333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22213333fooEv,_ZThn32_N9GG22213333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22213333barEv,_ZTv0_n24_N9GG22213333barEv)();
+extern void ABISELECT(_ZThn64_N9GG22213333barEv,_ZThn32_N9GG22213333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22213333fooEv,_ZTv0_n12_N9GG22213333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22213333fooEv,_ZThn40_N9GG22213333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22213333fooEv,_ZTv0_n12_N9GG22213333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG22213333fooEv,_ZThn48_N9GG22213333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22213333barEv,_ZTv0_n16_N9GG22213333barEv)();
+extern void ABISELECT(_ZThn96_N9GG22213333barEv,_ZThn48_N9GG22213333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2221333[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2221333[0]),
+ (VTBL_ENTRY)&_ZN9GG22213333fooEv,
+ (VTBL_ENTRY)&_ZN9GG22213333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2221333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22213333barEv,_ZTv0_n20_N9GG22213333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2221333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22213333barEv,_ZTv0_n12_N9GG22213333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2221333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22213333barEv,_ZTv0_n12_N9GG22213333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2221333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22213333fooEv,_ZTv0_n20_N9GG22213333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22213333barEv,_ZTv0_n24_N9GG22213333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2221333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22213333fooEv,_ZTv0_n12_N9GG22213333fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2221333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22213333fooEv,_ZTv0_n12_N9GG22213333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22213333barEv,_ZTv0_n16_N9GG22213333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2221333[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2221333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2221333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2221333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF1333fooEv();
+extern void _ZN5FF1333barEv();
+static VTBL_ENTRY _tg__ZTV5FF133__9GG2221333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&_ZN5FF1333fooEv,
+ (VTBL_ENTRY)&_ZN5FF1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF133__9GG2221333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1333fooEv,_ZThn16_N5FF1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv)();
+extern void ABISELECT(_ZThn32_N5FF1333barEv,_ZThn16_N5FF1333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF133__9GG2221333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv),
+};
+static VTT_ENTRY vtt_GG2221333[] = {
+ {&(_ZTV9GG2221333[8]), 8,42},
+ {&(_ZTV9GG2221333[15]), 15,42},
+ {&(_ZTV9GG2221333[19]), 19,42},
+ {&(_ZTV9GG2221333[23]), 23,42},
+ {&(_ZTV9GG2221333[30]), 30,42},
+ {&(_ZTV9GG2221333[35]), 35,42},
+ {&(_ZTV9GG2221333[40]), 40,42},
+ {&(_tg__ZTV5EE222__9GG2221333[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2221333[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2221333[3]), 3,4},
+ {&(_tg__ZTV5FF133__9GG2221333[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF133__9GG2221333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF133__9GG2221333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2221333[];
+extern VTBL_ENTRY _ZTV9GG2221333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2221333[];
+static VTBL_ENTRY alt_thunk_names601[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1333barEv,_ZThn16_N5FF1333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1333fooEv,_ZThn16_N5FF1333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22213333barEv,_ZTv0_n16_N9GG22213333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22213333barEv,_ZThn48_N9GG22213333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22213333fooEv,_ZTv0_n12_N9GG22213333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22213333fooEv,_ZThn48_N9GG22213333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22213333fooEv,_ZThn40_N9GG22213333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22213333barEv,_ZTv0_n24_N9GG22213333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22213333barEv,_ZThn32_N9GG22213333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22213333fooEv,_ZTv0_n20_N9GG22213333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22213333fooEv,_ZThn32_N9GG22213333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22213333barEv,_ZTv0_n12_N9GG22213333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22213333barEv,_ZThn24_N9GG22213333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22213333barEv,_ZThn16_N9GG22213333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22213333barEv,_ZTv0_n20_N9GG22213333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22213333barEv,_ZThn8_N9GG22213333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2221333 = { "GG2221333", // class name
+ bases_GG2221333, 6,
+ &(vtc_GG2221333[0]), // expected_vtbl_contents
+ &(vtt_GG2221333[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2221333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2221333),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2221333),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names601,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2222112 : virtual EE222 , virtual FF211 {
+ int pg;
+ virtual void bar(); // _ZN9GG22221123barEv
+ ~GG2222112(); // tgen
+ GG2222112(); // tgen
+};
+//SIG(1 GG2222112) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v2 Fi} v1 Fi}
+
+
+void GG2222112 ::bar(){vfunc_called(this, "_ZN9GG22221123barEv");}
+GG2222112 ::~GG2222112(){ note_dtor("GG2222112", this);} // tgen
+GG2222112 ::GG2222112(){ note_ctor("GG2222112", this);} // tgen
+
+static void Test_GG2222112()
+{
+ extern Class_Descriptor cd_GG2222112;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2222112, buf);
+ GG2222112 *dp, &lv = *(dp=new (buf) GG2222112());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2222112)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2222112)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2222112");
+ check_base_class_offset(lv, (AA2*)(FF211*), ABISELECT(32,16), "GG2222112");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2222112");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2222112");
+ check_base_class_offset(lv, (BB1*)(FF211*), ABISELECT(80,40), "GG2222112");
+ check_base_class_offset(lv, (FF211*), ABISELECT(64,32), "GG2222112");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2222112.pg");
+ test_class_info(&lv, &cd_GG2222112);
+ dp->~GG2222112();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2222112(Test_GG2222112, "GG2222112", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2222112C1Ev();
+extern void _ZN9GG2222112D1Ev();
+Name_Map name_map_GG2222112[] = {
+ NSPAIR(_ZN9GG2222112C1Ev),
+ NSPAIR(_ZN9GG2222112D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF211;
+extern VTBL_ENTRY _ZTI5FF211[];
+extern VTBL_ENTRY _ZTV5FF211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF211[];
+static Base_Class bases_GG2222112[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF211, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2222112[];
+extern void _ZN9GG22221123barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22221123barEv,_ZTv0_n20_N9GG22221123barEv)();
+extern void ABISELECT(_ZThn16_N9GG22221123barEv,_ZThn8_N9GG22221123barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22221123barEv,_ZTv0_n12_N9GG22221123barEv)();
+extern void ABISELECT(_ZThn32_N9GG22221123barEv,_ZThn16_N9GG22221123barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22221123barEv,_ZTv0_n12_N9GG22221123barEv)();
+extern void ABISELECT(_ZThn48_N9GG22221123barEv,_ZThn24_N9GG22221123barEv)() __attribute__((weak));
+extern void _ZN5FF2113fooEv();
+extern void ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF2113fooEv,_ZThn8_N5FF2113fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2222112[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2222112[0]),
+ (VTBL_ENTRY)&_ZN9GG22221123barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2222112[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22221123barEv,_ZTv0_n20_N9GG22221123barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2222112[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22221123barEv,_ZTv0_n12_N9GG22221123barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2222112[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22221123barEv,_ZTv0_n12_N9GG22221123barEv),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2222112[0]),
+ (VTBL_ENTRY)&_ZN5FF2113fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2222112[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2222112[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2222112[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2222112[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2222112[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF2113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF211__9GG2222112[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN5FF2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF211__9GG2222112[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF2113fooEv,_ZThn8_N5FF2113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF211__9GG2222112[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv),
+};
+static VTT_ENTRY vtt_GG2222112[] = {
+ {&(_ZTV9GG2222112[7]), 7,32},
+ {&(_ZTV9GG2222112[13]), 13,32},
+ {&(_ZTV9GG2222112[17]), 17,32},
+ {&(_ZTV9GG2222112[21]), 21,32},
+ {&(_ZTV9GG2222112[27]), 27,32},
+ {&(_ZTV9GG2222112[31]), 31,32},
+ {&(_tg__ZTV5EE222__9GG2222112[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2222112[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2222112[3]), 3,4},
+ {&(_tg__ZTV5FF211__9GG2222112[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF211__9GG2222112[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF211__9GG2222112[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2222112[];
+extern VTBL_ENTRY _ZTV9GG2222112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2222112[];
+static VTBL_ENTRY alt_thunk_names602[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2113fooEv,_ZThn8_N5FF2113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2113fooEv,_ZThn8_N5FF2113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22221123barEv,_ZTv0_n12_N9GG22221123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22221123barEv,_ZThn24_N9GG22221123barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22221123barEv,_ZThn16_N9GG22221123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22221123barEv,_ZTv0_n20_N9GG22221123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22221123barEv,_ZThn8_N9GG22221123barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2222112 = { "GG2222112", // class name
+ bases_GG2222112, 5,
+ &(vtc_GG2222112[0]), // expected_vtbl_contents
+ &(vtt_GG2222112[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2222112),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2222112),32, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2222112),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names602,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2222113 : virtual EE222 , virtual FF211 {
+ int pg;
+ virtual void foo(); // _ZN9GG22221133fooEv
+ virtual void bar(); // _ZN9GG22221133barEv
+ ~GG2222113(); // tgen
+ GG2222113(); // tgen
+};
+//SIG(1 GG2222113) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2222113 ::foo(){vfunc_called(this, "_ZN9GG22221133fooEv");}
+void GG2222113 ::bar(){vfunc_called(this, "_ZN9GG22221133barEv");}
+GG2222113 ::~GG2222113(){ note_dtor("GG2222113", this);} // tgen
+GG2222113 ::GG2222113(){ note_ctor("GG2222113", this);} // tgen
+
+static void Test_GG2222113()
+{
+ extern Class_Descriptor cd_GG2222113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2222113, buf);
+ GG2222113 *dp, &lv = *(dp=new (buf) GG2222113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2222113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2222113)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2222113");
+ check_base_class_offset(lv, (AA2*)(FF211*), ABISELECT(32,16), "GG2222113");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2222113");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2222113");
+ check_base_class_offset(lv, (BB1*)(FF211*), ABISELECT(80,40), "GG2222113");
+ check_base_class_offset(lv, (FF211*), ABISELECT(64,32), "GG2222113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2222113.pg");
+ test_class_info(&lv, &cd_GG2222113);
+ dp->~GG2222113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2222113(Test_GG2222113, "GG2222113", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2222113C1Ev();
+extern void _ZN9GG2222113D1Ev();
+Name_Map name_map_GG2222113[] = {
+ NSPAIR(_ZN9GG2222113C1Ev),
+ NSPAIR(_ZN9GG2222113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF211;
+extern VTBL_ENTRY _ZTI5FF211[];
+extern VTBL_ENTRY _ZTV5FF211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF211[];
+static Base_Class bases_GG2222113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF211, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2222113[];
+extern void _ZN9GG22221133fooEv();
+extern void _ZN9GG22221133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22221133barEv,_ZTv0_n20_N9GG22221133barEv)();
+extern void ABISELECT(_ZThn16_N9GG22221133barEv,_ZThn8_N9GG22221133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22221133barEv,_ZTv0_n12_N9GG22221133barEv)();
+extern void ABISELECT(_ZThn32_N9GG22221133barEv,_ZThn16_N9GG22221133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22221133barEv,_ZTv0_n12_N9GG22221133barEv)();
+extern void ABISELECT(_ZThn48_N9GG22221133barEv,_ZThn24_N9GG22221133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22221133fooEv,_ZTv0_n20_N9GG22221133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22221133fooEv,_ZThn32_N9GG22221133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22221133fooEv,_ZTv0_n12_N9GG22221133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22221133fooEv,_ZThn40_N9GG22221133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2222113[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2222113[0]),
+ (VTBL_ENTRY)&_ZN9GG22221133fooEv,
+ (VTBL_ENTRY)&_ZN9GG22221133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2222113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22221133barEv,_ZTv0_n20_N9GG22221133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2222113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22221133barEv,_ZTv0_n12_N9GG22221133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2222113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22221133barEv,_ZTv0_n12_N9GG22221133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2222113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22221133fooEv,_ZTv0_n20_N9GG22221133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2222113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22221133fooEv,_ZTv0_n12_N9GG22221133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2222113[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2222113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2222113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2222113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF2113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF211__9GG2222113[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN5FF2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF211__9GG2222113[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF2113fooEv,_ZThn8_N5FF2113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF211__9GG2222113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv),
+};
+static VTT_ENTRY vtt_GG2222113[] = {
+ {&(_ZTV9GG2222113[7]), 7,33},
+ {&(_ZTV9GG2222113[14]), 14,33},
+ {&(_ZTV9GG2222113[18]), 18,33},
+ {&(_ZTV9GG2222113[22]), 22,33},
+ {&(_ZTV9GG2222113[28]), 28,33},
+ {&(_ZTV9GG2222113[32]), 32,33},
+ {&(_tg__ZTV5EE222__9GG2222113[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2222113[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2222113[3]), 3,4},
+ {&(_tg__ZTV5FF211__9GG2222113[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF211__9GG2222113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF211__9GG2222113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2222113[];
+extern VTBL_ENTRY _ZTV9GG2222113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2222113[];
+static VTBL_ENTRY alt_thunk_names603[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2113fooEv,_ZThn8_N5FF2113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22221133fooEv,_ZTv0_n12_N9GG22221133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22221133fooEv,_ZThn40_N9GG22221133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22221133fooEv,_ZTv0_n20_N9GG22221133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22221133fooEv,_ZThn32_N9GG22221133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22221133barEv,_ZTv0_n12_N9GG22221133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22221133barEv,_ZThn24_N9GG22221133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22221133barEv,_ZThn16_N9GG22221133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22221133barEv,_ZTv0_n20_N9GG22221133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22221133barEv,_ZThn8_N9GG22221133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2222113 = { "GG2222113", // class name
+ bases_GG2222113, 5,
+ &(vtc_GG2222113[0]), // expected_vtbl_contents
+ &(vtt_GG2222113[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2222113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2222113),33, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2222113),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names603,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2222122 : virtual EE222 , virtual FF212 {
+ int pg;
+ virtual void bar(); // _ZN9GG22221223barEv
+ ~GG2222122(); // tgen
+ GG2222122(); // tgen
+};
+//SIG(1 GG2222122) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v1 Fi} v1 Fi}
+
+
+void GG2222122 ::bar(){vfunc_called(this, "_ZN9GG22221223barEv");}
+GG2222122 ::~GG2222122(){ note_dtor("GG2222122", this);} // tgen
+GG2222122 ::GG2222122(){ note_ctor("GG2222122", this);} // tgen
+
+static void Test_GG2222122()
+{
+ extern Class_Descriptor cd_GG2222122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2222122, buf);
+ GG2222122 *dp, &lv = *(dp=new (buf) GG2222122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2222122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2222122)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2222122");
+ check_base_class_offset(lv, (AA2*)(FF212*), ABISELECT(32,16), "GG2222122");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2222122");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2222122");
+ check_base_class_offset(lv, (BB1*)(FF212*), ABISELECT(80,40), "GG2222122");
+ check_base_class_offset(lv, (FF212*), ABISELECT(64,32), "GG2222122");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2222122.pg");
+ test_class_info(&lv, &cd_GG2222122);
+ dp->~GG2222122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2222122(Test_GG2222122, "GG2222122", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2222122C1Ev();
+extern void _ZN9GG2222122D1Ev();
+Name_Map name_map_GG2222122[] = {
+ NSPAIR(_ZN9GG2222122C1Ev),
+ NSPAIR(_ZN9GG2222122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF212;
+extern VTBL_ENTRY _ZTI5FF212[];
+extern VTBL_ENTRY _ZTV5FF212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF212[];
+static Base_Class bases_GG2222122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF212, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2222122[];
+extern void _ZN9GG22221223barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22221223barEv,_ZTv0_n20_N9GG22221223barEv)();
+extern void ABISELECT(_ZThn16_N9GG22221223barEv,_ZThn8_N9GG22221223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22221223barEv,_ZTv0_n12_N9GG22221223barEv)();
+extern void ABISELECT(_ZThn32_N9GG22221223barEv,_ZThn16_N9GG22221223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22221223barEv,_ZTv0_n12_N9GG22221223barEv)();
+extern void ABISELECT(_ZThn48_N9GG22221223barEv,_ZThn24_N9GG22221223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22221223barEv,_ZTv0_n20_N9GG22221223barEv)();
+extern void ABISELECT(_ZThn64_N9GG22221223barEv,_ZThn32_N9GG22221223barEv)() __attribute__((weak));
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY vtc_GG2222122[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2222122[0]),
+ (VTBL_ENTRY)&_ZN9GG22221223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2222122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22221223barEv,_ZTv0_n20_N9GG22221223barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2222122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22221223barEv,_ZTv0_n12_N9GG22221223barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2222122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22221223barEv,_ZTv0_n12_N9GG22221223barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2222122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22221223barEv,_ZTv0_n20_N9GG22221223barEv),
+ 0,
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2222122[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern VTBL_ENTRY _ZTV9GG2222122[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2222122[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2222122[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2222122[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF2123barEv();
+static VTBL_ENTRY _tg__ZTV5FF212__9GG2222122[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN5FF2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF212__9GG2222122[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF212__9GG2222122[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG2222122[] = {
+ {&(_ZTV9GG2222122[7]), 7,32},
+ {&(_ZTV9GG2222122[13]), 13,32},
+ {&(_ZTV9GG2222122[17]), 17,32},
+ {&(_ZTV9GG2222122[21]), 21,32},
+ {&(_ZTV9GG2222122[27]), 27,32},
+ {&(_ZTV9GG2222122[31]), 31,32},
+ {&(_tg__ZTV5EE222__9GG2222122[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2222122[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2222122[3]), 3,4},
+ {&(_tg__ZTV5FF212__9GG2222122[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF212__9GG2222122[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF212__9GG2222122[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2222122[];
+extern VTBL_ENTRY _ZTV9GG2222122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2222122[];
+static VTBL_ENTRY alt_thunk_names604[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22221223barEv,_ZTv0_n12_N9GG22221223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22221223barEv,_ZThn24_N9GG22221223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22221223barEv,_ZThn16_N9GG22221223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22221223barEv,_ZTv0_n20_N9GG22221223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22221223barEv,_ZThn32_N9GG22221223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22221223barEv,_ZThn8_N9GG22221223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2222122 = { "GG2222122", // class name
+ bases_GG2222122, 5,
+ &(vtc_GG2222122[0]), // expected_vtbl_contents
+ &(vtt_GG2222122[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2222122),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2222122),32, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2222122),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names604,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2222123 : virtual EE222 , virtual FF212 {
+ int pg;
+ virtual void foo(); // _ZN9GG22221233fooEv
+ virtual void bar(); // _ZN9GG22221233barEv
+ ~GG2222123(); // tgen
+ GG2222123(); // tgen
+};
+//SIG(1 GG2222123) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2222123 ::foo(){vfunc_called(this, "_ZN9GG22221233fooEv");}
+void GG2222123 ::bar(){vfunc_called(this, "_ZN9GG22221233barEv");}
+GG2222123 ::~GG2222123(){ note_dtor("GG2222123", this);} // tgen
+GG2222123 ::GG2222123(){ note_ctor("GG2222123", this);} // tgen
+
+static void Test_GG2222123()
+{
+ extern Class_Descriptor cd_GG2222123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2222123, buf);
+ GG2222123 *dp, &lv = *(dp=new (buf) GG2222123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2222123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2222123)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2222123");
+ check_base_class_offset(lv, (AA2*)(FF212*), ABISELECT(32,16), "GG2222123");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2222123");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2222123");
+ check_base_class_offset(lv, (BB1*)(FF212*), ABISELECT(80,40), "GG2222123");
+ check_base_class_offset(lv, (FF212*), ABISELECT(64,32), "GG2222123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2222123.pg");
+ test_class_info(&lv, &cd_GG2222123);
+ dp->~GG2222123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2222123(Test_GG2222123, "GG2222123", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2222123C1Ev();
+extern void _ZN9GG2222123D1Ev();
+Name_Map name_map_GG2222123[] = {
+ NSPAIR(_ZN9GG2222123C1Ev),
+ NSPAIR(_ZN9GG2222123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF212;
+extern VTBL_ENTRY _ZTI5FF212[];
+extern VTBL_ENTRY _ZTV5FF212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF212[];
+static Base_Class bases_GG2222123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF212, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2222123[];
+extern void _ZN9GG22221233fooEv();
+extern void _ZN9GG22221233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22221233barEv,_ZTv0_n20_N9GG22221233barEv)();
+extern void ABISELECT(_ZThn16_N9GG22221233barEv,_ZThn8_N9GG22221233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22221233barEv,_ZTv0_n12_N9GG22221233barEv)();
+extern void ABISELECT(_ZThn32_N9GG22221233barEv,_ZThn16_N9GG22221233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22221233barEv,_ZTv0_n12_N9GG22221233barEv)();
+extern void ABISELECT(_ZThn48_N9GG22221233barEv,_ZThn24_N9GG22221233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22221233barEv,_ZTv0_n20_N9GG22221233barEv)();
+extern void ABISELECT(_ZThn64_N9GG22221233barEv,_ZThn32_N9GG22221233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22221233fooEv,_ZTv0_n12_N9GG22221233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22221233fooEv,_ZThn40_N9GG22221233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2222123[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2222123[0]),
+ (VTBL_ENTRY)&_ZN9GG22221233fooEv,
+ (VTBL_ENTRY)&_ZN9GG22221233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2222123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22221233barEv,_ZTv0_n20_N9GG22221233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2222123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22221233barEv,_ZTv0_n12_N9GG22221233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2222123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22221233barEv,_ZTv0_n12_N9GG22221233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2222123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22221233barEv,_ZTv0_n20_N9GG22221233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2222123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22221233fooEv,_ZTv0_n12_N9GG22221233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2222123[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2222123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2222123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2222123[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF2123barEv();
+static VTBL_ENTRY _tg__ZTV5FF212__9GG2222123[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN5FF2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF212__9GG2222123[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF212__9GG2222123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG2222123[] = {
+ {&(_ZTV9GG2222123[7]), 7,33},
+ {&(_ZTV9GG2222123[14]), 14,33},
+ {&(_ZTV9GG2222123[18]), 18,33},
+ {&(_ZTV9GG2222123[22]), 22,33},
+ {&(_ZTV9GG2222123[28]), 28,33},
+ {&(_ZTV9GG2222123[32]), 32,33},
+ {&(_tg__ZTV5EE222__9GG2222123[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2222123[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2222123[3]), 3,4},
+ {&(_tg__ZTV5FF212__9GG2222123[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF212__9GG2222123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF212__9GG2222123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2222123[];
+extern VTBL_ENTRY _ZTV9GG2222123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2222123[];
+static VTBL_ENTRY alt_thunk_names605[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22221233fooEv,_ZTv0_n12_N9GG22221233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22221233fooEv,_ZThn40_N9GG22221233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22221233barEv,_ZTv0_n12_N9GG22221233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22221233barEv,_ZThn24_N9GG22221233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22221233barEv,_ZThn16_N9GG22221233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22221233barEv,_ZTv0_n20_N9GG22221233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22221233barEv,_ZThn32_N9GG22221233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22221233barEv,_ZThn8_N9GG22221233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2222123 = { "GG2222123", // class name
+ bases_GG2222123, 5,
+ &(vtc_GG2222123[0]), // expected_vtbl_contents
+ &(vtt_GG2222123[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2222123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2222123),33, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2222123),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names605,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2222132 : virtual EE222 , virtual FF213 {
+ int pg;
+ virtual void bar(); // _ZN9GG22221323barEv
+ ~GG2222132(); // tgen
+ GG2222132(); // tgen
+};
+//SIG(1 GG2222132) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void GG2222132 ::bar(){vfunc_called(this, "_ZN9GG22221323barEv");}
+GG2222132 ::~GG2222132(){ note_dtor("GG2222132", this);} // tgen
+GG2222132 ::GG2222132(){ note_ctor("GG2222132", this);} // tgen
+
+static void Test_GG2222132()
+{
+ extern Class_Descriptor cd_GG2222132;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2222132, buf);
+ GG2222132 *dp, &lv = *(dp=new (buf) GG2222132());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2222132)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2222132)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2222132");
+ check_base_class_offset(lv, (AA2*)(FF213*), ABISELECT(32,16), "GG2222132");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2222132");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2222132");
+ check_base_class_offset(lv, (BB1*)(FF213*), ABISELECT(80,40), "GG2222132");
+ check_base_class_offset(lv, (FF213*), ABISELECT(64,32), "GG2222132");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2222132.pg");
+ test_class_info(&lv, &cd_GG2222132);
+ dp->~GG2222132();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2222132(Test_GG2222132, "GG2222132", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2222132C1Ev();
+extern void _ZN9GG2222132D1Ev();
+Name_Map name_map_GG2222132[] = {
+ NSPAIR(_ZN9GG2222132C1Ev),
+ NSPAIR(_ZN9GG2222132D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF213;
+extern VTBL_ENTRY _ZTI5FF213[];
+extern VTBL_ENTRY _ZTV5FF213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF213[];
+static Base_Class bases_GG2222132[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF213, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2222132[];
+extern void _ZN9GG22221323barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22221323barEv,_ZTv0_n20_N9GG22221323barEv)();
+extern void ABISELECT(_ZThn16_N9GG22221323barEv,_ZThn8_N9GG22221323barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22221323barEv,_ZTv0_n12_N9GG22221323barEv)();
+extern void ABISELECT(_ZThn32_N9GG22221323barEv,_ZThn16_N9GG22221323barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22221323barEv,_ZTv0_n12_N9GG22221323barEv)();
+extern void ABISELECT(_ZThn48_N9GG22221323barEv,_ZThn24_N9GG22221323barEv)() __attribute__((weak));
+extern void _ZN5FF2133fooEv();
+extern void ABISELECT(_ZTv0_n48_N9GG22221323barEv,_ZTv0_n24_N9GG22221323barEv)();
+extern void ABISELECT(_ZThn64_N9GG22221323barEv,_ZThn32_N9GG22221323barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF2133fooEv,_ZThn8_N5FF2133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2222132[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2222132[0]),
+ (VTBL_ENTRY)&_ZN9GG22221323barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2222132[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22221323barEv,_ZTv0_n20_N9GG22221323barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2222132[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22221323barEv,_ZTv0_n12_N9GG22221323barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2222132[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22221323barEv,_ZTv0_n12_N9GG22221323barEv),
+ ABISELECT(-64,-32),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2222132[0]),
+ (VTBL_ENTRY)&_ZN5FF2133fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22221323barEv,_ZTv0_n24_N9GG22221323barEv),
+ ABISELECT(-16,-8),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2222132[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2222132[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2222132[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2222132[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2222132[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF2133fooEv();
+extern void _ZN5FF2133barEv();
+static VTBL_ENTRY _tg__ZTV5FF213__9GG2222132[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&_ZN5FF2133fooEv,
+ (VTBL_ENTRY)&_ZN5FF2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF213__9GG2222132[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF2133fooEv,_ZThn8_N5FF2133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF213__9GG2222132[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv),
+};
+static VTT_ENTRY vtt_GG2222132[] = {
+ {&(_ZTV9GG2222132[7]), 7,34},
+ {&(_ZTV9GG2222132[13]), 13,34},
+ {&(_ZTV9GG2222132[17]), 17,34},
+ {&(_ZTV9GG2222132[21]), 21,34},
+ {&(_ZTV9GG2222132[28]), 28,34},
+ {&(_ZTV9GG2222132[33]), 33,34},
+ {&(_tg__ZTV5EE222__9GG2222132[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2222132[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2222132[3]), 3,4},
+ {&(_tg__ZTV5FF213__9GG2222132[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF213__9GG2222132[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF213__9GG2222132[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2222132[];
+extern VTBL_ENTRY _ZTV9GG2222132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2222132[];
+static VTBL_ENTRY alt_thunk_names606[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2133fooEv,_ZThn8_N5FF2133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2133fooEv,_ZThn8_N5FF2133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22221323barEv,_ZTv0_n24_N9GG22221323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22221323barEv,_ZThn32_N9GG22221323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22221323barEv,_ZTv0_n12_N9GG22221323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22221323barEv,_ZThn24_N9GG22221323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22221323barEv,_ZThn16_N9GG22221323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22221323barEv,_ZTv0_n20_N9GG22221323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22221323barEv,_ZThn8_N9GG22221323barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2222132 = { "GG2222132", // class name
+ bases_GG2222132, 5,
+ &(vtc_GG2222132[0]), // expected_vtbl_contents
+ &(vtt_GG2222132[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2222132),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2222132),34, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2222132),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names606,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2222133 : virtual EE222 , virtual FF213 {
+ int pg;
+ virtual void foo(); // _ZN9GG22221333fooEv
+ virtual void bar(); // _ZN9GG22221333barEv
+ ~GG2222133(); // tgen
+ GG2222133(); // tgen
+};
+//SIG(1 GG2222133) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2222133 ::foo(){vfunc_called(this, "_ZN9GG22221333fooEv");}
+void GG2222133 ::bar(){vfunc_called(this, "_ZN9GG22221333barEv");}
+GG2222133 ::~GG2222133(){ note_dtor("GG2222133", this);} // tgen
+GG2222133 ::GG2222133(){ note_ctor("GG2222133", this);} // tgen
+
+static void Test_GG2222133()
+{
+ extern Class_Descriptor cd_GG2222133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2222133, buf);
+ GG2222133 *dp, &lv = *(dp=new (buf) GG2222133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2222133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2222133)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2222133");
+ check_base_class_offset(lv, (AA2*)(FF213*), ABISELECT(32,16), "GG2222133");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2222133");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2222133");
+ check_base_class_offset(lv, (BB1*)(FF213*), ABISELECT(80,40), "GG2222133");
+ check_base_class_offset(lv, (FF213*), ABISELECT(64,32), "GG2222133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2222133.pg");
+ test_class_info(&lv, &cd_GG2222133);
+ dp->~GG2222133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2222133(Test_GG2222133, "GG2222133", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2222133C1Ev();
+extern void _ZN9GG2222133D1Ev();
+Name_Map name_map_GG2222133[] = {
+ NSPAIR(_ZN9GG2222133C1Ev),
+ NSPAIR(_ZN9GG2222133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF213;
+extern VTBL_ENTRY _ZTI5FF213[];
+extern VTBL_ENTRY _ZTV5FF213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF213[];
+static Base_Class bases_GG2222133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF213, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2222133[];
+extern void _ZN9GG22221333fooEv();
+extern void _ZN9GG22221333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22221333barEv,_ZTv0_n20_N9GG22221333barEv)();
+extern void ABISELECT(_ZThn16_N9GG22221333barEv,_ZThn8_N9GG22221333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22221333barEv,_ZTv0_n12_N9GG22221333barEv)();
+extern void ABISELECT(_ZThn32_N9GG22221333barEv,_ZThn16_N9GG22221333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22221333barEv,_ZTv0_n12_N9GG22221333barEv)();
+extern void ABISELECT(_ZThn48_N9GG22221333barEv,_ZThn24_N9GG22221333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22221333fooEv,_ZTv0_n20_N9GG22221333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22221333fooEv,_ZThn32_N9GG22221333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22221333barEv,_ZTv0_n24_N9GG22221333barEv)();
+extern void ABISELECT(_ZThn64_N9GG22221333barEv,_ZThn32_N9GG22221333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22221333fooEv,_ZTv0_n12_N9GG22221333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22221333fooEv,_ZThn40_N9GG22221333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2222133[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2222133[0]),
+ (VTBL_ENTRY)&_ZN9GG22221333fooEv,
+ (VTBL_ENTRY)&_ZN9GG22221333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2222133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22221333barEv,_ZTv0_n20_N9GG22221333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2222133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22221333barEv,_ZTv0_n12_N9GG22221333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2222133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22221333barEv,_ZTv0_n12_N9GG22221333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2222133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22221333fooEv,_ZTv0_n20_N9GG22221333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22221333barEv,_ZTv0_n24_N9GG22221333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2222133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22221333fooEv,_ZTv0_n12_N9GG22221333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2222133[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2222133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2222133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2222133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF2133fooEv();
+extern void _ZN5FF2133barEv();
+static VTBL_ENTRY _tg__ZTV5FF213__9GG2222133[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&_ZN5FF2133fooEv,
+ (VTBL_ENTRY)&_ZN5FF2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF213__9GG2222133[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF2133fooEv,_ZThn8_N5FF2133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF213__9GG2222133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv),
+};
+static VTT_ENTRY vtt_GG2222133[] = {
+ {&(_ZTV9GG2222133[7]), 7,35},
+ {&(_ZTV9GG2222133[14]), 14,35},
+ {&(_ZTV9GG2222133[18]), 18,35},
+ {&(_ZTV9GG2222133[22]), 22,35},
+ {&(_ZTV9GG2222133[29]), 29,35},
+ {&(_ZTV9GG2222133[34]), 34,35},
+ {&(_tg__ZTV5EE222__9GG2222133[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2222133[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2222133[3]), 3,4},
+ {&(_tg__ZTV5FF213__9GG2222133[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF213__9GG2222133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF213__9GG2222133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2222133[];
+extern VTBL_ENTRY _ZTV9GG2222133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2222133[];
+static VTBL_ENTRY alt_thunk_names607[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2133fooEv,_ZThn8_N5FF2133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22221333fooEv,_ZTv0_n12_N9GG22221333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22221333fooEv,_ZThn40_N9GG22221333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22221333barEv,_ZTv0_n24_N9GG22221333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22221333barEv,_ZThn32_N9GG22221333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22221333fooEv,_ZTv0_n20_N9GG22221333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22221333fooEv,_ZThn32_N9GG22221333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22221333barEv,_ZTv0_n12_N9GG22221333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22221333barEv,_ZThn24_N9GG22221333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22221333barEv,_ZThn16_N9GG22221333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22221333barEv,_ZTv0_n20_N9GG22221333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22221333barEv,_ZThn8_N9GG22221333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2222133 = { "GG2222133", // class name
+ bases_GG2222133, 5,
+ &(vtc_GG2222133[0]), // expected_vtbl_contents
+ &(vtt_GG2222133[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2222133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2222133),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2222133),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names607,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2222212 : virtual EE222 , virtual FF221 {
+ int pg;
+ virtual void bar(); // _ZN9GG22222123barEv
+ ~GG2222212(); // tgen
+ GG2222212(); // tgen
+};
+//SIG(1 GG2222212) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC3 VBC4 v2 Fi} v1 Fi}
+
+
+void GG2222212 ::bar(){vfunc_called(this, "_ZN9GG22222123barEv");}
+GG2222212 ::~GG2222212(){ note_dtor("GG2222212", this);} // tgen
+GG2222212 ::GG2222212(){ note_ctor("GG2222212", this);} // tgen
+
+static void Test_GG2222212()
+{
+ extern Class_Descriptor cd_GG2222212;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG2222212, buf);
+ GG2222212 *dp, &lv = *(dp=new (buf) GG2222212());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG2222212)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2222212)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2222212");
+ check_base_class_offset(lv, (AA2*)(FF221*), ABISELECT(32,16), "GG2222212");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2222212");
+ check_base_class_offset(lv, (BB2*)(FF221*), ABISELECT(48,24), "GG2222212");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2222212");
+ check_base_class_offset(lv, (FF221*), ABISELECT(64,32), "GG2222212");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2222212.pg");
+ test_class_info(&lv, &cd_GG2222212);
+ dp->~GG2222212();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2222212(Test_GG2222212, "GG2222212", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG2222212C1Ev();
+extern void _ZN9GG2222212D1Ev();
+Name_Map name_map_GG2222212[] = {
+ NSPAIR(_ZN9GG2222212C1Ev),
+ NSPAIR(_ZN9GG2222212D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_FF221;
+extern VTBL_ENTRY _ZTI5FF221[];
+extern VTBL_ENTRY _ZTV5FF221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF221[];
+static Base_Class bases_GG2222212[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF221, ABISELECT(64,32), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2222212[];
+extern void _ZN9GG22222123barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22222123barEv,_ZTv0_n20_N9GG22222123barEv)();
+extern void ABISELECT(_ZThn16_N9GG22222123barEv,_ZThn8_N9GG22222123barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22222123barEv,_ZTv0_n12_N9GG22222123barEv)();
+extern void ABISELECT(_ZThn32_N9GG22222123barEv,_ZThn16_N9GG22222123barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22222123barEv,_ZTv0_n12_N9GG22222123barEv)();
+extern void ABISELECT(_ZThn48_N9GG22222123barEv,_ZThn24_N9GG22222123barEv)() __attribute__((weak));
+extern void _ZN5FF2213fooEv();
+static VTBL_ENTRY vtc_GG2222212[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2222212[0]),
+ (VTBL_ENTRY)&_ZN9GG22222123barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2222212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22222123barEv,_ZTv0_n20_N9GG22222123barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2222212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22222123barEv,_ZTv0_n12_N9GG22222123barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2222212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22222123barEv,_ZTv0_n12_N9GG22222123barEv),
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2222212[0]),
+ (VTBL_ENTRY)&_ZN5FF2213fooEv,
+};
+extern VTBL_ENTRY _ZTV9GG2222212[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2222212[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2222212[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2222212[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF2213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF221__9GG2222212[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN5FF2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF221__9GG2222212[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF221__9GG2222212[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG2222212[] = {
+ {&(_ZTV9GG2222212[6]), 6,27},
+ {&(_ZTV9GG2222212[12]), 12,27},
+ {&(_ZTV9GG2222212[16]), 16,27},
+ {&(_ZTV9GG2222212[20]), 20,27},
+ {&(_ZTV9GG2222212[26]), 26,27},
+ {&(_tg__ZTV5EE222__9GG2222212[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2222212[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2222212[3]), 3,4},
+ {&(_tg__ZTV5FF221__9GG2222212[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF221__9GG2222212[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF221__9GG2222212[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2222212[];
+extern VTBL_ENTRY _ZTV9GG2222212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2222212[];
+static VTBL_ENTRY alt_thunk_names608[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22222123barEv,_ZTv0_n12_N9GG22222123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22222123barEv,_ZThn24_N9GG22222123barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22222123barEv,_ZThn16_N9GG22222123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22222123barEv,_ZTv0_n20_N9GG22222123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22222123barEv,_ZThn8_N9GG22222123barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2222212 = { "GG2222212", // class name
+ bases_GG2222212, 4,
+ &(vtc_GG2222212[0]), // expected_vtbl_contents
+ &(vtt_GG2222212[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG2222212),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2222212),27, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2222212),11, //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 GG2222213 : virtual EE222 , virtual FF221 {
+ int pg;
+ virtual void foo(); // _ZN9GG22222133fooEv
+ virtual void bar(); // _ZN9GG22222133barEv
+ ~GG2222213(); // tgen
+ GG2222213(); // tgen
+};
+//SIG(1 GG2222213) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC3 VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG2222213 ::foo(){vfunc_called(this, "_ZN9GG22222133fooEv");}
+void GG2222213 ::bar(){vfunc_called(this, "_ZN9GG22222133barEv");}
+GG2222213 ::~GG2222213(){ note_dtor("GG2222213", this);} // tgen
+GG2222213 ::GG2222213(){ note_ctor("GG2222213", this);} // tgen
+
+static void Test_GG2222213()
+{
+ extern Class_Descriptor cd_GG2222213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG2222213, buf);
+ GG2222213 *dp, &lv = *(dp=new (buf) GG2222213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG2222213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2222213)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2222213");
+ check_base_class_offset(lv, (AA2*)(FF221*), ABISELECT(32,16), "GG2222213");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2222213");
+ check_base_class_offset(lv, (BB2*)(FF221*), ABISELECT(48,24), "GG2222213");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2222213");
+ check_base_class_offset(lv, (FF221*), ABISELECT(64,32), "GG2222213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2222213.pg");
+ test_class_info(&lv, &cd_GG2222213);
+ dp->~GG2222213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2222213(Test_GG2222213, "GG2222213", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG2222213C1Ev();
+extern void _ZN9GG2222213D1Ev();
+Name_Map name_map_GG2222213[] = {
+ NSPAIR(_ZN9GG2222213C1Ev),
+ NSPAIR(_ZN9GG2222213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_FF221;
+extern VTBL_ENTRY _ZTI5FF221[];
+extern VTBL_ENTRY _ZTV5FF221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF221[];
+static Base_Class bases_GG2222213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF221, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2222213[];
+extern void _ZN9GG22222133fooEv();
+extern void _ZN9GG22222133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22222133barEv,_ZTv0_n20_N9GG22222133barEv)();
+extern void ABISELECT(_ZThn16_N9GG22222133barEv,_ZThn8_N9GG22222133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22222133barEv,_ZTv0_n12_N9GG22222133barEv)();
+extern void ABISELECT(_ZThn32_N9GG22222133barEv,_ZThn16_N9GG22222133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22222133barEv,_ZTv0_n12_N9GG22222133barEv)();
+extern void ABISELECT(_ZThn48_N9GG22222133barEv,_ZThn24_N9GG22222133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22222133fooEv,_ZTv0_n20_N9GG22222133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22222133fooEv,_ZThn32_N9GG22222133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2222213[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2222213[0]),
+ (VTBL_ENTRY)&_ZN9GG22222133fooEv,
+ (VTBL_ENTRY)&_ZN9GG22222133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2222213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22222133barEv,_ZTv0_n20_N9GG22222133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2222213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22222133barEv,_ZTv0_n12_N9GG22222133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2222213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22222133barEv,_ZTv0_n12_N9GG22222133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2222213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22222133fooEv,_ZTv0_n20_N9GG22222133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2222213[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2222213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2222213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2222213[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF2213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF221__9GG2222213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN5FF2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF221__9GG2222213[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF221__9GG2222213[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG2222213[] = {
+ {&(_ZTV9GG2222213[6]), 6,28},
+ {&(_ZTV9GG2222213[13]), 13,28},
+ {&(_ZTV9GG2222213[17]), 17,28},
+ {&(_ZTV9GG2222213[21]), 21,28},
+ {&(_ZTV9GG2222213[27]), 27,28},
+ {&(_tg__ZTV5EE222__9GG2222213[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2222213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2222213[3]), 3,4},
+ {&(_tg__ZTV5FF221__9GG2222213[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF221__9GG2222213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF221__9GG2222213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2222213[];
+extern VTBL_ENTRY _ZTV9GG2222213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2222213[];
+static VTBL_ENTRY alt_thunk_names609[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22222133fooEv,_ZTv0_n20_N9GG22222133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22222133fooEv,_ZThn32_N9GG22222133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22222133barEv,_ZTv0_n12_N9GG22222133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22222133barEv,_ZThn24_N9GG22222133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22222133barEv,_ZThn16_N9GG22222133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22222133barEv,_ZTv0_n20_N9GG22222133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22222133barEv,_ZThn8_N9GG22222133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2222213 = { "GG2222213", // class name
+ bases_GG2222213, 4,
+ &(vtc_GG2222213[0]), // expected_vtbl_contents
+ &(vtt_GG2222213[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG2222213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2222213),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2222213),11, //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 GG2222222 : virtual EE222 , virtual FF222 {
+ int pg;
+ virtual void bar(); // _ZN9GG22222223barEv
+ ~GG2222222(); // tgen
+ GG2222222(); // tgen
+};
+//SIG(1 GG2222222) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC3 VBC4 v1 Fi} v1 Fi}
+
+
+void GG2222222 ::bar(){vfunc_called(this, "_ZN9GG22222223barEv");}
+GG2222222 ::~GG2222222(){ note_dtor("GG2222222", this);} // tgen
+GG2222222 ::GG2222222(){ note_ctor("GG2222222", this);} // tgen
+
+static void Test_GG2222222()
+{
+ extern Class_Descriptor cd_GG2222222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG2222222, buf);
+ GG2222222 *dp, &lv = *(dp=new (buf) GG2222222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG2222222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2222222)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2222222");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(32,16), "GG2222222");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2222222");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(48,24), "GG2222222");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2222222");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG2222222");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2222222.pg");
+ test_class_info(&lv, &cd_GG2222222);
+ dp->~GG2222222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2222222(Test_GG2222222, "GG2222222", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG2222222C1Ev();
+extern void _ZN9GG2222222D1Ev();
+Name_Map name_map_GG2222222[] = {
+ NSPAIR(_ZN9GG2222222C1Ev),
+ NSPAIR(_ZN9GG2222222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG2222222[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2222222[];
+extern void _ZN9GG22222223barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22222223barEv,_ZTv0_n20_N9GG22222223barEv)();
+extern void ABISELECT(_ZThn16_N9GG22222223barEv,_ZThn8_N9GG22222223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22222223barEv,_ZTv0_n12_N9GG22222223barEv)();
+extern void ABISELECT(_ZThn32_N9GG22222223barEv,_ZThn16_N9GG22222223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22222223barEv,_ZTv0_n12_N9GG22222223barEv)();
+extern void ABISELECT(_ZThn48_N9GG22222223barEv,_ZThn24_N9GG22222223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22222223barEv,_ZTv0_n20_N9GG22222223barEv)();
+extern void ABISELECT(_ZThn64_N9GG22222223barEv,_ZThn32_N9GG22222223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2222222[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2222222[0]),
+ (VTBL_ENTRY)&_ZN9GG22222223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2222222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22222223barEv,_ZTv0_n20_N9GG22222223barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2222222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22222223barEv,_ZTv0_n12_N9GG22222223barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2222222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22222223barEv,_ZTv0_n12_N9GG22222223barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2222222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22222223barEv,_ZTv0_n20_N9GG22222223barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2222222[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2222222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2222222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2222222[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG2222222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG2222222[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG2222222[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG2222222[] = {
+ {&(_ZTV9GG2222222[6]), 6,27},
+ {&(_ZTV9GG2222222[12]), 12,27},
+ {&(_ZTV9GG2222222[16]), 16,27},
+ {&(_ZTV9GG2222222[20]), 20,27},
+ {&(_ZTV9GG2222222[26]), 26,27},
+ {&(_tg__ZTV5EE222__9GG2222222[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2222222[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2222222[3]), 3,4},
+ {&(_tg__ZTV5FF222__9GG2222222[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG2222222[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG2222222[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2222222[];
+extern VTBL_ENTRY _ZTV9GG2222222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2222222[];
+static VTBL_ENTRY alt_thunk_names610[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22222223barEv,_ZTv0_n12_N9GG22222223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22222223barEv,_ZThn24_N9GG22222223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22222223barEv,_ZThn16_N9GG22222223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22222223barEv,_ZTv0_n20_N9GG22222223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22222223barEv,_ZThn32_N9GG22222223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22222223barEv,_ZThn8_N9GG22222223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2222222 = { "GG2222222", // class name
+ bases_GG2222222, 4,
+ &(vtc_GG2222222[0]), // expected_vtbl_contents
+ &(vtt_GG2222222[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG2222222),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2222222),27, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2222222),11, //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 GG2222223 : virtual EE222 , virtual FF222 {
+ int pg;
+ virtual void foo(); // _ZN9GG22222233fooEv
+ virtual void bar(); // _ZN9GG22222233barEv
+ ~GG2222223(); // tgen
+ GG2222223(); // tgen
+};
+//SIG(1 GG2222223) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC3 VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG2222223 ::foo(){vfunc_called(this, "_ZN9GG22222233fooEv");}
+void GG2222223 ::bar(){vfunc_called(this, "_ZN9GG22222233barEv");}
+GG2222223 ::~GG2222223(){ note_dtor("GG2222223", this);} // tgen
+GG2222223 ::GG2222223(){ note_ctor("GG2222223", this);} // tgen
+
+static void Test_GG2222223()
+{
+ extern Class_Descriptor cd_GG2222223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG2222223, buf);
+ GG2222223 *dp, &lv = *(dp=new (buf) GG2222223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG2222223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2222223)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2222223");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(32,16), "GG2222223");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2222223");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(48,24), "GG2222223");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2222223");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG2222223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2222223.pg");
+ test_class_info(&lv, &cd_GG2222223);
+ dp->~GG2222223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2222223(Test_GG2222223, "GG2222223", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG2222223C1Ev();
+extern void _ZN9GG2222223D1Ev();
+Name_Map name_map_GG2222223[] = {
+ NSPAIR(_ZN9GG2222223C1Ev),
+ NSPAIR(_ZN9GG2222223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG2222223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2222223[];
+extern void _ZN9GG22222233fooEv();
+extern void _ZN9GG22222233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22222233barEv,_ZTv0_n20_N9GG22222233barEv)();
+extern void ABISELECT(_ZThn16_N9GG22222233barEv,_ZThn8_N9GG22222233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22222233barEv,_ZTv0_n12_N9GG22222233barEv)();
+extern void ABISELECT(_ZThn32_N9GG22222233barEv,_ZThn16_N9GG22222233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22222233barEv,_ZTv0_n12_N9GG22222233barEv)();
+extern void ABISELECT(_ZThn48_N9GG22222233barEv,_ZThn24_N9GG22222233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22222233barEv,_ZTv0_n20_N9GG22222233barEv)();
+extern void ABISELECT(_ZThn64_N9GG22222233barEv,_ZThn32_N9GG22222233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2222223[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2222223[0]),
+ (VTBL_ENTRY)&_ZN9GG22222233fooEv,
+ (VTBL_ENTRY)&_ZN9GG22222233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2222223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22222233barEv,_ZTv0_n20_N9GG22222233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2222223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22222233barEv,_ZTv0_n12_N9GG22222233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2222223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22222233barEv,_ZTv0_n12_N9GG22222233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2222223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22222233barEv,_ZTv0_n20_N9GG22222233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2222223[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2222223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2222223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2222223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG2222223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG2222223[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG2222223[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG2222223[] = {
+ {&(_ZTV9GG2222223[6]), 6,28},
+ {&(_ZTV9GG2222223[13]), 13,28},
+ {&(_ZTV9GG2222223[17]), 17,28},
+ {&(_ZTV9GG2222223[21]), 21,28},
+ {&(_ZTV9GG2222223[27]), 27,28},
+ {&(_tg__ZTV5EE222__9GG2222223[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2222223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2222223[3]), 3,4},
+ {&(_tg__ZTV5FF222__9GG2222223[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG2222223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG2222223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2222223[];
+extern VTBL_ENTRY _ZTV9GG2222223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2222223[];
+static VTBL_ENTRY alt_thunk_names611[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22222233barEv,_ZTv0_n12_N9GG22222233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22222233barEv,_ZThn24_N9GG22222233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22222233barEv,_ZThn16_N9GG22222233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22222233barEv,_ZTv0_n20_N9GG22222233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22222233barEv,_ZThn32_N9GG22222233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22222233barEv,_ZThn8_N9GG22222233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2222223 = { "GG2222223", // class name
+ bases_GG2222223, 4,
+ &(vtc_GG2222223[0]), // expected_vtbl_contents
+ &(vtt_GG2222223[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG2222223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2222223),28, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2222223),11, //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 GG2222232 : virtual EE222 , virtual FF223 {
+ int pg;
+ virtual void bar(); // _ZN9GG22222323barEv
+ ~GG2222232(); // tgen
+ GG2222232(); // tgen
+};
+//SIG(1 GG2222232) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC3 VBC4 v2 v1 Fi} v1 Fi}
+
+
+void GG2222232 ::bar(){vfunc_called(this, "_ZN9GG22222323barEv");}
+GG2222232 ::~GG2222232(){ note_dtor("GG2222232", this);} // tgen
+GG2222232 ::GG2222232(){ note_ctor("GG2222232", this);} // tgen
+
+static void Test_GG2222232()
+{
+ extern Class_Descriptor cd_GG2222232;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG2222232, buf);
+ GG2222232 *dp, &lv = *(dp=new (buf) GG2222232());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG2222232)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2222232)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2222232");
+ check_base_class_offset(lv, (AA2*)(FF223*), ABISELECT(32,16), "GG2222232");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2222232");
+ check_base_class_offset(lv, (BB2*)(FF223*), ABISELECT(48,24), "GG2222232");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2222232");
+ check_base_class_offset(lv, (FF223*), ABISELECT(64,32), "GG2222232");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2222232.pg");
+ test_class_info(&lv, &cd_GG2222232);
+ dp->~GG2222232();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2222232(Test_GG2222232, "GG2222232", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG2222232C1Ev();
+extern void _ZN9GG2222232D1Ev();
+Name_Map name_map_GG2222232[] = {
+ NSPAIR(_ZN9GG2222232C1Ev),
+ NSPAIR(_ZN9GG2222232D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_FF223;
+extern VTBL_ENTRY _ZTI5FF223[];
+extern VTBL_ENTRY _ZTV5FF223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF223[];
+static Base_Class bases_GG2222232[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 13, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF223, ABISELECT(64,32), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2222232[];
+extern void _ZN9GG22222323barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22222323barEv,_ZTv0_n20_N9GG22222323barEv)();
+extern void ABISELECT(_ZThn16_N9GG22222323barEv,_ZThn8_N9GG22222323barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22222323barEv,_ZTv0_n12_N9GG22222323barEv)();
+extern void ABISELECT(_ZThn32_N9GG22222323barEv,_ZThn16_N9GG22222323barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22222323barEv,_ZTv0_n12_N9GG22222323barEv)();
+extern void ABISELECT(_ZThn48_N9GG22222323barEv,_ZThn24_N9GG22222323barEv)() __attribute__((weak));
+extern void _ZN5FF2233fooEv();
+extern void ABISELECT(_ZTv0_n48_N9GG22222323barEv,_ZTv0_n24_N9GG22222323barEv)();
+extern void ABISELECT(_ZThn64_N9GG22222323barEv,_ZThn32_N9GG22222323barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2222232[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2222232[0]),
+ (VTBL_ENTRY)&_ZN9GG22222323barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2222232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22222323barEv,_ZTv0_n20_N9GG22222323barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2222232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22222323barEv,_ZTv0_n12_N9GG22222323barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2222232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22222323barEv,_ZTv0_n12_N9GG22222323barEv),
+ ABISELECT(-64,-32),
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2222232[0]),
+ (VTBL_ENTRY)&_ZN5FF2233fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22222323barEv,_ZTv0_n24_N9GG22222323barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2222232[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2222232[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2222232[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2222232[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF2233fooEv();
+extern void _ZN5FF2233barEv();
+static VTBL_ENTRY _tg__ZTV5FF223__9GG2222232[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&_ZN5FF2233fooEv,
+ (VTBL_ENTRY)&_ZN5FF2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF223__9GG2222232[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF223__9GG2222232[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+static VTT_ENTRY vtt_GG2222232[] = {
+ {&(_ZTV9GG2222232[6]), 6,29},
+ {&(_ZTV9GG2222232[12]), 12,29},
+ {&(_ZTV9GG2222232[16]), 16,29},
+ {&(_ZTV9GG2222232[20]), 20,29},
+ {&(_ZTV9GG2222232[27]), 27,29},
+ {&(_tg__ZTV5EE222__9GG2222232[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2222232[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2222232[3]), 3,4},
+ {&(_tg__ZTV5FF223__9GG2222232[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF223__9GG2222232[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF223__9GG2222232[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2222232[];
+extern VTBL_ENTRY _ZTV9GG2222232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2222232[];
+static VTBL_ENTRY alt_thunk_names612[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22222323barEv,_ZTv0_n24_N9GG22222323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22222323barEv,_ZThn32_N9GG22222323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22222323barEv,_ZTv0_n12_N9GG22222323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22222323barEv,_ZThn24_N9GG22222323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22222323barEv,_ZThn16_N9GG22222323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22222323barEv,_ZTv0_n20_N9GG22222323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22222323barEv,_ZThn8_N9GG22222323barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2222232 = { "GG2222232", // class name
+ bases_GG2222232, 4,
+ &(vtc_GG2222232[0]), // expected_vtbl_contents
+ &(vtt_GG2222232[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG2222232),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2222232),29, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2222232),11, //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 GG2222233 : virtual EE222 , virtual FF223 {
+ int pg;
+ virtual void foo(); // _ZN9GG22222333fooEv
+ virtual void bar(); // _ZN9GG22222333barEv
+ ~GG2222233(); // tgen
+ GG2222233(); // tgen
+};
+//SIG(1 GG2222233) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC3 VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2222233 ::foo(){vfunc_called(this, "_ZN9GG22222333fooEv");}
+void GG2222233 ::bar(){vfunc_called(this, "_ZN9GG22222333barEv");}
+GG2222233 ::~GG2222233(){ note_dtor("GG2222233", this);} // tgen
+GG2222233 ::GG2222233(){ note_ctor("GG2222233", this);} // tgen
+
+static void Test_GG2222233()
+{
+ extern Class_Descriptor cd_GG2222233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG2222233, buf);
+ GG2222233 *dp, &lv = *(dp=new (buf) GG2222233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG2222233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2222233)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2222233");
+ check_base_class_offset(lv, (AA2*)(FF223*), ABISELECT(32,16), "GG2222233");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2222233");
+ check_base_class_offset(lv, (BB2*)(FF223*), ABISELECT(48,24), "GG2222233");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2222233");
+ check_base_class_offset(lv, (FF223*), ABISELECT(64,32), "GG2222233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2222233.pg");
+ test_class_info(&lv, &cd_GG2222233);
+ dp->~GG2222233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2222233(Test_GG2222233, "GG2222233", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG2222233C1Ev();
+extern void _ZN9GG2222233D1Ev();
+Name_Map name_map_GG2222233[] = {
+ NSPAIR(_ZN9GG2222233C1Ev),
+ NSPAIR(_ZN9GG2222233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_FF223;
+extern VTBL_ENTRY _ZTI5FF223[];
+extern VTBL_ENTRY _ZTV5FF223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF223[];
+static Base_Class bases_GG2222233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF223, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2222233[];
+extern void _ZN9GG22222333fooEv();
+extern void _ZN9GG22222333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22222333barEv,_ZTv0_n20_N9GG22222333barEv)();
+extern void ABISELECT(_ZThn16_N9GG22222333barEv,_ZThn8_N9GG22222333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22222333barEv,_ZTv0_n12_N9GG22222333barEv)();
+extern void ABISELECT(_ZThn32_N9GG22222333barEv,_ZThn16_N9GG22222333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22222333barEv,_ZTv0_n12_N9GG22222333barEv)();
+extern void ABISELECT(_ZThn48_N9GG22222333barEv,_ZThn24_N9GG22222333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22222333fooEv,_ZTv0_n20_N9GG22222333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22222333fooEv,_ZThn32_N9GG22222333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22222333barEv,_ZTv0_n24_N9GG22222333barEv)();
+extern void ABISELECT(_ZThn64_N9GG22222333barEv,_ZThn32_N9GG22222333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2222233[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2222233[0]),
+ (VTBL_ENTRY)&_ZN9GG22222333fooEv,
+ (VTBL_ENTRY)&_ZN9GG22222333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2222233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22222333barEv,_ZTv0_n20_N9GG22222333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2222233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22222333barEv,_ZTv0_n12_N9GG22222333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2222233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22222333barEv,_ZTv0_n12_N9GG22222333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2222233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22222333fooEv,_ZTv0_n20_N9GG22222333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22222333barEv,_ZTv0_n24_N9GG22222333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2222233[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2222233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2222233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2222233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF2233fooEv();
+extern void _ZN5FF2233barEv();
+static VTBL_ENTRY _tg__ZTV5FF223__9GG2222233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&_ZN5FF2233fooEv,
+ (VTBL_ENTRY)&_ZN5FF2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF223__9GG2222233[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF223__9GG2222233[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+static VTT_ENTRY vtt_GG2222233[] = {
+ {&(_ZTV9GG2222233[6]), 6,30},
+ {&(_ZTV9GG2222233[13]), 13,30},
+ {&(_ZTV9GG2222233[17]), 17,30},
+ {&(_ZTV9GG2222233[21]), 21,30},
+ {&(_ZTV9GG2222233[28]), 28,30},
+ {&(_tg__ZTV5EE222__9GG2222233[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2222233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2222233[3]), 3,4},
+ {&(_tg__ZTV5FF223__9GG2222233[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF223__9GG2222233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF223__9GG2222233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2222233[];
+extern VTBL_ENTRY _ZTV9GG2222233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2222233[];
+static VTBL_ENTRY alt_thunk_names613[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22222333barEv,_ZTv0_n24_N9GG22222333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22222333barEv,_ZThn32_N9GG22222333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22222333fooEv,_ZTv0_n20_N9GG22222333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22222333fooEv,_ZThn32_N9GG22222333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22222333barEv,_ZTv0_n12_N9GG22222333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22222333barEv,_ZThn24_N9GG22222333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22222333barEv,_ZThn16_N9GG22222333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22222333barEv,_ZTv0_n20_N9GG22222333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22222333barEv,_ZThn8_N9GG22222333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2222233 = { "GG2222233", // class name
+ bases_GG2222233, 4,
+ &(vtc_GG2222233[0]), // expected_vtbl_contents
+ &(vtt_GG2222233[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG2222233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2222233),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2222233),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names613,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2222312 : virtual EE222 , virtual FF231 {
+ int pg;
+ virtual void bar(); // _ZN9GG22223123barEv
+ ~GG2222312(); // tgen
+ GG2222312(); // tgen
+};
+//SIG(1 GG2222312) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void GG2222312 ::bar(){vfunc_called(this, "_ZN9GG22223123barEv");}
+GG2222312 ::~GG2222312(){ note_dtor("GG2222312", this);} // tgen
+GG2222312 ::GG2222312(){ note_ctor("GG2222312", this);} // tgen
+
+static void Test_GG2222312()
+{
+ extern Class_Descriptor cd_GG2222312;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2222312, buf);
+ GG2222312 *dp, &lv = *(dp=new (buf) GG2222312());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2222312)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2222312)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2222312");
+ check_base_class_offset(lv, (AA2*)(FF231*), ABISELECT(32,16), "GG2222312");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2222312");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2222312");
+ check_base_class_offset(lv, (BB3*)(FF231*), ABISELECT(80,40), "GG2222312");
+ check_base_class_offset(lv, (FF231*), ABISELECT(64,32), "GG2222312");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2222312.pg");
+ test_class_info(&lv, &cd_GG2222312);
+ dp->~GG2222312();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2222312(Test_GG2222312, "GG2222312", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2222312C1Ev();
+extern void _ZN9GG2222312D1Ev();
+Name_Map name_map_GG2222312[] = {
+ NSPAIR(_ZN9GG2222312C1Ev),
+ NSPAIR(_ZN9GG2222312D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF231;
+extern VTBL_ENTRY _ZTI5FF231[];
+extern VTBL_ENTRY _ZTV5FF231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF231[];
+static Base_Class bases_GG2222312[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF231, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2222312[];
+extern void _ZN9GG22223123barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22223123barEv,_ZTv0_n20_N9GG22223123barEv)();
+extern void ABISELECT(_ZThn16_N9GG22223123barEv,_ZThn8_N9GG22223123barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22223123barEv,_ZTv0_n12_N9GG22223123barEv)();
+extern void ABISELECT(_ZThn32_N9GG22223123barEv,_ZThn16_N9GG22223123barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22223123barEv,_ZTv0_n12_N9GG22223123barEv)();
+extern void ABISELECT(_ZThn48_N9GG22223123barEv,_ZThn24_N9GG22223123barEv)() __attribute__((weak));
+extern void _ZN5FF2313fooEv();
+extern void ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF2313fooEv,_ZThn8_N5FF2313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22223123barEv,_ZTv0_n16_N9GG22223123barEv)();
+extern void ABISELECT(_ZThn80_N9GG22223123barEv,_ZThn40_N9GG22223123barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2222312[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2222312[0]),
+ (VTBL_ENTRY)&_ZN9GG22223123barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2222312[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22223123barEv,_ZTv0_n20_N9GG22223123barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2222312[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22223123barEv,_ZTv0_n12_N9GG22223123barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2222312[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22223123barEv,_ZTv0_n12_N9GG22223123barEv),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2222312[0]),
+ (VTBL_ENTRY)&_ZN5FF2313fooEv,
+ ABISELECT(-80,-40),
+ ABISELECT(-16,-8),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2222312[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22223123barEv,_ZTv0_n16_N9GG22223123barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2222312[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2222312[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2222312[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2222312[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF2313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF231__9GG2222312[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN5FF2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF231__9GG2222312[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF2313fooEv,_ZThn8_N5FF2313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF231__9GG2222312[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG2222312[] = {
+ {&(_ZTV9GG2222312[7]), 7,34},
+ {&(_ZTV9GG2222312[13]), 13,34},
+ {&(_ZTV9GG2222312[17]), 17,34},
+ {&(_ZTV9GG2222312[21]), 21,34},
+ {&(_ZTV9GG2222312[27]), 27,34},
+ {&(_ZTV9GG2222312[32]), 32,34},
+ {&(_tg__ZTV5EE222__9GG2222312[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2222312[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2222312[3]), 3,4},
+ {&(_tg__ZTV5FF231__9GG2222312[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF231__9GG2222312[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF231__9GG2222312[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2222312[];
+extern VTBL_ENTRY _ZTV9GG2222312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2222312[];
+static VTBL_ENTRY alt_thunk_names614[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22223123barEv,_ZTv0_n16_N9GG22223123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22223123barEv,_ZThn40_N9GG22223123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2313fooEv,_ZThn8_N5FF2313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2313fooEv,_ZThn8_N5FF2313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22223123barEv,_ZTv0_n12_N9GG22223123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22223123barEv,_ZThn24_N9GG22223123barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22223123barEv,_ZThn16_N9GG22223123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22223123barEv,_ZTv0_n20_N9GG22223123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22223123barEv,_ZThn8_N9GG22223123barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2222312 = { "GG2222312", // class name
+ bases_GG2222312, 5,
+ &(vtc_GG2222312[0]), // expected_vtbl_contents
+ &(vtt_GG2222312[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2222312),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2222312),34, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2222312),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names614,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2222313 : virtual EE222 , virtual FF231 {
+ int pg;
+ virtual void foo(); // _ZN9GG22223133fooEv
+ virtual void bar(); // _ZN9GG22223133barEv
+ ~GG2222313(); // tgen
+ GG2222313(); // tgen
+};
+//SIG(1 GG2222313) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2222313 ::foo(){vfunc_called(this, "_ZN9GG22223133fooEv");}
+void GG2222313 ::bar(){vfunc_called(this, "_ZN9GG22223133barEv");}
+GG2222313 ::~GG2222313(){ note_dtor("GG2222313", this);} // tgen
+GG2222313 ::GG2222313(){ note_ctor("GG2222313", this);} // tgen
+
+static void Test_GG2222313()
+{
+ extern Class_Descriptor cd_GG2222313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2222313, buf);
+ GG2222313 *dp, &lv = *(dp=new (buf) GG2222313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2222313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2222313)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2222313");
+ check_base_class_offset(lv, (AA2*)(FF231*), ABISELECT(32,16), "GG2222313");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2222313");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2222313");
+ check_base_class_offset(lv, (BB3*)(FF231*), ABISELECT(80,40), "GG2222313");
+ check_base_class_offset(lv, (FF231*), ABISELECT(64,32), "GG2222313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2222313.pg");
+ test_class_info(&lv, &cd_GG2222313);
+ dp->~GG2222313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2222313(Test_GG2222313, "GG2222313", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2222313C1Ev();
+extern void _ZN9GG2222313D1Ev();
+Name_Map name_map_GG2222313[] = {
+ NSPAIR(_ZN9GG2222313C1Ev),
+ NSPAIR(_ZN9GG2222313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF231;
+extern VTBL_ENTRY _ZTI5FF231[];
+extern VTBL_ENTRY _ZTV5FF231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF231[];
+static Base_Class bases_GG2222313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF231, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2222313[];
+extern void _ZN9GG22223133fooEv();
+extern void _ZN9GG22223133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22223133barEv,_ZTv0_n20_N9GG22223133barEv)();
+extern void ABISELECT(_ZThn16_N9GG22223133barEv,_ZThn8_N9GG22223133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22223133barEv,_ZTv0_n12_N9GG22223133barEv)();
+extern void ABISELECT(_ZThn32_N9GG22223133barEv,_ZThn16_N9GG22223133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22223133barEv,_ZTv0_n12_N9GG22223133barEv)();
+extern void ABISELECT(_ZThn48_N9GG22223133barEv,_ZThn24_N9GG22223133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22223133fooEv,_ZTv0_n20_N9GG22223133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22223133fooEv,_ZThn32_N9GG22223133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22223133fooEv,_ZTv0_n12_N9GG22223133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22223133fooEv,_ZThn40_N9GG22223133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22223133barEv,_ZTv0_n16_N9GG22223133barEv)();
+extern void ABISELECT(_ZThn80_N9GG22223133barEv,_ZThn40_N9GG22223133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2222313[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2222313[0]),
+ (VTBL_ENTRY)&_ZN9GG22223133fooEv,
+ (VTBL_ENTRY)&_ZN9GG22223133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2222313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22223133barEv,_ZTv0_n20_N9GG22223133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2222313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22223133barEv,_ZTv0_n12_N9GG22223133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2222313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22223133barEv,_ZTv0_n12_N9GG22223133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2222313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22223133fooEv,_ZTv0_n20_N9GG22223133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2222313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22223133fooEv,_ZTv0_n12_N9GG22223133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22223133barEv,_ZTv0_n16_N9GG22223133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2222313[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2222313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2222313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2222313[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF2313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF231__9GG2222313[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN5FF2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF231__9GG2222313[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF2313fooEv,_ZThn8_N5FF2313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF231__9GG2222313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG2222313[] = {
+ {&(_ZTV9GG2222313[7]), 7,35},
+ {&(_ZTV9GG2222313[14]), 14,35},
+ {&(_ZTV9GG2222313[18]), 18,35},
+ {&(_ZTV9GG2222313[22]), 22,35},
+ {&(_ZTV9GG2222313[28]), 28,35},
+ {&(_ZTV9GG2222313[33]), 33,35},
+ {&(_tg__ZTV5EE222__9GG2222313[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2222313[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2222313[3]), 3,4},
+ {&(_tg__ZTV5FF231__9GG2222313[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF231__9GG2222313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF231__9GG2222313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2222313[];
+extern VTBL_ENTRY _ZTV9GG2222313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2222313[];
+static VTBL_ENTRY alt_thunk_names615[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2313fooEv,_ZThn8_N5FF2313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22223133barEv,_ZTv0_n16_N9GG22223133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22223133barEv,_ZThn40_N9GG22223133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22223133fooEv,_ZTv0_n12_N9GG22223133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22223133fooEv,_ZThn40_N9GG22223133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22223133fooEv,_ZTv0_n20_N9GG22223133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22223133fooEv,_ZThn32_N9GG22223133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22223133barEv,_ZTv0_n12_N9GG22223133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22223133barEv,_ZThn24_N9GG22223133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22223133barEv,_ZThn16_N9GG22223133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22223133barEv,_ZTv0_n20_N9GG22223133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22223133barEv,_ZThn8_N9GG22223133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2222313 = { "GG2222313", // class name
+ bases_GG2222313, 5,
+ &(vtc_GG2222313[0]), // expected_vtbl_contents
+ &(vtt_GG2222313[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2222313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2222313),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2222313),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names615,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2222322 : virtual EE222 , virtual FF232 {
+ int pg;
+ virtual void bar(); // _ZN9GG22223223barEv
+ ~GG2222322(); // tgen
+ GG2222322(); // tgen
+};
+//SIG(1 GG2222322) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v2 v1 Fi} v1 Fi} v1 Fi}
+
+
+void GG2222322 ::bar(){vfunc_called(this, "_ZN9GG22223223barEv");}
+GG2222322 ::~GG2222322(){ note_dtor("GG2222322", this);} // tgen
+GG2222322 ::GG2222322(){ note_ctor("GG2222322", this);} // tgen
+
+static void Test_GG2222322()
+{
+ extern Class_Descriptor cd_GG2222322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2222322, buf);
+ GG2222322 *dp, &lv = *(dp=new (buf) GG2222322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2222322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2222322)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2222322");
+ check_base_class_offset(lv, (AA2*)(FF232*), ABISELECT(32,16), "GG2222322");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2222322");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2222322");
+ check_base_class_offset(lv, (BB3*)(FF232*), ABISELECT(80,40), "GG2222322");
+ check_base_class_offset(lv, (FF232*), ABISELECT(64,32), "GG2222322");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2222322.pg");
+ test_class_info(&lv, &cd_GG2222322);
+ dp->~GG2222322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2222322(Test_GG2222322, "GG2222322", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2222322C1Ev();
+extern void _ZN9GG2222322D1Ev();
+Name_Map name_map_GG2222322[] = {
+ NSPAIR(_ZN9GG2222322C1Ev),
+ NSPAIR(_ZN9GG2222322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF232;
+extern VTBL_ENTRY _ZTI5FF232[];
+extern VTBL_ENTRY _ZTV5FF232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF232[];
+static Base_Class bases_GG2222322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF232, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2222322[];
+extern void _ZN9GG22223223barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22223223barEv,_ZTv0_n20_N9GG22223223barEv)();
+extern void ABISELECT(_ZThn16_N9GG22223223barEv,_ZThn8_N9GG22223223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22223223barEv,_ZTv0_n12_N9GG22223223barEv)();
+extern void ABISELECT(_ZThn32_N9GG22223223barEv,_ZThn16_N9GG22223223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22223223barEv,_ZTv0_n12_N9GG22223223barEv)();
+extern void ABISELECT(_ZThn48_N9GG22223223barEv,_ZThn24_N9GG22223223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22223223barEv,_ZTv0_n20_N9GG22223223barEv)();
+extern void ABISELECT(_ZThn64_N9GG22223223barEv,_ZThn32_N9GG22223223barEv)() __attribute__((weak));
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N9GG22223223barEv,_ZTv0_n16_N9GG22223223barEv)();
+extern void ABISELECT(_ZThn80_N9GG22223223barEv,_ZThn40_N9GG22223223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2222322[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2222322[0]),
+ (VTBL_ENTRY)&_ZN9GG22223223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2222322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22223223barEv,_ZTv0_n20_N9GG22223223barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2222322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22223223barEv,_ZTv0_n12_N9GG22223223barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2222322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22223223barEv,_ZTv0_n12_N9GG22223223barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2222322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22223223barEv,_ZTv0_n20_N9GG22223223barEv),
+ ABISELECT(-80,-40),
+ 0,
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2222322[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22223223barEv,_ZTv0_n16_N9GG22223223barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2222322[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2222322[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2222322[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2222322[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF2323barEv();
+static VTBL_ENTRY _tg__ZTV5FF232__9GG2222322[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN5FF2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF232__9GG2222322[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv)();
+extern void ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF232__9GG2222322[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv),
+};
+static VTT_ENTRY vtt_GG2222322[] = {
+ {&(_ZTV9GG2222322[7]), 7,34},
+ {&(_ZTV9GG2222322[13]), 13,34},
+ {&(_ZTV9GG2222322[17]), 17,34},
+ {&(_ZTV9GG2222322[21]), 21,34},
+ {&(_ZTV9GG2222322[27]), 27,34},
+ {&(_ZTV9GG2222322[32]), 32,34},
+ {&(_tg__ZTV5EE222__9GG2222322[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2222322[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2222322[3]), 3,4},
+ {&(_tg__ZTV5FF232__9GG2222322[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF232__9GG2222322[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF232__9GG2222322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2222322[];
+extern VTBL_ENTRY _ZTV9GG2222322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2222322[];
+static VTBL_ENTRY alt_thunk_names616[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22223223barEv,_ZTv0_n16_N9GG22223223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22223223barEv,_ZThn40_N9GG22223223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22223223barEv,_ZTv0_n12_N9GG22223223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22223223barEv,_ZThn24_N9GG22223223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22223223barEv,_ZThn16_N9GG22223223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22223223barEv,_ZTv0_n20_N9GG22223223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22223223barEv,_ZThn32_N9GG22223223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22223223barEv,_ZThn8_N9GG22223223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2222322 = { "GG2222322", // class name
+ bases_GG2222322, 5,
+ &(vtc_GG2222322[0]), // expected_vtbl_contents
+ &(vtt_GG2222322[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2222322),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2222322),34, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2222322),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names616,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2222323 : virtual EE222 , virtual FF232 {
+ int pg;
+ virtual void foo(); // _ZN9GG22223233fooEv
+ virtual void bar(); // _ZN9GG22223233barEv
+ ~GG2222323(); // tgen
+ GG2222323(); // tgen
+};
+//SIG(1 GG2222323) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2222323 ::foo(){vfunc_called(this, "_ZN9GG22223233fooEv");}
+void GG2222323 ::bar(){vfunc_called(this, "_ZN9GG22223233barEv");}
+GG2222323 ::~GG2222323(){ note_dtor("GG2222323", this);} // tgen
+GG2222323 ::GG2222323(){ note_ctor("GG2222323", this);} // tgen
+
+static void Test_GG2222323()
+{
+ extern Class_Descriptor cd_GG2222323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2222323, buf);
+ GG2222323 *dp, &lv = *(dp=new (buf) GG2222323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2222323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2222323)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2222323");
+ check_base_class_offset(lv, (AA2*)(FF232*), ABISELECT(32,16), "GG2222323");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2222323");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2222323");
+ check_base_class_offset(lv, (BB3*)(FF232*), ABISELECT(80,40), "GG2222323");
+ check_base_class_offset(lv, (FF232*), ABISELECT(64,32), "GG2222323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2222323.pg");
+ test_class_info(&lv, &cd_GG2222323);
+ dp->~GG2222323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2222323(Test_GG2222323, "GG2222323", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2222323C1Ev();
+extern void _ZN9GG2222323D1Ev();
+Name_Map name_map_GG2222323[] = {
+ NSPAIR(_ZN9GG2222323C1Ev),
+ NSPAIR(_ZN9GG2222323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF232;
+extern VTBL_ENTRY _ZTI5FF232[];
+extern VTBL_ENTRY _ZTV5FF232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF232[];
+static Base_Class bases_GG2222323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF232, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2222323[];
+extern void _ZN9GG22223233fooEv();
+extern void _ZN9GG22223233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22223233barEv,_ZTv0_n20_N9GG22223233barEv)();
+extern void ABISELECT(_ZThn16_N9GG22223233barEv,_ZThn8_N9GG22223233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22223233barEv,_ZTv0_n12_N9GG22223233barEv)();
+extern void ABISELECT(_ZThn32_N9GG22223233barEv,_ZThn16_N9GG22223233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22223233barEv,_ZTv0_n12_N9GG22223233barEv)();
+extern void ABISELECT(_ZThn48_N9GG22223233barEv,_ZThn24_N9GG22223233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22223233barEv,_ZTv0_n20_N9GG22223233barEv)();
+extern void ABISELECT(_ZThn64_N9GG22223233barEv,_ZThn32_N9GG22223233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22223233fooEv,_ZTv0_n12_N9GG22223233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22223233fooEv,_ZThn40_N9GG22223233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22223233barEv,_ZTv0_n16_N9GG22223233barEv)();
+extern void ABISELECT(_ZThn80_N9GG22223233barEv,_ZThn40_N9GG22223233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2222323[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2222323[0]),
+ (VTBL_ENTRY)&_ZN9GG22223233fooEv,
+ (VTBL_ENTRY)&_ZN9GG22223233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2222323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22223233barEv,_ZTv0_n20_N9GG22223233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2222323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22223233barEv,_ZTv0_n12_N9GG22223233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2222323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22223233barEv,_ZTv0_n12_N9GG22223233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2222323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22223233barEv,_ZTv0_n20_N9GG22223233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2222323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22223233fooEv,_ZTv0_n12_N9GG22223233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22223233barEv,_ZTv0_n16_N9GG22223233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2222323[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2222323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2222323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2222323[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF2323barEv();
+static VTBL_ENTRY _tg__ZTV5FF232__9GG2222323[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN5FF2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF232__9GG2222323[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv)();
+extern void ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF232__9GG2222323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv),
+};
+static VTT_ENTRY vtt_GG2222323[] = {
+ {&(_ZTV9GG2222323[7]), 7,35},
+ {&(_ZTV9GG2222323[14]), 14,35},
+ {&(_ZTV9GG2222323[18]), 18,35},
+ {&(_ZTV9GG2222323[22]), 22,35},
+ {&(_ZTV9GG2222323[28]), 28,35},
+ {&(_ZTV9GG2222323[33]), 33,35},
+ {&(_tg__ZTV5EE222__9GG2222323[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2222323[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2222323[3]), 3,4},
+ {&(_tg__ZTV5FF232__9GG2222323[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF232__9GG2222323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF232__9GG2222323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2222323[];
+extern VTBL_ENTRY _ZTV9GG2222323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2222323[];
+static VTBL_ENTRY alt_thunk_names617[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22223233barEv,_ZTv0_n16_N9GG22223233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22223233barEv,_ZThn40_N9GG22223233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22223233fooEv,_ZTv0_n12_N9GG22223233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22223233fooEv,_ZThn40_N9GG22223233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22223233barEv,_ZTv0_n12_N9GG22223233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22223233barEv,_ZThn24_N9GG22223233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22223233barEv,_ZThn16_N9GG22223233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22223233barEv,_ZTv0_n20_N9GG22223233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22223233barEv,_ZThn32_N9GG22223233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22223233barEv,_ZThn8_N9GG22223233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2222323 = { "GG2222323", // class name
+ bases_GG2222323, 5,
+ &(vtc_GG2222323[0]), // expected_vtbl_contents
+ &(vtt_GG2222323[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2222323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2222323),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2222323),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names617,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2222332 : virtual EE222 , virtual FF233 {
+ int pg;
+ virtual void bar(); // _ZN9GG22223323barEv
+ ~GG2222332(); // tgen
+ GG2222332(); // tgen
+};
+//SIG(1 GG2222332) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v2 v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void GG2222332 ::bar(){vfunc_called(this, "_ZN9GG22223323barEv");}
+GG2222332 ::~GG2222332(){ note_dtor("GG2222332", this);} // tgen
+GG2222332 ::GG2222332(){ note_ctor("GG2222332", this);} // tgen
+
+static void Test_GG2222332()
+{
+ extern Class_Descriptor cd_GG2222332;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2222332, buf);
+ GG2222332 *dp, &lv = *(dp=new (buf) GG2222332());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2222332)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2222332)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2222332");
+ check_base_class_offset(lv, (AA2*)(FF233*), ABISELECT(32,16), "GG2222332");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2222332");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2222332");
+ check_base_class_offset(lv, (BB3*)(FF233*), ABISELECT(80,40), "GG2222332");
+ check_base_class_offset(lv, (FF233*), ABISELECT(64,32), "GG2222332");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2222332.pg");
+ test_class_info(&lv, &cd_GG2222332);
+ dp->~GG2222332();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2222332(Test_GG2222332, "GG2222332", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2222332C1Ev();
+extern void _ZN9GG2222332D1Ev();
+Name_Map name_map_GG2222332[] = {
+ NSPAIR(_ZN9GG2222332C1Ev),
+ NSPAIR(_ZN9GG2222332D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF233;
+extern VTBL_ENTRY _ZTI5FF233[];
+extern VTBL_ENTRY _ZTV5FF233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF233[];
+static Base_Class bases_GG2222332[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF233, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2222332[];
+extern void _ZN9GG22223323barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22223323barEv,_ZTv0_n20_N9GG22223323barEv)();
+extern void ABISELECT(_ZThn16_N9GG22223323barEv,_ZThn8_N9GG22223323barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22223323barEv,_ZTv0_n12_N9GG22223323barEv)();
+extern void ABISELECT(_ZThn32_N9GG22223323barEv,_ZThn16_N9GG22223323barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22223323barEv,_ZTv0_n12_N9GG22223323barEv)();
+extern void ABISELECT(_ZThn48_N9GG22223323barEv,_ZThn24_N9GG22223323barEv)() __attribute__((weak));
+extern void _ZN5FF2333fooEv();
+extern void ABISELECT(_ZTv0_n48_N9GG22223323barEv,_ZTv0_n24_N9GG22223323barEv)();
+extern void ABISELECT(_ZThn64_N9GG22223323barEv,_ZThn32_N9GG22223323barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF2333fooEv,_ZThn8_N5FF2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22223323barEv,_ZTv0_n16_N9GG22223323barEv)();
+extern void ABISELECT(_ZThn80_N9GG22223323barEv,_ZThn40_N9GG22223323barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2222332[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2222332[0]),
+ (VTBL_ENTRY)&_ZN9GG22223323barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2222332[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22223323barEv,_ZTv0_n20_N9GG22223323barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2222332[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22223323barEv,_ZTv0_n12_N9GG22223323barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2222332[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22223323barEv,_ZTv0_n12_N9GG22223323barEv),
+ ABISELECT(-64,-32),
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2222332[0]),
+ (VTBL_ENTRY)&_ZN5FF2333fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22223323barEv,_ZTv0_n24_N9GG22223323barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-16,-8),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2222332[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22223323barEv,_ZTv0_n16_N9GG22223323barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2222332[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2222332[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2222332[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2222332[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF2333fooEv();
+extern void _ZN5FF2333barEv();
+static VTBL_ENTRY _tg__ZTV5FF233__9GG2222332[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&_ZN5FF2333fooEv,
+ (VTBL_ENTRY)&_ZN5FF2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF233__9GG2222332[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF2333fooEv,_ZThn8_N5FF2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv)();
+extern void ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF233__9GG2222332[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv),
+};
+static VTT_ENTRY vtt_GG2222332[] = {
+ {&(_ZTV9GG2222332[7]), 7,36},
+ {&(_ZTV9GG2222332[13]), 13,36},
+ {&(_ZTV9GG2222332[17]), 17,36},
+ {&(_ZTV9GG2222332[21]), 21,36},
+ {&(_ZTV9GG2222332[28]), 28,36},
+ {&(_ZTV9GG2222332[34]), 34,36},
+ {&(_tg__ZTV5EE222__9GG2222332[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2222332[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2222332[3]), 3,4},
+ {&(_tg__ZTV5FF233__9GG2222332[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF233__9GG2222332[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF233__9GG2222332[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2222332[];
+extern VTBL_ENTRY _ZTV9GG2222332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2222332[];
+static VTBL_ENTRY alt_thunk_names618[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22223323barEv,_ZTv0_n16_N9GG22223323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22223323barEv,_ZThn40_N9GG22223323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2333fooEv,_ZThn8_N5FF2333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2333fooEv,_ZThn8_N5FF2333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22223323barEv,_ZTv0_n24_N9GG22223323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22223323barEv,_ZThn32_N9GG22223323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22223323barEv,_ZTv0_n12_N9GG22223323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22223323barEv,_ZThn24_N9GG22223323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22223323barEv,_ZThn16_N9GG22223323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22223323barEv,_ZTv0_n20_N9GG22223323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22223323barEv,_ZThn8_N9GG22223323barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2222332 = { "GG2222332", // class name
+ bases_GG2222332, 5,
+ &(vtc_GG2222332[0]), // expected_vtbl_contents
+ &(vtt_GG2222332[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2222332),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2222332),36, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2222332),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names618,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2222333 : virtual EE222 , virtual FF233 {
+ int pg;
+ virtual void foo(); // _ZN9GG22223333fooEv
+ virtual void bar(); // _ZN9GG22223333barEv
+ ~GG2222333(); // tgen
+ GG2222333(); // tgen
+};
+//SIG(1 GG2222333) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2222333 ::foo(){vfunc_called(this, "_ZN9GG22223333fooEv");}
+void GG2222333 ::bar(){vfunc_called(this, "_ZN9GG22223333barEv");}
+GG2222333 ::~GG2222333(){ note_dtor("GG2222333", this);} // tgen
+GG2222333 ::GG2222333(){ note_ctor("GG2222333", this);} // tgen
+
+static void Test_GG2222333()
+{
+ extern Class_Descriptor cd_GG2222333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2222333, buf);
+ GG2222333 *dp, &lv = *(dp=new (buf) GG2222333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2222333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2222333)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2222333");
+ check_base_class_offset(lv, (AA2*)(FF233*), ABISELECT(32,16), "GG2222333");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2222333");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2222333");
+ check_base_class_offset(lv, (BB3*)(FF233*), ABISELECT(80,40), "GG2222333");
+ check_base_class_offset(lv, (FF233*), ABISELECT(64,32), "GG2222333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2222333.pg");
+ test_class_info(&lv, &cd_GG2222333);
+ dp->~GG2222333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2222333(Test_GG2222333, "GG2222333", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2222333C1Ev();
+extern void _ZN9GG2222333D1Ev();
+Name_Map name_map_GG2222333[] = {
+ NSPAIR(_ZN9GG2222333C1Ev),
+ NSPAIR(_ZN9GG2222333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF233;
+extern VTBL_ENTRY _ZTI5FF233[];
+extern VTBL_ENTRY _ZTV5FF233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF233[];
+static Base_Class bases_GG2222333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF233, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2222333[];
+extern void _ZN9GG22223333fooEv();
+extern void _ZN9GG22223333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22223333barEv,_ZTv0_n20_N9GG22223333barEv)();
+extern void ABISELECT(_ZThn16_N9GG22223333barEv,_ZThn8_N9GG22223333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22223333barEv,_ZTv0_n12_N9GG22223333barEv)();
+extern void ABISELECT(_ZThn32_N9GG22223333barEv,_ZThn16_N9GG22223333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22223333barEv,_ZTv0_n12_N9GG22223333barEv)();
+extern void ABISELECT(_ZThn48_N9GG22223333barEv,_ZThn24_N9GG22223333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22223333fooEv,_ZTv0_n20_N9GG22223333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22223333fooEv,_ZThn32_N9GG22223333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22223333barEv,_ZTv0_n24_N9GG22223333barEv)();
+extern void ABISELECT(_ZThn64_N9GG22223333barEv,_ZThn32_N9GG22223333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22223333fooEv,_ZTv0_n12_N9GG22223333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22223333fooEv,_ZThn40_N9GG22223333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22223333barEv,_ZTv0_n16_N9GG22223333barEv)();
+extern void ABISELECT(_ZThn80_N9GG22223333barEv,_ZThn40_N9GG22223333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2222333[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2222333[0]),
+ (VTBL_ENTRY)&_ZN9GG22223333fooEv,
+ (VTBL_ENTRY)&_ZN9GG22223333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2222333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22223333barEv,_ZTv0_n20_N9GG22223333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2222333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22223333barEv,_ZTv0_n12_N9GG22223333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2222333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22223333barEv,_ZTv0_n12_N9GG22223333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2222333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22223333fooEv,_ZTv0_n20_N9GG22223333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22223333barEv,_ZTv0_n24_N9GG22223333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2222333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22223333fooEv,_ZTv0_n12_N9GG22223333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22223333barEv,_ZTv0_n16_N9GG22223333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2222333[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2222333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2222333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2222333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF2333fooEv();
+extern void _ZN5FF2333barEv();
+static VTBL_ENTRY _tg__ZTV5FF233__9GG2222333[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&_ZN5FF2333fooEv,
+ (VTBL_ENTRY)&_ZN5FF2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF233__9GG2222333[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF2333fooEv,_ZThn8_N5FF2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv)();
+extern void ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF233__9GG2222333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv),
+};
+static VTT_ENTRY vtt_GG2222333[] = {
+ {&(_ZTV9GG2222333[7]), 7,37},
+ {&(_ZTV9GG2222333[14]), 14,37},
+ {&(_ZTV9GG2222333[18]), 18,37},
+ {&(_ZTV9GG2222333[22]), 22,37},
+ {&(_ZTV9GG2222333[29]), 29,37},
+ {&(_ZTV9GG2222333[35]), 35,37},
+ {&(_tg__ZTV5EE222__9GG2222333[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2222333[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2222333[3]), 3,4},
+ {&(_tg__ZTV5FF233__9GG2222333[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF233__9GG2222333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF233__9GG2222333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2222333[];
+extern VTBL_ENTRY _ZTV9GG2222333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2222333[];
+static VTBL_ENTRY alt_thunk_names619[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2333fooEv,_ZThn8_N5FF2333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22223333barEv,_ZTv0_n16_N9GG22223333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22223333barEv,_ZThn40_N9GG22223333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22223333fooEv,_ZTv0_n12_N9GG22223333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22223333fooEv,_ZThn40_N9GG22223333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22223333barEv,_ZTv0_n24_N9GG22223333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22223333barEv,_ZThn32_N9GG22223333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22223333fooEv,_ZTv0_n20_N9GG22223333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22223333fooEv,_ZThn32_N9GG22223333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22223333barEv,_ZTv0_n12_N9GG22223333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22223333barEv,_ZThn24_N9GG22223333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22223333barEv,_ZThn16_N9GG22223333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22223333barEv,_ZTv0_n20_N9GG22223333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22223333barEv,_ZThn8_N9GG22223333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2222333 = { "GG2222333", // class name
+ bases_GG2222333, 5,
+ &(vtc_GG2222333[0]), // expected_vtbl_contents
+ &(vtt_GG2222333[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2222333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2222333),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2222333),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names619,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2223112 : virtual EE222 , virtual FF311 {
+ int pg;
+ virtual void bar(); // _ZN9GG22231123barEv
+ ~GG2223112(); // tgen
+ GG2223112(); // tgen
+};
+//SIG(1 GG2223112) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v2 v1 Fi} VBC7{ v2 Fi} v2 Fi} v1 Fi}
+
+
+void GG2223112 ::bar(){vfunc_called(this, "_ZN9GG22231123barEv");}
+GG2223112 ::~GG2223112(){ note_dtor("GG2223112", this);} // tgen
+GG2223112 ::GG2223112(){ note_ctor("GG2223112", this);} // tgen
+
+static void Test_GG2223112()
+{
+ extern Class_Descriptor cd_GG2223112;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2223112, buf);
+ GG2223112 *dp, &lv = *(dp=new (buf) GG2223112());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2223112)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2223112)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2223112");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2223112");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2223112");
+ check_base_class_offset(lv, (AA3*)(FF311*), ABISELECT(80,40), "GG2223112");
+ check_base_class_offset(lv, (BB1*)(FF311*), ABISELECT(96,48), "GG2223112");
+ check_base_class_offset(lv, (FF311*), ABISELECT(64,32), "GG2223112");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2223112.pg");
+ test_class_info(&lv, &cd_GG2223112);
+ dp->~GG2223112();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2223112(Test_GG2223112, "GG2223112", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2223112C1Ev();
+extern void _ZN9GG2223112D1Ev();
+Name_Map name_map_GG2223112[] = {
+ NSPAIR(_ZN9GG2223112C1Ev),
+ NSPAIR(_ZN9GG2223112D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF311;
+extern VTBL_ENTRY _ZTI5FF311[];
+extern VTBL_ENTRY _ZTV5FF311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF311[];
+static Base_Class bases_GG2223112[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF311, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2223112[];
+extern void _ZN9GG22231123barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22231123barEv,_ZTv0_n20_N9GG22231123barEv)();
+extern void ABISELECT(_ZThn16_N9GG22231123barEv,_ZThn8_N9GG22231123barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22231123barEv,_ZTv0_n12_N9GG22231123barEv)();
+extern void ABISELECT(_ZThn32_N9GG22231123barEv,_ZThn16_N9GG22231123barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22231123barEv,_ZTv0_n12_N9GG22231123barEv)();
+extern void ABISELECT(_ZThn48_N9GG22231123barEv,_ZThn24_N9GG22231123barEv)() __attribute__((weak));
+extern void _ZN5FF3113fooEv();
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22231123barEv,_ZTv0_n16_N9GG22231123barEv)();
+extern void ABISELECT(_ZThn80_N9GG22231123barEv,_ZThn40_N9GG22231123barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3113fooEv,_ZThn16_N5FF3113fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2223112[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2223112[0]),
+ (VTBL_ENTRY)&_ZN9GG22231123barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2223112[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22231123barEv,_ZTv0_n20_N9GG22231123barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2223112[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22231123barEv,_ZTv0_n12_N9GG22231123barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2223112[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22231123barEv,_ZTv0_n12_N9GG22231123barEv),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2223112[0]),
+ (VTBL_ENTRY)&_ZN5FF3113fooEv,
+ ABISELECT(-80,-40),
+ ABISELECT(-16,-8),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2223112[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22231123barEv,_ZTv0_n16_N9GG22231123barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2223112[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2223112[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2223112[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2223112[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2223112[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF3113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF311__9GG2223112[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&_ZN5FF3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF311__9GG2223112[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3113fooEv,_ZThn16_N5FF3113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF311__9GG2223112[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+};
+static VTT_ENTRY vtt_GG2223112[] = {
+ {&(_ZTV9GG2223112[8]), 8,39},
+ {&(_ZTV9GG2223112[14]), 14,39},
+ {&(_ZTV9GG2223112[18]), 18,39},
+ {&(_ZTV9GG2223112[22]), 22,39},
+ {&(_ZTV9GG2223112[28]), 28,39},
+ {&(_ZTV9GG2223112[33]), 33,39},
+ {&(_ZTV9GG2223112[38]), 38,39},
+ {&(_tg__ZTV5EE222__9GG2223112[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2223112[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2223112[3]), 3,4},
+ {&(_tg__ZTV5FF311__9GG2223112[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF311__9GG2223112[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF311__9GG2223112[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2223112[];
+extern VTBL_ENTRY _ZTV9GG2223112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2223112[];
+static VTBL_ENTRY alt_thunk_names620[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22231123barEv,_ZTv0_n16_N9GG22231123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22231123barEv,_ZThn40_N9GG22231123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3113fooEv,_ZThn16_N5FF3113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3113fooEv,_ZThn16_N5FF3113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22231123barEv,_ZTv0_n12_N9GG22231123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22231123barEv,_ZThn24_N9GG22231123barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22231123barEv,_ZThn16_N9GG22231123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22231123barEv,_ZTv0_n20_N9GG22231123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22231123barEv,_ZThn8_N9GG22231123barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2223112 = { "GG2223112", // class name
+ bases_GG2223112, 6,
+ &(vtc_GG2223112[0]), // expected_vtbl_contents
+ &(vtt_GG2223112[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2223112),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2223112),39, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2223112),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names620,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2223113 : virtual EE222 , virtual FF311 {
+ int pg;
+ virtual void foo(); // _ZN9GG22231133fooEv
+ virtual void bar(); // _ZN9GG22231133barEv
+ ~GG2223113(); // tgen
+ GG2223113(); // tgen
+};
+//SIG(1 GG2223113) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2223113 ::foo(){vfunc_called(this, "_ZN9GG22231133fooEv");}
+void GG2223113 ::bar(){vfunc_called(this, "_ZN9GG22231133barEv");}
+GG2223113 ::~GG2223113(){ note_dtor("GG2223113", this);} // tgen
+GG2223113 ::GG2223113(){ note_ctor("GG2223113", this);} // tgen
+
+static void Test_GG2223113()
+{
+ extern Class_Descriptor cd_GG2223113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2223113, buf);
+ GG2223113 *dp, &lv = *(dp=new (buf) GG2223113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2223113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2223113)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2223113");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2223113");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2223113");
+ check_base_class_offset(lv, (AA3*)(FF311*), ABISELECT(80,40), "GG2223113");
+ check_base_class_offset(lv, (BB1*)(FF311*), ABISELECT(96,48), "GG2223113");
+ check_base_class_offset(lv, (FF311*), ABISELECT(64,32), "GG2223113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2223113.pg");
+ test_class_info(&lv, &cd_GG2223113);
+ dp->~GG2223113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2223113(Test_GG2223113, "GG2223113", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2223113C1Ev();
+extern void _ZN9GG2223113D1Ev();
+Name_Map name_map_GG2223113[] = {
+ NSPAIR(_ZN9GG2223113C1Ev),
+ NSPAIR(_ZN9GG2223113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF311;
+extern VTBL_ENTRY _ZTI5FF311[];
+extern VTBL_ENTRY _ZTV5FF311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF311[];
+static Base_Class bases_GG2223113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF311, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2223113[];
+extern void _ZN9GG22231133fooEv();
+extern void _ZN9GG22231133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22231133barEv,_ZTv0_n20_N9GG22231133barEv)();
+extern void ABISELECT(_ZThn16_N9GG22231133barEv,_ZThn8_N9GG22231133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22231133barEv,_ZTv0_n12_N9GG22231133barEv)();
+extern void ABISELECT(_ZThn32_N9GG22231133barEv,_ZThn16_N9GG22231133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22231133barEv,_ZTv0_n12_N9GG22231133barEv)();
+extern void ABISELECT(_ZThn48_N9GG22231133barEv,_ZThn24_N9GG22231133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22231133fooEv,_ZTv0_n20_N9GG22231133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22231133fooEv,_ZThn32_N9GG22231133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22231133fooEv,_ZTv0_n12_N9GG22231133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22231133fooEv,_ZThn40_N9GG22231133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22231133barEv,_ZTv0_n16_N9GG22231133barEv)();
+extern void ABISELECT(_ZThn80_N9GG22231133barEv,_ZThn40_N9GG22231133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22231133fooEv,_ZTv0_n12_N9GG22231133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG22231133fooEv,_ZThn48_N9GG22231133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2223113[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2223113[0]),
+ (VTBL_ENTRY)&_ZN9GG22231133fooEv,
+ (VTBL_ENTRY)&_ZN9GG22231133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2223113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22231133barEv,_ZTv0_n20_N9GG22231133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2223113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22231133barEv,_ZTv0_n12_N9GG22231133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2223113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22231133barEv,_ZTv0_n12_N9GG22231133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2223113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22231133fooEv,_ZTv0_n20_N9GG22231133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2223113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22231133fooEv,_ZTv0_n12_N9GG22231133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22231133barEv,_ZTv0_n16_N9GG22231133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2223113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22231133fooEv,_ZTv0_n12_N9GG22231133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2223113[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2223113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2223113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2223113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF3113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF311__9GG2223113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&_ZN5FF3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF311__9GG2223113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3113fooEv,_ZThn16_N5FF3113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF311__9GG2223113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+};
+static VTT_ENTRY vtt_GG2223113[] = {
+ {&(_ZTV9GG2223113[8]), 8,40},
+ {&(_ZTV9GG2223113[15]), 15,40},
+ {&(_ZTV9GG2223113[19]), 19,40},
+ {&(_ZTV9GG2223113[23]), 23,40},
+ {&(_ZTV9GG2223113[29]), 29,40},
+ {&(_ZTV9GG2223113[34]), 34,40},
+ {&(_ZTV9GG2223113[39]), 39,40},
+ {&(_tg__ZTV5EE222__9GG2223113[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2223113[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2223113[3]), 3,4},
+ {&(_tg__ZTV5FF311__9GG2223113[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF311__9GG2223113[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF311__9GG2223113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2223113[];
+extern VTBL_ENTRY _ZTV9GG2223113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2223113[];
+static VTBL_ENTRY alt_thunk_names621[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3113fooEv,_ZThn16_N5FF3113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22231133barEv,_ZTv0_n16_N9GG22231133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22231133barEv,_ZThn40_N9GG22231133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22231133fooEv,_ZTv0_n12_N9GG22231133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22231133fooEv,_ZThn48_N9GG22231133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22231133fooEv,_ZThn40_N9GG22231133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22231133fooEv,_ZTv0_n20_N9GG22231133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22231133fooEv,_ZThn32_N9GG22231133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22231133barEv,_ZTv0_n12_N9GG22231133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22231133barEv,_ZThn24_N9GG22231133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22231133barEv,_ZThn16_N9GG22231133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22231133barEv,_ZTv0_n20_N9GG22231133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22231133barEv,_ZThn8_N9GG22231133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2223113 = { "GG2223113", // class name
+ bases_GG2223113, 6,
+ &(vtc_GG2223113[0]), // expected_vtbl_contents
+ &(vtt_GG2223113[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2223113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2223113),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2223113),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names621,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2223122 : virtual EE222 , virtual FF312 {
+ int pg;
+ virtual void bar(); // _ZN9GG22231223barEv
+ ~GG2223122(); // tgen
+ GG2223122(); // tgen
+};
+//SIG(1 GG2223122) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v2 v1 Fi} VBC7{ v3 Fi} v1 Fi} v1 Fi}
+
+
+void GG2223122 ::bar(){vfunc_called(this, "_ZN9GG22231223barEv");}
+GG2223122 ::~GG2223122(){ note_dtor("GG2223122", this);} // tgen
+GG2223122 ::GG2223122(){ note_ctor("GG2223122", this);} // tgen
+
+static void Test_GG2223122()
+{
+ extern Class_Descriptor cd_GG2223122;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2223122, buf);
+ GG2223122 *dp, &lv = *(dp=new (buf) GG2223122());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2223122)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2223122)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2223122");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2223122");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2223122");
+ check_base_class_offset(lv, (AA3*)(FF312*), ABISELECT(80,40), "GG2223122");
+ check_base_class_offset(lv, (BB1*)(FF312*), ABISELECT(96,48), "GG2223122");
+ check_base_class_offset(lv, (FF312*), ABISELECT(64,32), "GG2223122");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2223122.pg");
+ test_class_info(&lv, &cd_GG2223122);
+ dp->~GG2223122();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2223122(Test_GG2223122, "GG2223122", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2223122C1Ev();
+extern void _ZN9GG2223122D1Ev();
+Name_Map name_map_GG2223122[] = {
+ NSPAIR(_ZN9GG2223122C1Ev),
+ NSPAIR(_ZN9GG2223122D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF312;
+extern VTBL_ENTRY _ZTI5FF312[];
+extern VTBL_ENTRY _ZTV5FF312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF312[];
+static Base_Class bases_GG2223122[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF312, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2223122[];
+extern void _ZN9GG22231223barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22231223barEv,_ZTv0_n20_N9GG22231223barEv)();
+extern void ABISELECT(_ZThn16_N9GG22231223barEv,_ZThn8_N9GG22231223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22231223barEv,_ZTv0_n12_N9GG22231223barEv)();
+extern void ABISELECT(_ZThn32_N9GG22231223barEv,_ZThn16_N9GG22231223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22231223barEv,_ZTv0_n12_N9GG22231223barEv)();
+extern void ABISELECT(_ZThn48_N9GG22231223barEv,_ZThn24_N9GG22231223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22231223barEv,_ZTv0_n20_N9GG22231223barEv)();
+extern void ABISELECT(_ZThn64_N9GG22231223barEv,_ZThn32_N9GG22231223barEv)() __attribute__((weak));
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N9GG22231223barEv,_ZTv0_n16_N9GG22231223barEv)();
+extern void ABISELECT(_ZThn80_N9GG22231223barEv,_ZThn40_N9GG22231223barEv)() __attribute__((weak));
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY vtc_GG2223122[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2223122[0]),
+ (VTBL_ENTRY)&_ZN9GG22231223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2223122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22231223barEv,_ZTv0_n20_N9GG22231223barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2223122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22231223barEv,_ZTv0_n12_N9GG22231223barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2223122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22231223barEv,_ZTv0_n12_N9GG22231223barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2223122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22231223barEv,_ZTv0_n20_N9GG22231223barEv),
+ ABISELECT(-80,-40),
+ 0,
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2223122[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22231223barEv,_ZTv0_n16_N9GG22231223barEv),
+ 0,
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2223122[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern VTBL_ENTRY _ZTV9GG2223122[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2223122[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2223122[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2223122[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF3123barEv();
+static VTBL_ENTRY _tg__ZTV5FF312__9GG2223122[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN5FF3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv)();
+extern void ABISELECT(_ZThn16_N5FF3123barEv,_ZThn8_N5FF3123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF312__9GG2223122[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF312__9GG2223122[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG2223122[] = {
+ {&(_ZTV9GG2223122[8]), 8,39},
+ {&(_ZTV9GG2223122[14]), 14,39},
+ {&(_ZTV9GG2223122[18]), 18,39},
+ {&(_ZTV9GG2223122[22]), 22,39},
+ {&(_ZTV9GG2223122[28]), 28,39},
+ {&(_ZTV9GG2223122[33]), 33,39},
+ {&(_ZTV9GG2223122[38]), 38,39},
+ {&(_tg__ZTV5EE222__9GG2223122[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2223122[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2223122[3]), 3,4},
+ {&(_tg__ZTV5FF312__9GG2223122[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF312__9GG2223122[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF312__9GG2223122[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2223122[];
+extern VTBL_ENTRY _ZTV9GG2223122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2223122[];
+static VTBL_ENTRY alt_thunk_names622[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3123barEv,_ZThn8_N5FF3123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22231223barEv,_ZTv0_n16_N9GG22231223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22231223barEv,_ZThn40_N9GG22231223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22231223barEv,_ZTv0_n12_N9GG22231223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22231223barEv,_ZThn24_N9GG22231223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22231223barEv,_ZThn16_N9GG22231223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22231223barEv,_ZTv0_n20_N9GG22231223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22231223barEv,_ZThn32_N9GG22231223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22231223barEv,_ZThn8_N9GG22231223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2223122 = { "GG2223122", // class name
+ bases_GG2223122, 6,
+ &(vtc_GG2223122[0]), // expected_vtbl_contents
+ &(vtt_GG2223122[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2223122),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2223122),39, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2223122),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names622,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2223123 : virtual EE222 , virtual FF312 {
+ int pg;
+ virtual void foo(); // _ZN9GG22231233fooEv
+ virtual void bar(); // _ZN9GG22231233barEv
+ ~GG2223123(); // tgen
+ GG2223123(); // tgen
+};
+//SIG(1 GG2223123) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2223123 ::foo(){vfunc_called(this, "_ZN9GG22231233fooEv");}
+void GG2223123 ::bar(){vfunc_called(this, "_ZN9GG22231233barEv");}
+GG2223123 ::~GG2223123(){ note_dtor("GG2223123", this);} // tgen
+GG2223123 ::GG2223123(){ note_ctor("GG2223123", this);} // tgen
+
+static void Test_GG2223123()
+{
+ extern Class_Descriptor cd_GG2223123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2223123, buf);
+ GG2223123 *dp, &lv = *(dp=new (buf) GG2223123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2223123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2223123)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2223123");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2223123");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2223123");
+ check_base_class_offset(lv, (AA3*)(FF312*), ABISELECT(80,40), "GG2223123");
+ check_base_class_offset(lv, (BB1*)(FF312*), ABISELECT(96,48), "GG2223123");
+ check_base_class_offset(lv, (FF312*), ABISELECT(64,32), "GG2223123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2223123.pg");
+ test_class_info(&lv, &cd_GG2223123);
+ dp->~GG2223123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2223123(Test_GG2223123, "GG2223123", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2223123C1Ev();
+extern void _ZN9GG2223123D1Ev();
+Name_Map name_map_GG2223123[] = {
+ NSPAIR(_ZN9GG2223123C1Ev),
+ NSPAIR(_ZN9GG2223123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF312;
+extern VTBL_ENTRY _ZTI5FF312[];
+extern VTBL_ENTRY _ZTV5FF312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF312[];
+static Base_Class bases_GG2223123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF312, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2223123[];
+extern void _ZN9GG22231233fooEv();
+extern void _ZN9GG22231233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22231233barEv,_ZTv0_n20_N9GG22231233barEv)();
+extern void ABISELECT(_ZThn16_N9GG22231233barEv,_ZThn8_N9GG22231233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22231233barEv,_ZTv0_n12_N9GG22231233barEv)();
+extern void ABISELECT(_ZThn32_N9GG22231233barEv,_ZThn16_N9GG22231233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22231233barEv,_ZTv0_n12_N9GG22231233barEv)();
+extern void ABISELECT(_ZThn48_N9GG22231233barEv,_ZThn24_N9GG22231233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22231233barEv,_ZTv0_n20_N9GG22231233barEv)();
+extern void ABISELECT(_ZThn64_N9GG22231233barEv,_ZThn32_N9GG22231233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22231233fooEv,_ZTv0_n12_N9GG22231233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22231233fooEv,_ZThn40_N9GG22231233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22231233barEv,_ZTv0_n16_N9GG22231233barEv)();
+extern void ABISELECT(_ZThn80_N9GG22231233barEv,_ZThn40_N9GG22231233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22231233fooEv,_ZTv0_n12_N9GG22231233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG22231233fooEv,_ZThn48_N9GG22231233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2223123[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2223123[0]),
+ (VTBL_ENTRY)&_ZN9GG22231233fooEv,
+ (VTBL_ENTRY)&_ZN9GG22231233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2223123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22231233barEv,_ZTv0_n20_N9GG22231233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2223123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22231233barEv,_ZTv0_n12_N9GG22231233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2223123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22231233barEv,_ZTv0_n12_N9GG22231233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2223123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22231233barEv,_ZTv0_n20_N9GG22231233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2223123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22231233fooEv,_ZTv0_n12_N9GG22231233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22231233barEv,_ZTv0_n16_N9GG22231233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2223123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22231233fooEv,_ZTv0_n12_N9GG22231233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2223123[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2223123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2223123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2223123[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF3123barEv();
+static VTBL_ENTRY _tg__ZTV5FF312__9GG2223123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN5FF3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv)();
+extern void ABISELECT(_ZThn16_N5FF3123barEv,_ZThn8_N5FF3123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF312__9GG2223123[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF312__9GG2223123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG2223123[] = {
+ {&(_ZTV9GG2223123[8]), 8,40},
+ {&(_ZTV9GG2223123[15]), 15,40},
+ {&(_ZTV9GG2223123[19]), 19,40},
+ {&(_ZTV9GG2223123[23]), 23,40},
+ {&(_ZTV9GG2223123[29]), 29,40},
+ {&(_ZTV9GG2223123[34]), 34,40},
+ {&(_ZTV9GG2223123[39]), 39,40},
+ {&(_tg__ZTV5EE222__9GG2223123[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2223123[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2223123[3]), 3,4},
+ {&(_tg__ZTV5FF312__9GG2223123[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF312__9GG2223123[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF312__9GG2223123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2223123[];
+extern VTBL_ENTRY _ZTV9GG2223123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2223123[];
+static VTBL_ENTRY alt_thunk_names623[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3123barEv,_ZThn8_N5FF3123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22231233barEv,_ZTv0_n16_N9GG22231233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22231233barEv,_ZThn40_N9GG22231233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22231233fooEv,_ZTv0_n12_N9GG22231233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22231233fooEv,_ZThn48_N9GG22231233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22231233fooEv,_ZThn40_N9GG22231233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22231233barEv,_ZTv0_n12_N9GG22231233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22231233barEv,_ZThn24_N9GG22231233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22231233barEv,_ZThn16_N9GG22231233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22231233barEv,_ZTv0_n20_N9GG22231233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22231233barEv,_ZThn32_N9GG22231233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22231233barEv,_ZThn8_N9GG22231233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2223123 = { "GG2223123", // class name
+ bases_GG2223123, 6,
+ &(vtc_GG2223123[0]), // expected_vtbl_contents
+ &(vtt_GG2223123[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2223123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2223123),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2223123),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names623,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2223132 : virtual EE222 , virtual FF313 {
+ int pg;
+ virtual void bar(); // _ZN9GG22231323barEv
+ ~GG2223132(); // tgen
+ GG2223132(); // tgen
+};
+//SIG(1 GG2223132) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v2 v1 Fi} VBC7{ v2 Fi} v2 v1 Fi} v1 Fi}
+
+
+void GG2223132 ::bar(){vfunc_called(this, "_ZN9GG22231323barEv");}
+GG2223132 ::~GG2223132(){ note_dtor("GG2223132", this);} // tgen
+GG2223132 ::GG2223132(){ note_ctor("GG2223132", this);} // tgen
+
+static void Test_GG2223132()
+{
+ extern Class_Descriptor cd_GG2223132;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2223132, buf);
+ GG2223132 *dp, &lv = *(dp=new (buf) GG2223132());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2223132)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2223132)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2223132");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2223132");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2223132");
+ check_base_class_offset(lv, (AA3*)(FF313*), ABISELECT(80,40), "GG2223132");
+ check_base_class_offset(lv, (BB1*)(FF313*), ABISELECT(96,48), "GG2223132");
+ check_base_class_offset(lv, (FF313*), ABISELECT(64,32), "GG2223132");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2223132.pg");
+ test_class_info(&lv, &cd_GG2223132);
+ dp->~GG2223132();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2223132(Test_GG2223132, "GG2223132", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2223132C1Ev();
+extern void _ZN9GG2223132D1Ev();
+Name_Map name_map_GG2223132[] = {
+ NSPAIR(_ZN9GG2223132C1Ev),
+ NSPAIR(_ZN9GG2223132D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF313;
+extern VTBL_ENTRY _ZTI5FF313[];
+extern VTBL_ENTRY _ZTV5FF313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF313[];
+static Base_Class bases_GG2223132[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 37, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF313, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2223132[];
+extern void _ZN9GG22231323barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22231323barEv,_ZTv0_n20_N9GG22231323barEv)();
+extern void ABISELECT(_ZThn16_N9GG22231323barEv,_ZThn8_N9GG22231323barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22231323barEv,_ZTv0_n12_N9GG22231323barEv)();
+extern void ABISELECT(_ZThn32_N9GG22231323barEv,_ZThn16_N9GG22231323barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22231323barEv,_ZTv0_n12_N9GG22231323barEv)();
+extern void ABISELECT(_ZThn48_N9GG22231323barEv,_ZThn24_N9GG22231323barEv)() __attribute__((weak));
+extern void _ZN5FF3133fooEv();
+extern void ABISELECT(_ZTv0_n48_N9GG22231323barEv,_ZTv0_n24_N9GG22231323barEv)();
+extern void ABISELECT(_ZThn64_N9GG22231323barEv,_ZThn32_N9GG22231323barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22231323barEv,_ZTv0_n16_N9GG22231323barEv)();
+extern void ABISELECT(_ZThn80_N9GG22231323barEv,_ZThn40_N9GG22231323barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3133fooEv,_ZThn16_N5FF3133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2223132[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2223132[0]),
+ (VTBL_ENTRY)&_ZN9GG22231323barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2223132[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22231323barEv,_ZTv0_n20_N9GG22231323barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2223132[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22231323barEv,_ZTv0_n12_N9GG22231323barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2223132[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22231323barEv,_ZTv0_n12_N9GG22231323barEv),
+ ABISELECT(-64,-32),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2223132[0]),
+ (VTBL_ENTRY)&_ZN5FF3133fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22231323barEv,_ZTv0_n24_N9GG22231323barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-16,-8),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2223132[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22231323barEv,_ZTv0_n16_N9GG22231323barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2223132[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2223132[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2223132[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2223132[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2223132[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF3133fooEv();
+extern void _ZN5FF3133barEv();
+static VTBL_ENTRY _tg__ZTV5FF313__9GG2223132[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&_ZN5FF3133fooEv,
+ (VTBL_ENTRY)&_ZN5FF3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv)();
+extern void ABISELECT(_ZThn16_N5FF3133barEv,_ZThn8_N5FF3133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF313__9GG2223132[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3133fooEv,_ZThn16_N5FF3133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF313__9GG2223132[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+};
+static VTT_ENTRY vtt_GG2223132[] = {
+ {&(_ZTV9GG2223132[8]), 8,41},
+ {&(_ZTV9GG2223132[14]), 14,41},
+ {&(_ZTV9GG2223132[18]), 18,41},
+ {&(_ZTV9GG2223132[22]), 22,41},
+ {&(_ZTV9GG2223132[29]), 29,41},
+ {&(_ZTV9GG2223132[35]), 35,41},
+ {&(_ZTV9GG2223132[40]), 40,41},
+ {&(_tg__ZTV5EE222__9GG2223132[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2223132[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2223132[3]), 3,4},
+ {&(_tg__ZTV5FF313__9GG2223132[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF313__9GG2223132[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF313__9GG2223132[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2223132[];
+extern VTBL_ENTRY _ZTV9GG2223132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2223132[];
+static VTBL_ENTRY alt_thunk_names624[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3133barEv,_ZThn8_N5FF3133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22231323barEv,_ZTv0_n16_N9GG22231323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22231323barEv,_ZThn40_N9GG22231323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3133fooEv,_ZThn16_N5FF3133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3133fooEv,_ZThn16_N5FF3133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22231323barEv,_ZTv0_n24_N9GG22231323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22231323barEv,_ZThn32_N9GG22231323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22231323barEv,_ZTv0_n12_N9GG22231323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22231323barEv,_ZThn24_N9GG22231323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22231323barEv,_ZThn16_N9GG22231323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22231323barEv,_ZTv0_n20_N9GG22231323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22231323barEv,_ZThn8_N9GG22231323barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2223132 = { "GG2223132", // class name
+ bases_GG2223132, 6,
+ &(vtc_GG2223132[0]), // expected_vtbl_contents
+ &(vtt_GG2223132[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2223132),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2223132),41, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2223132),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names624,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2223133 : virtual EE222 , virtual FF313 {
+ int pg;
+ virtual void foo(); // _ZN9GG22231333fooEv
+ virtual void bar(); // _ZN9GG22231333barEv
+ ~GG2223133(); // tgen
+ GG2223133(); // tgen
+};
+//SIG(1 GG2223133) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2223133 ::foo(){vfunc_called(this, "_ZN9GG22231333fooEv");}
+void GG2223133 ::bar(){vfunc_called(this, "_ZN9GG22231333barEv");}
+GG2223133 ::~GG2223133(){ note_dtor("GG2223133", this);} // tgen
+GG2223133 ::GG2223133(){ note_ctor("GG2223133", this);} // tgen
+
+static void Test_GG2223133()
+{
+ extern Class_Descriptor cd_GG2223133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2223133, buf);
+ GG2223133 *dp, &lv = *(dp=new (buf) GG2223133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2223133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2223133)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2223133");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2223133");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2223133");
+ check_base_class_offset(lv, (AA3*)(FF313*), ABISELECT(80,40), "GG2223133");
+ check_base_class_offset(lv, (BB1*)(FF313*), ABISELECT(96,48), "GG2223133");
+ check_base_class_offset(lv, (FF313*), ABISELECT(64,32), "GG2223133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2223133.pg");
+ test_class_info(&lv, &cd_GG2223133);
+ dp->~GG2223133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2223133(Test_GG2223133, "GG2223133", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2223133C1Ev();
+extern void _ZN9GG2223133D1Ev();
+Name_Map name_map_GG2223133[] = {
+ NSPAIR(_ZN9GG2223133C1Ev),
+ NSPAIR(_ZN9GG2223133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF313;
+extern VTBL_ENTRY _ZTI5FF313[];
+extern VTBL_ENTRY _ZTV5FF313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF313[];
+static Base_Class bases_GG2223133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF313, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2223133[];
+extern void _ZN9GG22231333fooEv();
+extern void _ZN9GG22231333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22231333barEv,_ZTv0_n20_N9GG22231333barEv)();
+extern void ABISELECT(_ZThn16_N9GG22231333barEv,_ZThn8_N9GG22231333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22231333barEv,_ZTv0_n12_N9GG22231333barEv)();
+extern void ABISELECT(_ZThn32_N9GG22231333barEv,_ZThn16_N9GG22231333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22231333barEv,_ZTv0_n12_N9GG22231333barEv)();
+extern void ABISELECT(_ZThn48_N9GG22231333barEv,_ZThn24_N9GG22231333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22231333fooEv,_ZTv0_n20_N9GG22231333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22231333fooEv,_ZThn32_N9GG22231333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22231333barEv,_ZTv0_n24_N9GG22231333barEv)();
+extern void ABISELECT(_ZThn64_N9GG22231333barEv,_ZThn32_N9GG22231333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22231333fooEv,_ZTv0_n12_N9GG22231333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22231333fooEv,_ZThn40_N9GG22231333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22231333barEv,_ZTv0_n16_N9GG22231333barEv)();
+extern void ABISELECT(_ZThn80_N9GG22231333barEv,_ZThn40_N9GG22231333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22231333fooEv,_ZTv0_n12_N9GG22231333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG22231333fooEv,_ZThn48_N9GG22231333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2223133[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2223133[0]),
+ (VTBL_ENTRY)&_ZN9GG22231333fooEv,
+ (VTBL_ENTRY)&_ZN9GG22231333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2223133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22231333barEv,_ZTv0_n20_N9GG22231333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2223133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22231333barEv,_ZTv0_n12_N9GG22231333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2223133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22231333barEv,_ZTv0_n12_N9GG22231333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2223133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22231333fooEv,_ZTv0_n20_N9GG22231333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22231333barEv,_ZTv0_n24_N9GG22231333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2223133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22231333fooEv,_ZTv0_n12_N9GG22231333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22231333barEv,_ZTv0_n16_N9GG22231333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2223133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22231333fooEv,_ZTv0_n12_N9GG22231333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2223133[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2223133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2223133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2223133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF3133fooEv();
+extern void _ZN5FF3133barEv();
+static VTBL_ENTRY _tg__ZTV5FF313__9GG2223133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&_ZN5FF3133fooEv,
+ (VTBL_ENTRY)&_ZN5FF3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv)();
+extern void ABISELECT(_ZThn16_N5FF3133barEv,_ZThn8_N5FF3133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF313__9GG2223133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3133fooEv,_ZThn16_N5FF3133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF313__9GG2223133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+};
+static VTT_ENTRY vtt_GG2223133[] = {
+ {&(_ZTV9GG2223133[8]), 8,42},
+ {&(_ZTV9GG2223133[15]), 15,42},
+ {&(_ZTV9GG2223133[19]), 19,42},
+ {&(_ZTV9GG2223133[23]), 23,42},
+ {&(_ZTV9GG2223133[30]), 30,42},
+ {&(_ZTV9GG2223133[36]), 36,42},
+ {&(_ZTV9GG2223133[41]), 41,42},
+ {&(_tg__ZTV5EE222__9GG2223133[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2223133[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2223133[3]), 3,4},
+ {&(_tg__ZTV5FF313__9GG2223133[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF313__9GG2223133[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF313__9GG2223133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2223133[];
+extern VTBL_ENTRY _ZTV9GG2223133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2223133[];
+static VTBL_ENTRY alt_thunk_names625[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3133barEv,_ZThn8_N5FF3133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3133fooEv,_ZThn16_N5FF3133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22231333barEv,_ZTv0_n16_N9GG22231333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22231333barEv,_ZThn40_N9GG22231333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22231333fooEv,_ZTv0_n12_N9GG22231333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22231333fooEv,_ZThn48_N9GG22231333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22231333fooEv,_ZThn40_N9GG22231333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22231333barEv,_ZTv0_n24_N9GG22231333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22231333barEv,_ZThn32_N9GG22231333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22231333fooEv,_ZTv0_n20_N9GG22231333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22231333fooEv,_ZThn32_N9GG22231333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22231333barEv,_ZTv0_n12_N9GG22231333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22231333barEv,_ZThn24_N9GG22231333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22231333barEv,_ZThn16_N9GG22231333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22231333barEv,_ZTv0_n20_N9GG22231333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22231333barEv,_ZThn8_N9GG22231333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2223133 = { "GG2223133", // class name
+ bases_GG2223133, 6,
+ &(vtc_GG2223133[0]), // expected_vtbl_contents
+ &(vtt_GG2223133[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2223133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2223133),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2223133),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names625,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2223212 : virtual EE222 , virtual FF321 {
+ int pg;
+ virtual void bar(); // _ZN9GG22232123barEv
+ ~GG2223212(); // tgen
+ GG2223212(); // tgen
+};
+//SIG(1 GG2223212) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v2 v1 Fi} VBC4 v2 Fi} v1 Fi}
+
+
+void GG2223212 ::bar(){vfunc_called(this, "_ZN9GG22232123barEv");}
+GG2223212 ::~GG2223212(){ note_dtor("GG2223212", this);} // tgen
+GG2223212 ::GG2223212(){ note_ctor("GG2223212", this);} // tgen
+
+static void Test_GG2223212()
+{
+ extern Class_Descriptor cd_GG2223212;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2223212, buf);
+ GG2223212 *dp, &lv = *(dp=new (buf) GG2223212());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2223212)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2223212)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2223212");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2223212");
+ check_base_class_offset(lv, (BB2*)(FF321*), ABISELECT(48,24), "GG2223212");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2223212");
+ check_base_class_offset(lv, (AA3*)(FF321*), ABISELECT(80,40), "GG2223212");
+ check_base_class_offset(lv, (FF321*), ABISELECT(64,32), "GG2223212");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2223212.pg");
+ test_class_info(&lv, &cd_GG2223212);
+ dp->~GG2223212();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2223212(Test_GG2223212, "GG2223212", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2223212C1Ev();
+extern void _ZN9GG2223212D1Ev();
+Name_Map name_map_GG2223212[] = {
+ NSPAIR(_ZN9GG2223212C1Ev),
+ NSPAIR(_ZN9GG2223212D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF321;
+extern VTBL_ENTRY _ZTI5FF321[];
+extern VTBL_ENTRY _ZTV5FF321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF321[];
+static Base_Class bases_GG2223212[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF321, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2223212[];
+extern void _ZN9GG22232123barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22232123barEv,_ZTv0_n20_N9GG22232123barEv)();
+extern void ABISELECT(_ZThn16_N9GG22232123barEv,_ZThn8_N9GG22232123barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22232123barEv,_ZTv0_n12_N9GG22232123barEv)();
+extern void ABISELECT(_ZThn32_N9GG22232123barEv,_ZThn16_N9GG22232123barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22232123barEv,_ZTv0_n12_N9GG22232123barEv)();
+extern void ABISELECT(_ZThn48_N9GG22232123barEv,_ZThn24_N9GG22232123barEv)() __attribute__((weak));
+extern void _ZN5FF3213fooEv();
+extern void ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3213fooEv,_ZThn8_N5FF3213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22232123barEv,_ZTv0_n16_N9GG22232123barEv)();
+extern void ABISELECT(_ZThn80_N9GG22232123barEv,_ZThn40_N9GG22232123barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2223212[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2223212[0]),
+ (VTBL_ENTRY)&_ZN9GG22232123barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2223212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22232123barEv,_ZTv0_n20_N9GG22232123barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2223212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22232123barEv,_ZTv0_n12_N9GG22232123barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2223212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22232123barEv,_ZTv0_n12_N9GG22232123barEv),
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2223212[0]),
+ (VTBL_ENTRY)&_ZN5FF3213fooEv,
+ ABISELECT(-80,-40),
+ ABISELECT(-16,-8),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2223212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22232123barEv,_ZTv0_n16_N9GG22232123barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2223212[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2223212[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2223212[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2223212[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF3213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF321__9GG2223212[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN5FF3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3213fooEv,_ZThn8_N5FF3213fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF321__9GG2223212[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF321__9GG2223212[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG2223212[] = {
+ {&(_ZTV9GG2223212[7]), 7,34},
+ {&(_ZTV9GG2223212[13]), 13,34},
+ {&(_ZTV9GG2223212[17]), 17,34},
+ {&(_ZTV9GG2223212[21]), 21,34},
+ {&(_ZTV9GG2223212[27]), 27,34},
+ {&(_ZTV9GG2223212[32]), 32,34},
+ {&(_tg__ZTV5EE222__9GG2223212[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2223212[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2223212[3]), 3,4},
+ {&(_tg__ZTV5FF321__9GG2223212[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF321__9GG2223212[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF321__9GG2223212[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2223212[];
+extern VTBL_ENTRY _ZTV9GG2223212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2223212[];
+static VTBL_ENTRY alt_thunk_names626[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22232123barEv,_ZTv0_n16_N9GG22232123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22232123barEv,_ZThn40_N9GG22232123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3213fooEv,_ZThn8_N5FF3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3213fooEv,_ZThn8_N5FF3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22232123barEv,_ZTv0_n12_N9GG22232123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22232123barEv,_ZThn24_N9GG22232123barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22232123barEv,_ZThn16_N9GG22232123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22232123barEv,_ZTv0_n20_N9GG22232123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22232123barEv,_ZThn8_N9GG22232123barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2223212 = { "GG2223212", // class name
+ bases_GG2223212, 5,
+ &(vtc_GG2223212[0]), // expected_vtbl_contents
+ &(vtt_GG2223212[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2223212),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2223212),34, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2223212),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names626,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2223213 : virtual EE222 , virtual FF321 {
+ int pg;
+ virtual void foo(); // _ZN9GG22232133fooEv
+ virtual void bar(); // _ZN9GG22232133barEv
+ ~GG2223213(); // tgen
+ GG2223213(); // tgen
+};
+//SIG(1 GG2223213) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG2223213 ::foo(){vfunc_called(this, "_ZN9GG22232133fooEv");}
+void GG2223213 ::bar(){vfunc_called(this, "_ZN9GG22232133barEv");}
+GG2223213 ::~GG2223213(){ note_dtor("GG2223213", this);} // tgen
+GG2223213 ::GG2223213(){ note_ctor("GG2223213", this);} // tgen
+
+static void Test_GG2223213()
+{
+ extern Class_Descriptor cd_GG2223213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2223213, buf);
+ GG2223213 *dp, &lv = *(dp=new (buf) GG2223213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2223213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2223213)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2223213");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2223213");
+ check_base_class_offset(lv, (BB2*)(FF321*), ABISELECT(48,24), "GG2223213");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2223213");
+ check_base_class_offset(lv, (AA3*)(FF321*), ABISELECT(80,40), "GG2223213");
+ check_base_class_offset(lv, (FF321*), ABISELECT(64,32), "GG2223213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2223213.pg");
+ test_class_info(&lv, &cd_GG2223213);
+ dp->~GG2223213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2223213(Test_GG2223213, "GG2223213", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2223213C1Ev();
+extern void _ZN9GG2223213D1Ev();
+Name_Map name_map_GG2223213[] = {
+ NSPAIR(_ZN9GG2223213C1Ev),
+ NSPAIR(_ZN9GG2223213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF321;
+extern VTBL_ENTRY _ZTI5FF321[];
+extern VTBL_ENTRY _ZTV5FF321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF321[];
+static Base_Class bases_GG2223213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF321, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2223213[];
+extern void _ZN9GG22232133fooEv();
+extern void _ZN9GG22232133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22232133barEv,_ZTv0_n20_N9GG22232133barEv)();
+extern void ABISELECT(_ZThn16_N9GG22232133barEv,_ZThn8_N9GG22232133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22232133barEv,_ZTv0_n12_N9GG22232133barEv)();
+extern void ABISELECT(_ZThn32_N9GG22232133barEv,_ZThn16_N9GG22232133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22232133barEv,_ZTv0_n12_N9GG22232133barEv)();
+extern void ABISELECT(_ZThn48_N9GG22232133barEv,_ZThn24_N9GG22232133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22232133fooEv,_ZTv0_n20_N9GG22232133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22232133fooEv,_ZThn32_N9GG22232133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22232133fooEv,_ZTv0_n12_N9GG22232133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22232133fooEv,_ZThn40_N9GG22232133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22232133barEv,_ZTv0_n16_N9GG22232133barEv)();
+extern void ABISELECT(_ZThn80_N9GG22232133barEv,_ZThn40_N9GG22232133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2223213[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2223213[0]),
+ (VTBL_ENTRY)&_ZN9GG22232133fooEv,
+ (VTBL_ENTRY)&_ZN9GG22232133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2223213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22232133barEv,_ZTv0_n20_N9GG22232133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2223213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22232133barEv,_ZTv0_n12_N9GG22232133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2223213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22232133barEv,_ZTv0_n12_N9GG22232133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2223213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22232133fooEv,_ZTv0_n20_N9GG22232133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2223213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22232133fooEv,_ZTv0_n12_N9GG22232133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22232133barEv,_ZTv0_n16_N9GG22232133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2223213[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2223213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2223213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2223213[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF3213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF321__9GG2223213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN5FF3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3213fooEv,_ZThn8_N5FF3213fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF321__9GG2223213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF321__9GG2223213[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG2223213[] = {
+ {&(_ZTV9GG2223213[7]), 7,35},
+ {&(_ZTV9GG2223213[14]), 14,35},
+ {&(_ZTV9GG2223213[18]), 18,35},
+ {&(_ZTV9GG2223213[22]), 22,35},
+ {&(_ZTV9GG2223213[28]), 28,35},
+ {&(_ZTV9GG2223213[33]), 33,35},
+ {&(_tg__ZTV5EE222__9GG2223213[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2223213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2223213[3]), 3,4},
+ {&(_tg__ZTV5FF321__9GG2223213[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF321__9GG2223213[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF321__9GG2223213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2223213[];
+extern VTBL_ENTRY _ZTV9GG2223213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2223213[];
+static VTBL_ENTRY alt_thunk_names627[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3213fooEv,_ZThn8_N5FF3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22232133barEv,_ZTv0_n16_N9GG22232133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22232133barEv,_ZThn40_N9GG22232133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22232133fooEv,_ZTv0_n12_N9GG22232133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22232133fooEv,_ZThn40_N9GG22232133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22232133fooEv,_ZTv0_n20_N9GG22232133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22232133fooEv,_ZThn32_N9GG22232133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22232133barEv,_ZTv0_n12_N9GG22232133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22232133barEv,_ZThn24_N9GG22232133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22232133barEv,_ZThn16_N9GG22232133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22232133barEv,_ZTv0_n20_N9GG22232133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22232133barEv,_ZThn8_N9GG22232133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2223213 = { "GG2223213", // class name
+ bases_GG2223213, 5,
+ &(vtc_GG2223213[0]), // expected_vtbl_contents
+ &(vtt_GG2223213[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2223213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2223213),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2223213),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names627,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2223222 : virtual EE222 , virtual FF322 {
+ int pg;
+ virtual void bar(); // _ZN9GG22232223barEv
+ ~GG2223222(); // tgen
+ GG2223222(); // tgen
+};
+//SIG(1 GG2223222) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v2 v1 Fi} VBC4 v1 Fi} v1 Fi}
+
+
+void GG2223222 ::bar(){vfunc_called(this, "_ZN9GG22232223barEv");}
+GG2223222 ::~GG2223222(){ note_dtor("GG2223222", this);} // tgen
+GG2223222 ::GG2223222(){ note_ctor("GG2223222", this);} // tgen
+
+static void Test_GG2223222()
+{
+ extern Class_Descriptor cd_GG2223222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2223222, buf);
+ GG2223222 *dp, &lv = *(dp=new (buf) GG2223222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2223222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2223222)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2223222");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2223222");
+ check_base_class_offset(lv, (BB2*)(FF322*), ABISELECT(48,24), "GG2223222");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2223222");
+ check_base_class_offset(lv, (AA3*)(FF322*), ABISELECT(80,40), "GG2223222");
+ check_base_class_offset(lv, (FF322*), ABISELECT(64,32), "GG2223222");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2223222.pg");
+ test_class_info(&lv, &cd_GG2223222);
+ dp->~GG2223222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2223222(Test_GG2223222, "GG2223222", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2223222C1Ev();
+extern void _ZN9GG2223222D1Ev();
+Name_Map name_map_GG2223222[] = {
+ NSPAIR(_ZN9GG2223222C1Ev),
+ NSPAIR(_ZN9GG2223222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF322;
+extern VTBL_ENTRY _ZTI5FF322[];
+extern VTBL_ENTRY _ZTV5FF322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF322[];
+static Base_Class bases_GG2223222[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF322, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2223222[];
+extern void _ZN9GG22232223barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22232223barEv,_ZTv0_n20_N9GG22232223barEv)();
+extern void ABISELECT(_ZThn16_N9GG22232223barEv,_ZThn8_N9GG22232223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22232223barEv,_ZTv0_n12_N9GG22232223barEv)();
+extern void ABISELECT(_ZThn32_N9GG22232223barEv,_ZThn16_N9GG22232223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22232223barEv,_ZTv0_n12_N9GG22232223barEv)();
+extern void ABISELECT(_ZThn48_N9GG22232223barEv,_ZThn24_N9GG22232223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22232223barEv,_ZTv0_n20_N9GG22232223barEv)();
+extern void ABISELECT(_ZThn64_N9GG22232223barEv,_ZThn32_N9GG22232223barEv)() __attribute__((weak));
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N9GG22232223barEv,_ZTv0_n16_N9GG22232223barEv)();
+extern void ABISELECT(_ZThn80_N9GG22232223barEv,_ZThn40_N9GG22232223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2223222[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2223222[0]),
+ (VTBL_ENTRY)&_ZN9GG22232223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2223222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22232223barEv,_ZTv0_n20_N9GG22232223barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2223222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22232223barEv,_ZTv0_n12_N9GG22232223barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2223222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22232223barEv,_ZTv0_n12_N9GG22232223barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2223222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22232223barEv,_ZTv0_n20_N9GG22232223barEv),
+ ABISELECT(-80,-40),
+ 0,
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2223222[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22232223barEv,_ZTv0_n16_N9GG22232223barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2223222[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2223222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2223222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2223222[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF3223barEv();
+static VTBL_ENTRY _tg__ZTV5FF322__9GG2223222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN5FF3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv)();
+extern void ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF322__9GG2223222[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF322__9GG2223222[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv),
+};
+static VTT_ENTRY vtt_GG2223222[] = {
+ {&(_ZTV9GG2223222[7]), 7,34},
+ {&(_ZTV9GG2223222[13]), 13,34},
+ {&(_ZTV9GG2223222[17]), 17,34},
+ {&(_ZTV9GG2223222[21]), 21,34},
+ {&(_ZTV9GG2223222[27]), 27,34},
+ {&(_ZTV9GG2223222[32]), 32,34},
+ {&(_tg__ZTV5EE222__9GG2223222[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2223222[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2223222[3]), 3,4},
+ {&(_tg__ZTV5FF322__9GG2223222[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF322__9GG2223222[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF322__9GG2223222[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2223222[];
+extern VTBL_ENTRY _ZTV9GG2223222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2223222[];
+static VTBL_ENTRY alt_thunk_names628[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22232223barEv,_ZTv0_n16_N9GG22232223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22232223barEv,_ZThn40_N9GG22232223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22232223barEv,_ZTv0_n12_N9GG22232223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22232223barEv,_ZThn24_N9GG22232223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22232223barEv,_ZThn16_N9GG22232223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22232223barEv,_ZTv0_n20_N9GG22232223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22232223barEv,_ZThn32_N9GG22232223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22232223barEv,_ZThn8_N9GG22232223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2223222 = { "GG2223222", // class name
+ bases_GG2223222, 5,
+ &(vtc_GG2223222[0]), // expected_vtbl_contents
+ &(vtt_GG2223222[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2223222),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2223222),34, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2223222),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names628,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2223223 : virtual EE222 , virtual FF322 {
+ int pg;
+ virtual void foo(); // _ZN9GG22232233fooEv
+ virtual void bar(); // _ZN9GG22232233barEv
+ ~GG2223223(); // tgen
+ GG2223223(); // tgen
+};
+//SIG(1 GG2223223) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG2223223 ::foo(){vfunc_called(this, "_ZN9GG22232233fooEv");}
+void GG2223223 ::bar(){vfunc_called(this, "_ZN9GG22232233barEv");}
+GG2223223 ::~GG2223223(){ note_dtor("GG2223223", this);} // tgen
+GG2223223 ::GG2223223(){ note_ctor("GG2223223", this);} // tgen
+
+static void Test_GG2223223()
+{
+ extern Class_Descriptor cd_GG2223223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2223223, buf);
+ GG2223223 *dp, &lv = *(dp=new (buf) GG2223223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2223223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2223223)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2223223");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2223223");
+ check_base_class_offset(lv, (BB2*)(FF322*), ABISELECT(48,24), "GG2223223");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2223223");
+ check_base_class_offset(lv, (AA3*)(FF322*), ABISELECT(80,40), "GG2223223");
+ check_base_class_offset(lv, (FF322*), ABISELECT(64,32), "GG2223223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2223223.pg");
+ test_class_info(&lv, &cd_GG2223223);
+ dp->~GG2223223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2223223(Test_GG2223223, "GG2223223", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2223223C1Ev();
+extern void _ZN9GG2223223D1Ev();
+Name_Map name_map_GG2223223[] = {
+ NSPAIR(_ZN9GG2223223C1Ev),
+ NSPAIR(_ZN9GG2223223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF322;
+extern VTBL_ENTRY _ZTI5FF322[];
+extern VTBL_ENTRY _ZTV5FF322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF322[];
+static Base_Class bases_GG2223223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF322, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2223223[];
+extern void _ZN9GG22232233fooEv();
+extern void _ZN9GG22232233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22232233barEv,_ZTv0_n20_N9GG22232233barEv)();
+extern void ABISELECT(_ZThn16_N9GG22232233barEv,_ZThn8_N9GG22232233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22232233barEv,_ZTv0_n12_N9GG22232233barEv)();
+extern void ABISELECT(_ZThn32_N9GG22232233barEv,_ZThn16_N9GG22232233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22232233barEv,_ZTv0_n12_N9GG22232233barEv)();
+extern void ABISELECT(_ZThn48_N9GG22232233barEv,_ZThn24_N9GG22232233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22232233barEv,_ZTv0_n20_N9GG22232233barEv)();
+extern void ABISELECT(_ZThn64_N9GG22232233barEv,_ZThn32_N9GG22232233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22232233fooEv,_ZTv0_n12_N9GG22232233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22232233fooEv,_ZThn40_N9GG22232233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22232233barEv,_ZTv0_n16_N9GG22232233barEv)();
+extern void ABISELECT(_ZThn80_N9GG22232233barEv,_ZThn40_N9GG22232233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2223223[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2223223[0]),
+ (VTBL_ENTRY)&_ZN9GG22232233fooEv,
+ (VTBL_ENTRY)&_ZN9GG22232233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2223223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22232233barEv,_ZTv0_n20_N9GG22232233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2223223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22232233barEv,_ZTv0_n12_N9GG22232233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2223223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22232233barEv,_ZTv0_n12_N9GG22232233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2223223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22232233barEv,_ZTv0_n20_N9GG22232233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2223223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22232233fooEv,_ZTv0_n12_N9GG22232233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22232233barEv,_ZTv0_n16_N9GG22232233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2223223[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2223223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2223223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2223223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF3223barEv();
+static VTBL_ENTRY _tg__ZTV5FF322__9GG2223223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN5FF3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv)();
+extern void ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF322__9GG2223223[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF322__9GG2223223[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv),
+};
+static VTT_ENTRY vtt_GG2223223[] = {
+ {&(_ZTV9GG2223223[7]), 7,35},
+ {&(_ZTV9GG2223223[14]), 14,35},
+ {&(_ZTV9GG2223223[18]), 18,35},
+ {&(_ZTV9GG2223223[22]), 22,35},
+ {&(_ZTV9GG2223223[28]), 28,35},
+ {&(_ZTV9GG2223223[33]), 33,35},
+ {&(_tg__ZTV5EE222__9GG2223223[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2223223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2223223[3]), 3,4},
+ {&(_tg__ZTV5FF322__9GG2223223[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF322__9GG2223223[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF322__9GG2223223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2223223[];
+extern VTBL_ENTRY _ZTV9GG2223223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2223223[];
+static VTBL_ENTRY alt_thunk_names629[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22232233barEv,_ZTv0_n16_N9GG22232233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22232233barEv,_ZThn40_N9GG22232233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22232233fooEv,_ZTv0_n12_N9GG22232233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22232233fooEv,_ZThn40_N9GG22232233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22232233barEv,_ZTv0_n12_N9GG22232233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22232233barEv,_ZThn24_N9GG22232233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22232233barEv,_ZThn16_N9GG22232233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22232233barEv,_ZTv0_n20_N9GG22232233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22232233barEv,_ZThn32_N9GG22232233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22232233barEv,_ZThn8_N9GG22232233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2223223 = { "GG2223223", // class name
+ bases_GG2223223, 5,
+ &(vtc_GG2223223[0]), // expected_vtbl_contents
+ &(vtt_GG2223223[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2223223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2223223),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2223223),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names629,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2223232 : virtual EE222 , virtual FF323 {
+ int pg;
+ virtual void bar(); // _ZN9GG22232323barEv
+ ~GG2223232(); // tgen
+ GG2223232(); // tgen
+};
+//SIG(1 GG2223232) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v2 v1 Fi} VBC4 v2 v1 Fi} v1 Fi}
+
+
+void GG2223232 ::bar(){vfunc_called(this, "_ZN9GG22232323barEv");}
+GG2223232 ::~GG2223232(){ note_dtor("GG2223232", this);} // tgen
+GG2223232 ::GG2223232(){ note_ctor("GG2223232", this);} // tgen
+
+static void Test_GG2223232()
+{
+ extern Class_Descriptor cd_GG2223232;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2223232, buf);
+ GG2223232 *dp, &lv = *(dp=new (buf) GG2223232());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2223232)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2223232)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2223232");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2223232");
+ check_base_class_offset(lv, (BB2*)(FF323*), ABISELECT(48,24), "GG2223232");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2223232");
+ check_base_class_offset(lv, (AA3*)(FF323*), ABISELECT(80,40), "GG2223232");
+ check_base_class_offset(lv, (FF323*), ABISELECT(64,32), "GG2223232");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2223232.pg");
+ test_class_info(&lv, &cd_GG2223232);
+ dp->~GG2223232();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2223232(Test_GG2223232, "GG2223232", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2223232C1Ev();
+extern void _ZN9GG2223232D1Ev();
+Name_Map name_map_GG2223232[] = {
+ NSPAIR(_ZN9GG2223232C1Ev),
+ NSPAIR(_ZN9GG2223232D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF323;
+extern VTBL_ENTRY _ZTI5FF323[];
+extern VTBL_ENTRY _ZTV5FF323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF323[];
+static Base_Class bases_GG2223232[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF323, ABISELECT(64,32), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2223232[];
+extern void _ZN9GG22232323barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22232323barEv,_ZTv0_n20_N9GG22232323barEv)();
+extern void ABISELECT(_ZThn16_N9GG22232323barEv,_ZThn8_N9GG22232323barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22232323barEv,_ZTv0_n12_N9GG22232323barEv)();
+extern void ABISELECT(_ZThn32_N9GG22232323barEv,_ZThn16_N9GG22232323barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22232323barEv,_ZTv0_n12_N9GG22232323barEv)();
+extern void ABISELECT(_ZThn48_N9GG22232323barEv,_ZThn24_N9GG22232323barEv)() __attribute__((weak));
+extern void _ZN5FF3233fooEv();
+extern void ABISELECT(_ZTv0_n48_N9GG22232323barEv,_ZTv0_n24_N9GG22232323barEv)();
+extern void ABISELECT(_ZThn64_N9GG22232323barEv,_ZThn32_N9GG22232323barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3233fooEv,_ZThn8_N5FF3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22232323barEv,_ZTv0_n16_N9GG22232323barEv)();
+extern void ABISELECT(_ZThn80_N9GG22232323barEv,_ZThn40_N9GG22232323barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2223232[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2223232[0]),
+ (VTBL_ENTRY)&_ZN9GG22232323barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2223232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22232323barEv,_ZTv0_n20_N9GG22232323barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2223232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22232323barEv,_ZTv0_n12_N9GG22232323barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2223232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22232323barEv,_ZTv0_n12_N9GG22232323barEv),
+ ABISELECT(-64,-32),
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2223232[0]),
+ (VTBL_ENTRY)&_ZN5FF3233fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22232323barEv,_ZTv0_n24_N9GG22232323barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-16,-8),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2223232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22232323barEv,_ZTv0_n16_N9GG22232323barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2223232[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2223232[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2223232[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2223232[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF3233fooEv();
+extern void _ZN5FF3233barEv();
+static VTBL_ENTRY _tg__ZTV5FF323__9GG2223232[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&_ZN5FF3233fooEv,
+ (VTBL_ENTRY)&_ZN5FF3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3233fooEv,_ZThn8_N5FF3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv)();
+extern void ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF323__9GG2223232[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF323__9GG2223232[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv),
+};
+static VTT_ENTRY vtt_GG2223232[] = {
+ {&(_ZTV9GG2223232[7]), 7,36},
+ {&(_ZTV9GG2223232[13]), 13,36},
+ {&(_ZTV9GG2223232[17]), 17,36},
+ {&(_ZTV9GG2223232[21]), 21,36},
+ {&(_ZTV9GG2223232[28]), 28,36},
+ {&(_ZTV9GG2223232[34]), 34,36},
+ {&(_tg__ZTV5EE222__9GG2223232[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2223232[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2223232[3]), 3,4},
+ {&(_tg__ZTV5FF323__9GG2223232[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF323__9GG2223232[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF323__9GG2223232[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2223232[];
+extern VTBL_ENTRY _ZTV9GG2223232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2223232[];
+static VTBL_ENTRY alt_thunk_names630[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22232323barEv,_ZTv0_n16_N9GG22232323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22232323barEv,_ZThn40_N9GG22232323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3233fooEv,_ZThn8_N5FF3233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3233fooEv,_ZThn8_N5FF3233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22232323barEv,_ZTv0_n24_N9GG22232323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22232323barEv,_ZThn32_N9GG22232323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22232323barEv,_ZTv0_n12_N9GG22232323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22232323barEv,_ZThn24_N9GG22232323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22232323barEv,_ZThn16_N9GG22232323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22232323barEv,_ZTv0_n20_N9GG22232323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22232323barEv,_ZThn8_N9GG22232323barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2223232 = { "GG2223232", // class name
+ bases_GG2223232, 5,
+ &(vtc_GG2223232[0]), // expected_vtbl_contents
+ &(vtt_GG2223232[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2223232),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2223232),36, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2223232),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names630,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2223233 : virtual EE222 , virtual FF323 {
+ int pg;
+ virtual void foo(); // _ZN9GG22232333fooEv
+ virtual void bar(); // _ZN9GG22232333barEv
+ ~GG2223233(); // tgen
+ GG2223233(); // tgen
+};
+//SIG(1 GG2223233) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2223233 ::foo(){vfunc_called(this, "_ZN9GG22232333fooEv");}
+void GG2223233 ::bar(){vfunc_called(this, "_ZN9GG22232333barEv");}
+GG2223233 ::~GG2223233(){ note_dtor("GG2223233", this);} // tgen
+GG2223233 ::GG2223233(){ note_ctor("GG2223233", this);} // tgen
+
+static void Test_GG2223233()
+{
+ extern Class_Descriptor cd_GG2223233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2223233, buf);
+ GG2223233 *dp, &lv = *(dp=new (buf) GG2223233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2223233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2223233)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2223233");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2223233");
+ check_base_class_offset(lv, (BB2*)(FF323*), ABISELECT(48,24), "GG2223233");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2223233");
+ check_base_class_offset(lv, (AA3*)(FF323*), ABISELECT(80,40), "GG2223233");
+ check_base_class_offset(lv, (FF323*), ABISELECT(64,32), "GG2223233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2223233.pg");
+ test_class_info(&lv, &cd_GG2223233);
+ dp->~GG2223233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2223233(Test_GG2223233, "GG2223233", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2223233C1Ev();
+extern void _ZN9GG2223233D1Ev();
+Name_Map name_map_GG2223233[] = {
+ NSPAIR(_ZN9GG2223233C1Ev),
+ NSPAIR(_ZN9GG2223233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF323;
+extern VTBL_ENTRY _ZTI5FF323[];
+extern VTBL_ENTRY _ZTV5FF323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF323[];
+static Base_Class bases_GG2223233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF323, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2223233[];
+extern void _ZN9GG22232333fooEv();
+extern void _ZN9GG22232333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22232333barEv,_ZTv0_n20_N9GG22232333barEv)();
+extern void ABISELECT(_ZThn16_N9GG22232333barEv,_ZThn8_N9GG22232333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22232333barEv,_ZTv0_n12_N9GG22232333barEv)();
+extern void ABISELECT(_ZThn32_N9GG22232333barEv,_ZThn16_N9GG22232333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22232333barEv,_ZTv0_n12_N9GG22232333barEv)();
+extern void ABISELECT(_ZThn48_N9GG22232333barEv,_ZThn24_N9GG22232333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22232333fooEv,_ZTv0_n20_N9GG22232333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22232333fooEv,_ZThn32_N9GG22232333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22232333barEv,_ZTv0_n24_N9GG22232333barEv)();
+extern void ABISELECT(_ZThn64_N9GG22232333barEv,_ZThn32_N9GG22232333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22232333fooEv,_ZTv0_n12_N9GG22232333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22232333fooEv,_ZThn40_N9GG22232333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22232333barEv,_ZTv0_n16_N9GG22232333barEv)();
+extern void ABISELECT(_ZThn80_N9GG22232333barEv,_ZThn40_N9GG22232333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2223233[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2223233[0]),
+ (VTBL_ENTRY)&_ZN9GG22232333fooEv,
+ (VTBL_ENTRY)&_ZN9GG22232333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2223233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22232333barEv,_ZTv0_n20_N9GG22232333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2223233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22232333barEv,_ZTv0_n12_N9GG22232333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2223233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22232333barEv,_ZTv0_n12_N9GG22232333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2223233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22232333fooEv,_ZTv0_n20_N9GG22232333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22232333barEv,_ZTv0_n24_N9GG22232333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2223233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22232333fooEv,_ZTv0_n12_N9GG22232333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22232333barEv,_ZTv0_n16_N9GG22232333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2223233[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2223233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2223233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2223233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF3233fooEv();
+extern void _ZN5FF3233barEv();
+static VTBL_ENTRY _tg__ZTV5FF323__9GG2223233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&_ZN5FF3233fooEv,
+ (VTBL_ENTRY)&_ZN5FF3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3233fooEv,_ZThn8_N5FF3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv)();
+extern void ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF323__9GG2223233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF323__9GG2223233[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv),
+};
+static VTT_ENTRY vtt_GG2223233[] = {
+ {&(_ZTV9GG2223233[7]), 7,37},
+ {&(_ZTV9GG2223233[14]), 14,37},
+ {&(_ZTV9GG2223233[18]), 18,37},
+ {&(_ZTV9GG2223233[22]), 22,37},
+ {&(_ZTV9GG2223233[29]), 29,37},
+ {&(_ZTV9GG2223233[35]), 35,37},
+ {&(_tg__ZTV5EE222__9GG2223233[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2223233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2223233[3]), 3,4},
+ {&(_tg__ZTV5FF323__9GG2223233[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF323__9GG2223233[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF323__9GG2223233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2223233[];
+extern VTBL_ENTRY _ZTV9GG2223233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2223233[];
+static VTBL_ENTRY alt_thunk_names631[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3233fooEv,_ZThn8_N5FF3233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22232333barEv,_ZTv0_n16_N9GG22232333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22232333barEv,_ZThn40_N9GG22232333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22232333fooEv,_ZTv0_n12_N9GG22232333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22232333fooEv,_ZThn40_N9GG22232333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22232333barEv,_ZTv0_n24_N9GG22232333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22232333barEv,_ZThn32_N9GG22232333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22232333fooEv,_ZTv0_n20_N9GG22232333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22232333fooEv,_ZThn32_N9GG22232333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22232333barEv,_ZTv0_n12_N9GG22232333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22232333barEv,_ZThn24_N9GG22232333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22232333barEv,_ZThn16_N9GG22232333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22232333barEv,_ZTv0_n20_N9GG22232333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22232333barEv,_ZThn8_N9GG22232333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2223233 = { "GG2223233", // class name
+ bases_GG2223233, 5,
+ &(vtc_GG2223233[0]), // expected_vtbl_contents
+ &(vtt_GG2223233[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2223233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2223233),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2223233),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names631,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2223312 : virtual EE222 , virtual FF331 {
+ int pg;
+ virtual void bar(); // _ZN9GG22233123barEv
+ ~GG2223312(); // tgen
+ GG2223312(); // tgen
+};
+//SIG(1 GG2223312) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v2 v1 Fi} VBC7{ v2 v1 Fi} v2 Fi} v1 Fi}
+
+
+void GG2223312 ::bar(){vfunc_called(this, "_ZN9GG22233123barEv");}
+GG2223312 ::~GG2223312(){ note_dtor("GG2223312", this);} // tgen
+GG2223312 ::GG2223312(){ note_ctor("GG2223312", this);} // tgen
+
+static void Test_GG2223312()
+{
+ extern Class_Descriptor cd_GG2223312;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2223312, buf);
+ GG2223312 *dp, &lv = *(dp=new (buf) GG2223312());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2223312)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2223312)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2223312");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2223312");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2223312");
+ check_base_class_offset(lv, (AA3*)(FF331*), ABISELECT(80,40), "GG2223312");
+ check_base_class_offset(lv, (BB3*)(FF331*), ABISELECT(96,48), "GG2223312");
+ check_base_class_offset(lv, (FF331*), ABISELECT(64,32), "GG2223312");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2223312.pg");
+ test_class_info(&lv, &cd_GG2223312);
+ dp->~GG2223312();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2223312(Test_GG2223312, "GG2223312", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2223312C1Ev();
+extern void _ZN9GG2223312D1Ev();
+Name_Map name_map_GG2223312[] = {
+ NSPAIR(_ZN9GG2223312C1Ev),
+ NSPAIR(_ZN9GG2223312D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF331;
+extern VTBL_ENTRY _ZTI5FF331[];
+extern VTBL_ENTRY _ZTV5FF331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF331[];
+static Base_Class bases_GG2223312[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF331, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2223312[];
+extern void _ZN9GG22233123barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22233123barEv,_ZTv0_n20_N9GG22233123barEv)();
+extern void ABISELECT(_ZThn16_N9GG22233123barEv,_ZThn8_N9GG22233123barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22233123barEv,_ZTv0_n12_N9GG22233123barEv)();
+extern void ABISELECT(_ZThn32_N9GG22233123barEv,_ZThn16_N9GG22233123barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22233123barEv,_ZTv0_n12_N9GG22233123barEv)();
+extern void ABISELECT(_ZThn48_N9GG22233123barEv,_ZThn24_N9GG22233123barEv)() __attribute__((weak));
+extern void _ZN5FF3313fooEv();
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22233123barEv,_ZTv0_n16_N9GG22233123barEv)();
+extern void ABISELECT(_ZThn80_N9GG22233123barEv,_ZThn40_N9GG22233123barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3313fooEv,_ZThn16_N5FF3313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22233123barEv,_ZTv0_n16_N9GG22233123barEv)();
+extern void ABISELECT(_ZThn96_N9GG22233123barEv,_ZThn48_N9GG22233123barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2223312[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2223312[0]),
+ (VTBL_ENTRY)&_ZN9GG22233123barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2223312[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22233123barEv,_ZTv0_n20_N9GG22233123barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2223312[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22233123barEv,_ZTv0_n12_N9GG22233123barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2223312[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22233123barEv,_ZTv0_n12_N9GG22233123barEv),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2223312[0]),
+ (VTBL_ENTRY)&_ZN5FF3313fooEv,
+ ABISELECT(-80,-40),
+ ABISELECT(-16,-8),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2223312[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22233123barEv,_ZTv0_n16_N9GG22233123barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-32,-16),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2223312[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22233123barEv,_ZTv0_n16_N9GG22233123barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2223312[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2223312[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2223312[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2223312[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF3313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF331__9GG2223312[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&_ZN5FF3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF331__9GG2223312[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3313fooEv,_ZThn16_N5FF3313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF331__9GG2223312[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG2223312[] = {
+ {&(_ZTV9GG2223312[8]), 8,41},
+ {&(_ZTV9GG2223312[14]), 14,41},
+ {&(_ZTV9GG2223312[18]), 18,41},
+ {&(_ZTV9GG2223312[22]), 22,41},
+ {&(_ZTV9GG2223312[28]), 28,41},
+ {&(_ZTV9GG2223312[33]), 33,41},
+ {&(_ZTV9GG2223312[39]), 39,41},
+ {&(_tg__ZTV5EE222__9GG2223312[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2223312[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2223312[3]), 3,4},
+ {&(_tg__ZTV5FF331__9GG2223312[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF331__9GG2223312[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF331__9GG2223312[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2223312[];
+extern VTBL_ENTRY _ZTV9GG2223312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2223312[];
+static VTBL_ENTRY alt_thunk_names632[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22233123barEv,_ZTv0_n16_N9GG22233123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22233123barEv,_ZThn48_N9GG22233123barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22233123barEv,_ZThn40_N9GG22233123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3313fooEv,_ZThn16_N5FF3313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3313fooEv,_ZThn16_N5FF3313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22233123barEv,_ZTv0_n12_N9GG22233123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22233123barEv,_ZThn24_N9GG22233123barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22233123barEv,_ZThn16_N9GG22233123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22233123barEv,_ZTv0_n20_N9GG22233123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22233123barEv,_ZThn8_N9GG22233123barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2223312 = { "GG2223312", // class name
+ bases_GG2223312, 6,
+ &(vtc_GG2223312[0]), // expected_vtbl_contents
+ &(vtt_GG2223312[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2223312),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2223312),41, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2223312),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names632,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2223313 : virtual EE222 , virtual FF331 {
+ int pg;
+ virtual void foo(); // _ZN9GG22233133fooEv
+ virtual void bar(); // _ZN9GG22233133barEv
+ ~GG2223313(); // tgen
+ GG2223313(); // tgen
+};
+//SIG(1 GG2223313) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2223313 ::foo(){vfunc_called(this, "_ZN9GG22233133fooEv");}
+void GG2223313 ::bar(){vfunc_called(this, "_ZN9GG22233133barEv");}
+GG2223313 ::~GG2223313(){ note_dtor("GG2223313", this);} // tgen
+GG2223313 ::GG2223313(){ note_ctor("GG2223313", this);} // tgen
+
+static void Test_GG2223313()
+{
+ extern Class_Descriptor cd_GG2223313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2223313, buf);
+ GG2223313 *dp, &lv = *(dp=new (buf) GG2223313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2223313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2223313)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2223313");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2223313");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2223313");
+ check_base_class_offset(lv, (AA3*)(FF331*), ABISELECT(80,40), "GG2223313");
+ check_base_class_offset(lv, (BB3*)(FF331*), ABISELECT(96,48), "GG2223313");
+ check_base_class_offset(lv, (FF331*), ABISELECT(64,32), "GG2223313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2223313.pg");
+ test_class_info(&lv, &cd_GG2223313);
+ dp->~GG2223313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2223313(Test_GG2223313, "GG2223313", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2223313C1Ev();
+extern void _ZN9GG2223313D1Ev();
+Name_Map name_map_GG2223313[] = {
+ NSPAIR(_ZN9GG2223313C1Ev),
+ NSPAIR(_ZN9GG2223313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF331;
+extern VTBL_ENTRY _ZTI5FF331[];
+extern VTBL_ENTRY _ZTV5FF331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF331[];
+static Base_Class bases_GG2223313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF331, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2223313[];
+extern void _ZN9GG22233133fooEv();
+extern void _ZN9GG22233133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22233133barEv,_ZTv0_n20_N9GG22233133barEv)();
+extern void ABISELECT(_ZThn16_N9GG22233133barEv,_ZThn8_N9GG22233133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22233133barEv,_ZTv0_n12_N9GG22233133barEv)();
+extern void ABISELECT(_ZThn32_N9GG22233133barEv,_ZThn16_N9GG22233133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22233133barEv,_ZTv0_n12_N9GG22233133barEv)();
+extern void ABISELECT(_ZThn48_N9GG22233133barEv,_ZThn24_N9GG22233133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22233133fooEv,_ZTv0_n20_N9GG22233133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22233133fooEv,_ZThn32_N9GG22233133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22233133fooEv,_ZTv0_n12_N9GG22233133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22233133fooEv,_ZThn40_N9GG22233133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22233133barEv,_ZTv0_n16_N9GG22233133barEv)();
+extern void ABISELECT(_ZThn80_N9GG22233133barEv,_ZThn40_N9GG22233133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22233133fooEv,_ZTv0_n12_N9GG22233133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG22233133fooEv,_ZThn48_N9GG22233133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22233133barEv,_ZTv0_n16_N9GG22233133barEv)();
+extern void ABISELECT(_ZThn96_N9GG22233133barEv,_ZThn48_N9GG22233133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2223313[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2223313[0]),
+ (VTBL_ENTRY)&_ZN9GG22233133fooEv,
+ (VTBL_ENTRY)&_ZN9GG22233133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2223313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22233133barEv,_ZTv0_n20_N9GG22233133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2223313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22233133barEv,_ZTv0_n12_N9GG22233133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2223313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22233133barEv,_ZTv0_n12_N9GG22233133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2223313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22233133fooEv,_ZTv0_n20_N9GG22233133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2223313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22233133fooEv,_ZTv0_n12_N9GG22233133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22233133barEv,_ZTv0_n16_N9GG22233133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2223313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22233133fooEv,_ZTv0_n12_N9GG22233133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22233133barEv,_ZTv0_n16_N9GG22233133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2223313[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2223313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2223313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2223313[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF3313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF331__9GG2223313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&_ZN5FF3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF331__9GG2223313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3313fooEv,_ZThn16_N5FF3313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF331__9GG2223313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG2223313[] = {
+ {&(_ZTV9GG2223313[8]), 8,42},
+ {&(_ZTV9GG2223313[15]), 15,42},
+ {&(_ZTV9GG2223313[19]), 19,42},
+ {&(_ZTV9GG2223313[23]), 23,42},
+ {&(_ZTV9GG2223313[29]), 29,42},
+ {&(_ZTV9GG2223313[34]), 34,42},
+ {&(_ZTV9GG2223313[40]), 40,42},
+ {&(_tg__ZTV5EE222__9GG2223313[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2223313[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2223313[3]), 3,4},
+ {&(_tg__ZTV5FF331__9GG2223313[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF331__9GG2223313[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF331__9GG2223313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2223313[];
+extern VTBL_ENTRY _ZTV9GG2223313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2223313[];
+static VTBL_ENTRY alt_thunk_names633[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3313fooEv,_ZThn16_N5FF3313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22233133barEv,_ZTv0_n16_N9GG22233133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22233133barEv,_ZThn48_N9GG22233133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22233133barEv,_ZThn40_N9GG22233133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22233133fooEv,_ZTv0_n12_N9GG22233133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22233133fooEv,_ZThn48_N9GG22233133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22233133fooEv,_ZThn40_N9GG22233133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22233133fooEv,_ZTv0_n20_N9GG22233133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22233133fooEv,_ZThn32_N9GG22233133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22233133barEv,_ZTv0_n12_N9GG22233133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22233133barEv,_ZThn24_N9GG22233133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22233133barEv,_ZThn16_N9GG22233133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22233133barEv,_ZTv0_n20_N9GG22233133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22233133barEv,_ZThn8_N9GG22233133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2223313 = { "GG2223313", // class name
+ bases_GG2223313, 6,
+ &(vtc_GG2223313[0]), // expected_vtbl_contents
+ &(vtt_GG2223313[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2223313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2223313),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2223313),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names633,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2223322 : virtual EE222 , virtual FF332 {
+ int pg;
+ virtual void bar(); // _ZN9GG22233223barEv
+ ~GG2223322(); // tgen
+ GG2223322(); // tgen
+};
+//SIG(1 GG2223322) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v2 v1 Fi} VBC7{ v3 v1 Fi} v1 Fi} v1 Fi}
+
+
+void GG2223322 ::bar(){vfunc_called(this, "_ZN9GG22233223barEv");}
+GG2223322 ::~GG2223322(){ note_dtor("GG2223322", this);} // tgen
+GG2223322 ::GG2223322(){ note_ctor("GG2223322", this);} // tgen
+
+static void Test_GG2223322()
+{
+ extern Class_Descriptor cd_GG2223322;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2223322, buf);
+ GG2223322 *dp, &lv = *(dp=new (buf) GG2223322());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2223322)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2223322)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2223322");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2223322");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2223322");
+ check_base_class_offset(lv, (AA3*)(FF332*), ABISELECT(80,40), "GG2223322");
+ check_base_class_offset(lv, (BB3*)(FF332*), ABISELECT(96,48), "GG2223322");
+ check_base_class_offset(lv, (FF332*), ABISELECT(64,32), "GG2223322");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2223322.pg");
+ test_class_info(&lv, &cd_GG2223322);
+ dp->~GG2223322();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2223322(Test_GG2223322, "GG2223322", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2223322C1Ev();
+extern void _ZN9GG2223322D1Ev();
+Name_Map name_map_GG2223322[] = {
+ NSPAIR(_ZN9GG2223322C1Ev),
+ NSPAIR(_ZN9GG2223322D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF332;
+extern VTBL_ENTRY _ZTI5FF332[];
+extern VTBL_ENTRY _ZTV5FF332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF332[];
+static Base_Class bases_GG2223322[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF332, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2223322[];
+extern void _ZN9GG22233223barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22233223barEv,_ZTv0_n20_N9GG22233223barEv)();
+extern void ABISELECT(_ZThn16_N9GG22233223barEv,_ZThn8_N9GG22233223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22233223barEv,_ZTv0_n12_N9GG22233223barEv)();
+extern void ABISELECT(_ZThn32_N9GG22233223barEv,_ZThn16_N9GG22233223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22233223barEv,_ZTv0_n12_N9GG22233223barEv)();
+extern void ABISELECT(_ZThn48_N9GG22233223barEv,_ZThn24_N9GG22233223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22233223barEv,_ZTv0_n20_N9GG22233223barEv)();
+extern void ABISELECT(_ZThn64_N9GG22233223barEv,_ZThn32_N9GG22233223barEv)() __attribute__((weak));
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N9GG22233223barEv,_ZTv0_n16_N9GG22233223barEv)();
+extern void ABISELECT(_ZThn80_N9GG22233223barEv,_ZThn40_N9GG22233223barEv)() __attribute__((weak));
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N9GG22233223barEv,_ZTv0_n16_N9GG22233223barEv)();
+extern void ABISELECT(_ZThn96_N9GG22233223barEv,_ZThn48_N9GG22233223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2223322[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2223322[0]),
+ (VTBL_ENTRY)&_ZN9GG22233223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2223322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22233223barEv,_ZTv0_n20_N9GG22233223barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2223322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22233223barEv,_ZTv0_n12_N9GG22233223barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2223322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22233223barEv,_ZTv0_n12_N9GG22233223barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2223322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22233223barEv,_ZTv0_n20_N9GG22233223barEv),
+ ABISELECT(-80,-40),
+ 0,
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2223322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22233223barEv,_ZTv0_n16_N9GG22233223barEv),
+ ABISELECT(-96,-48),
+ 0,
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2223322[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22233223barEv,_ZTv0_n16_N9GG22233223barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2223322[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2223322[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2223322[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2223322[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF3323barEv();
+static VTBL_ENTRY _tg__ZTV5FF332__9GG2223322[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN5FF3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+extern void ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF332__9GG2223322[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+extern void ABISELECT(_ZThn32_N5FF3323barEv,_ZThn16_N5FF3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF332__9GG2223322[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+static VTT_ENTRY vtt_GG2223322[] = {
+ {&(_ZTV9GG2223322[8]), 8,41},
+ {&(_ZTV9GG2223322[14]), 14,41},
+ {&(_ZTV9GG2223322[18]), 18,41},
+ {&(_ZTV9GG2223322[22]), 22,41},
+ {&(_ZTV9GG2223322[28]), 28,41},
+ {&(_ZTV9GG2223322[33]), 33,41},
+ {&(_ZTV9GG2223322[39]), 39,41},
+ {&(_tg__ZTV5EE222__9GG2223322[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2223322[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2223322[3]), 3,4},
+ {&(_tg__ZTV5FF332__9GG2223322[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF332__9GG2223322[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF332__9GG2223322[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2223322[];
+extern VTBL_ENTRY _ZTV9GG2223322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2223322[];
+static VTBL_ENTRY alt_thunk_names634[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3323barEv,_ZThn16_N5FF3323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22233223barEv,_ZTv0_n16_N9GG22233223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22233223barEv,_ZThn48_N9GG22233223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22233223barEv,_ZThn40_N9GG22233223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22233223barEv,_ZTv0_n12_N9GG22233223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22233223barEv,_ZThn24_N9GG22233223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22233223barEv,_ZThn16_N9GG22233223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22233223barEv,_ZTv0_n20_N9GG22233223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22233223barEv,_ZThn32_N9GG22233223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22233223barEv,_ZThn8_N9GG22233223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2223322 = { "GG2223322", // class name
+ bases_GG2223322, 6,
+ &(vtc_GG2223322[0]), // expected_vtbl_contents
+ &(vtt_GG2223322[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2223322),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2223322),41, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2223322),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names634,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2223323 : virtual EE222 , virtual FF332 {
+ int pg;
+ virtual void foo(); // _ZN9GG22233233fooEv
+ virtual void bar(); // _ZN9GG22233233barEv
+ ~GG2223323(); // tgen
+ GG2223323(); // tgen
+};
+//SIG(1 GG2223323) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2223323 ::foo(){vfunc_called(this, "_ZN9GG22233233fooEv");}
+void GG2223323 ::bar(){vfunc_called(this, "_ZN9GG22233233barEv");}
+GG2223323 ::~GG2223323(){ note_dtor("GG2223323", this);} // tgen
+GG2223323 ::GG2223323(){ note_ctor("GG2223323", this);} // tgen
+
+static void Test_GG2223323()
+{
+ extern Class_Descriptor cd_GG2223323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2223323, buf);
+ GG2223323 *dp, &lv = *(dp=new (buf) GG2223323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2223323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2223323)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2223323");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2223323");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2223323");
+ check_base_class_offset(lv, (AA3*)(FF332*), ABISELECT(80,40), "GG2223323");
+ check_base_class_offset(lv, (BB3*)(FF332*), ABISELECT(96,48), "GG2223323");
+ check_base_class_offset(lv, (FF332*), ABISELECT(64,32), "GG2223323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2223323.pg");
+ test_class_info(&lv, &cd_GG2223323);
+ dp->~GG2223323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2223323(Test_GG2223323, "GG2223323", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2223323C1Ev();
+extern void _ZN9GG2223323D1Ev();
+Name_Map name_map_GG2223323[] = {
+ NSPAIR(_ZN9GG2223323C1Ev),
+ NSPAIR(_ZN9GG2223323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF332;
+extern VTBL_ENTRY _ZTI5FF332[];
+extern VTBL_ENTRY _ZTV5FF332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF332[];
+static Base_Class bases_GG2223323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF332, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2223323[];
+extern void _ZN9GG22233233fooEv();
+extern void _ZN9GG22233233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22233233barEv,_ZTv0_n20_N9GG22233233barEv)();
+extern void ABISELECT(_ZThn16_N9GG22233233barEv,_ZThn8_N9GG22233233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22233233barEv,_ZTv0_n12_N9GG22233233barEv)();
+extern void ABISELECT(_ZThn32_N9GG22233233barEv,_ZThn16_N9GG22233233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22233233barEv,_ZTv0_n12_N9GG22233233barEv)();
+extern void ABISELECT(_ZThn48_N9GG22233233barEv,_ZThn24_N9GG22233233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22233233barEv,_ZTv0_n20_N9GG22233233barEv)();
+extern void ABISELECT(_ZThn64_N9GG22233233barEv,_ZThn32_N9GG22233233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22233233fooEv,_ZTv0_n12_N9GG22233233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22233233fooEv,_ZThn40_N9GG22233233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22233233barEv,_ZTv0_n16_N9GG22233233barEv)();
+extern void ABISELECT(_ZThn80_N9GG22233233barEv,_ZThn40_N9GG22233233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22233233fooEv,_ZTv0_n12_N9GG22233233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG22233233fooEv,_ZThn48_N9GG22233233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22233233barEv,_ZTv0_n16_N9GG22233233barEv)();
+extern void ABISELECT(_ZThn96_N9GG22233233barEv,_ZThn48_N9GG22233233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2223323[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2223323[0]),
+ (VTBL_ENTRY)&_ZN9GG22233233fooEv,
+ (VTBL_ENTRY)&_ZN9GG22233233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2223323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22233233barEv,_ZTv0_n20_N9GG22233233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2223323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22233233barEv,_ZTv0_n12_N9GG22233233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2223323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22233233barEv,_ZTv0_n12_N9GG22233233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2223323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22233233barEv,_ZTv0_n20_N9GG22233233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2223323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22233233fooEv,_ZTv0_n12_N9GG22233233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22233233barEv,_ZTv0_n16_N9GG22233233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2223323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22233233fooEv,_ZTv0_n12_N9GG22233233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22233233barEv,_ZTv0_n16_N9GG22233233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2223323[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2223323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2223323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2223323[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF3323barEv();
+static VTBL_ENTRY _tg__ZTV5FF332__9GG2223323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN5FF3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+extern void ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF332__9GG2223323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+extern void ABISELECT(_ZThn32_N5FF3323barEv,_ZThn16_N5FF3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF332__9GG2223323[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+static VTT_ENTRY vtt_GG2223323[] = {
+ {&(_ZTV9GG2223323[8]), 8,42},
+ {&(_ZTV9GG2223323[15]), 15,42},
+ {&(_ZTV9GG2223323[19]), 19,42},
+ {&(_ZTV9GG2223323[23]), 23,42},
+ {&(_ZTV9GG2223323[29]), 29,42},
+ {&(_ZTV9GG2223323[34]), 34,42},
+ {&(_ZTV9GG2223323[40]), 40,42},
+ {&(_tg__ZTV5EE222__9GG2223323[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2223323[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2223323[3]), 3,4},
+ {&(_tg__ZTV5FF332__9GG2223323[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF332__9GG2223323[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF332__9GG2223323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2223323[];
+extern VTBL_ENTRY _ZTV9GG2223323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2223323[];
+static VTBL_ENTRY alt_thunk_names635[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3323barEv,_ZThn16_N5FF3323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22233233barEv,_ZTv0_n16_N9GG22233233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22233233barEv,_ZThn48_N9GG22233233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22233233barEv,_ZThn40_N9GG22233233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22233233fooEv,_ZTv0_n12_N9GG22233233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22233233fooEv,_ZThn48_N9GG22233233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22233233fooEv,_ZThn40_N9GG22233233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22233233barEv,_ZTv0_n12_N9GG22233233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22233233barEv,_ZThn24_N9GG22233233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22233233barEv,_ZThn16_N9GG22233233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22233233barEv,_ZTv0_n20_N9GG22233233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22233233barEv,_ZThn32_N9GG22233233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22233233barEv,_ZThn8_N9GG22233233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2223323 = { "GG2223323", // class name
+ bases_GG2223323, 6,
+ &(vtc_GG2223323[0]), // expected_vtbl_contents
+ &(vtt_GG2223323[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2223323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2223323),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2223323),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names635,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2223332 : virtual EE222 , virtual FF333 {
+ int pg;
+ virtual void bar(); // _ZN9GG22233323barEv
+ ~GG2223332(); // tgen
+ GG2223332(); // tgen
+};
+//SIG(1 GG2223332) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v2 v1 Fi} VBC7{ v2 v1 Fi} v2 v1 Fi} v1 Fi}
+
+
+void GG2223332 ::bar(){vfunc_called(this, "_ZN9GG22233323barEv");}
+GG2223332 ::~GG2223332(){ note_dtor("GG2223332", this);} // tgen
+GG2223332 ::GG2223332(){ note_ctor("GG2223332", this);} // tgen
+
+static void Test_GG2223332()
+{
+ extern Class_Descriptor cd_GG2223332;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2223332, buf);
+ GG2223332 *dp, &lv = *(dp=new (buf) GG2223332());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2223332)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2223332)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2223332");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2223332");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2223332");
+ check_base_class_offset(lv, (AA3*)(FF333*), ABISELECT(80,40), "GG2223332");
+ check_base_class_offset(lv, (BB3*)(FF333*), ABISELECT(96,48), "GG2223332");
+ check_base_class_offset(lv, (FF333*), ABISELECT(64,32), "GG2223332");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2223332.pg");
+ test_class_info(&lv, &cd_GG2223332);
+ dp->~GG2223332();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2223332(Test_GG2223332, "GG2223332", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2223332C1Ev();
+extern void _ZN9GG2223332D1Ev();
+Name_Map name_map_GG2223332[] = {
+ NSPAIR(_ZN9GG2223332C1Ev),
+ NSPAIR(_ZN9GG2223332D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF333;
+extern VTBL_ENTRY _ZTI5FF333[];
+extern VTBL_ENTRY _ZTV5FF333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF333[];
+static Base_Class bases_GG2223332[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 37, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF333, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2223332[];
+extern void _ZN9GG22233323barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22233323barEv,_ZTv0_n20_N9GG22233323barEv)();
+extern void ABISELECT(_ZThn16_N9GG22233323barEv,_ZThn8_N9GG22233323barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22233323barEv,_ZTv0_n12_N9GG22233323barEv)();
+extern void ABISELECT(_ZThn32_N9GG22233323barEv,_ZThn16_N9GG22233323barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22233323barEv,_ZTv0_n12_N9GG22233323barEv)();
+extern void ABISELECT(_ZThn48_N9GG22233323barEv,_ZThn24_N9GG22233323barEv)() __attribute__((weak));
+extern void _ZN5FF3333fooEv();
+extern void ABISELECT(_ZTv0_n48_N9GG22233323barEv,_ZTv0_n24_N9GG22233323barEv)();
+extern void ABISELECT(_ZThn64_N9GG22233323barEv,_ZThn32_N9GG22233323barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22233323barEv,_ZTv0_n16_N9GG22233323barEv)();
+extern void ABISELECT(_ZThn80_N9GG22233323barEv,_ZThn40_N9GG22233323barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3333fooEv,_ZThn16_N5FF3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22233323barEv,_ZTv0_n16_N9GG22233323barEv)();
+extern void ABISELECT(_ZThn96_N9GG22233323barEv,_ZThn48_N9GG22233323barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2223332[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2223332[0]),
+ (VTBL_ENTRY)&_ZN9GG22233323barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2223332[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22233323barEv,_ZTv0_n20_N9GG22233323barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2223332[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22233323barEv,_ZTv0_n12_N9GG22233323barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2223332[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22233323barEv,_ZTv0_n12_N9GG22233323barEv),
+ ABISELECT(-64,-32),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2223332[0]),
+ (VTBL_ENTRY)&_ZN5FF3333fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22233323barEv,_ZTv0_n24_N9GG22233323barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-16,-8),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2223332[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22233323barEv,_ZTv0_n16_N9GG22233323barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-32,-16),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2223332[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22233323barEv,_ZTv0_n16_N9GG22233323barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2223332[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2223332[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2223332[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2223332[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF3333fooEv();
+extern void _ZN5FF3333barEv();
+static VTBL_ENTRY _tg__ZTV5FF333__9GG2223332[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&_ZN5FF3333fooEv,
+ (VTBL_ENTRY)&_ZN5FF3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+extern void ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF333__9GG2223332[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3333fooEv,_ZThn16_N5FF3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+extern void ABISELECT(_ZThn32_N5FF3333barEv,_ZThn16_N5FF3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF333__9GG2223332[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+static VTT_ENTRY vtt_GG2223332[] = {
+ {&(_ZTV9GG2223332[8]), 8,43},
+ {&(_ZTV9GG2223332[14]), 14,43},
+ {&(_ZTV9GG2223332[18]), 18,43},
+ {&(_ZTV9GG2223332[22]), 22,43},
+ {&(_ZTV9GG2223332[29]), 29,43},
+ {&(_ZTV9GG2223332[35]), 35,43},
+ {&(_ZTV9GG2223332[41]), 41,43},
+ {&(_tg__ZTV5EE222__9GG2223332[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2223332[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2223332[3]), 3,4},
+ {&(_tg__ZTV5FF333__9GG2223332[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF333__9GG2223332[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF333__9GG2223332[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2223332[];
+extern VTBL_ENTRY _ZTV9GG2223332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2223332[];
+static VTBL_ENTRY alt_thunk_names636[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3333barEv,_ZThn16_N5FF3333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22233323barEv,_ZTv0_n16_N9GG22233323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22233323barEv,_ZThn48_N9GG22233323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22233323barEv,_ZThn40_N9GG22233323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3333fooEv,_ZThn16_N5FF3333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3333fooEv,_ZThn16_N5FF3333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22233323barEv,_ZTv0_n24_N9GG22233323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22233323barEv,_ZThn32_N9GG22233323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22233323barEv,_ZTv0_n12_N9GG22233323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22233323barEv,_ZThn24_N9GG22233323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22233323barEv,_ZThn16_N9GG22233323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22233323barEv,_ZTv0_n20_N9GG22233323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22233323barEv,_ZThn8_N9GG22233323barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2223332 = { "GG2223332", // class name
+ bases_GG2223332, 6,
+ &(vtc_GG2223332[0]), // expected_vtbl_contents
+ &(vtt_GG2223332[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2223332),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2223332),43, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2223332),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names636,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2223333 : virtual EE222 , virtual FF333 {
+ int pg;
+ virtual void foo(); // _ZN9GG22233333fooEv
+ virtual void bar(); // _ZN9GG22233333barEv
+ ~GG2223333(); // tgen
+ GG2223333(); // tgen
+};
+//SIG(1 GG2223333) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2223333 ::foo(){vfunc_called(this, "_ZN9GG22233333fooEv");}
+void GG2223333 ::bar(){vfunc_called(this, "_ZN9GG22233333barEv");}
+GG2223333 ::~GG2223333(){ note_dtor("GG2223333", this);} // tgen
+GG2223333 ::GG2223333(){ note_ctor("GG2223333", this);} // tgen
+
+static void Test_GG2223333()
+{
+ extern Class_Descriptor cd_GG2223333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2223333, buf);
+ GG2223333 *dp, &lv = *(dp=new (buf) GG2223333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2223333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2223333)");
+ check_base_class_offset(lv, (AA2*)(EE222*), ABISELECT(32,16), "GG2223333");
+ check_base_class_offset(lv, (BB2*)(EE222*), ABISELECT(48,24), "GG2223333");
+ check_base_class_offset(lv, (EE222*), ABISELECT(16,8), "GG2223333");
+ check_base_class_offset(lv, (AA3*)(FF333*), ABISELECT(80,40), "GG2223333");
+ check_base_class_offset(lv, (BB3*)(FF333*), ABISELECT(96,48), "GG2223333");
+ check_base_class_offset(lv, (FF333*), ABISELECT(64,32), "GG2223333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2223333.pg");
+ test_class_info(&lv, &cd_GG2223333);
+ dp->~GG2223333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2223333(Test_GG2223333, "GG2223333", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2223333C1Ev();
+extern void _ZN9GG2223333D1Ev();
+Name_Map name_map_GG2223333[] = {
+ NSPAIR(_ZN9GG2223333C1Ev),
+ NSPAIR(_ZN9GG2223333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE222;
+extern VTBL_ENTRY _ZTI5EE222[];
+extern VTBL_ENTRY _ZTV5EE222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE222[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF333;
+extern VTBL_ENTRY _ZTI5FF333[];
+extern VTBL_ENTRY _ZTV5FF333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF333[];
+static Base_Class bases_GG2223333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE222, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF333, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2223333[];
+extern void _ZN9GG22233333fooEv();
+extern void _ZN9GG22233333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22233333barEv,_ZTv0_n20_N9GG22233333barEv)();
+extern void ABISELECT(_ZThn16_N9GG22233333barEv,_ZThn8_N9GG22233333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22233333barEv,_ZTv0_n12_N9GG22233333barEv)();
+extern void ABISELECT(_ZThn32_N9GG22233333barEv,_ZThn16_N9GG22233333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22233333barEv,_ZTv0_n12_N9GG22233333barEv)();
+extern void ABISELECT(_ZThn48_N9GG22233333barEv,_ZThn24_N9GG22233333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22233333fooEv,_ZTv0_n20_N9GG22233333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22233333fooEv,_ZThn32_N9GG22233333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22233333barEv,_ZTv0_n24_N9GG22233333barEv)();
+extern void ABISELECT(_ZThn64_N9GG22233333barEv,_ZThn32_N9GG22233333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22233333fooEv,_ZTv0_n12_N9GG22233333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22233333fooEv,_ZThn40_N9GG22233333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22233333barEv,_ZTv0_n16_N9GG22233333barEv)();
+extern void ABISELECT(_ZThn80_N9GG22233333barEv,_ZThn40_N9GG22233333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22233333fooEv,_ZTv0_n12_N9GG22233333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG22233333fooEv,_ZThn48_N9GG22233333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22233333barEv,_ZTv0_n16_N9GG22233333barEv)();
+extern void ABISELECT(_ZThn96_N9GG22233333barEv,_ZThn48_N9GG22233333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2223333[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2223333[0]),
+ (VTBL_ENTRY)&_ZN9GG22233333fooEv,
+ (VTBL_ENTRY)&_ZN9GG22233333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2223333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22233333barEv,_ZTv0_n20_N9GG22233333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2223333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22233333barEv,_ZTv0_n12_N9GG22233333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2223333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22233333barEv,_ZTv0_n12_N9GG22233333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2223333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22233333fooEv,_ZTv0_n20_N9GG22233333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22233333barEv,_ZTv0_n24_N9GG22233333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2223333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22233333fooEv,_ZTv0_n12_N9GG22233333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22233333barEv,_ZTv0_n16_N9GG22233333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2223333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22233333fooEv,_ZTv0_n12_N9GG22233333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22233333barEv,_ZTv0_n16_N9GG22233333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2223333[];
+extern void _ZN5EE2223barEv();
+static VTBL_ENTRY _tg__ZTV5EE222__9GG2223333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&_ZN5EE2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE222__9GG2223333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv)();
+extern void ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE222__9GG2223333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv),
+};
+extern void _ZN5FF3333fooEv();
+extern void _ZN5FF3333barEv();
+static VTBL_ENTRY _tg__ZTV5FF333__9GG2223333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&_ZN5FF3333fooEv,
+ (VTBL_ENTRY)&_ZN5FF3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+extern void ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF333__9GG2223333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3333fooEv,_ZThn16_N5FF3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+extern void ABISELECT(_ZThn32_N5FF3333barEv,_ZThn16_N5FF3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF333__9GG2223333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+static VTT_ENTRY vtt_GG2223333[] = {
+ {&(_ZTV9GG2223333[8]), 8,44},
+ {&(_ZTV9GG2223333[15]), 15,44},
+ {&(_ZTV9GG2223333[19]), 19,44},
+ {&(_ZTV9GG2223333[23]), 23,44},
+ {&(_ZTV9GG2223333[30]), 30,44},
+ {&(_ZTV9GG2223333[36]), 36,44},
+ {&(_ZTV9GG2223333[42]), 42,44},
+ {&(_tg__ZTV5EE222__9GG2223333[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE222__9GG2223333[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE222__9GG2223333[3]), 3,4},
+ {&(_tg__ZTV5FF333__9GG2223333[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF333__9GG2223333[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF333__9GG2223333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2223333[];
+extern VTBL_ENTRY _ZTV9GG2223333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2223333[];
+static VTBL_ENTRY alt_thunk_names637[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3333barEv,_ZThn16_N5FF3333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3333fooEv,_ZThn16_N5FF3333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2223barEv,_ZTv0_n12_N5EE2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2223barEv,_ZThn16_N5EE2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2223barEv,_ZThn8_N5EE2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22233333barEv,_ZTv0_n16_N9GG22233333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22233333barEv,_ZThn48_N9GG22233333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22233333barEv,_ZThn40_N9GG22233333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22233333fooEv,_ZTv0_n12_N9GG22233333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22233333fooEv,_ZThn48_N9GG22233333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22233333fooEv,_ZThn40_N9GG22233333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22233333barEv,_ZTv0_n24_N9GG22233333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22233333barEv,_ZThn32_N9GG22233333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22233333fooEv,_ZTv0_n20_N9GG22233333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22233333fooEv,_ZThn32_N9GG22233333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22233333barEv,_ZTv0_n12_N9GG22233333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22233333barEv,_ZThn24_N9GG22233333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22233333barEv,_ZThn16_N9GG22233333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22233333barEv,_ZTv0_n20_N9GG22233333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22233333barEv,_ZThn8_N9GG22233333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2223333 = { "GG2223333", // class name
+ bases_GG2223333, 6,
+ &(vtc_GG2223333[0]), // expected_vtbl_contents
+ &(vtt_GG2223333[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2223333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2223333),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2223333),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names637,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2231111 : virtual EE223 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG22311113fooEv
+ ~GG2231111(); // tgen
+ GG2231111(); // tgen
+};
+//SIG(1 GG2231111) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+void GG2231111 ::foo(){vfunc_called(this, "_ZN9GG22311113fooEv");}
+GG2231111 ::~GG2231111(){ note_dtor("GG2231111", this);} // tgen
+GG2231111 ::GG2231111(){ note_ctor("GG2231111", this);} // tgen
+
+static void Test_GG2231111()
+{
+ extern Class_Descriptor cd_GG2231111;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2231111, buf);
+ GG2231111 *dp, &lv = *(dp=new (buf) GG2231111());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2231111)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2231111)");
+ check_base_class_offset(lv, (AA2*)(EE223*), ABISELECT(32,16), "GG2231111");
+ check_base_class_offset(lv, (BB2*)(EE223*), ABISELECT(48,24), "GG2231111");
+ check_base_class_offset(lv, (EE223*), ABISELECT(16,8), "GG2231111");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(80,40), "GG2231111");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(96,48), "GG2231111");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG2231111");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2231111.pg");
+ test_class_info(&lv, &cd_GG2231111);
+ dp->~GG2231111();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2231111(Test_GG2231111, "GG2231111", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2231111C1Ev();
+extern void _ZN9GG2231111D1Ev();
+Name_Map name_map_GG2231111[] = {
+ NSPAIR(_ZN9GG2231111C1Ev),
+ NSPAIR(_ZN9GG2231111D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE223;
+extern VTBL_ENTRY _ZTI5EE223[];
+extern VTBL_ENTRY _ZTV5EE223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE223[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG2231111[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE223, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2231111[];
+extern void _ZN9GG22311113fooEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22311113fooEv,_ZTv0_n20_N9GG22311113fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22311113fooEv,_ZThn8_N9GG22311113fooEv)() __attribute__((weak));
+extern void _ZN5EE2233barEv();
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22311113fooEv,_ZTv0_n20_N9GG22311113fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22311113fooEv,_ZThn32_N9GG22311113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22311113fooEv,_ZTv0_n12_N9GG22311113fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22311113fooEv,_ZThn40_N9GG22311113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22311113fooEv,_ZTv0_n12_N9GG22311113fooEv)();
+extern void ABISELECT(_ZThn96_N9GG22311113fooEv,_ZThn48_N9GG22311113fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2231111[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2231111[0]),
+ (VTBL_ENTRY)&_ZN9GG22311113fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2231111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22311113fooEv,_ZTv0_n20_N9GG22311113fooEv),
+ (VTBL_ENTRY)&_ZN5EE2233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2231111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2231111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2231111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22311113fooEv,_ZTv0_n20_N9GG22311113fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2231111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22311113fooEv,_ZTv0_n12_N9GG22311113fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2231111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22311113fooEv,_ZTv0_n12_N9GG22311113fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2231111[];
+extern void _ZN5EE2233fooEv();
+extern void _ZN5EE2233barEv();
+static VTBL_ENTRY _tg__ZTV5EE223__9GG2231111[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&_ZN5EE2233fooEv,
+ (VTBL_ENTRY)&_ZN5EE2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE223__9GG2231111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE223__9GG2231111[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG2231111[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG2231111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG2231111[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG2231111[] = {
+ {&(_ZTV9GG2231111[8]), 8,39},
+ {&(_ZTV9GG2231111[15]), 15,39},
+ {&(_ZTV9GG2231111[20]), 20,39},
+ {&(_ZTV9GG2231111[24]), 24,39},
+ {&(_ZTV9GG2231111[30]), 30,39},
+ {&(_ZTV9GG2231111[34]), 34,39},
+ {&(_ZTV9GG2231111[38]), 38,39},
+ {&(_tg__ZTV5EE223__9GG2231111[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE223__9GG2231111[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE223__9GG2231111[3]), 3,4},
+ {&(_tg__ZTV5FF111__9GG2231111[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG2231111[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG2231111[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2231111[];
+extern VTBL_ENTRY _ZTV9GG2231111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2231111[];
+static VTBL_ENTRY alt_thunk_names638[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22311113fooEv,_ZTv0_n12_N9GG22311113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22311113fooEv,_ZThn48_N9GG22311113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22311113fooEv,_ZThn40_N9GG22311113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22311113fooEv,_ZTv0_n20_N9GG22311113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22311113fooEv,_ZThn32_N9GG22311113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22311113fooEv,_ZThn8_N9GG22311113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2231111 = { "GG2231111", // class name
+ bases_GG2231111, 6,
+ &(vtc_GG2231111[0]), // expected_vtbl_contents
+ &(vtt_GG2231111[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2231111),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2231111),39, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2231111),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names638,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2231113 : virtual EE223 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG22311133fooEv
+ virtual void bar(); // _ZN9GG22311133barEv
+ ~GG2231113(); // tgen
+ GG2231113(); // tgen
+};
+//SIG(1 GG2231113) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2231113 ::foo(){vfunc_called(this, "_ZN9GG22311133fooEv");}
+void GG2231113 ::bar(){vfunc_called(this, "_ZN9GG22311133barEv");}
+GG2231113 ::~GG2231113(){ note_dtor("GG2231113", this);} // tgen
+GG2231113 ::GG2231113(){ note_ctor("GG2231113", this);} // tgen
+
+static void Test_GG2231113()
+{
+ extern Class_Descriptor cd_GG2231113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2231113, buf);
+ GG2231113 *dp, &lv = *(dp=new (buf) GG2231113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2231113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2231113)");
+ check_base_class_offset(lv, (AA2*)(EE223*), ABISELECT(32,16), "GG2231113");
+ check_base_class_offset(lv, (BB2*)(EE223*), ABISELECT(48,24), "GG2231113");
+ check_base_class_offset(lv, (EE223*), ABISELECT(16,8), "GG2231113");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(80,40), "GG2231113");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(96,48), "GG2231113");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG2231113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2231113.pg");
+ test_class_info(&lv, &cd_GG2231113);
+ dp->~GG2231113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2231113(Test_GG2231113, "GG2231113", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2231113C1Ev();
+extern void _ZN9GG2231113D1Ev();
+Name_Map name_map_GG2231113[] = {
+ NSPAIR(_ZN9GG2231113C1Ev),
+ NSPAIR(_ZN9GG2231113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE223;
+extern VTBL_ENTRY _ZTI5EE223[];
+extern VTBL_ENTRY _ZTV5EE223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE223[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG2231113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE223, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2231113[];
+extern void _ZN9GG22311133fooEv();
+extern void _ZN9GG22311133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22311133fooEv,_ZTv0_n20_N9GG22311133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22311133fooEv,_ZThn8_N9GG22311133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22311133barEv,_ZTv0_n24_N9GG22311133barEv)();
+extern void ABISELECT(_ZThn16_N9GG22311133barEv,_ZThn8_N9GG22311133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22311133barEv,_ZTv0_n12_N9GG22311133barEv)();
+extern void ABISELECT(_ZThn32_N9GG22311133barEv,_ZThn16_N9GG22311133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22311133barEv,_ZTv0_n12_N9GG22311133barEv)();
+extern void ABISELECT(_ZThn48_N9GG22311133barEv,_ZThn24_N9GG22311133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22311133fooEv,_ZTv0_n20_N9GG22311133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22311133fooEv,_ZThn32_N9GG22311133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22311133fooEv,_ZTv0_n12_N9GG22311133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22311133fooEv,_ZThn40_N9GG22311133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22311133fooEv,_ZTv0_n12_N9GG22311133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG22311133fooEv,_ZThn48_N9GG22311133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2231113[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2231113[0]),
+ (VTBL_ENTRY)&_ZN9GG22311133fooEv,
+ (VTBL_ENTRY)&_ZN9GG22311133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2231113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22311133fooEv,_ZTv0_n20_N9GG22311133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22311133barEv,_ZTv0_n24_N9GG22311133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2231113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22311133barEv,_ZTv0_n12_N9GG22311133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2231113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22311133barEv,_ZTv0_n12_N9GG22311133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2231113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22311133fooEv,_ZTv0_n20_N9GG22311133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2231113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22311133fooEv,_ZTv0_n12_N9GG22311133fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2231113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22311133fooEv,_ZTv0_n12_N9GG22311133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2231113[];
+extern void _ZN5EE2233fooEv();
+extern void _ZN5EE2233barEv();
+static VTBL_ENTRY _tg__ZTV5EE223__9GG2231113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&_ZN5EE2233fooEv,
+ (VTBL_ENTRY)&_ZN5EE2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE223__9GG2231113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE223__9GG2231113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG2231113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG2231113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG2231113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG2231113[] = {
+ {&(_ZTV9GG2231113[8]), 8,40},
+ {&(_ZTV9GG2231113[16]), 16,40},
+ {&(_ZTV9GG2231113[21]), 21,40},
+ {&(_ZTV9GG2231113[25]), 25,40},
+ {&(_ZTV9GG2231113[31]), 31,40},
+ {&(_ZTV9GG2231113[35]), 35,40},
+ {&(_ZTV9GG2231113[39]), 39,40},
+ {&(_tg__ZTV5EE223__9GG2231113[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE223__9GG2231113[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE223__9GG2231113[3]), 3,4},
+ {&(_tg__ZTV5FF111__9GG2231113[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG2231113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG2231113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2231113[];
+extern VTBL_ENTRY _ZTV9GG2231113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2231113[];
+static VTBL_ENTRY alt_thunk_names639[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22311133fooEv,_ZTv0_n12_N9GG22311133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22311133fooEv,_ZThn48_N9GG22311133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22311133fooEv,_ZThn40_N9GG22311133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22311133barEv,_ZTv0_n12_N9GG22311133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22311133barEv,_ZThn24_N9GG22311133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22311133barEv,_ZThn16_N9GG22311133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22311133barEv,_ZTv0_n24_N9GG22311133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22311133barEv,_ZThn8_N9GG22311133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22311133fooEv,_ZTv0_n20_N9GG22311133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22311133fooEv,_ZThn32_N9GG22311133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22311133fooEv,_ZThn8_N9GG22311133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2231113 = { "GG2231113", // class name
+ bases_GG2231113, 6,
+ &(vtc_GG2231113[0]), // expected_vtbl_contents
+ &(vtt_GG2231113[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2231113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2231113),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2231113),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names639,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2231123 : virtual EE223 , virtual FF112 {
+ int pg;
+ virtual void foo(); // _ZN9GG22311233fooEv
+ virtual void bar(); // _ZN9GG22311233barEv
+ ~GG2231123(); // tgen
+ GG2231123(); // tgen
+};
+//SIG(1 GG2231123) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2231123 ::foo(){vfunc_called(this, "_ZN9GG22311233fooEv");}
+void GG2231123 ::bar(){vfunc_called(this, "_ZN9GG22311233barEv");}
+GG2231123 ::~GG2231123(){ note_dtor("GG2231123", this);} // tgen
+GG2231123 ::GG2231123(){ note_ctor("GG2231123", this);} // tgen
+
+static void Test_GG2231123()
+{
+ extern Class_Descriptor cd_GG2231123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2231123, buf);
+ GG2231123 *dp, &lv = *(dp=new (buf) GG2231123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2231123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2231123)");
+ check_base_class_offset(lv, (AA2*)(EE223*), ABISELECT(32,16), "GG2231123");
+ check_base_class_offset(lv, (BB2*)(EE223*), ABISELECT(48,24), "GG2231123");
+ check_base_class_offset(lv, (EE223*), ABISELECT(16,8), "GG2231123");
+ check_base_class_offset(lv, (AA1*)(FF112*), ABISELECT(80,40), "GG2231123");
+ check_base_class_offset(lv, (BB1*)(FF112*), ABISELECT(96,48), "GG2231123");
+ check_base_class_offset(lv, (FF112*), ABISELECT(64,32), "GG2231123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2231123.pg");
+ test_class_info(&lv, &cd_GG2231123);
+ dp->~GG2231123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2231123(Test_GG2231123, "GG2231123", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2231123C1Ev();
+extern void _ZN9GG2231123D1Ev();
+Name_Map name_map_GG2231123[] = {
+ NSPAIR(_ZN9GG2231123C1Ev),
+ NSPAIR(_ZN9GG2231123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE223;
+extern VTBL_ENTRY _ZTI5EE223[];
+extern VTBL_ENTRY _ZTV5EE223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE223[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF112;
+extern VTBL_ENTRY _ZTI5FF112[];
+extern VTBL_ENTRY _ZTV5FF112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF112[];
+static Base_Class bases_GG2231123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE223, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF112, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2231123[];
+extern void _ZN9GG22311233fooEv();
+extern void _ZN9GG22311233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22311233fooEv,_ZTv0_n20_N9GG22311233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22311233fooEv,_ZThn8_N9GG22311233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22311233barEv,_ZTv0_n24_N9GG22311233barEv)();
+extern void ABISELECT(_ZThn16_N9GG22311233barEv,_ZThn8_N9GG22311233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22311233barEv,_ZTv0_n12_N9GG22311233barEv)();
+extern void ABISELECT(_ZThn32_N9GG22311233barEv,_ZThn16_N9GG22311233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22311233barEv,_ZTv0_n12_N9GG22311233barEv)();
+extern void ABISELECT(_ZThn48_N9GG22311233barEv,_ZThn24_N9GG22311233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22311233barEv,_ZTv0_n20_N9GG22311233barEv)();
+extern void ABISELECT(_ZThn64_N9GG22311233barEv,_ZThn32_N9GG22311233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22311233fooEv,_ZTv0_n12_N9GG22311233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22311233fooEv,_ZThn40_N9GG22311233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22311233fooEv,_ZTv0_n12_N9GG22311233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG22311233fooEv,_ZThn48_N9GG22311233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2231123[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2231123[0]),
+ (VTBL_ENTRY)&_ZN9GG22311233fooEv,
+ (VTBL_ENTRY)&_ZN9GG22311233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2231123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22311233fooEv,_ZTv0_n20_N9GG22311233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22311233barEv,_ZTv0_n24_N9GG22311233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2231123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22311233barEv,_ZTv0_n12_N9GG22311233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2231123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22311233barEv,_ZTv0_n12_N9GG22311233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2231123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22311233barEv,_ZTv0_n20_N9GG22311233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2231123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22311233fooEv,_ZTv0_n12_N9GG22311233fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2231123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22311233fooEv,_ZTv0_n12_N9GG22311233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2231123[];
+extern void _ZN5EE2233fooEv();
+extern void _ZN5EE2233barEv();
+static VTBL_ENTRY _tg__ZTV5EE223__9GG2231123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&_ZN5EE2233fooEv,
+ (VTBL_ENTRY)&_ZN5EE2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE223__9GG2231123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE223__9GG2231123[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void _ZN5FF1123barEv();
+static VTBL_ENTRY _tg__ZTV5FF112__9GG2231123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN5FF1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF112__9GG2231123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF112__9GG2231123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG2231123[] = {
+ {&(_ZTV9GG2231123[8]), 8,40},
+ {&(_ZTV9GG2231123[16]), 16,40},
+ {&(_ZTV9GG2231123[21]), 21,40},
+ {&(_ZTV9GG2231123[25]), 25,40},
+ {&(_ZTV9GG2231123[31]), 31,40},
+ {&(_ZTV9GG2231123[35]), 35,40},
+ {&(_ZTV9GG2231123[39]), 39,40},
+ {&(_tg__ZTV5EE223__9GG2231123[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE223__9GG2231123[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE223__9GG2231123[3]), 3,4},
+ {&(_tg__ZTV5FF112__9GG2231123[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF112__9GG2231123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF112__9GG2231123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2231123[];
+extern VTBL_ENTRY _ZTV9GG2231123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2231123[];
+static VTBL_ENTRY alt_thunk_names640[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22311233fooEv,_ZTv0_n12_N9GG22311233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22311233fooEv,_ZThn48_N9GG22311233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22311233fooEv,_ZThn40_N9GG22311233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22311233barEv,_ZTv0_n20_N9GG22311233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22311233barEv,_ZThn32_N9GG22311233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22311233barEv,_ZTv0_n12_N9GG22311233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22311233barEv,_ZThn24_N9GG22311233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22311233barEv,_ZThn16_N9GG22311233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22311233barEv,_ZTv0_n24_N9GG22311233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22311233barEv,_ZThn8_N9GG22311233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22311233fooEv,_ZTv0_n20_N9GG22311233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22311233fooEv,_ZThn8_N9GG22311233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2231123 = { "GG2231123", // class name
+ bases_GG2231123, 6,
+ &(vtc_GG2231123[0]), // expected_vtbl_contents
+ &(vtt_GG2231123[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2231123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2231123),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2231123),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names640,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2231133 : virtual EE223 , virtual FF113 {
+ int pg;
+ virtual void foo(); // _ZN9GG22311333fooEv
+ virtual void bar(); // _ZN9GG22311333barEv
+ ~GG2231133(); // tgen
+ GG2231133(); // tgen
+};
+//SIG(1 GG2231133) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2231133 ::foo(){vfunc_called(this, "_ZN9GG22311333fooEv");}
+void GG2231133 ::bar(){vfunc_called(this, "_ZN9GG22311333barEv");}
+GG2231133 ::~GG2231133(){ note_dtor("GG2231133", this);} // tgen
+GG2231133 ::GG2231133(){ note_ctor("GG2231133", this);} // tgen
+
+static void Test_GG2231133()
+{
+ extern Class_Descriptor cd_GG2231133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2231133, buf);
+ GG2231133 *dp, &lv = *(dp=new (buf) GG2231133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2231133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2231133)");
+ check_base_class_offset(lv, (AA2*)(EE223*), ABISELECT(32,16), "GG2231133");
+ check_base_class_offset(lv, (BB2*)(EE223*), ABISELECT(48,24), "GG2231133");
+ check_base_class_offset(lv, (EE223*), ABISELECT(16,8), "GG2231133");
+ check_base_class_offset(lv, (AA1*)(FF113*), ABISELECT(80,40), "GG2231133");
+ check_base_class_offset(lv, (BB1*)(FF113*), ABISELECT(96,48), "GG2231133");
+ check_base_class_offset(lv, (FF113*), ABISELECT(64,32), "GG2231133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2231133.pg");
+ test_class_info(&lv, &cd_GG2231133);
+ dp->~GG2231133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2231133(Test_GG2231133, "GG2231133", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2231133C1Ev();
+extern void _ZN9GG2231133D1Ev();
+Name_Map name_map_GG2231133[] = {
+ NSPAIR(_ZN9GG2231133C1Ev),
+ NSPAIR(_ZN9GG2231133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE223;
+extern VTBL_ENTRY _ZTI5EE223[];
+extern VTBL_ENTRY _ZTV5EE223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE223[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF113;
+extern VTBL_ENTRY _ZTI5FF113[];
+extern VTBL_ENTRY _ZTV5FF113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF113[];
+static Base_Class bases_GG2231133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE223, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF113, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2231133[];
+extern void _ZN9GG22311333fooEv();
+extern void _ZN9GG22311333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22311333fooEv,_ZTv0_n20_N9GG22311333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22311333fooEv,_ZThn8_N9GG22311333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22311333barEv,_ZTv0_n24_N9GG22311333barEv)();
+extern void ABISELECT(_ZThn16_N9GG22311333barEv,_ZThn8_N9GG22311333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22311333barEv,_ZTv0_n12_N9GG22311333barEv)();
+extern void ABISELECT(_ZThn32_N9GG22311333barEv,_ZThn16_N9GG22311333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22311333barEv,_ZTv0_n12_N9GG22311333barEv)();
+extern void ABISELECT(_ZThn48_N9GG22311333barEv,_ZThn24_N9GG22311333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22311333fooEv,_ZTv0_n20_N9GG22311333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22311333fooEv,_ZThn32_N9GG22311333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22311333barEv,_ZTv0_n24_N9GG22311333barEv)();
+extern void ABISELECT(_ZThn64_N9GG22311333barEv,_ZThn32_N9GG22311333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22311333fooEv,_ZTv0_n12_N9GG22311333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22311333fooEv,_ZThn40_N9GG22311333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22311333fooEv,_ZTv0_n12_N9GG22311333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG22311333fooEv,_ZThn48_N9GG22311333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2231133[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2231133[0]),
+ (VTBL_ENTRY)&_ZN9GG22311333fooEv,
+ (VTBL_ENTRY)&_ZN9GG22311333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2231133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22311333fooEv,_ZTv0_n20_N9GG22311333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22311333barEv,_ZTv0_n24_N9GG22311333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2231133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22311333barEv,_ZTv0_n12_N9GG22311333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2231133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22311333barEv,_ZTv0_n12_N9GG22311333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2231133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22311333fooEv,_ZTv0_n20_N9GG22311333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22311333barEv,_ZTv0_n24_N9GG22311333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2231133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22311333fooEv,_ZTv0_n12_N9GG22311333fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2231133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22311333fooEv,_ZTv0_n12_N9GG22311333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2231133[];
+extern void _ZN5EE2233fooEv();
+extern void _ZN5EE2233barEv();
+static VTBL_ENTRY _tg__ZTV5EE223__9GG2231133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&_ZN5EE2233fooEv,
+ (VTBL_ENTRY)&_ZN5EE2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE223__9GG2231133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE223__9GG2231133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void _ZN5FF1133fooEv();
+extern void _ZN5FF1133barEv();
+static VTBL_ENTRY _tg__ZTV5FF113__9GG2231133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&_ZN5FF1133fooEv,
+ (VTBL_ENTRY)&_ZN5FF1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF113__9GG2231133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1133fooEv,_ZThn16_N5FF1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF113__9GG2231133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+static VTT_ENTRY vtt_GG2231133[] = {
+ {&(_ZTV9GG2231133[8]), 8,42},
+ {&(_ZTV9GG2231133[16]), 16,42},
+ {&(_ZTV9GG2231133[21]), 21,42},
+ {&(_ZTV9GG2231133[25]), 25,42},
+ {&(_ZTV9GG2231133[32]), 32,42},
+ {&(_ZTV9GG2231133[37]), 37,42},
+ {&(_ZTV9GG2231133[41]), 41,42},
+ {&(_tg__ZTV5EE223__9GG2231133[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE223__9GG2231133[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE223__9GG2231133[3]), 3,4},
+ {&(_tg__ZTV5FF113__9GG2231133[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF113__9GG2231133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF113__9GG2231133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2231133[];
+extern VTBL_ENTRY _ZTV9GG2231133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2231133[];
+static VTBL_ENTRY alt_thunk_names641[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1133fooEv,_ZThn16_N5FF1133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22311333fooEv,_ZTv0_n12_N9GG22311333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22311333fooEv,_ZThn48_N9GG22311333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22311333fooEv,_ZThn40_N9GG22311333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22311333barEv,_ZTv0_n12_N9GG22311333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22311333barEv,_ZThn24_N9GG22311333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22311333barEv,_ZThn16_N9GG22311333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22311333barEv,_ZTv0_n24_N9GG22311333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22311333barEv,_ZThn32_N9GG22311333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22311333barEv,_ZThn8_N9GG22311333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22311333fooEv,_ZTv0_n20_N9GG22311333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22311333fooEv,_ZThn32_N9GG22311333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22311333fooEv,_ZThn8_N9GG22311333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2231133 = { "GG2231133", // class name
+ bases_GG2231133, 6,
+ &(vtc_GG2231133[0]), // expected_vtbl_contents
+ &(vtt_GG2231133[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2231133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2231133),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2231133),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names641,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2231213 : virtual EE223 , virtual FF121 {
+ int pg;
+ virtual void foo(); // _ZN9GG22312133fooEv
+ virtual void bar(); // _ZN9GG22312133barEv
+ ~GG2231213(); // tgen
+ GG2231213(); // tgen
+};
+//SIG(1 GG2231213) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG2231213 ::foo(){vfunc_called(this, "_ZN9GG22312133fooEv");}
+void GG2231213 ::bar(){vfunc_called(this, "_ZN9GG22312133barEv");}
+GG2231213 ::~GG2231213(){ note_dtor("GG2231213", this);} // tgen
+GG2231213 ::GG2231213(){ note_ctor("GG2231213", this);} // tgen
+
+static void Test_GG2231213()
+{
+ extern Class_Descriptor cd_GG2231213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2231213, buf);
+ GG2231213 *dp, &lv = *(dp=new (buf) GG2231213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2231213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2231213)");
+ check_base_class_offset(lv, (AA2*)(EE223*), ABISELECT(32,16), "GG2231213");
+ check_base_class_offset(lv, (BB2*)(EE223*), ABISELECT(48,24), "GG2231213");
+ check_base_class_offset(lv, (BB2*)(FF121*), ABISELECT(48,24), "GG2231213");
+ check_base_class_offset(lv, (EE223*), ABISELECT(16,8), "GG2231213");
+ check_base_class_offset(lv, (AA1*)(FF121*), ABISELECT(80,40), "GG2231213");
+ check_base_class_offset(lv, (FF121*), ABISELECT(64,32), "GG2231213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2231213.pg");
+ test_class_info(&lv, &cd_GG2231213);
+ dp->~GG2231213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2231213(Test_GG2231213, "GG2231213", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2231213C1Ev();
+extern void _ZN9GG2231213D1Ev();
+Name_Map name_map_GG2231213[] = {
+ NSPAIR(_ZN9GG2231213C1Ev),
+ NSPAIR(_ZN9GG2231213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE223;
+extern VTBL_ENTRY _ZTI5EE223[];
+extern VTBL_ENTRY _ZTV5EE223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE223[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF121;
+extern VTBL_ENTRY _ZTI5FF121[];
+extern VTBL_ENTRY _ZTV5FF121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF121[];
+static Base_Class bases_GG2231213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE223, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF121, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2231213[];
+extern void _ZN9GG22312133fooEv();
+extern void _ZN9GG22312133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22312133fooEv,_ZTv0_n20_N9GG22312133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22312133fooEv,_ZThn8_N9GG22312133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22312133barEv,_ZTv0_n24_N9GG22312133barEv)();
+extern void ABISELECT(_ZThn16_N9GG22312133barEv,_ZThn8_N9GG22312133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22312133barEv,_ZTv0_n12_N9GG22312133barEv)();
+extern void ABISELECT(_ZThn32_N9GG22312133barEv,_ZThn16_N9GG22312133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22312133barEv,_ZTv0_n12_N9GG22312133barEv)();
+extern void ABISELECT(_ZThn48_N9GG22312133barEv,_ZThn24_N9GG22312133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22312133fooEv,_ZTv0_n20_N9GG22312133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22312133fooEv,_ZThn32_N9GG22312133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22312133fooEv,_ZTv0_n12_N9GG22312133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22312133fooEv,_ZThn40_N9GG22312133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2231213[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2231213[0]),
+ (VTBL_ENTRY)&_ZN9GG22312133fooEv,
+ (VTBL_ENTRY)&_ZN9GG22312133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2231213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22312133fooEv,_ZTv0_n20_N9GG22312133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22312133barEv,_ZTv0_n24_N9GG22312133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2231213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22312133barEv,_ZTv0_n12_N9GG22312133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2231213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22312133barEv,_ZTv0_n12_N9GG22312133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2231213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22312133fooEv,_ZTv0_n20_N9GG22312133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2231213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22312133fooEv,_ZTv0_n12_N9GG22312133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2231213[];
+extern void _ZN5EE2233fooEv();
+extern void _ZN5EE2233barEv();
+static VTBL_ENTRY _tg__ZTV5EE223__9GG2231213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&_ZN5EE2233fooEv,
+ (VTBL_ENTRY)&_ZN5EE2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE223__9GG2231213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE223__9GG2231213[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void _ZN5FF1213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF121__9GG2231213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN5FF1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1213fooEv,_ZThn8_N5FF1213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF121__9GG2231213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF121__9GG2231213[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG2231213[] = {
+ {&(_ZTV9GG2231213[7]), 7,35},
+ {&(_ZTV9GG2231213[15]), 15,35},
+ {&(_ZTV9GG2231213[20]), 20,35},
+ {&(_ZTV9GG2231213[24]), 24,35},
+ {&(_ZTV9GG2231213[30]), 30,35},
+ {&(_ZTV9GG2231213[34]), 34,35},
+ {&(_tg__ZTV5EE223__9GG2231213[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE223__9GG2231213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE223__9GG2231213[3]), 3,4},
+ {&(_tg__ZTV5FF121__9GG2231213[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF121__9GG2231213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF121__9GG2231213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2231213[];
+extern VTBL_ENTRY _ZTV9GG2231213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2231213[];
+static VTBL_ENTRY alt_thunk_names642[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1213fooEv,_ZThn8_N5FF1213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22312133fooEv,_ZTv0_n12_N9GG22312133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22312133fooEv,_ZThn40_N9GG22312133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22312133barEv,_ZTv0_n12_N9GG22312133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22312133barEv,_ZThn24_N9GG22312133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22312133barEv,_ZThn16_N9GG22312133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22312133barEv,_ZTv0_n24_N9GG22312133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22312133barEv,_ZThn8_N9GG22312133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22312133fooEv,_ZTv0_n20_N9GG22312133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22312133fooEv,_ZThn32_N9GG22312133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22312133fooEv,_ZThn8_N9GG22312133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2231213 = { "GG2231213", // class name
+ bases_GG2231213, 5,
+ &(vtc_GG2231213[0]), // expected_vtbl_contents
+ &(vtt_GG2231213[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2231213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2231213),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2231213),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names642,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2231223 : virtual EE223 , virtual FF122 {
+ int pg;
+ virtual void foo(); // _ZN9GG22312233fooEv
+ virtual void bar(); // _ZN9GG22312233barEv
+ ~GG2231223(); // tgen
+ GG2231223(); // tgen
+};
+//SIG(1 GG2231223) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG2231223 ::foo(){vfunc_called(this, "_ZN9GG22312233fooEv");}
+void GG2231223 ::bar(){vfunc_called(this, "_ZN9GG22312233barEv");}
+GG2231223 ::~GG2231223(){ note_dtor("GG2231223", this);} // tgen
+GG2231223 ::GG2231223(){ note_ctor("GG2231223", this);} // tgen
+
+static void Test_GG2231223()
+{
+ extern Class_Descriptor cd_GG2231223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2231223, buf);
+ GG2231223 *dp, &lv = *(dp=new (buf) GG2231223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2231223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2231223)");
+ check_base_class_offset(lv, (AA2*)(EE223*), ABISELECT(32,16), "GG2231223");
+ check_base_class_offset(lv, (BB2*)(EE223*), ABISELECT(48,24), "GG2231223");
+ check_base_class_offset(lv, (BB2*)(FF122*), ABISELECT(48,24), "GG2231223");
+ check_base_class_offset(lv, (EE223*), ABISELECT(16,8), "GG2231223");
+ check_base_class_offset(lv, (AA1*)(FF122*), ABISELECT(80,40), "GG2231223");
+ check_base_class_offset(lv, (FF122*), ABISELECT(64,32), "GG2231223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2231223.pg");
+ test_class_info(&lv, &cd_GG2231223);
+ dp->~GG2231223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2231223(Test_GG2231223, "GG2231223", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2231223C1Ev();
+extern void _ZN9GG2231223D1Ev();
+Name_Map name_map_GG2231223[] = {
+ NSPAIR(_ZN9GG2231223C1Ev),
+ NSPAIR(_ZN9GG2231223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE223;
+extern VTBL_ENTRY _ZTI5EE223[];
+extern VTBL_ENTRY _ZTV5EE223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE223[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF122;
+extern VTBL_ENTRY _ZTI5FF122[];
+extern VTBL_ENTRY _ZTV5FF122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF122[];
+static Base_Class bases_GG2231223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE223, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF122, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2231223[];
+extern void _ZN9GG22312233fooEv();
+extern void _ZN9GG22312233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22312233fooEv,_ZTv0_n20_N9GG22312233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22312233fooEv,_ZThn8_N9GG22312233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22312233barEv,_ZTv0_n24_N9GG22312233barEv)();
+extern void ABISELECT(_ZThn16_N9GG22312233barEv,_ZThn8_N9GG22312233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22312233barEv,_ZTv0_n12_N9GG22312233barEv)();
+extern void ABISELECT(_ZThn32_N9GG22312233barEv,_ZThn16_N9GG22312233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22312233barEv,_ZTv0_n12_N9GG22312233barEv)();
+extern void ABISELECT(_ZThn48_N9GG22312233barEv,_ZThn24_N9GG22312233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22312233barEv,_ZTv0_n20_N9GG22312233barEv)();
+extern void ABISELECT(_ZThn64_N9GG22312233barEv,_ZThn32_N9GG22312233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22312233fooEv,_ZTv0_n12_N9GG22312233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22312233fooEv,_ZThn40_N9GG22312233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2231223[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2231223[0]),
+ (VTBL_ENTRY)&_ZN9GG22312233fooEv,
+ (VTBL_ENTRY)&_ZN9GG22312233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2231223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22312233fooEv,_ZTv0_n20_N9GG22312233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22312233barEv,_ZTv0_n24_N9GG22312233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2231223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22312233barEv,_ZTv0_n12_N9GG22312233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2231223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22312233barEv,_ZTv0_n12_N9GG22312233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2231223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22312233barEv,_ZTv0_n20_N9GG22312233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2231223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22312233fooEv,_ZTv0_n12_N9GG22312233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2231223[];
+extern void _ZN5EE2233fooEv();
+extern void _ZN5EE2233barEv();
+static VTBL_ENTRY _tg__ZTV5EE223__9GG2231223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&_ZN5EE2233fooEv,
+ (VTBL_ENTRY)&_ZN5EE2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE223__9GG2231223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE223__9GG2231223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void _ZN5FF1223barEv();
+static VTBL_ENTRY _tg__ZTV5FF122__9GG2231223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN5FF1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF122__9GG2231223[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF122__9GG2231223[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv),
+};
+static VTT_ENTRY vtt_GG2231223[] = {
+ {&(_ZTV9GG2231223[7]), 7,35},
+ {&(_ZTV9GG2231223[15]), 15,35},
+ {&(_ZTV9GG2231223[20]), 20,35},
+ {&(_ZTV9GG2231223[24]), 24,35},
+ {&(_ZTV9GG2231223[30]), 30,35},
+ {&(_ZTV9GG2231223[34]), 34,35},
+ {&(_tg__ZTV5EE223__9GG2231223[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE223__9GG2231223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE223__9GG2231223[3]), 3,4},
+ {&(_tg__ZTV5FF122__9GG2231223[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF122__9GG2231223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF122__9GG2231223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2231223[];
+extern VTBL_ENTRY _ZTV9GG2231223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2231223[];
+static VTBL_ENTRY alt_thunk_names643[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22312233fooEv,_ZTv0_n12_N9GG22312233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22312233fooEv,_ZThn40_N9GG22312233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22312233barEv,_ZTv0_n20_N9GG22312233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22312233barEv,_ZThn32_N9GG22312233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22312233barEv,_ZTv0_n12_N9GG22312233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22312233barEv,_ZThn24_N9GG22312233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22312233barEv,_ZThn16_N9GG22312233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22312233barEv,_ZTv0_n24_N9GG22312233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22312233barEv,_ZThn8_N9GG22312233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22312233fooEv,_ZTv0_n20_N9GG22312233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22312233fooEv,_ZThn8_N9GG22312233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2231223 = { "GG2231223", // class name
+ bases_GG2231223, 5,
+ &(vtc_GG2231223[0]), // expected_vtbl_contents
+ &(vtt_GG2231223[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2231223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2231223),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2231223),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names643,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2231233 : virtual EE223 , virtual FF123 {
+ int pg;
+ virtual void foo(); // _ZN9GG22312333fooEv
+ virtual void bar(); // _ZN9GG22312333barEv
+ ~GG2231233(); // tgen
+ GG2231233(); // tgen
+};
+//SIG(1 GG2231233) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2231233 ::foo(){vfunc_called(this, "_ZN9GG22312333fooEv");}
+void GG2231233 ::bar(){vfunc_called(this, "_ZN9GG22312333barEv");}
+GG2231233 ::~GG2231233(){ note_dtor("GG2231233", this);} // tgen
+GG2231233 ::GG2231233(){ note_ctor("GG2231233", this);} // tgen
+
+static void Test_GG2231233()
+{
+ extern Class_Descriptor cd_GG2231233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2231233, buf);
+ GG2231233 *dp, &lv = *(dp=new (buf) GG2231233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2231233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2231233)");
+ check_base_class_offset(lv, (AA2*)(EE223*), ABISELECT(32,16), "GG2231233");
+ check_base_class_offset(lv, (BB2*)(EE223*), ABISELECT(48,24), "GG2231233");
+ check_base_class_offset(lv, (BB2*)(FF123*), ABISELECT(48,24), "GG2231233");
+ check_base_class_offset(lv, (EE223*), ABISELECT(16,8), "GG2231233");
+ check_base_class_offset(lv, (AA1*)(FF123*), ABISELECT(80,40), "GG2231233");
+ check_base_class_offset(lv, (FF123*), ABISELECT(64,32), "GG2231233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2231233.pg");
+ test_class_info(&lv, &cd_GG2231233);
+ dp->~GG2231233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2231233(Test_GG2231233, "GG2231233", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2231233C1Ev();
+extern void _ZN9GG2231233D1Ev();
+Name_Map name_map_GG2231233[] = {
+ NSPAIR(_ZN9GG2231233C1Ev),
+ NSPAIR(_ZN9GG2231233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE223;
+extern VTBL_ENTRY _ZTI5EE223[];
+extern VTBL_ENTRY _ZTV5EE223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE223[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF123;
+extern VTBL_ENTRY _ZTI5FF123[];
+extern VTBL_ENTRY _ZTV5FF123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF123[];
+static Base_Class bases_GG2231233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE223, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF123, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2231233[];
+extern void _ZN9GG22312333fooEv();
+extern void _ZN9GG22312333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22312333fooEv,_ZTv0_n20_N9GG22312333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22312333fooEv,_ZThn8_N9GG22312333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22312333barEv,_ZTv0_n24_N9GG22312333barEv)();
+extern void ABISELECT(_ZThn16_N9GG22312333barEv,_ZThn8_N9GG22312333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22312333barEv,_ZTv0_n12_N9GG22312333barEv)();
+extern void ABISELECT(_ZThn32_N9GG22312333barEv,_ZThn16_N9GG22312333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22312333barEv,_ZTv0_n12_N9GG22312333barEv)();
+extern void ABISELECT(_ZThn48_N9GG22312333barEv,_ZThn24_N9GG22312333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22312333fooEv,_ZTv0_n20_N9GG22312333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22312333fooEv,_ZThn32_N9GG22312333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22312333barEv,_ZTv0_n24_N9GG22312333barEv)();
+extern void ABISELECT(_ZThn64_N9GG22312333barEv,_ZThn32_N9GG22312333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22312333fooEv,_ZTv0_n12_N9GG22312333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22312333fooEv,_ZThn40_N9GG22312333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2231233[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2231233[0]),
+ (VTBL_ENTRY)&_ZN9GG22312333fooEv,
+ (VTBL_ENTRY)&_ZN9GG22312333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2231233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22312333fooEv,_ZTv0_n20_N9GG22312333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22312333barEv,_ZTv0_n24_N9GG22312333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2231233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22312333barEv,_ZTv0_n12_N9GG22312333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2231233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22312333barEv,_ZTv0_n12_N9GG22312333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2231233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22312333fooEv,_ZTv0_n20_N9GG22312333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22312333barEv,_ZTv0_n24_N9GG22312333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2231233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22312333fooEv,_ZTv0_n12_N9GG22312333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2231233[];
+extern void _ZN5EE2233fooEv();
+extern void _ZN5EE2233barEv();
+static VTBL_ENTRY _tg__ZTV5EE223__9GG2231233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&_ZN5EE2233fooEv,
+ (VTBL_ENTRY)&_ZN5EE2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE223__9GG2231233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE223__9GG2231233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void _ZN5FF1233fooEv();
+extern void _ZN5FF1233barEv();
+static VTBL_ENTRY _tg__ZTV5FF123__9GG2231233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&_ZN5FF1233fooEv,
+ (VTBL_ENTRY)&_ZN5FF1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1233fooEv,_ZThn8_N5FF1233fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF123__9GG2231233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF123__9GG2231233[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv),
+};
+static VTT_ENTRY vtt_GG2231233[] = {
+ {&(_ZTV9GG2231233[7]), 7,37},
+ {&(_ZTV9GG2231233[15]), 15,37},
+ {&(_ZTV9GG2231233[20]), 20,37},
+ {&(_ZTV9GG2231233[24]), 24,37},
+ {&(_ZTV9GG2231233[31]), 31,37},
+ {&(_ZTV9GG2231233[36]), 36,37},
+ {&(_tg__ZTV5EE223__9GG2231233[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE223__9GG2231233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE223__9GG2231233[3]), 3,4},
+ {&(_tg__ZTV5FF123__9GG2231233[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF123__9GG2231233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF123__9GG2231233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2231233[];
+extern VTBL_ENTRY _ZTV9GG2231233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2231233[];
+static VTBL_ENTRY alt_thunk_names644[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1233fooEv,_ZThn8_N5FF1233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22312333fooEv,_ZTv0_n12_N9GG22312333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22312333fooEv,_ZThn40_N9GG22312333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22312333barEv,_ZTv0_n12_N9GG22312333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22312333barEv,_ZThn24_N9GG22312333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22312333barEv,_ZThn16_N9GG22312333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22312333barEv,_ZTv0_n24_N9GG22312333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22312333barEv,_ZThn32_N9GG22312333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22312333barEv,_ZThn8_N9GG22312333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22312333fooEv,_ZTv0_n20_N9GG22312333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22312333fooEv,_ZThn32_N9GG22312333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22312333fooEv,_ZThn8_N9GG22312333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2231233 = { "GG2231233", // class name
+ bases_GG2231233, 5,
+ &(vtc_GG2231233[0]), // expected_vtbl_contents
+ &(vtt_GG2231233[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2231233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2231233),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2231233),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names644,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2231313 : virtual EE223 , virtual FF131 {
+ int pg;
+ virtual void foo(); // _ZN9GG22313133fooEv
+ virtual void bar(); // _ZN9GG22313133barEv
+ ~GG2231313(); // tgen
+ GG2231313(); // tgen
+};
+//SIG(1 GG2231313) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2231313 ::foo(){vfunc_called(this, "_ZN9GG22313133fooEv");}
+void GG2231313 ::bar(){vfunc_called(this, "_ZN9GG22313133barEv");}
+GG2231313 ::~GG2231313(){ note_dtor("GG2231313", this);} // tgen
+GG2231313 ::GG2231313(){ note_ctor("GG2231313", this);} // tgen
+
+static void Test_GG2231313()
+{
+ extern Class_Descriptor cd_GG2231313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2231313, buf);
+ GG2231313 *dp, &lv = *(dp=new (buf) GG2231313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2231313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2231313)");
+ check_base_class_offset(lv, (AA2*)(EE223*), ABISELECT(32,16), "GG2231313");
+ check_base_class_offset(lv, (BB2*)(EE223*), ABISELECT(48,24), "GG2231313");
+ check_base_class_offset(lv, (EE223*), ABISELECT(16,8), "GG2231313");
+ check_base_class_offset(lv, (AA1*)(FF131*), ABISELECT(80,40), "GG2231313");
+ check_base_class_offset(lv, (BB3*)(FF131*), ABISELECT(96,48), "GG2231313");
+ check_base_class_offset(lv, (FF131*), ABISELECT(64,32), "GG2231313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2231313.pg");
+ test_class_info(&lv, &cd_GG2231313);
+ dp->~GG2231313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2231313(Test_GG2231313, "GG2231313", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2231313C1Ev();
+extern void _ZN9GG2231313D1Ev();
+Name_Map name_map_GG2231313[] = {
+ NSPAIR(_ZN9GG2231313C1Ev),
+ NSPAIR(_ZN9GG2231313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE223;
+extern VTBL_ENTRY _ZTI5EE223[];
+extern VTBL_ENTRY _ZTV5EE223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE223[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF131;
+extern VTBL_ENTRY _ZTI5FF131[];
+extern VTBL_ENTRY _ZTV5FF131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF131[];
+static Base_Class bases_GG2231313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE223, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF131, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2231313[];
+extern void _ZN9GG22313133fooEv();
+extern void _ZN9GG22313133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22313133fooEv,_ZTv0_n20_N9GG22313133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22313133fooEv,_ZThn8_N9GG22313133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22313133barEv,_ZTv0_n24_N9GG22313133barEv)();
+extern void ABISELECT(_ZThn16_N9GG22313133barEv,_ZThn8_N9GG22313133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22313133barEv,_ZTv0_n12_N9GG22313133barEv)();
+extern void ABISELECT(_ZThn32_N9GG22313133barEv,_ZThn16_N9GG22313133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22313133barEv,_ZTv0_n12_N9GG22313133barEv)();
+extern void ABISELECT(_ZThn48_N9GG22313133barEv,_ZThn24_N9GG22313133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22313133fooEv,_ZTv0_n20_N9GG22313133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22313133fooEv,_ZThn32_N9GG22313133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22313133fooEv,_ZTv0_n12_N9GG22313133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22313133fooEv,_ZThn40_N9GG22313133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22313133fooEv,_ZTv0_n12_N9GG22313133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG22313133fooEv,_ZThn48_N9GG22313133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22313133barEv,_ZTv0_n16_N9GG22313133barEv)();
+extern void ABISELECT(_ZThn96_N9GG22313133barEv,_ZThn48_N9GG22313133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2231313[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2231313[0]),
+ (VTBL_ENTRY)&_ZN9GG22313133fooEv,
+ (VTBL_ENTRY)&_ZN9GG22313133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2231313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22313133fooEv,_ZTv0_n20_N9GG22313133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22313133barEv,_ZTv0_n24_N9GG22313133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2231313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22313133barEv,_ZTv0_n12_N9GG22313133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2231313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22313133barEv,_ZTv0_n12_N9GG22313133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2231313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22313133fooEv,_ZTv0_n20_N9GG22313133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2231313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22313133fooEv,_ZTv0_n12_N9GG22313133fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2231313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22313133fooEv,_ZTv0_n12_N9GG22313133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22313133barEv,_ZTv0_n16_N9GG22313133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2231313[];
+extern void _ZN5EE2233fooEv();
+extern void _ZN5EE2233barEv();
+static VTBL_ENTRY _tg__ZTV5EE223__9GG2231313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&_ZN5EE2233fooEv,
+ (VTBL_ENTRY)&_ZN5EE2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE223__9GG2231313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE223__9GG2231313[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void _ZN5FF1313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF131__9GG2231313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&_ZN5FF1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF131__9GG2231313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1313fooEv,_ZThn16_N5FF1313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF131__9GG2231313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG2231313[] = {
+ {&(_ZTV9GG2231313[8]), 8,42},
+ {&(_ZTV9GG2231313[16]), 16,42},
+ {&(_ZTV9GG2231313[21]), 21,42},
+ {&(_ZTV9GG2231313[25]), 25,42},
+ {&(_ZTV9GG2231313[31]), 31,42},
+ {&(_ZTV9GG2231313[35]), 35,42},
+ {&(_ZTV9GG2231313[40]), 40,42},
+ {&(_tg__ZTV5EE223__9GG2231313[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE223__9GG2231313[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE223__9GG2231313[3]), 3,4},
+ {&(_tg__ZTV5FF131__9GG2231313[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF131__9GG2231313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF131__9GG2231313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2231313[];
+extern VTBL_ENTRY _ZTV9GG2231313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2231313[];
+static VTBL_ENTRY alt_thunk_names645[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1313fooEv,_ZThn16_N5FF1313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22313133barEv,_ZTv0_n16_N9GG22313133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22313133barEv,_ZThn48_N9GG22313133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22313133fooEv,_ZTv0_n12_N9GG22313133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22313133fooEv,_ZThn48_N9GG22313133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22313133fooEv,_ZThn40_N9GG22313133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22313133barEv,_ZTv0_n12_N9GG22313133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22313133barEv,_ZThn24_N9GG22313133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22313133barEv,_ZThn16_N9GG22313133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22313133barEv,_ZTv0_n24_N9GG22313133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22313133barEv,_ZThn8_N9GG22313133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22313133fooEv,_ZTv0_n20_N9GG22313133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22313133fooEv,_ZThn32_N9GG22313133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22313133fooEv,_ZThn8_N9GG22313133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2231313 = { "GG2231313", // class name
+ bases_GG2231313, 6,
+ &(vtc_GG2231313[0]), // expected_vtbl_contents
+ &(vtt_GG2231313[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2231313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2231313),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2231313),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names645,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2231323 : virtual EE223 , virtual FF132 {
+ int pg;
+ virtual void foo(); // _ZN9GG22313233fooEv
+ virtual void bar(); // _ZN9GG22313233barEv
+ ~GG2231323(); // tgen
+ GG2231323(); // tgen
+};
+//SIG(1 GG2231323) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2231323 ::foo(){vfunc_called(this, "_ZN9GG22313233fooEv");}
+void GG2231323 ::bar(){vfunc_called(this, "_ZN9GG22313233barEv");}
+GG2231323 ::~GG2231323(){ note_dtor("GG2231323", this);} // tgen
+GG2231323 ::GG2231323(){ note_ctor("GG2231323", this);} // tgen
+
+static void Test_GG2231323()
+{
+ extern Class_Descriptor cd_GG2231323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2231323, buf);
+ GG2231323 *dp, &lv = *(dp=new (buf) GG2231323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2231323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2231323)");
+ check_base_class_offset(lv, (AA2*)(EE223*), ABISELECT(32,16), "GG2231323");
+ check_base_class_offset(lv, (BB2*)(EE223*), ABISELECT(48,24), "GG2231323");
+ check_base_class_offset(lv, (EE223*), ABISELECT(16,8), "GG2231323");
+ check_base_class_offset(lv, (AA1*)(FF132*), ABISELECT(80,40), "GG2231323");
+ check_base_class_offset(lv, (BB3*)(FF132*), ABISELECT(96,48), "GG2231323");
+ check_base_class_offset(lv, (FF132*), ABISELECT(64,32), "GG2231323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2231323.pg");
+ test_class_info(&lv, &cd_GG2231323);
+ dp->~GG2231323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2231323(Test_GG2231323, "GG2231323", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2231323C1Ev();
+extern void _ZN9GG2231323D1Ev();
+Name_Map name_map_GG2231323[] = {
+ NSPAIR(_ZN9GG2231323C1Ev),
+ NSPAIR(_ZN9GG2231323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE223;
+extern VTBL_ENTRY _ZTI5EE223[];
+extern VTBL_ENTRY _ZTV5EE223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE223[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF132;
+extern VTBL_ENTRY _ZTI5FF132[];
+extern VTBL_ENTRY _ZTV5FF132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF132[];
+static Base_Class bases_GG2231323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE223, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF132, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2231323[];
+extern void _ZN9GG22313233fooEv();
+extern void _ZN9GG22313233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22313233fooEv,_ZTv0_n20_N9GG22313233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22313233fooEv,_ZThn8_N9GG22313233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22313233barEv,_ZTv0_n24_N9GG22313233barEv)();
+extern void ABISELECT(_ZThn16_N9GG22313233barEv,_ZThn8_N9GG22313233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22313233barEv,_ZTv0_n12_N9GG22313233barEv)();
+extern void ABISELECT(_ZThn32_N9GG22313233barEv,_ZThn16_N9GG22313233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22313233barEv,_ZTv0_n12_N9GG22313233barEv)();
+extern void ABISELECT(_ZThn48_N9GG22313233barEv,_ZThn24_N9GG22313233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22313233barEv,_ZTv0_n20_N9GG22313233barEv)();
+extern void ABISELECT(_ZThn64_N9GG22313233barEv,_ZThn32_N9GG22313233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22313233fooEv,_ZTv0_n12_N9GG22313233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22313233fooEv,_ZThn40_N9GG22313233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22313233fooEv,_ZTv0_n12_N9GG22313233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG22313233fooEv,_ZThn48_N9GG22313233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22313233barEv,_ZTv0_n16_N9GG22313233barEv)();
+extern void ABISELECT(_ZThn96_N9GG22313233barEv,_ZThn48_N9GG22313233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2231323[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2231323[0]),
+ (VTBL_ENTRY)&_ZN9GG22313233fooEv,
+ (VTBL_ENTRY)&_ZN9GG22313233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2231323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22313233fooEv,_ZTv0_n20_N9GG22313233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22313233barEv,_ZTv0_n24_N9GG22313233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2231323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22313233barEv,_ZTv0_n12_N9GG22313233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2231323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22313233barEv,_ZTv0_n12_N9GG22313233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2231323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22313233barEv,_ZTv0_n20_N9GG22313233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2231323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22313233fooEv,_ZTv0_n12_N9GG22313233fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2231323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22313233fooEv,_ZTv0_n12_N9GG22313233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22313233barEv,_ZTv0_n16_N9GG22313233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2231323[];
+extern void _ZN5EE2233fooEv();
+extern void _ZN5EE2233barEv();
+static VTBL_ENTRY _tg__ZTV5EE223__9GG2231323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&_ZN5EE2233fooEv,
+ (VTBL_ENTRY)&_ZN5EE2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE223__9GG2231323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE223__9GG2231323[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void _ZN5FF1323barEv();
+static VTBL_ENTRY _tg__ZTV5FF132__9GG2231323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN5FF1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF132__9GG2231323[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv)();
+extern void ABISELECT(_ZThn32_N5FF1323barEv,_ZThn16_N5FF1323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF132__9GG2231323[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv),
+};
+static VTT_ENTRY vtt_GG2231323[] = {
+ {&(_ZTV9GG2231323[8]), 8,42},
+ {&(_ZTV9GG2231323[16]), 16,42},
+ {&(_ZTV9GG2231323[21]), 21,42},
+ {&(_ZTV9GG2231323[25]), 25,42},
+ {&(_ZTV9GG2231323[31]), 31,42},
+ {&(_ZTV9GG2231323[35]), 35,42},
+ {&(_ZTV9GG2231323[40]), 40,42},
+ {&(_tg__ZTV5EE223__9GG2231323[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE223__9GG2231323[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE223__9GG2231323[3]), 3,4},
+ {&(_tg__ZTV5FF132__9GG2231323[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF132__9GG2231323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF132__9GG2231323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2231323[];
+extern VTBL_ENTRY _ZTV9GG2231323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2231323[];
+static VTBL_ENTRY alt_thunk_names646[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1323barEv,_ZThn16_N5FF1323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22313233barEv,_ZTv0_n16_N9GG22313233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22313233barEv,_ZThn48_N9GG22313233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22313233fooEv,_ZTv0_n12_N9GG22313233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22313233fooEv,_ZThn48_N9GG22313233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22313233fooEv,_ZThn40_N9GG22313233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22313233barEv,_ZTv0_n20_N9GG22313233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22313233barEv,_ZThn32_N9GG22313233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22313233barEv,_ZTv0_n12_N9GG22313233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22313233barEv,_ZThn24_N9GG22313233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22313233barEv,_ZThn16_N9GG22313233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22313233barEv,_ZTv0_n24_N9GG22313233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22313233barEv,_ZThn8_N9GG22313233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22313233fooEv,_ZTv0_n20_N9GG22313233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22313233fooEv,_ZThn8_N9GG22313233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2231323 = { "GG2231323", // class name
+ bases_GG2231323, 6,
+ &(vtc_GG2231323[0]), // expected_vtbl_contents
+ &(vtt_GG2231323[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2231323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2231323),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2231323),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names646,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2231333 : virtual EE223 , virtual FF133 {
+ int pg;
+ virtual void foo(); // _ZN9GG22313333fooEv
+ virtual void bar(); // _ZN9GG22313333barEv
+ ~GG2231333(); // tgen
+ GG2231333(); // tgen
+};
+//SIG(1 GG2231333) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2231333 ::foo(){vfunc_called(this, "_ZN9GG22313333fooEv");}
+void GG2231333 ::bar(){vfunc_called(this, "_ZN9GG22313333barEv");}
+GG2231333 ::~GG2231333(){ note_dtor("GG2231333", this);} // tgen
+GG2231333 ::GG2231333(){ note_ctor("GG2231333", this);} // tgen
+
+static void Test_GG2231333()
+{
+ extern Class_Descriptor cd_GG2231333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2231333, buf);
+ GG2231333 *dp, &lv = *(dp=new (buf) GG2231333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2231333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2231333)");
+ check_base_class_offset(lv, (AA2*)(EE223*), ABISELECT(32,16), "GG2231333");
+ check_base_class_offset(lv, (BB2*)(EE223*), ABISELECT(48,24), "GG2231333");
+ check_base_class_offset(lv, (EE223*), ABISELECT(16,8), "GG2231333");
+ check_base_class_offset(lv, (AA1*)(FF133*), ABISELECT(80,40), "GG2231333");
+ check_base_class_offset(lv, (BB3*)(FF133*), ABISELECT(96,48), "GG2231333");
+ check_base_class_offset(lv, (FF133*), ABISELECT(64,32), "GG2231333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2231333.pg");
+ test_class_info(&lv, &cd_GG2231333);
+ dp->~GG2231333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2231333(Test_GG2231333, "GG2231333", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2231333C1Ev();
+extern void _ZN9GG2231333D1Ev();
+Name_Map name_map_GG2231333[] = {
+ NSPAIR(_ZN9GG2231333C1Ev),
+ NSPAIR(_ZN9GG2231333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE223;
+extern VTBL_ENTRY _ZTI5EE223[];
+extern VTBL_ENTRY _ZTV5EE223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE223[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF133;
+extern VTBL_ENTRY _ZTI5FF133[];
+extern VTBL_ENTRY _ZTV5FF133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF133[];
+static Base_Class bases_GG2231333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE223, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF133, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2231333[];
+extern void _ZN9GG22313333fooEv();
+extern void _ZN9GG22313333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22313333fooEv,_ZTv0_n20_N9GG22313333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22313333fooEv,_ZThn8_N9GG22313333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22313333barEv,_ZTv0_n24_N9GG22313333barEv)();
+extern void ABISELECT(_ZThn16_N9GG22313333barEv,_ZThn8_N9GG22313333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22313333barEv,_ZTv0_n12_N9GG22313333barEv)();
+extern void ABISELECT(_ZThn32_N9GG22313333barEv,_ZThn16_N9GG22313333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22313333barEv,_ZTv0_n12_N9GG22313333barEv)();
+extern void ABISELECT(_ZThn48_N9GG22313333barEv,_ZThn24_N9GG22313333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22313333fooEv,_ZTv0_n20_N9GG22313333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22313333fooEv,_ZThn32_N9GG22313333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22313333barEv,_ZTv0_n24_N9GG22313333barEv)();
+extern void ABISELECT(_ZThn64_N9GG22313333barEv,_ZThn32_N9GG22313333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22313333fooEv,_ZTv0_n12_N9GG22313333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22313333fooEv,_ZThn40_N9GG22313333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22313333fooEv,_ZTv0_n12_N9GG22313333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG22313333fooEv,_ZThn48_N9GG22313333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22313333barEv,_ZTv0_n16_N9GG22313333barEv)();
+extern void ABISELECT(_ZThn96_N9GG22313333barEv,_ZThn48_N9GG22313333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2231333[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2231333[0]),
+ (VTBL_ENTRY)&_ZN9GG22313333fooEv,
+ (VTBL_ENTRY)&_ZN9GG22313333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2231333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22313333fooEv,_ZTv0_n20_N9GG22313333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22313333barEv,_ZTv0_n24_N9GG22313333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2231333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22313333barEv,_ZTv0_n12_N9GG22313333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2231333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22313333barEv,_ZTv0_n12_N9GG22313333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2231333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22313333fooEv,_ZTv0_n20_N9GG22313333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22313333barEv,_ZTv0_n24_N9GG22313333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2231333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22313333fooEv,_ZTv0_n12_N9GG22313333fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2231333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22313333fooEv,_ZTv0_n12_N9GG22313333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22313333barEv,_ZTv0_n16_N9GG22313333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2231333[];
+extern void _ZN5EE2233fooEv();
+extern void _ZN5EE2233barEv();
+static VTBL_ENTRY _tg__ZTV5EE223__9GG2231333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&_ZN5EE2233fooEv,
+ (VTBL_ENTRY)&_ZN5EE2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE223__9GG2231333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE223__9GG2231333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void _ZN5FF1333fooEv();
+extern void _ZN5FF1333barEv();
+static VTBL_ENTRY _tg__ZTV5FF133__9GG2231333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&_ZN5FF1333fooEv,
+ (VTBL_ENTRY)&_ZN5FF1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF133__9GG2231333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1333fooEv,_ZThn16_N5FF1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv)();
+extern void ABISELECT(_ZThn32_N5FF1333barEv,_ZThn16_N5FF1333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF133__9GG2231333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv),
+};
+static VTT_ENTRY vtt_GG2231333[] = {
+ {&(_ZTV9GG2231333[8]), 8,44},
+ {&(_ZTV9GG2231333[16]), 16,44},
+ {&(_ZTV9GG2231333[21]), 21,44},
+ {&(_ZTV9GG2231333[25]), 25,44},
+ {&(_ZTV9GG2231333[32]), 32,44},
+ {&(_ZTV9GG2231333[37]), 37,44},
+ {&(_ZTV9GG2231333[42]), 42,44},
+ {&(_tg__ZTV5EE223__9GG2231333[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE223__9GG2231333[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE223__9GG2231333[3]), 3,4},
+ {&(_tg__ZTV5FF133__9GG2231333[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF133__9GG2231333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF133__9GG2231333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2231333[];
+extern VTBL_ENTRY _ZTV9GG2231333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2231333[];
+static VTBL_ENTRY alt_thunk_names647[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1333barEv,_ZThn16_N5FF1333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1333fooEv,_ZThn16_N5FF1333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22313333barEv,_ZTv0_n16_N9GG22313333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22313333barEv,_ZThn48_N9GG22313333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22313333fooEv,_ZTv0_n12_N9GG22313333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22313333fooEv,_ZThn48_N9GG22313333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22313333fooEv,_ZThn40_N9GG22313333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22313333barEv,_ZTv0_n12_N9GG22313333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22313333barEv,_ZThn24_N9GG22313333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22313333barEv,_ZThn16_N9GG22313333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22313333barEv,_ZTv0_n24_N9GG22313333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22313333barEv,_ZThn32_N9GG22313333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22313333barEv,_ZThn8_N9GG22313333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22313333fooEv,_ZTv0_n20_N9GG22313333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22313333fooEv,_ZThn32_N9GG22313333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22313333fooEv,_ZThn8_N9GG22313333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2231333 = { "GG2231333", // class name
+ bases_GG2231333, 6,
+ &(vtc_GG2231333[0]), // expected_vtbl_contents
+ &(vtt_GG2231333[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2231333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2231333),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2231333),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names647,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2232113 : virtual EE223 , virtual FF211 {
+ int pg;
+ virtual void foo(); // _ZN9GG22321133fooEv
+ virtual void bar(); // _ZN9GG22321133barEv
+ ~GG2232113(); // tgen
+ GG2232113(); // tgen
+};
+//SIG(1 GG2232113) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2232113 ::foo(){vfunc_called(this, "_ZN9GG22321133fooEv");}
+void GG2232113 ::bar(){vfunc_called(this, "_ZN9GG22321133barEv");}
+GG2232113 ::~GG2232113(){ note_dtor("GG2232113", this);} // tgen
+GG2232113 ::GG2232113(){ note_ctor("GG2232113", this);} // tgen
+
+static void Test_GG2232113()
+{
+ extern Class_Descriptor cd_GG2232113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2232113, buf);
+ GG2232113 *dp, &lv = *(dp=new (buf) GG2232113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2232113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2232113)");
+ check_base_class_offset(lv, (AA2*)(EE223*), ABISELECT(32,16), "GG2232113");
+ check_base_class_offset(lv, (AA2*)(FF211*), ABISELECT(32,16), "GG2232113");
+ check_base_class_offset(lv, (BB2*)(EE223*), ABISELECT(48,24), "GG2232113");
+ check_base_class_offset(lv, (EE223*), ABISELECT(16,8), "GG2232113");
+ check_base_class_offset(lv, (BB1*)(FF211*), ABISELECT(80,40), "GG2232113");
+ check_base_class_offset(lv, (FF211*), ABISELECT(64,32), "GG2232113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2232113.pg");
+ test_class_info(&lv, &cd_GG2232113);
+ dp->~GG2232113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2232113(Test_GG2232113, "GG2232113", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2232113C1Ev();
+extern void _ZN9GG2232113D1Ev();
+Name_Map name_map_GG2232113[] = {
+ NSPAIR(_ZN9GG2232113C1Ev),
+ NSPAIR(_ZN9GG2232113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE223;
+extern VTBL_ENTRY _ZTI5EE223[];
+extern VTBL_ENTRY _ZTV5EE223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE223[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF211;
+extern VTBL_ENTRY _ZTI5FF211[];
+extern VTBL_ENTRY _ZTV5FF211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF211[];
+static Base_Class bases_GG2232113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE223, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF211, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2232113[];
+extern void _ZN9GG22321133fooEv();
+extern void _ZN9GG22321133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22321133fooEv,_ZTv0_n20_N9GG22321133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22321133fooEv,_ZThn8_N9GG22321133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22321133barEv,_ZTv0_n24_N9GG22321133barEv)();
+extern void ABISELECT(_ZThn16_N9GG22321133barEv,_ZThn8_N9GG22321133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22321133barEv,_ZTv0_n12_N9GG22321133barEv)();
+extern void ABISELECT(_ZThn32_N9GG22321133barEv,_ZThn16_N9GG22321133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22321133barEv,_ZTv0_n12_N9GG22321133barEv)();
+extern void ABISELECT(_ZThn48_N9GG22321133barEv,_ZThn24_N9GG22321133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22321133fooEv,_ZTv0_n20_N9GG22321133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22321133fooEv,_ZThn32_N9GG22321133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22321133fooEv,_ZTv0_n12_N9GG22321133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22321133fooEv,_ZThn40_N9GG22321133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2232113[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2232113[0]),
+ (VTBL_ENTRY)&_ZN9GG22321133fooEv,
+ (VTBL_ENTRY)&_ZN9GG22321133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2232113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22321133fooEv,_ZTv0_n20_N9GG22321133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22321133barEv,_ZTv0_n24_N9GG22321133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2232113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22321133barEv,_ZTv0_n12_N9GG22321133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2232113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22321133barEv,_ZTv0_n12_N9GG22321133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2232113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22321133fooEv,_ZTv0_n20_N9GG22321133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2232113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22321133fooEv,_ZTv0_n12_N9GG22321133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2232113[];
+extern void _ZN5EE2233fooEv();
+extern void _ZN5EE2233barEv();
+static VTBL_ENTRY _tg__ZTV5EE223__9GG2232113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&_ZN5EE2233fooEv,
+ (VTBL_ENTRY)&_ZN5EE2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE223__9GG2232113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE223__9GG2232113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void _ZN5FF2113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF211__9GG2232113[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN5FF2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF211__9GG2232113[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF2113fooEv,_ZThn8_N5FF2113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF211__9GG2232113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv),
+};
+static VTT_ENTRY vtt_GG2232113[] = {
+ {&(_ZTV9GG2232113[7]), 7,35},
+ {&(_ZTV9GG2232113[15]), 15,35},
+ {&(_ZTV9GG2232113[20]), 20,35},
+ {&(_ZTV9GG2232113[24]), 24,35},
+ {&(_ZTV9GG2232113[30]), 30,35},
+ {&(_ZTV9GG2232113[34]), 34,35},
+ {&(_tg__ZTV5EE223__9GG2232113[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE223__9GG2232113[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE223__9GG2232113[3]), 3,4},
+ {&(_tg__ZTV5FF211__9GG2232113[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF211__9GG2232113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF211__9GG2232113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2232113[];
+extern VTBL_ENTRY _ZTV9GG2232113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2232113[];
+static VTBL_ENTRY alt_thunk_names648[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2113fooEv,_ZThn8_N5FF2113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22321133fooEv,_ZTv0_n12_N9GG22321133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22321133fooEv,_ZThn40_N9GG22321133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22321133barEv,_ZTv0_n12_N9GG22321133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22321133barEv,_ZThn24_N9GG22321133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22321133barEv,_ZThn16_N9GG22321133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22321133barEv,_ZTv0_n24_N9GG22321133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22321133barEv,_ZThn8_N9GG22321133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22321133fooEv,_ZTv0_n20_N9GG22321133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22321133fooEv,_ZThn32_N9GG22321133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22321133fooEv,_ZThn8_N9GG22321133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2232113 = { "GG2232113", // class name
+ bases_GG2232113, 5,
+ &(vtc_GG2232113[0]), // expected_vtbl_contents
+ &(vtt_GG2232113[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2232113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2232113),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2232113),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names648,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2232123 : virtual EE223 , virtual FF212 {
+ int pg;
+ virtual void foo(); // _ZN9GG22321233fooEv
+ virtual void bar(); // _ZN9GG22321233barEv
+ ~GG2232123(); // tgen
+ GG2232123(); // tgen
+};
+//SIG(1 GG2232123) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2232123 ::foo(){vfunc_called(this, "_ZN9GG22321233fooEv");}
+void GG2232123 ::bar(){vfunc_called(this, "_ZN9GG22321233barEv");}
+GG2232123 ::~GG2232123(){ note_dtor("GG2232123", this);} // tgen
+GG2232123 ::GG2232123(){ note_ctor("GG2232123", this);} // tgen
+
+static void Test_GG2232123()
+{
+ extern Class_Descriptor cd_GG2232123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2232123, buf);
+ GG2232123 *dp, &lv = *(dp=new (buf) GG2232123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2232123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2232123)");
+ check_base_class_offset(lv, (AA2*)(EE223*), ABISELECT(32,16), "GG2232123");
+ check_base_class_offset(lv, (AA2*)(FF212*), ABISELECT(32,16), "GG2232123");
+ check_base_class_offset(lv, (BB2*)(EE223*), ABISELECT(48,24), "GG2232123");
+ check_base_class_offset(lv, (EE223*), ABISELECT(16,8), "GG2232123");
+ check_base_class_offset(lv, (BB1*)(FF212*), ABISELECT(80,40), "GG2232123");
+ check_base_class_offset(lv, (FF212*), ABISELECT(64,32), "GG2232123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2232123.pg");
+ test_class_info(&lv, &cd_GG2232123);
+ dp->~GG2232123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2232123(Test_GG2232123, "GG2232123", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2232123C1Ev();
+extern void _ZN9GG2232123D1Ev();
+Name_Map name_map_GG2232123[] = {
+ NSPAIR(_ZN9GG2232123C1Ev),
+ NSPAIR(_ZN9GG2232123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE223;
+extern VTBL_ENTRY _ZTI5EE223[];
+extern VTBL_ENTRY _ZTV5EE223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE223[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF212;
+extern VTBL_ENTRY _ZTI5FF212[];
+extern VTBL_ENTRY _ZTV5FF212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF212[];
+static Base_Class bases_GG2232123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE223, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF212, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2232123[];
+extern void _ZN9GG22321233fooEv();
+extern void _ZN9GG22321233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22321233fooEv,_ZTv0_n20_N9GG22321233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22321233fooEv,_ZThn8_N9GG22321233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22321233barEv,_ZTv0_n24_N9GG22321233barEv)();
+extern void ABISELECT(_ZThn16_N9GG22321233barEv,_ZThn8_N9GG22321233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22321233barEv,_ZTv0_n12_N9GG22321233barEv)();
+extern void ABISELECT(_ZThn32_N9GG22321233barEv,_ZThn16_N9GG22321233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22321233barEv,_ZTv0_n12_N9GG22321233barEv)();
+extern void ABISELECT(_ZThn48_N9GG22321233barEv,_ZThn24_N9GG22321233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22321233barEv,_ZTv0_n20_N9GG22321233barEv)();
+extern void ABISELECT(_ZThn64_N9GG22321233barEv,_ZThn32_N9GG22321233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22321233fooEv,_ZTv0_n12_N9GG22321233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22321233fooEv,_ZThn40_N9GG22321233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2232123[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2232123[0]),
+ (VTBL_ENTRY)&_ZN9GG22321233fooEv,
+ (VTBL_ENTRY)&_ZN9GG22321233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2232123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22321233fooEv,_ZTv0_n20_N9GG22321233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22321233barEv,_ZTv0_n24_N9GG22321233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2232123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22321233barEv,_ZTv0_n12_N9GG22321233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2232123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22321233barEv,_ZTv0_n12_N9GG22321233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2232123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22321233barEv,_ZTv0_n20_N9GG22321233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2232123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22321233fooEv,_ZTv0_n12_N9GG22321233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2232123[];
+extern void _ZN5EE2233fooEv();
+extern void _ZN5EE2233barEv();
+static VTBL_ENTRY _tg__ZTV5EE223__9GG2232123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&_ZN5EE2233fooEv,
+ (VTBL_ENTRY)&_ZN5EE2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE223__9GG2232123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE223__9GG2232123[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void _ZN5FF2123barEv();
+static VTBL_ENTRY _tg__ZTV5FF212__9GG2232123[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN5FF2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF212__9GG2232123[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF212__9GG2232123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG2232123[] = {
+ {&(_ZTV9GG2232123[7]), 7,35},
+ {&(_ZTV9GG2232123[15]), 15,35},
+ {&(_ZTV9GG2232123[20]), 20,35},
+ {&(_ZTV9GG2232123[24]), 24,35},
+ {&(_ZTV9GG2232123[30]), 30,35},
+ {&(_ZTV9GG2232123[34]), 34,35},
+ {&(_tg__ZTV5EE223__9GG2232123[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE223__9GG2232123[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE223__9GG2232123[3]), 3,4},
+ {&(_tg__ZTV5FF212__9GG2232123[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF212__9GG2232123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF212__9GG2232123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2232123[];
+extern VTBL_ENTRY _ZTV9GG2232123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2232123[];
+static VTBL_ENTRY alt_thunk_names649[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22321233fooEv,_ZTv0_n12_N9GG22321233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22321233fooEv,_ZThn40_N9GG22321233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22321233barEv,_ZTv0_n20_N9GG22321233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22321233barEv,_ZThn32_N9GG22321233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22321233barEv,_ZTv0_n12_N9GG22321233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22321233barEv,_ZThn24_N9GG22321233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22321233barEv,_ZThn16_N9GG22321233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22321233barEv,_ZTv0_n24_N9GG22321233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22321233barEv,_ZThn8_N9GG22321233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22321233fooEv,_ZTv0_n20_N9GG22321233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22321233fooEv,_ZThn8_N9GG22321233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2232123 = { "GG2232123", // class name
+ bases_GG2232123, 5,
+ &(vtc_GG2232123[0]), // expected_vtbl_contents
+ &(vtt_GG2232123[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2232123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2232123),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2232123),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names649,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2232133 : virtual EE223 , virtual FF213 {
+ int pg;
+ virtual void foo(); // _ZN9GG22321333fooEv
+ virtual void bar(); // _ZN9GG22321333barEv
+ ~GG2232133(); // tgen
+ GG2232133(); // tgen
+};
+//SIG(1 GG2232133) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2232133 ::foo(){vfunc_called(this, "_ZN9GG22321333fooEv");}
+void GG2232133 ::bar(){vfunc_called(this, "_ZN9GG22321333barEv");}
+GG2232133 ::~GG2232133(){ note_dtor("GG2232133", this);} // tgen
+GG2232133 ::GG2232133(){ note_ctor("GG2232133", this);} // tgen
+
+static void Test_GG2232133()
+{
+ extern Class_Descriptor cd_GG2232133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2232133, buf);
+ GG2232133 *dp, &lv = *(dp=new (buf) GG2232133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2232133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2232133)");
+ check_base_class_offset(lv, (AA2*)(EE223*), ABISELECT(32,16), "GG2232133");
+ check_base_class_offset(lv, (AA2*)(FF213*), ABISELECT(32,16), "GG2232133");
+ check_base_class_offset(lv, (BB2*)(EE223*), ABISELECT(48,24), "GG2232133");
+ check_base_class_offset(lv, (EE223*), ABISELECT(16,8), "GG2232133");
+ check_base_class_offset(lv, (BB1*)(FF213*), ABISELECT(80,40), "GG2232133");
+ check_base_class_offset(lv, (FF213*), ABISELECT(64,32), "GG2232133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2232133.pg");
+ test_class_info(&lv, &cd_GG2232133);
+ dp->~GG2232133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2232133(Test_GG2232133, "GG2232133", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2232133C1Ev();
+extern void _ZN9GG2232133D1Ev();
+Name_Map name_map_GG2232133[] = {
+ NSPAIR(_ZN9GG2232133C1Ev),
+ NSPAIR(_ZN9GG2232133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE223;
+extern VTBL_ENTRY _ZTI5EE223[];
+extern VTBL_ENTRY _ZTV5EE223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE223[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF213;
+extern VTBL_ENTRY _ZTI5FF213[];
+extern VTBL_ENTRY _ZTV5FF213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF213[];
+static Base_Class bases_GG2232133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE223, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF213, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2232133[];
+extern void _ZN9GG22321333fooEv();
+extern void _ZN9GG22321333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22321333fooEv,_ZTv0_n20_N9GG22321333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22321333fooEv,_ZThn8_N9GG22321333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22321333barEv,_ZTv0_n24_N9GG22321333barEv)();
+extern void ABISELECT(_ZThn16_N9GG22321333barEv,_ZThn8_N9GG22321333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22321333barEv,_ZTv0_n12_N9GG22321333barEv)();
+extern void ABISELECT(_ZThn32_N9GG22321333barEv,_ZThn16_N9GG22321333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22321333barEv,_ZTv0_n12_N9GG22321333barEv)();
+extern void ABISELECT(_ZThn48_N9GG22321333barEv,_ZThn24_N9GG22321333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22321333fooEv,_ZTv0_n20_N9GG22321333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22321333fooEv,_ZThn32_N9GG22321333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22321333barEv,_ZTv0_n24_N9GG22321333barEv)();
+extern void ABISELECT(_ZThn64_N9GG22321333barEv,_ZThn32_N9GG22321333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22321333fooEv,_ZTv0_n12_N9GG22321333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22321333fooEv,_ZThn40_N9GG22321333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2232133[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2232133[0]),
+ (VTBL_ENTRY)&_ZN9GG22321333fooEv,
+ (VTBL_ENTRY)&_ZN9GG22321333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2232133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22321333fooEv,_ZTv0_n20_N9GG22321333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22321333barEv,_ZTv0_n24_N9GG22321333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2232133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22321333barEv,_ZTv0_n12_N9GG22321333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2232133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22321333barEv,_ZTv0_n12_N9GG22321333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2232133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22321333fooEv,_ZTv0_n20_N9GG22321333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22321333barEv,_ZTv0_n24_N9GG22321333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2232133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22321333fooEv,_ZTv0_n12_N9GG22321333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2232133[];
+extern void _ZN5EE2233fooEv();
+extern void _ZN5EE2233barEv();
+static VTBL_ENTRY _tg__ZTV5EE223__9GG2232133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&_ZN5EE2233fooEv,
+ (VTBL_ENTRY)&_ZN5EE2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE223__9GG2232133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE223__9GG2232133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void _ZN5FF2133fooEv();
+extern void _ZN5FF2133barEv();
+static VTBL_ENTRY _tg__ZTV5FF213__9GG2232133[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&_ZN5FF2133fooEv,
+ (VTBL_ENTRY)&_ZN5FF2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF213__9GG2232133[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF2133fooEv,_ZThn8_N5FF2133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF213__9GG2232133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv),
+};
+static VTT_ENTRY vtt_GG2232133[] = {
+ {&(_ZTV9GG2232133[7]), 7,37},
+ {&(_ZTV9GG2232133[15]), 15,37},
+ {&(_ZTV9GG2232133[20]), 20,37},
+ {&(_ZTV9GG2232133[24]), 24,37},
+ {&(_ZTV9GG2232133[31]), 31,37},
+ {&(_ZTV9GG2232133[36]), 36,37},
+ {&(_tg__ZTV5EE223__9GG2232133[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE223__9GG2232133[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE223__9GG2232133[3]), 3,4},
+ {&(_tg__ZTV5FF213__9GG2232133[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF213__9GG2232133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF213__9GG2232133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2232133[];
+extern VTBL_ENTRY _ZTV9GG2232133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2232133[];
+static VTBL_ENTRY alt_thunk_names650[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2133fooEv,_ZThn8_N5FF2133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22321333fooEv,_ZTv0_n12_N9GG22321333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22321333fooEv,_ZThn40_N9GG22321333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22321333barEv,_ZTv0_n12_N9GG22321333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22321333barEv,_ZThn24_N9GG22321333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22321333barEv,_ZThn16_N9GG22321333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22321333barEv,_ZTv0_n24_N9GG22321333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22321333barEv,_ZThn32_N9GG22321333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22321333barEv,_ZThn8_N9GG22321333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22321333fooEv,_ZTv0_n20_N9GG22321333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22321333fooEv,_ZThn32_N9GG22321333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22321333fooEv,_ZThn8_N9GG22321333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2232133 = { "GG2232133", // class name
+ bases_GG2232133, 5,
+ &(vtc_GG2232133[0]), // expected_vtbl_contents
+ &(vtt_GG2232133[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2232133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2232133),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2232133),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names650,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2232213 : virtual EE223 , virtual FF221 {
+ int pg;
+ virtual void foo(); // _ZN9GG22322133fooEv
+ virtual void bar(); // _ZN9GG22322133barEv
+ ~GG2232213(); // tgen
+ GG2232213(); // tgen
+};
+//SIG(1 GG2232213) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG2232213 ::foo(){vfunc_called(this, "_ZN9GG22322133fooEv");}
+void GG2232213 ::bar(){vfunc_called(this, "_ZN9GG22322133barEv");}
+GG2232213 ::~GG2232213(){ note_dtor("GG2232213", this);} // tgen
+GG2232213 ::GG2232213(){ note_ctor("GG2232213", this);} // tgen
+
+static void Test_GG2232213()
+{
+ extern Class_Descriptor cd_GG2232213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG2232213, buf);
+ GG2232213 *dp, &lv = *(dp=new (buf) GG2232213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG2232213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2232213)");
+ check_base_class_offset(lv, (AA2*)(EE223*), ABISELECT(32,16), "GG2232213");
+ check_base_class_offset(lv, (AA2*)(FF221*), ABISELECT(32,16), "GG2232213");
+ check_base_class_offset(lv, (BB2*)(EE223*), ABISELECT(48,24), "GG2232213");
+ check_base_class_offset(lv, (BB2*)(FF221*), ABISELECT(48,24), "GG2232213");
+ check_base_class_offset(lv, (EE223*), ABISELECT(16,8), "GG2232213");
+ check_base_class_offset(lv, (FF221*), ABISELECT(64,32), "GG2232213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2232213.pg");
+ test_class_info(&lv, &cd_GG2232213);
+ dp->~GG2232213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2232213(Test_GG2232213, "GG2232213", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG2232213C1Ev();
+extern void _ZN9GG2232213D1Ev();
+Name_Map name_map_GG2232213[] = {
+ NSPAIR(_ZN9GG2232213C1Ev),
+ NSPAIR(_ZN9GG2232213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE223;
+extern VTBL_ENTRY _ZTI5EE223[];
+extern VTBL_ENTRY _ZTV5EE223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE223[];
+extern Class_Descriptor cd_FF221;
+extern VTBL_ENTRY _ZTI5FF221[];
+extern VTBL_ENTRY _ZTV5FF221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF221[];
+static Base_Class bases_GG2232213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE223, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF221, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2232213[];
+extern void _ZN9GG22322133fooEv();
+extern void _ZN9GG22322133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22322133fooEv,_ZTv0_n20_N9GG22322133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22322133fooEv,_ZThn8_N9GG22322133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22322133barEv,_ZTv0_n24_N9GG22322133barEv)();
+extern void ABISELECT(_ZThn16_N9GG22322133barEv,_ZThn8_N9GG22322133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22322133barEv,_ZTv0_n12_N9GG22322133barEv)();
+extern void ABISELECT(_ZThn32_N9GG22322133barEv,_ZThn16_N9GG22322133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22322133barEv,_ZTv0_n12_N9GG22322133barEv)();
+extern void ABISELECT(_ZThn48_N9GG22322133barEv,_ZThn24_N9GG22322133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22322133fooEv,_ZTv0_n20_N9GG22322133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22322133fooEv,_ZThn32_N9GG22322133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2232213[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2232213[0]),
+ (VTBL_ENTRY)&_ZN9GG22322133fooEv,
+ (VTBL_ENTRY)&_ZN9GG22322133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2232213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22322133fooEv,_ZTv0_n20_N9GG22322133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22322133barEv,_ZTv0_n24_N9GG22322133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2232213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22322133barEv,_ZTv0_n12_N9GG22322133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2232213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22322133barEv,_ZTv0_n12_N9GG22322133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2232213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22322133fooEv,_ZTv0_n20_N9GG22322133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2232213[];
+extern void _ZN5EE2233fooEv();
+extern void _ZN5EE2233barEv();
+static VTBL_ENTRY _tg__ZTV5EE223__9GG2232213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&_ZN5EE2233fooEv,
+ (VTBL_ENTRY)&_ZN5EE2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE223__9GG2232213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE223__9GG2232213[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void _ZN5FF2213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF221__9GG2232213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN5FF2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF221__9GG2232213[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF221__9GG2232213[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG2232213[] = {
+ {&(_ZTV9GG2232213[6]), 6,30},
+ {&(_ZTV9GG2232213[14]), 14,30},
+ {&(_ZTV9GG2232213[19]), 19,30},
+ {&(_ZTV9GG2232213[23]), 23,30},
+ {&(_ZTV9GG2232213[29]), 29,30},
+ {&(_tg__ZTV5EE223__9GG2232213[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE223__9GG2232213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE223__9GG2232213[3]), 3,4},
+ {&(_tg__ZTV5FF221__9GG2232213[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF221__9GG2232213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF221__9GG2232213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2232213[];
+extern VTBL_ENTRY _ZTV9GG2232213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2232213[];
+static VTBL_ENTRY alt_thunk_names651[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22322133barEv,_ZTv0_n12_N9GG22322133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22322133barEv,_ZThn24_N9GG22322133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22322133barEv,_ZThn16_N9GG22322133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22322133barEv,_ZTv0_n24_N9GG22322133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22322133barEv,_ZThn8_N9GG22322133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22322133fooEv,_ZTv0_n20_N9GG22322133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22322133fooEv,_ZThn32_N9GG22322133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22322133fooEv,_ZThn8_N9GG22322133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2232213 = { "GG2232213", // class name
+ bases_GG2232213, 4,
+ &(vtc_GG2232213[0]), // expected_vtbl_contents
+ &(vtt_GG2232213[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG2232213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2232213),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2232213),11, //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 GG2232222 : virtual EE223 , virtual FF222 {
+ int pg;
+ virtual void bar(); // _ZN9GG22322223barEv
+ ~GG2232222(); // tgen
+ GG2232222(); // tgen
+};
+//SIG(1 GG2232222) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v1 Fi} v2 v1 Fi} VBC5{ VBC3 VBC4 v1 Fi} v1 Fi}
+
+
+void GG2232222 ::bar(){vfunc_called(this, "_ZN9GG22322223barEv");}
+GG2232222 ::~GG2232222(){ note_dtor("GG2232222", this);} // tgen
+GG2232222 ::GG2232222(){ note_ctor("GG2232222", this);} // tgen
+
+static void Test_GG2232222()
+{
+ extern Class_Descriptor cd_GG2232222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG2232222, buf);
+ GG2232222 *dp, &lv = *(dp=new (buf) GG2232222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG2232222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2232222)");
+ check_base_class_offset(lv, (AA2*)(EE223*), ABISELECT(32,16), "GG2232222");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(32,16), "GG2232222");
+ check_base_class_offset(lv, (BB2*)(EE223*), ABISELECT(48,24), "GG2232222");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(48,24), "GG2232222");
+ check_base_class_offset(lv, (EE223*), ABISELECT(16,8), "GG2232222");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG2232222");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2232222.pg");
+ test_class_info(&lv, &cd_GG2232222);
+ dp->~GG2232222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2232222(Test_GG2232222, "GG2232222", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG2232222C1Ev();
+extern void _ZN9GG2232222D1Ev();
+Name_Map name_map_GG2232222[] = {
+ NSPAIR(_ZN9GG2232222C1Ev),
+ NSPAIR(_ZN9GG2232222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE223;
+extern VTBL_ENTRY _ZTI5EE223[];
+extern VTBL_ENTRY _ZTV5EE223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE223[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG2232222[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 19, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE223, 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
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2232222[];
+extern void _ZN9GG22322223barEv();
+extern void _ZN5EE2233fooEv();
+extern void ABISELECT(_ZTv0_n48_N9GG22322223barEv,_ZTv0_n24_N9GG22322223barEv)();
+extern void ABISELECT(_ZThn16_N9GG22322223barEv,_ZThn8_N9GG22322223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22322223barEv,_ZTv0_n12_N9GG22322223barEv)();
+extern void ABISELECT(_ZThn32_N9GG22322223barEv,_ZThn16_N9GG22322223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22322223barEv,_ZTv0_n12_N9GG22322223barEv)();
+extern void ABISELECT(_ZThn48_N9GG22322223barEv,_ZThn24_N9GG22322223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22322223barEv,_ZTv0_n20_N9GG22322223barEv)();
+extern void ABISELECT(_ZThn64_N9GG22322223barEv,_ZThn32_N9GG22322223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2232222[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2232222[0]),
+ (VTBL_ENTRY)&_ZN9GG22322223barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2232222[0]),
+ (VTBL_ENTRY)&_ZN5EE2233fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22322223barEv,_ZTv0_n24_N9GG22322223barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2232222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22322223barEv,_ZTv0_n12_N9GG22322223barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2232222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22322223barEv,_ZTv0_n12_N9GG22322223barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2232222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22322223barEv,_ZTv0_n20_N9GG22322223barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2232222[];
+extern void _ZN5EE2233fooEv();
+extern void _ZN5EE2233barEv();
+static VTBL_ENTRY _tg__ZTV5EE223__9GG2232222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&_ZN5EE2233fooEv,
+ (VTBL_ENTRY)&_ZN5EE2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE223__9GG2232222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE223__9GG2232222[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG2232222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG2232222[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG2232222[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG2232222[] = {
+ {&(_ZTV9GG2232222[6]), 6,29},
+ {&(_ZTV9GG2232222[13]), 13,29},
+ {&(_ZTV9GG2232222[18]), 18,29},
+ {&(_ZTV9GG2232222[22]), 22,29},
+ {&(_ZTV9GG2232222[28]), 28,29},
+ {&(_tg__ZTV5EE223__9GG2232222[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE223__9GG2232222[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE223__9GG2232222[3]), 3,4},
+ {&(_tg__ZTV5FF222__9GG2232222[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG2232222[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG2232222[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2232222[];
+extern VTBL_ENTRY _ZTV9GG2232222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2232222[];
+static VTBL_ENTRY alt_thunk_names652[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22322223barEv,_ZTv0_n20_N9GG22322223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22322223barEv,_ZThn32_N9GG22322223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22322223barEv,_ZTv0_n12_N9GG22322223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22322223barEv,_ZThn24_N9GG22322223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22322223barEv,_ZThn16_N9GG22322223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22322223barEv,_ZTv0_n24_N9GG22322223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22322223barEv,_ZThn8_N9GG22322223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2232222 = { "GG2232222", // class name
+ bases_GG2232222, 4,
+ &(vtc_GG2232222[0]), // expected_vtbl_contents
+ &(vtt_GG2232222[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG2232222),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2232222),29, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2232222),11, //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 GG2232223 : virtual EE223 , virtual FF222 {
+ int pg;
+ virtual void foo(); // _ZN9GG22322233fooEv
+ virtual void bar(); // _ZN9GG22322233barEv
+ ~GG2232223(); // tgen
+ GG2232223(); // tgen
+};
+//SIG(1 GG2232223) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG2232223 ::foo(){vfunc_called(this, "_ZN9GG22322233fooEv");}
+void GG2232223 ::bar(){vfunc_called(this, "_ZN9GG22322233barEv");}
+GG2232223 ::~GG2232223(){ note_dtor("GG2232223", this);} // tgen
+GG2232223 ::GG2232223(){ note_ctor("GG2232223", this);} // tgen
+
+static void Test_GG2232223()
+{
+ extern Class_Descriptor cd_GG2232223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG2232223, buf);
+ GG2232223 *dp, &lv = *(dp=new (buf) GG2232223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG2232223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2232223)");
+ check_base_class_offset(lv, (AA2*)(EE223*), ABISELECT(32,16), "GG2232223");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(32,16), "GG2232223");
+ check_base_class_offset(lv, (BB2*)(EE223*), ABISELECT(48,24), "GG2232223");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(48,24), "GG2232223");
+ check_base_class_offset(lv, (EE223*), ABISELECT(16,8), "GG2232223");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG2232223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2232223.pg");
+ test_class_info(&lv, &cd_GG2232223);
+ dp->~GG2232223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2232223(Test_GG2232223, "GG2232223", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG2232223C1Ev();
+extern void _ZN9GG2232223D1Ev();
+Name_Map name_map_GG2232223[] = {
+ NSPAIR(_ZN9GG2232223C1Ev),
+ NSPAIR(_ZN9GG2232223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE223;
+extern VTBL_ENTRY _ZTI5EE223[];
+extern VTBL_ENTRY _ZTV5EE223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE223[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG2232223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE223, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2232223[];
+extern void _ZN9GG22322233fooEv();
+extern void _ZN9GG22322233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22322233fooEv,_ZTv0_n20_N9GG22322233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22322233fooEv,_ZThn8_N9GG22322233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22322233barEv,_ZTv0_n24_N9GG22322233barEv)();
+extern void ABISELECT(_ZThn16_N9GG22322233barEv,_ZThn8_N9GG22322233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22322233barEv,_ZTv0_n12_N9GG22322233barEv)();
+extern void ABISELECT(_ZThn32_N9GG22322233barEv,_ZThn16_N9GG22322233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22322233barEv,_ZTv0_n12_N9GG22322233barEv)();
+extern void ABISELECT(_ZThn48_N9GG22322233barEv,_ZThn24_N9GG22322233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22322233barEv,_ZTv0_n20_N9GG22322233barEv)();
+extern void ABISELECT(_ZThn64_N9GG22322233barEv,_ZThn32_N9GG22322233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2232223[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2232223[0]),
+ (VTBL_ENTRY)&_ZN9GG22322233fooEv,
+ (VTBL_ENTRY)&_ZN9GG22322233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2232223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22322233fooEv,_ZTv0_n20_N9GG22322233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22322233barEv,_ZTv0_n24_N9GG22322233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2232223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22322233barEv,_ZTv0_n12_N9GG22322233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2232223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22322233barEv,_ZTv0_n12_N9GG22322233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2232223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22322233barEv,_ZTv0_n20_N9GG22322233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2232223[];
+extern void _ZN5EE2233fooEv();
+extern void _ZN5EE2233barEv();
+static VTBL_ENTRY _tg__ZTV5EE223__9GG2232223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&_ZN5EE2233fooEv,
+ (VTBL_ENTRY)&_ZN5EE2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE223__9GG2232223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE223__9GG2232223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG2232223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG2232223[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG2232223[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG2232223[] = {
+ {&(_ZTV9GG2232223[6]), 6,30},
+ {&(_ZTV9GG2232223[14]), 14,30},
+ {&(_ZTV9GG2232223[19]), 19,30},
+ {&(_ZTV9GG2232223[23]), 23,30},
+ {&(_ZTV9GG2232223[29]), 29,30},
+ {&(_tg__ZTV5EE223__9GG2232223[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE223__9GG2232223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE223__9GG2232223[3]), 3,4},
+ {&(_tg__ZTV5FF222__9GG2232223[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG2232223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG2232223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2232223[];
+extern VTBL_ENTRY _ZTV9GG2232223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2232223[];
+static VTBL_ENTRY alt_thunk_names653[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22322233barEv,_ZTv0_n20_N9GG22322233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22322233barEv,_ZThn32_N9GG22322233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22322233barEv,_ZTv0_n12_N9GG22322233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22322233barEv,_ZThn24_N9GG22322233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22322233barEv,_ZThn16_N9GG22322233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22322233barEv,_ZTv0_n24_N9GG22322233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22322233barEv,_ZThn8_N9GG22322233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22322233fooEv,_ZTv0_n20_N9GG22322233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22322233fooEv,_ZThn8_N9GG22322233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2232223 = { "GG2232223", // class name
+ bases_GG2232223, 4,
+ &(vtc_GG2232223[0]), // expected_vtbl_contents
+ &(vtt_GG2232223[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG2232223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2232223),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2232223),11, //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 GG2232233 : virtual EE223 , virtual FF223 {
+ int pg;
+ virtual void foo(); // _ZN9GG22322333fooEv
+ virtual void bar(); // _ZN9GG22322333barEv
+ ~GG2232233(); // tgen
+ GG2232233(); // tgen
+};
+//SIG(1 GG2232233) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2232233 ::foo(){vfunc_called(this, "_ZN9GG22322333fooEv");}
+void GG2232233 ::bar(){vfunc_called(this, "_ZN9GG22322333barEv");}
+GG2232233 ::~GG2232233(){ note_dtor("GG2232233", this);} // tgen
+GG2232233 ::GG2232233(){ note_ctor("GG2232233", this);} // tgen
+
+static void Test_GG2232233()
+{
+ extern Class_Descriptor cd_GG2232233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG2232233, buf);
+ GG2232233 *dp, &lv = *(dp=new (buf) GG2232233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG2232233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2232233)");
+ check_base_class_offset(lv, (AA2*)(EE223*), ABISELECT(32,16), "GG2232233");
+ check_base_class_offset(lv, (AA2*)(FF223*), ABISELECT(32,16), "GG2232233");
+ check_base_class_offset(lv, (BB2*)(EE223*), ABISELECT(48,24), "GG2232233");
+ check_base_class_offset(lv, (BB2*)(FF223*), ABISELECT(48,24), "GG2232233");
+ check_base_class_offset(lv, (EE223*), ABISELECT(16,8), "GG2232233");
+ check_base_class_offset(lv, (FF223*), ABISELECT(64,32), "GG2232233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2232233.pg");
+ test_class_info(&lv, &cd_GG2232233);
+ dp->~GG2232233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2232233(Test_GG2232233, "GG2232233", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG2232233C1Ev();
+extern void _ZN9GG2232233D1Ev();
+Name_Map name_map_GG2232233[] = {
+ NSPAIR(_ZN9GG2232233C1Ev),
+ NSPAIR(_ZN9GG2232233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE223;
+extern VTBL_ENTRY _ZTI5EE223[];
+extern VTBL_ENTRY _ZTV5EE223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE223[];
+extern Class_Descriptor cd_FF223;
+extern VTBL_ENTRY _ZTI5FF223[];
+extern VTBL_ENTRY _ZTV5FF223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF223[];
+static Base_Class bases_GG2232233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE223, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF223, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2232233[];
+extern void _ZN9GG22322333fooEv();
+extern void _ZN9GG22322333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22322333fooEv,_ZTv0_n20_N9GG22322333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22322333fooEv,_ZThn8_N9GG22322333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22322333barEv,_ZTv0_n24_N9GG22322333barEv)();
+extern void ABISELECT(_ZThn16_N9GG22322333barEv,_ZThn8_N9GG22322333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22322333barEv,_ZTv0_n12_N9GG22322333barEv)();
+extern void ABISELECT(_ZThn32_N9GG22322333barEv,_ZThn16_N9GG22322333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22322333barEv,_ZTv0_n12_N9GG22322333barEv)();
+extern void ABISELECT(_ZThn48_N9GG22322333barEv,_ZThn24_N9GG22322333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22322333fooEv,_ZTv0_n20_N9GG22322333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22322333fooEv,_ZThn32_N9GG22322333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22322333barEv,_ZTv0_n24_N9GG22322333barEv)();
+extern void ABISELECT(_ZThn64_N9GG22322333barEv,_ZThn32_N9GG22322333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2232233[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2232233[0]),
+ (VTBL_ENTRY)&_ZN9GG22322333fooEv,
+ (VTBL_ENTRY)&_ZN9GG22322333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2232233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22322333fooEv,_ZTv0_n20_N9GG22322333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22322333barEv,_ZTv0_n24_N9GG22322333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2232233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22322333barEv,_ZTv0_n12_N9GG22322333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2232233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22322333barEv,_ZTv0_n12_N9GG22322333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2232233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22322333fooEv,_ZTv0_n20_N9GG22322333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22322333barEv,_ZTv0_n24_N9GG22322333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2232233[];
+extern void _ZN5EE2233fooEv();
+extern void _ZN5EE2233barEv();
+static VTBL_ENTRY _tg__ZTV5EE223__9GG2232233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&_ZN5EE2233fooEv,
+ (VTBL_ENTRY)&_ZN5EE2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE223__9GG2232233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE223__9GG2232233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void _ZN5FF2233fooEv();
+extern void _ZN5FF2233barEv();
+static VTBL_ENTRY _tg__ZTV5FF223__9GG2232233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&_ZN5FF2233fooEv,
+ (VTBL_ENTRY)&_ZN5FF2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF223__9GG2232233[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF223__9GG2232233[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+static VTT_ENTRY vtt_GG2232233[] = {
+ {&(_ZTV9GG2232233[6]), 6,32},
+ {&(_ZTV9GG2232233[14]), 14,32},
+ {&(_ZTV9GG2232233[19]), 19,32},
+ {&(_ZTV9GG2232233[23]), 23,32},
+ {&(_ZTV9GG2232233[30]), 30,32},
+ {&(_tg__ZTV5EE223__9GG2232233[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE223__9GG2232233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE223__9GG2232233[3]), 3,4},
+ {&(_tg__ZTV5FF223__9GG2232233[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF223__9GG2232233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF223__9GG2232233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2232233[];
+extern VTBL_ENTRY _ZTV9GG2232233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2232233[];
+static VTBL_ENTRY alt_thunk_names654[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22322333barEv,_ZTv0_n12_N9GG22322333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22322333barEv,_ZThn24_N9GG22322333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22322333barEv,_ZThn16_N9GG22322333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22322333barEv,_ZTv0_n24_N9GG22322333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22322333barEv,_ZThn32_N9GG22322333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22322333barEv,_ZThn8_N9GG22322333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22322333fooEv,_ZTv0_n20_N9GG22322333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22322333fooEv,_ZThn32_N9GG22322333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22322333fooEv,_ZThn8_N9GG22322333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2232233 = { "GG2232233", // class name
+ bases_GG2232233, 4,
+ &(vtc_GG2232233[0]), // expected_vtbl_contents
+ &(vtt_GG2232233[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG2232233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2232233),32, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2232233),11, //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 GG2232313 : virtual EE223 , virtual FF231 {
+ int pg;
+ virtual void foo(); // _ZN9GG22323133fooEv
+ virtual void bar(); // _ZN9GG22323133barEv
+ ~GG2232313(); // tgen
+ GG2232313(); // tgen
+};
+//SIG(1 GG2232313) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2232313 ::foo(){vfunc_called(this, "_ZN9GG22323133fooEv");}
+void GG2232313 ::bar(){vfunc_called(this, "_ZN9GG22323133barEv");}
+GG2232313 ::~GG2232313(){ note_dtor("GG2232313", this);} // tgen
+GG2232313 ::GG2232313(){ note_ctor("GG2232313", this);} // tgen
+
+static void Test_GG2232313()
+{
+ extern Class_Descriptor cd_GG2232313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2232313, buf);
+ GG2232313 *dp, &lv = *(dp=new (buf) GG2232313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2232313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2232313)");
+ check_base_class_offset(lv, (AA2*)(EE223*), ABISELECT(32,16), "GG2232313");
+ check_base_class_offset(lv, (AA2*)(FF231*), ABISELECT(32,16), "GG2232313");
+ check_base_class_offset(lv, (BB2*)(EE223*), ABISELECT(48,24), "GG2232313");
+ check_base_class_offset(lv, (EE223*), ABISELECT(16,8), "GG2232313");
+ check_base_class_offset(lv, (BB3*)(FF231*), ABISELECT(80,40), "GG2232313");
+ check_base_class_offset(lv, (FF231*), ABISELECT(64,32), "GG2232313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2232313.pg");
+ test_class_info(&lv, &cd_GG2232313);
+ dp->~GG2232313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2232313(Test_GG2232313, "GG2232313", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2232313C1Ev();
+extern void _ZN9GG2232313D1Ev();
+Name_Map name_map_GG2232313[] = {
+ NSPAIR(_ZN9GG2232313C1Ev),
+ NSPAIR(_ZN9GG2232313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE223;
+extern VTBL_ENTRY _ZTI5EE223[];
+extern VTBL_ENTRY _ZTV5EE223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE223[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF231;
+extern VTBL_ENTRY _ZTI5FF231[];
+extern VTBL_ENTRY _ZTV5FF231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF231[];
+static Base_Class bases_GG2232313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE223, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF231, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2232313[];
+extern void _ZN9GG22323133fooEv();
+extern void _ZN9GG22323133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22323133fooEv,_ZTv0_n20_N9GG22323133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22323133fooEv,_ZThn8_N9GG22323133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22323133barEv,_ZTv0_n24_N9GG22323133barEv)();
+extern void ABISELECT(_ZThn16_N9GG22323133barEv,_ZThn8_N9GG22323133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22323133barEv,_ZTv0_n12_N9GG22323133barEv)();
+extern void ABISELECT(_ZThn32_N9GG22323133barEv,_ZThn16_N9GG22323133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22323133barEv,_ZTv0_n12_N9GG22323133barEv)();
+extern void ABISELECT(_ZThn48_N9GG22323133barEv,_ZThn24_N9GG22323133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22323133fooEv,_ZTv0_n20_N9GG22323133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22323133fooEv,_ZThn32_N9GG22323133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22323133fooEv,_ZTv0_n12_N9GG22323133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22323133fooEv,_ZThn40_N9GG22323133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22323133barEv,_ZTv0_n16_N9GG22323133barEv)();
+extern void ABISELECT(_ZThn80_N9GG22323133barEv,_ZThn40_N9GG22323133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2232313[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2232313[0]),
+ (VTBL_ENTRY)&_ZN9GG22323133fooEv,
+ (VTBL_ENTRY)&_ZN9GG22323133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2232313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22323133fooEv,_ZTv0_n20_N9GG22323133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22323133barEv,_ZTv0_n24_N9GG22323133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2232313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22323133barEv,_ZTv0_n12_N9GG22323133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2232313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22323133barEv,_ZTv0_n12_N9GG22323133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2232313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22323133fooEv,_ZTv0_n20_N9GG22323133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2232313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22323133fooEv,_ZTv0_n12_N9GG22323133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22323133barEv,_ZTv0_n16_N9GG22323133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2232313[];
+extern void _ZN5EE2233fooEv();
+extern void _ZN5EE2233barEv();
+static VTBL_ENTRY _tg__ZTV5EE223__9GG2232313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&_ZN5EE2233fooEv,
+ (VTBL_ENTRY)&_ZN5EE2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE223__9GG2232313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE223__9GG2232313[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void _ZN5FF2313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF231__9GG2232313[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN5FF2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF231__9GG2232313[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF2313fooEv,_ZThn8_N5FF2313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF231__9GG2232313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG2232313[] = {
+ {&(_ZTV9GG2232313[7]), 7,37},
+ {&(_ZTV9GG2232313[15]), 15,37},
+ {&(_ZTV9GG2232313[20]), 20,37},
+ {&(_ZTV9GG2232313[24]), 24,37},
+ {&(_ZTV9GG2232313[30]), 30,37},
+ {&(_ZTV9GG2232313[35]), 35,37},
+ {&(_tg__ZTV5EE223__9GG2232313[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE223__9GG2232313[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE223__9GG2232313[3]), 3,4},
+ {&(_tg__ZTV5FF231__9GG2232313[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF231__9GG2232313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF231__9GG2232313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2232313[];
+extern VTBL_ENTRY _ZTV9GG2232313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2232313[];
+static VTBL_ENTRY alt_thunk_names655[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2313fooEv,_ZThn8_N5FF2313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22323133barEv,_ZTv0_n16_N9GG22323133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22323133barEv,_ZThn40_N9GG22323133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22323133fooEv,_ZTv0_n12_N9GG22323133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22323133fooEv,_ZThn40_N9GG22323133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22323133barEv,_ZTv0_n12_N9GG22323133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22323133barEv,_ZThn24_N9GG22323133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22323133barEv,_ZThn16_N9GG22323133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22323133barEv,_ZTv0_n24_N9GG22323133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22323133barEv,_ZThn8_N9GG22323133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22323133fooEv,_ZTv0_n20_N9GG22323133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22323133fooEv,_ZThn32_N9GG22323133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22323133fooEv,_ZThn8_N9GG22323133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2232313 = { "GG2232313", // class name
+ bases_GG2232313, 5,
+ &(vtc_GG2232313[0]), // expected_vtbl_contents
+ &(vtt_GG2232313[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2232313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2232313),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2232313),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names655,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2232323 : virtual EE223 , virtual FF232 {
+ int pg;
+ virtual void foo(); // _ZN9GG22323233fooEv
+ virtual void bar(); // _ZN9GG22323233barEv
+ ~GG2232323(); // tgen
+ GG2232323(); // tgen
+};
+//SIG(1 GG2232323) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2232323 ::foo(){vfunc_called(this, "_ZN9GG22323233fooEv");}
+void GG2232323 ::bar(){vfunc_called(this, "_ZN9GG22323233barEv");}
+GG2232323 ::~GG2232323(){ note_dtor("GG2232323", this);} // tgen
+GG2232323 ::GG2232323(){ note_ctor("GG2232323", this);} // tgen
+
+static void Test_GG2232323()
+{
+ extern Class_Descriptor cd_GG2232323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2232323, buf);
+ GG2232323 *dp, &lv = *(dp=new (buf) GG2232323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2232323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2232323)");
+ check_base_class_offset(lv, (AA2*)(EE223*), ABISELECT(32,16), "GG2232323");
+ check_base_class_offset(lv, (AA2*)(FF232*), ABISELECT(32,16), "GG2232323");
+ check_base_class_offset(lv, (BB2*)(EE223*), ABISELECT(48,24), "GG2232323");
+ check_base_class_offset(lv, (EE223*), ABISELECT(16,8), "GG2232323");
+ check_base_class_offset(lv, (BB3*)(FF232*), ABISELECT(80,40), "GG2232323");
+ check_base_class_offset(lv, (FF232*), ABISELECT(64,32), "GG2232323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2232323.pg");
+ test_class_info(&lv, &cd_GG2232323);
+ dp->~GG2232323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2232323(Test_GG2232323, "GG2232323", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2232323C1Ev();
+extern void _ZN9GG2232323D1Ev();
+Name_Map name_map_GG2232323[] = {
+ NSPAIR(_ZN9GG2232323C1Ev),
+ NSPAIR(_ZN9GG2232323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE223;
+extern VTBL_ENTRY _ZTI5EE223[];
+extern VTBL_ENTRY _ZTV5EE223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE223[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF232;
+extern VTBL_ENTRY _ZTI5FF232[];
+extern VTBL_ENTRY _ZTV5FF232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF232[];
+static Base_Class bases_GG2232323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE223, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF232, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2232323[];
+extern void _ZN9GG22323233fooEv();
+extern void _ZN9GG22323233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22323233fooEv,_ZTv0_n20_N9GG22323233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22323233fooEv,_ZThn8_N9GG22323233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22323233barEv,_ZTv0_n24_N9GG22323233barEv)();
+extern void ABISELECT(_ZThn16_N9GG22323233barEv,_ZThn8_N9GG22323233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22323233barEv,_ZTv0_n12_N9GG22323233barEv)();
+extern void ABISELECT(_ZThn32_N9GG22323233barEv,_ZThn16_N9GG22323233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22323233barEv,_ZTv0_n12_N9GG22323233barEv)();
+extern void ABISELECT(_ZThn48_N9GG22323233barEv,_ZThn24_N9GG22323233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22323233barEv,_ZTv0_n20_N9GG22323233barEv)();
+extern void ABISELECT(_ZThn64_N9GG22323233barEv,_ZThn32_N9GG22323233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22323233fooEv,_ZTv0_n12_N9GG22323233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22323233fooEv,_ZThn40_N9GG22323233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22323233barEv,_ZTv0_n16_N9GG22323233barEv)();
+extern void ABISELECT(_ZThn80_N9GG22323233barEv,_ZThn40_N9GG22323233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2232323[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2232323[0]),
+ (VTBL_ENTRY)&_ZN9GG22323233fooEv,
+ (VTBL_ENTRY)&_ZN9GG22323233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2232323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22323233fooEv,_ZTv0_n20_N9GG22323233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22323233barEv,_ZTv0_n24_N9GG22323233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2232323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22323233barEv,_ZTv0_n12_N9GG22323233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2232323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22323233barEv,_ZTv0_n12_N9GG22323233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2232323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22323233barEv,_ZTv0_n20_N9GG22323233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2232323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22323233fooEv,_ZTv0_n12_N9GG22323233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22323233barEv,_ZTv0_n16_N9GG22323233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2232323[];
+extern void _ZN5EE2233fooEv();
+extern void _ZN5EE2233barEv();
+static VTBL_ENTRY _tg__ZTV5EE223__9GG2232323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&_ZN5EE2233fooEv,
+ (VTBL_ENTRY)&_ZN5EE2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE223__9GG2232323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE223__9GG2232323[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void _ZN5FF2323barEv();
+static VTBL_ENTRY _tg__ZTV5FF232__9GG2232323[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN5FF2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF232__9GG2232323[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv)();
+extern void ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF232__9GG2232323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv),
+};
+static VTT_ENTRY vtt_GG2232323[] = {
+ {&(_ZTV9GG2232323[7]), 7,37},
+ {&(_ZTV9GG2232323[15]), 15,37},
+ {&(_ZTV9GG2232323[20]), 20,37},
+ {&(_ZTV9GG2232323[24]), 24,37},
+ {&(_ZTV9GG2232323[30]), 30,37},
+ {&(_ZTV9GG2232323[35]), 35,37},
+ {&(_tg__ZTV5EE223__9GG2232323[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE223__9GG2232323[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE223__9GG2232323[3]), 3,4},
+ {&(_tg__ZTV5FF232__9GG2232323[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF232__9GG2232323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF232__9GG2232323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2232323[];
+extern VTBL_ENTRY _ZTV9GG2232323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2232323[];
+static VTBL_ENTRY alt_thunk_names656[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22323233barEv,_ZTv0_n16_N9GG22323233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22323233barEv,_ZThn40_N9GG22323233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22323233fooEv,_ZTv0_n12_N9GG22323233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22323233fooEv,_ZThn40_N9GG22323233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22323233barEv,_ZTv0_n20_N9GG22323233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22323233barEv,_ZThn32_N9GG22323233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22323233barEv,_ZTv0_n12_N9GG22323233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22323233barEv,_ZThn24_N9GG22323233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22323233barEv,_ZThn16_N9GG22323233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22323233barEv,_ZTv0_n24_N9GG22323233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22323233barEv,_ZThn8_N9GG22323233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22323233fooEv,_ZTv0_n20_N9GG22323233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22323233fooEv,_ZThn8_N9GG22323233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2232323 = { "GG2232323", // class name
+ bases_GG2232323, 5,
+ &(vtc_GG2232323[0]), // expected_vtbl_contents
+ &(vtt_GG2232323[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2232323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2232323),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2232323),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names656,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2232333 : virtual EE223 , virtual FF233 {
+ int pg;
+ virtual void foo(); // _ZN9GG22323333fooEv
+ virtual void bar(); // _ZN9GG22323333barEv
+ ~GG2232333(); // tgen
+ GG2232333(); // tgen
+};
+//SIG(1 GG2232333) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2232333 ::foo(){vfunc_called(this, "_ZN9GG22323333fooEv");}
+void GG2232333 ::bar(){vfunc_called(this, "_ZN9GG22323333barEv");}
+GG2232333 ::~GG2232333(){ note_dtor("GG2232333", this);} // tgen
+GG2232333 ::GG2232333(){ note_ctor("GG2232333", this);} // tgen
+
+static void Test_GG2232333()
+{
+ extern Class_Descriptor cd_GG2232333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2232333, buf);
+ GG2232333 *dp, &lv = *(dp=new (buf) GG2232333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2232333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2232333)");
+ check_base_class_offset(lv, (AA2*)(EE223*), ABISELECT(32,16), "GG2232333");
+ check_base_class_offset(lv, (AA2*)(FF233*), ABISELECT(32,16), "GG2232333");
+ check_base_class_offset(lv, (BB2*)(EE223*), ABISELECT(48,24), "GG2232333");
+ check_base_class_offset(lv, (EE223*), ABISELECT(16,8), "GG2232333");
+ check_base_class_offset(lv, (BB3*)(FF233*), ABISELECT(80,40), "GG2232333");
+ check_base_class_offset(lv, (FF233*), ABISELECT(64,32), "GG2232333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2232333.pg");
+ test_class_info(&lv, &cd_GG2232333);
+ dp->~GG2232333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2232333(Test_GG2232333, "GG2232333", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2232333C1Ev();
+extern void _ZN9GG2232333D1Ev();
+Name_Map name_map_GG2232333[] = {
+ NSPAIR(_ZN9GG2232333C1Ev),
+ NSPAIR(_ZN9GG2232333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE223;
+extern VTBL_ENTRY _ZTI5EE223[];
+extern VTBL_ENTRY _ZTV5EE223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE223[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF233;
+extern VTBL_ENTRY _ZTI5FF233[];
+extern VTBL_ENTRY _ZTV5FF233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF233[];
+static Base_Class bases_GG2232333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE223, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF233, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2232333[];
+extern void _ZN9GG22323333fooEv();
+extern void _ZN9GG22323333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22323333fooEv,_ZTv0_n20_N9GG22323333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22323333fooEv,_ZThn8_N9GG22323333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22323333barEv,_ZTv0_n24_N9GG22323333barEv)();
+extern void ABISELECT(_ZThn16_N9GG22323333barEv,_ZThn8_N9GG22323333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22323333barEv,_ZTv0_n12_N9GG22323333barEv)();
+extern void ABISELECT(_ZThn32_N9GG22323333barEv,_ZThn16_N9GG22323333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22323333barEv,_ZTv0_n12_N9GG22323333barEv)();
+extern void ABISELECT(_ZThn48_N9GG22323333barEv,_ZThn24_N9GG22323333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22323333fooEv,_ZTv0_n20_N9GG22323333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22323333fooEv,_ZThn32_N9GG22323333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22323333barEv,_ZTv0_n24_N9GG22323333barEv)();
+extern void ABISELECT(_ZThn64_N9GG22323333barEv,_ZThn32_N9GG22323333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22323333fooEv,_ZTv0_n12_N9GG22323333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22323333fooEv,_ZThn40_N9GG22323333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22323333barEv,_ZTv0_n16_N9GG22323333barEv)();
+extern void ABISELECT(_ZThn80_N9GG22323333barEv,_ZThn40_N9GG22323333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2232333[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2232333[0]),
+ (VTBL_ENTRY)&_ZN9GG22323333fooEv,
+ (VTBL_ENTRY)&_ZN9GG22323333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2232333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22323333fooEv,_ZTv0_n20_N9GG22323333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22323333barEv,_ZTv0_n24_N9GG22323333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2232333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22323333barEv,_ZTv0_n12_N9GG22323333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2232333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22323333barEv,_ZTv0_n12_N9GG22323333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2232333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22323333fooEv,_ZTv0_n20_N9GG22323333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22323333barEv,_ZTv0_n24_N9GG22323333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2232333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22323333fooEv,_ZTv0_n12_N9GG22323333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22323333barEv,_ZTv0_n16_N9GG22323333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2232333[];
+extern void _ZN5EE2233fooEv();
+extern void _ZN5EE2233barEv();
+static VTBL_ENTRY _tg__ZTV5EE223__9GG2232333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&_ZN5EE2233fooEv,
+ (VTBL_ENTRY)&_ZN5EE2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE223__9GG2232333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE223__9GG2232333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void _ZN5FF2333fooEv();
+extern void _ZN5FF2333barEv();
+static VTBL_ENTRY _tg__ZTV5FF233__9GG2232333[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&_ZN5FF2333fooEv,
+ (VTBL_ENTRY)&_ZN5FF2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF233__9GG2232333[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF2333fooEv,_ZThn8_N5FF2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv)();
+extern void ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF233__9GG2232333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv),
+};
+static VTT_ENTRY vtt_GG2232333[] = {
+ {&(_ZTV9GG2232333[7]), 7,39},
+ {&(_ZTV9GG2232333[15]), 15,39},
+ {&(_ZTV9GG2232333[20]), 20,39},
+ {&(_ZTV9GG2232333[24]), 24,39},
+ {&(_ZTV9GG2232333[31]), 31,39},
+ {&(_ZTV9GG2232333[37]), 37,39},
+ {&(_tg__ZTV5EE223__9GG2232333[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE223__9GG2232333[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE223__9GG2232333[3]), 3,4},
+ {&(_tg__ZTV5FF233__9GG2232333[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF233__9GG2232333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF233__9GG2232333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2232333[];
+extern VTBL_ENTRY _ZTV9GG2232333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2232333[];
+static VTBL_ENTRY alt_thunk_names657[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2333fooEv,_ZThn8_N5FF2333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22323333barEv,_ZTv0_n16_N9GG22323333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22323333barEv,_ZThn40_N9GG22323333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22323333fooEv,_ZTv0_n12_N9GG22323333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22323333fooEv,_ZThn40_N9GG22323333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22323333barEv,_ZTv0_n12_N9GG22323333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22323333barEv,_ZThn24_N9GG22323333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22323333barEv,_ZThn16_N9GG22323333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22323333barEv,_ZTv0_n24_N9GG22323333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22323333barEv,_ZThn32_N9GG22323333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22323333barEv,_ZThn8_N9GG22323333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22323333fooEv,_ZTv0_n20_N9GG22323333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22323333fooEv,_ZThn32_N9GG22323333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22323333fooEv,_ZThn8_N9GG22323333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2232333 = { "GG2232333", // class name
+ bases_GG2232333, 5,
+ &(vtc_GG2232333[0]), // expected_vtbl_contents
+ &(vtt_GG2232333[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2232333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2232333),39, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2232333),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names657,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2233113 : virtual EE223 , virtual FF311 {
+ int pg;
+ virtual void foo(); // _ZN9GG22331133fooEv
+ virtual void bar(); // _ZN9GG22331133barEv
+ ~GG2233113(); // tgen
+ GG2233113(); // tgen
+};
+//SIG(1 GG2233113) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2233113 ::foo(){vfunc_called(this, "_ZN9GG22331133fooEv");}
+void GG2233113 ::bar(){vfunc_called(this, "_ZN9GG22331133barEv");}
+GG2233113 ::~GG2233113(){ note_dtor("GG2233113", this);} // tgen
+GG2233113 ::GG2233113(){ note_ctor("GG2233113", this);} // tgen
+
+static void Test_GG2233113()
+{
+ extern Class_Descriptor cd_GG2233113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2233113, buf);
+ GG2233113 *dp, &lv = *(dp=new (buf) GG2233113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2233113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2233113)");
+ check_base_class_offset(lv, (AA2*)(EE223*), ABISELECT(32,16), "GG2233113");
+ check_base_class_offset(lv, (BB2*)(EE223*), ABISELECT(48,24), "GG2233113");
+ check_base_class_offset(lv, (EE223*), ABISELECT(16,8), "GG2233113");
+ check_base_class_offset(lv, (AA3*)(FF311*), ABISELECT(80,40), "GG2233113");
+ check_base_class_offset(lv, (BB1*)(FF311*), ABISELECT(96,48), "GG2233113");
+ check_base_class_offset(lv, (FF311*), ABISELECT(64,32), "GG2233113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2233113.pg");
+ test_class_info(&lv, &cd_GG2233113);
+ dp->~GG2233113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2233113(Test_GG2233113, "GG2233113", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2233113C1Ev();
+extern void _ZN9GG2233113D1Ev();
+Name_Map name_map_GG2233113[] = {
+ NSPAIR(_ZN9GG2233113C1Ev),
+ NSPAIR(_ZN9GG2233113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE223;
+extern VTBL_ENTRY _ZTI5EE223[];
+extern VTBL_ENTRY _ZTV5EE223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE223[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF311;
+extern VTBL_ENTRY _ZTI5FF311[];
+extern VTBL_ENTRY _ZTV5FF311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF311[];
+static Base_Class bases_GG2233113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE223, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF311, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2233113[];
+extern void _ZN9GG22331133fooEv();
+extern void _ZN9GG22331133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22331133fooEv,_ZTv0_n20_N9GG22331133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22331133fooEv,_ZThn8_N9GG22331133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22331133barEv,_ZTv0_n24_N9GG22331133barEv)();
+extern void ABISELECT(_ZThn16_N9GG22331133barEv,_ZThn8_N9GG22331133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22331133barEv,_ZTv0_n12_N9GG22331133barEv)();
+extern void ABISELECT(_ZThn32_N9GG22331133barEv,_ZThn16_N9GG22331133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22331133barEv,_ZTv0_n12_N9GG22331133barEv)();
+extern void ABISELECT(_ZThn48_N9GG22331133barEv,_ZThn24_N9GG22331133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22331133fooEv,_ZTv0_n20_N9GG22331133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22331133fooEv,_ZThn32_N9GG22331133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22331133fooEv,_ZTv0_n12_N9GG22331133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22331133fooEv,_ZThn40_N9GG22331133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22331133barEv,_ZTv0_n16_N9GG22331133barEv)();
+extern void ABISELECT(_ZThn80_N9GG22331133barEv,_ZThn40_N9GG22331133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22331133fooEv,_ZTv0_n12_N9GG22331133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG22331133fooEv,_ZThn48_N9GG22331133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2233113[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2233113[0]),
+ (VTBL_ENTRY)&_ZN9GG22331133fooEv,
+ (VTBL_ENTRY)&_ZN9GG22331133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2233113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22331133fooEv,_ZTv0_n20_N9GG22331133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22331133barEv,_ZTv0_n24_N9GG22331133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2233113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22331133barEv,_ZTv0_n12_N9GG22331133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2233113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22331133barEv,_ZTv0_n12_N9GG22331133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2233113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22331133fooEv,_ZTv0_n20_N9GG22331133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2233113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22331133fooEv,_ZTv0_n12_N9GG22331133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22331133barEv,_ZTv0_n16_N9GG22331133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2233113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22331133fooEv,_ZTv0_n12_N9GG22331133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2233113[];
+extern void _ZN5EE2233fooEv();
+extern void _ZN5EE2233barEv();
+static VTBL_ENTRY _tg__ZTV5EE223__9GG2233113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&_ZN5EE2233fooEv,
+ (VTBL_ENTRY)&_ZN5EE2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE223__9GG2233113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE223__9GG2233113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void _ZN5FF3113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF311__9GG2233113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&_ZN5FF3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF311__9GG2233113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3113fooEv,_ZThn16_N5FF3113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF311__9GG2233113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+};
+static VTT_ENTRY vtt_GG2233113[] = {
+ {&(_ZTV9GG2233113[8]), 8,42},
+ {&(_ZTV9GG2233113[16]), 16,42},
+ {&(_ZTV9GG2233113[21]), 21,42},
+ {&(_ZTV9GG2233113[25]), 25,42},
+ {&(_ZTV9GG2233113[31]), 31,42},
+ {&(_ZTV9GG2233113[36]), 36,42},
+ {&(_ZTV9GG2233113[41]), 41,42},
+ {&(_tg__ZTV5EE223__9GG2233113[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE223__9GG2233113[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE223__9GG2233113[3]), 3,4},
+ {&(_tg__ZTV5FF311__9GG2233113[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF311__9GG2233113[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF311__9GG2233113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2233113[];
+extern VTBL_ENTRY _ZTV9GG2233113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2233113[];
+static VTBL_ENTRY alt_thunk_names658[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3113fooEv,_ZThn16_N5FF3113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22331133barEv,_ZTv0_n16_N9GG22331133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22331133barEv,_ZThn40_N9GG22331133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22331133fooEv,_ZTv0_n12_N9GG22331133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22331133fooEv,_ZThn48_N9GG22331133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22331133fooEv,_ZThn40_N9GG22331133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22331133barEv,_ZTv0_n12_N9GG22331133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22331133barEv,_ZThn24_N9GG22331133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22331133barEv,_ZThn16_N9GG22331133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22331133barEv,_ZTv0_n24_N9GG22331133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22331133barEv,_ZThn8_N9GG22331133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22331133fooEv,_ZTv0_n20_N9GG22331133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22331133fooEv,_ZThn32_N9GG22331133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22331133fooEv,_ZThn8_N9GG22331133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2233113 = { "GG2233113", // class name
+ bases_GG2233113, 6,
+ &(vtc_GG2233113[0]), // expected_vtbl_contents
+ &(vtt_GG2233113[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2233113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2233113),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2233113),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names658,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2233123 : virtual EE223 , virtual FF312 {
+ int pg;
+ virtual void foo(); // _ZN9GG22331233fooEv
+ virtual void bar(); // _ZN9GG22331233barEv
+ ~GG2233123(); // tgen
+ GG2233123(); // tgen
+};
+//SIG(1 GG2233123) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2233123 ::foo(){vfunc_called(this, "_ZN9GG22331233fooEv");}
+void GG2233123 ::bar(){vfunc_called(this, "_ZN9GG22331233barEv");}
+GG2233123 ::~GG2233123(){ note_dtor("GG2233123", this);} // tgen
+GG2233123 ::GG2233123(){ note_ctor("GG2233123", this);} // tgen
+
+static void Test_GG2233123()
+{
+ extern Class_Descriptor cd_GG2233123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2233123, buf);
+ GG2233123 *dp, &lv = *(dp=new (buf) GG2233123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2233123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2233123)");
+ check_base_class_offset(lv, (AA2*)(EE223*), ABISELECT(32,16), "GG2233123");
+ check_base_class_offset(lv, (BB2*)(EE223*), ABISELECT(48,24), "GG2233123");
+ check_base_class_offset(lv, (EE223*), ABISELECT(16,8), "GG2233123");
+ check_base_class_offset(lv, (AA3*)(FF312*), ABISELECT(80,40), "GG2233123");
+ check_base_class_offset(lv, (BB1*)(FF312*), ABISELECT(96,48), "GG2233123");
+ check_base_class_offset(lv, (FF312*), ABISELECT(64,32), "GG2233123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2233123.pg");
+ test_class_info(&lv, &cd_GG2233123);
+ dp->~GG2233123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2233123(Test_GG2233123, "GG2233123", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2233123C1Ev();
+extern void _ZN9GG2233123D1Ev();
+Name_Map name_map_GG2233123[] = {
+ NSPAIR(_ZN9GG2233123C1Ev),
+ NSPAIR(_ZN9GG2233123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE223;
+extern VTBL_ENTRY _ZTI5EE223[];
+extern VTBL_ENTRY _ZTV5EE223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE223[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF312;
+extern VTBL_ENTRY _ZTI5FF312[];
+extern VTBL_ENTRY _ZTV5FF312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF312[];
+static Base_Class bases_GG2233123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE223, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF312, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2233123[];
+extern void _ZN9GG22331233fooEv();
+extern void _ZN9GG22331233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22331233fooEv,_ZTv0_n20_N9GG22331233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22331233fooEv,_ZThn8_N9GG22331233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22331233barEv,_ZTv0_n24_N9GG22331233barEv)();
+extern void ABISELECT(_ZThn16_N9GG22331233barEv,_ZThn8_N9GG22331233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22331233barEv,_ZTv0_n12_N9GG22331233barEv)();
+extern void ABISELECT(_ZThn32_N9GG22331233barEv,_ZThn16_N9GG22331233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22331233barEv,_ZTv0_n12_N9GG22331233barEv)();
+extern void ABISELECT(_ZThn48_N9GG22331233barEv,_ZThn24_N9GG22331233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22331233barEv,_ZTv0_n20_N9GG22331233barEv)();
+extern void ABISELECT(_ZThn64_N9GG22331233barEv,_ZThn32_N9GG22331233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22331233fooEv,_ZTv0_n12_N9GG22331233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22331233fooEv,_ZThn40_N9GG22331233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22331233barEv,_ZTv0_n16_N9GG22331233barEv)();
+extern void ABISELECT(_ZThn80_N9GG22331233barEv,_ZThn40_N9GG22331233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22331233fooEv,_ZTv0_n12_N9GG22331233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG22331233fooEv,_ZThn48_N9GG22331233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2233123[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2233123[0]),
+ (VTBL_ENTRY)&_ZN9GG22331233fooEv,
+ (VTBL_ENTRY)&_ZN9GG22331233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2233123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22331233fooEv,_ZTv0_n20_N9GG22331233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22331233barEv,_ZTv0_n24_N9GG22331233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2233123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22331233barEv,_ZTv0_n12_N9GG22331233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2233123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22331233barEv,_ZTv0_n12_N9GG22331233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2233123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22331233barEv,_ZTv0_n20_N9GG22331233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2233123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22331233fooEv,_ZTv0_n12_N9GG22331233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22331233barEv,_ZTv0_n16_N9GG22331233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2233123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22331233fooEv,_ZTv0_n12_N9GG22331233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2233123[];
+extern void _ZN5EE2233fooEv();
+extern void _ZN5EE2233barEv();
+static VTBL_ENTRY _tg__ZTV5EE223__9GG2233123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&_ZN5EE2233fooEv,
+ (VTBL_ENTRY)&_ZN5EE2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE223__9GG2233123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE223__9GG2233123[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void _ZN5FF3123barEv();
+static VTBL_ENTRY _tg__ZTV5FF312__9GG2233123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN5FF3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv)();
+extern void ABISELECT(_ZThn16_N5FF3123barEv,_ZThn8_N5FF3123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF312__9GG2233123[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF312__9GG2233123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG2233123[] = {
+ {&(_ZTV9GG2233123[8]), 8,42},
+ {&(_ZTV9GG2233123[16]), 16,42},
+ {&(_ZTV9GG2233123[21]), 21,42},
+ {&(_ZTV9GG2233123[25]), 25,42},
+ {&(_ZTV9GG2233123[31]), 31,42},
+ {&(_ZTV9GG2233123[36]), 36,42},
+ {&(_ZTV9GG2233123[41]), 41,42},
+ {&(_tg__ZTV5EE223__9GG2233123[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE223__9GG2233123[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE223__9GG2233123[3]), 3,4},
+ {&(_tg__ZTV5FF312__9GG2233123[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF312__9GG2233123[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF312__9GG2233123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2233123[];
+extern VTBL_ENTRY _ZTV9GG2233123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2233123[];
+static VTBL_ENTRY alt_thunk_names659[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3123barEv,_ZThn8_N5FF3123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22331233barEv,_ZTv0_n16_N9GG22331233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22331233barEv,_ZThn40_N9GG22331233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22331233fooEv,_ZTv0_n12_N9GG22331233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22331233fooEv,_ZThn48_N9GG22331233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22331233fooEv,_ZThn40_N9GG22331233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22331233barEv,_ZTv0_n20_N9GG22331233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22331233barEv,_ZThn32_N9GG22331233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22331233barEv,_ZTv0_n12_N9GG22331233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22331233barEv,_ZThn24_N9GG22331233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22331233barEv,_ZThn16_N9GG22331233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22331233barEv,_ZTv0_n24_N9GG22331233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22331233barEv,_ZThn8_N9GG22331233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22331233fooEv,_ZTv0_n20_N9GG22331233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22331233fooEv,_ZThn8_N9GG22331233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2233123 = { "GG2233123", // class name
+ bases_GG2233123, 6,
+ &(vtc_GG2233123[0]), // expected_vtbl_contents
+ &(vtt_GG2233123[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2233123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2233123),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2233123),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names659,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2233133 : virtual EE223 , virtual FF313 {
+ int pg;
+ virtual void foo(); // _ZN9GG22331333fooEv
+ virtual void bar(); // _ZN9GG22331333barEv
+ ~GG2233133(); // tgen
+ GG2233133(); // tgen
+};
+//SIG(1 GG2233133) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2233133 ::foo(){vfunc_called(this, "_ZN9GG22331333fooEv");}
+void GG2233133 ::bar(){vfunc_called(this, "_ZN9GG22331333barEv");}
+GG2233133 ::~GG2233133(){ note_dtor("GG2233133", this);} // tgen
+GG2233133 ::GG2233133(){ note_ctor("GG2233133", this);} // tgen
+
+static void Test_GG2233133()
+{
+ extern Class_Descriptor cd_GG2233133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2233133, buf);
+ GG2233133 *dp, &lv = *(dp=new (buf) GG2233133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2233133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2233133)");
+ check_base_class_offset(lv, (AA2*)(EE223*), ABISELECT(32,16), "GG2233133");
+ check_base_class_offset(lv, (BB2*)(EE223*), ABISELECT(48,24), "GG2233133");
+ check_base_class_offset(lv, (EE223*), ABISELECT(16,8), "GG2233133");
+ check_base_class_offset(lv, (AA3*)(FF313*), ABISELECT(80,40), "GG2233133");
+ check_base_class_offset(lv, (BB1*)(FF313*), ABISELECT(96,48), "GG2233133");
+ check_base_class_offset(lv, (FF313*), ABISELECT(64,32), "GG2233133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2233133.pg");
+ test_class_info(&lv, &cd_GG2233133);
+ dp->~GG2233133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2233133(Test_GG2233133, "GG2233133", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2233133C1Ev();
+extern void _ZN9GG2233133D1Ev();
+Name_Map name_map_GG2233133[] = {
+ NSPAIR(_ZN9GG2233133C1Ev),
+ NSPAIR(_ZN9GG2233133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE223;
+extern VTBL_ENTRY _ZTI5EE223[];
+extern VTBL_ENTRY _ZTV5EE223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE223[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF313;
+extern VTBL_ENTRY _ZTI5FF313[];
+extern VTBL_ENTRY _ZTV5FF313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF313[];
+static Base_Class bases_GG2233133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE223, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 40, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF313, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2233133[];
+extern void _ZN9GG22331333fooEv();
+extern void _ZN9GG22331333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22331333fooEv,_ZTv0_n20_N9GG22331333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22331333fooEv,_ZThn8_N9GG22331333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22331333barEv,_ZTv0_n24_N9GG22331333barEv)();
+extern void ABISELECT(_ZThn16_N9GG22331333barEv,_ZThn8_N9GG22331333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22331333barEv,_ZTv0_n12_N9GG22331333barEv)();
+extern void ABISELECT(_ZThn32_N9GG22331333barEv,_ZThn16_N9GG22331333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22331333barEv,_ZTv0_n12_N9GG22331333barEv)();
+extern void ABISELECT(_ZThn48_N9GG22331333barEv,_ZThn24_N9GG22331333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22331333fooEv,_ZTv0_n20_N9GG22331333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22331333fooEv,_ZThn32_N9GG22331333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22331333barEv,_ZTv0_n24_N9GG22331333barEv)();
+extern void ABISELECT(_ZThn64_N9GG22331333barEv,_ZThn32_N9GG22331333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22331333fooEv,_ZTv0_n12_N9GG22331333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22331333fooEv,_ZThn40_N9GG22331333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22331333barEv,_ZTv0_n16_N9GG22331333barEv)();
+extern void ABISELECT(_ZThn80_N9GG22331333barEv,_ZThn40_N9GG22331333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22331333fooEv,_ZTv0_n12_N9GG22331333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG22331333fooEv,_ZThn48_N9GG22331333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2233133[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2233133[0]),
+ (VTBL_ENTRY)&_ZN9GG22331333fooEv,
+ (VTBL_ENTRY)&_ZN9GG22331333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2233133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22331333fooEv,_ZTv0_n20_N9GG22331333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22331333barEv,_ZTv0_n24_N9GG22331333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2233133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22331333barEv,_ZTv0_n12_N9GG22331333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2233133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22331333barEv,_ZTv0_n12_N9GG22331333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2233133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22331333fooEv,_ZTv0_n20_N9GG22331333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22331333barEv,_ZTv0_n24_N9GG22331333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2233133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22331333fooEv,_ZTv0_n12_N9GG22331333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22331333barEv,_ZTv0_n16_N9GG22331333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2233133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22331333fooEv,_ZTv0_n12_N9GG22331333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2233133[];
+extern void _ZN5EE2233fooEv();
+extern void _ZN5EE2233barEv();
+static VTBL_ENTRY _tg__ZTV5EE223__9GG2233133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&_ZN5EE2233fooEv,
+ (VTBL_ENTRY)&_ZN5EE2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE223__9GG2233133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE223__9GG2233133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void _ZN5FF3133fooEv();
+extern void _ZN5FF3133barEv();
+static VTBL_ENTRY _tg__ZTV5FF313__9GG2233133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&_ZN5FF3133fooEv,
+ (VTBL_ENTRY)&_ZN5FF3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv)();
+extern void ABISELECT(_ZThn16_N5FF3133barEv,_ZThn8_N5FF3133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF313__9GG2233133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3133fooEv,_ZThn16_N5FF3133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF313__9GG2233133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+};
+static VTT_ENTRY vtt_GG2233133[] = {
+ {&(_ZTV9GG2233133[8]), 8,44},
+ {&(_ZTV9GG2233133[16]), 16,44},
+ {&(_ZTV9GG2233133[21]), 21,44},
+ {&(_ZTV9GG2233133[25]), 25,44},
+ {&(_ZTV9GG2233133[32]), 32,44},
+ {&(_ZTV9GG2233133[38]), 38,44},
+ {&(_ZTV9GG2233133[43]), 43,44},
+ {&(_tg__ZTV5EE223__9GG2233133[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE223__9GG2233133[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE223__9GG2233133[3]), 3,4},
+ {&(_tg__ZTV5FF313__9GG2233133[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF313__9GG2233133[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF313__9GG2233133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2233133[];
+extern VTBL_ENTRY _ZTV9GG2233133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2233133[];
+static VTBL_ENTRY alt_thunk_names660[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3133barEv,_ZThn8_N5FF3133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3133fooEv,_ZThn16_N5FF3133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22331333barEv,_ZTv0_n16_N9GG22331333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22331333barEv,_ZThn40_N9GG22331333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22331333fooEv,_ZTv0_n12_N9GG22331333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22331333fooEv,_ZThn48_N9GG22331333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22331333fooEv,_ZThn40_N9GG22331333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22331333barEv,_ZTv0_n12_N9GG22331333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22331333barEv,_ZThn24_N9GG22331333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22331333barEv,_ZThn16_N9GG22331333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22331333barEv,_ZTv0_n24_N9GG22331333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22331333barEv,_ZThn32_N9GG22331333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22331333barEv,_ZThn8_N9GG22331333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22331333fooEv,_ZTv0_n20_N9GG22331333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22331333fooEv,_ZThn32_N9GG22331333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22331333fooEv,_ZThn8_N9GG22331333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2233133 = { "GG2233133", // class name
+ bases_GG2233133, 6,
+ &(vtc_GG2233133[0]), // expected_vtbl_contents
+ &(vtt_GG2233133[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2233133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2233133),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2233133),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names660,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2233213 : virtual EE223 , virtual FF321 {
+ int pg;
+ virtual void foo(); // _ZN9GG22332133fooEv
+ virtual void bar(); // _ZN9GG22332133barEv
+ ~GG2233213(); // tgen
+ GG2233213(); // tgen
+};
+//SIG(1 GG2233213) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG2233213 ::foo(){vfunc_called(this, "_ZN9GG22332133fooEv");}
+void GG2233213 ::bar(){vfunc_called(this, "_ZN9GG22332133barEv");}
+GG2233213 ::~GG2233213(){ note_dtor("GG2233213", this);} // tgen
+GG2233213 ::GG2233213(){ note_ctor("GG2233213", this);} // tgen
+
+static void Test_GG2233213()
+{
+ extern Class_Descriptor cd_GG2233213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2233213, buf);
+ GG2233213 *dp, &lv = *(dp=new (buf) GG2233213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2233213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2233213)");
+ check_base_class_offset(lv, (AA2*)(EE223*), ABISELECT(32,16), "GG2233213");
+ check_base_class_offset(lv, (BB2*)(EE223*), ABISELECT(48,24), "GG2233213");
+ check_base_class_offset(lv, (BB2*)(FF321*), ABISELECT(48,24), "GG2233213");
+ check_base_class_offset(lv, (EE223*), ABISELECT(16,8), "GG2233213");
+ check_base_class_offset(lv, (AA3*)(FF321*), ABISELECT(80,40), "GG2233213");
+ check_base_class_offset(lv, (FF321*), ABISELECT(64,32), "GG2233213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2233213.pg");
+ test_class_info(&lv, &cd_GG2233213);
+ dp->~GG2233213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2233213(Test_GG2233213, "GG2233213", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2233213C1Ev();
+extern void _ZN9GG2233213D1Ev();
+Name_Map name_map_GG2233213[] = {
+ NSPAIR(_ZN9GG2233213C1Ev),
+ NSPAIR(_ZN9GG2233213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE223;
+extern VTBL_ENTRY _ZTI5EE223[];
+extern VTBL_ENTRY _ZTV5EE223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE223[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF321;
+extern VTBL_ENTRY _ZTI5FF321[];
+extern VTBL_ENTRY _ZTV5FF321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF321[];
+static Base_Class bases_GG2233213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE223, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF321, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2233213[];
+extern void _ZN9GG22332133fooEv();
+extern void _ZN9GG22332133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22332133fooEv,_ZTv0_n20_N9GG22332133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22332133fooEv,_ZThn8_N9GG22332133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22332133barEv,_ZTv0_n24_N9GG22332133barEv)();
+extern void ABISELECT(_ZThn16_N9GG22332133barEv,_ZThn8_N9GG22332133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22332133barEv,_ZTv0_n12_N9GG22332133barEv)();
+extern void ABISELECT(_ZThn32_N9GG22332133barEv,_ZThn16_N9GG22332133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22332133barEv,_ZTv0_n12_N9GG22332133barEv)();
+extern void ABISELECT(_ZThn48_N9GG22332133barEv,_ZThn24_N9GG22332133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22332133fooEv,_ZTv0_n20_N9GG22332133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22332133fooEv,_ZThn32_N9GG22332133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22332133fooEv,_ZTv0_n12_N9GG22332133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22332133fooEv,_ZThn40_N9GG22332133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22332133barEv,_ZTv0_n16_N9GG22332133barEv)();
+extern void ABISELECT(_ZThn80_N9GG22332133barEv,_ZThn40_N9GG22332133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2233213[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2233213[0]),
+ (VTBL_ENTRY)&_ZN9GG22332133fooEv,
+ (VTBL_ENTRY)&_ZN9GG22332133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2233213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22332133fooEv,_ZTv0_n20_N9GG22332133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22332133barEv,_ZTv0_n24_N9GG22332133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2233213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22332133barEv,_ZTv0_n12_N9GG22332133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2233213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22332133barEv,_ZTv0_n12_N9GG22332133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2233213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22332133fooEv,_ZTv0_n20_N9GG22332133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2233213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22332133fooEv,_ZTv0_n12_N9GG22332133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22332133barEv,_ZTv0_n16_N9GG22332133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2233213[];
+extern void _ZN5EE2233fooEv();
+extern void _ZN5EE2233barEv();
+static VTBL_ENTRY _tg__ZTV5EE223__9GG2233213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&_ZN5EE2233fooEv,
+ (VTBL_ENTRY)&_ZN5EE2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE223__9GG2233213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE223__9GG2233213[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void _ZN5FF3213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF321__9GG2233213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN5FF3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3213fooEv,_ZThn8_N5FF3213fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF321__9GG2233213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF321__9GG2233213[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG2233213[] = {
+ {&(_ZTV9GG2233213[7]), 7,37},
+ {&(_ZTV9GG2233213[15]), 15,37},
+ {&(_ZTV9GG2233213[20]), 20,37},
+ {&(_ZTV9GG2233213[24]), 24,37},
+ {&(_ZTV9GG2233213[30]), 30,37},
+ {&(_ZTV9GG2233213[35]), 35,37},
+ {&(_tg__ZTV5EE223__9GG2233213[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE223__9GG2233213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE223__9GG2233213[3]), 3,4},
+ {&(_tg__ZTV5FF321__9GG2233213[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF321__9GG2233213[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF321__9GG2233213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2233213[];
+extern VTBL_ENTRY _ZTV9GG2233213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2233213[];
+static VTBL_ENTRY alt_thunk_names661[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3213fooEv,_ZThn8_N5FF3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22332133barEv,_ZTv0_n16_N9GG22332133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22332133barEv,_ZThn40_N9GG22332133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22332133fooEv,_ZTv0_n12_N9GG22332133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22332133fooEv,_ZThn40_N9GG22332133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22332133barEv,_ZTv0_n12_N9GG22332133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22332133barEv,_ZThn24_N9GG22332133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22332133barEv,_ZThn16_N9GG22332133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22332133barEv,_ZTv0_n24_N9GG22332133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22332133barEv,_ZThn8_N9GG22332133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22332133fooEv,_ZTv0_n20_N9GG22332133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22332133fooEv,_ZThn32_N9GG22332133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22332133fooEv,_ZThn8_N9GG22332133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2233213 = { "GG2233213", // class name
+ bases_GG2233213, 5,
+ &(vtc_GG2233213[0]), // expected_vtbl_contents
+ &(vtt_GG2233213[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2233213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2233213),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2233213),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names661,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2233223 : virtual EE223 , virtual FF322 {
+ int pg;
+ virtual void foo(); // _ZN9GG22332233fooEv
+ virtual void bar(); // _ZN9GG22332233barEv
+ ~GG2233223(); // tgen
+ GG2233223(); // tgen
+};
+//SIG(1 GG2233223) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG2233223 ::foo(){vfunc_called(this, "_ZN9GG22332233fooEv");}
+void GG2233223 ::bar(){vfunc_called(this, "_ZN9GG22332233barEv");}
+GG2233223 ::~GG2233223(){ note_dtor("GG2233223", this);} // tgen
+GG2233223 ::GG2233223(){ note_ctor("GG2233223", this);} // tgen
+
+static void Test_GG2233223()
+{
+ extern Class_Descriptor cd_GG2233223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2233223, buf);
+ GG2233223 *dp, &lv = *(dp=new (buf) GG2233223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2233223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2233223)");
+ check_base_class_offset(lv, (AA2*)(EE223*), ABISELECT(32,16), "GG2233223");
+ check_base_class_offset(lv, (BB2*)(EE223*), ABISELECT(48,24), "GG2233223");
+ check_base_class_offset(lv, (BB2*)(FF322*), ABISELECT(48,24), "GG2233223");
+ check_base_class_offset(lv, (EE223*), ABISELECT(16,8), "GG2233223");
+ check_base_class_offset(lv, (AA3*)(FF322*), ABISELECT(80,40), "GG2233223");
+ check_base_class_offset(lv, (FF322*), ABISELECT(64,32), "GG2233223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2233223.pg");
+ test_class_info(&lv, &cd_GG2233223);
+ dp->~GG2233223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2233223(Test_GG2233223, "GG2233223", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2233223C1Ev();
+extern void _ZN9GG2233223D1Ev();
+Name_Map name_map_GG2233223[] = {
+ NSPAIR(_ZN9GG2233223C1Ev),
+ NSPAIR(_ZN9GG2233223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE223;
+extern VTBL_ENTRY _ZTI5EE223[];
+extern VTBL_ENTRY _ZTV5EE223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE223[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF322;
+extern VTBL_ENTRY _ZTI5FF322[];
+extern VTBL_ENTRY _ZTV5FF322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF322[];
+static Base_Class bases_GG2233223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE223, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF322, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2233223[];
+extern void _ZN9GG22332233fooEv();
+extern void _ZN9GG22332233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22332233fooEv,_ZTv0_n20_N9GG22332233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22332233fooEv,_ZThn8_N9GG22332233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22332233barEv,_ZTv0_n24_N9GG22332233barEv)();
+extern void ABISELECT(_ZThn16_N9GG22332233barEv,_ZThn8_N9GG22332233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22332233barEv,_ZTv0_n12_N9GG22332233barEv)();
+extern void ABISELECT(_ZThn32_N9GG22332233barEv,_ZThn16_N9GG22332233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22332233barEv,_ZTv0_n12_N9GG22332233barEv)();
+extern void ABISELECT(_ZThn48_N9GG22332233barEv,_ZThn24_N9GG22332233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22332233barEv,_ZTv0_n20_N9GG22332233barEv)();
+extern void ABISELECT(_ZThn64_N9GG22332233barEv,_ZThn32_N9GG22332233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22332233fooEv,_ZTv0_n12_N9GG22332233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22332233fooEv,_ZThn40_N9GG22332233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22332233barEv,_ZTv0_n16_N9GG22332233barEv)();
+extern void ABISELECT(_ZThn80_N9GG22332233barEv,_ZThn40_N9GG22332233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2233223[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2233223[0]),
+ (VTBL_ENTRY)&_ZN9GG22332233fooEv,
+ (VTBL_ENTRY)&_ZN9GG22332233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2233223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22332233fooEv,_ZTv0_n20_N9GG22332233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22332233barEv,_ZTv0_n24_N9GG22332233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2233223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22332233barEv,_ZTv0_n12_N9GG22332233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2233223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22332233barEv,_ZTv0_n12_N9GG22332233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2233223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22332233barEv,_ZTv0_n20_N9GG22332233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2233223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22332233fooEv,_ZTv0_n12_N9GG22332233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22332233barEv,_ZTv0_n16_N9GG22332233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2233223[];
+extern void _ZN5EE2233fooEv();
+extern void _ZN5EE2233barEv();
+static VTBL_ENTRY _tg__ZTV5EE223__9GG2233223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&_ZN5EE2233fooEv,
+ (VTBL_ENTRY)&_ZN5EE2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE223__9GG2233223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE223__9GG2233223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void _ZN5FF3223barEv();
+static VTBL_ENTRY _tg__ZTV5FF322__9GG2233223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN5FF3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv)();
+extern void ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF322__9GG2233223[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF322__9GG2233223[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv),
+};
+static VTT_ENTRY vtt_GG2233223[] = {
+ {&(_ZTV9GG2233223[7]), 7,37},
+ {&(_ZTV9GG2233223[15]), 15,37},
+ {&(_ZTV9GG2233223[20]), 20,37},
+ {&(_ZTV9GG2233223[24]), 24,37},
+ {&(_ZTV9GG2233223[30]), 30,37},
+ {&(_ZTV9GG2233223[35]), 35,37},
+ {&(_tg__ZTV5EE223__9GG2233223[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE223__9GG2233223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE223__9GG2233223[3]), 3,4},
+ {&(_tg__ZTV5FF322__9GG2233223[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF322__9GG2233223[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF322__9GG2233223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2233223[];
+extern VTBL_ENTRY _ZTV9GG2233223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2233223[];
+static VTBL_ENTRY alt_thunk_names662[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22332233barEv,_ZTv0_n16_N9GG22332233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22332233barEv,_ZThn40_N9GG22332233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22332233fooEv,_ZTv0_n12_N9GG22332233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22332233fooEv,_ZThn40_N9GG22332233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22332233barEv,_ZTv0_n20_N9GG22332233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22332233barEv,_ZThn32_N9GG22332233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22332233barEv,_ZTv0_n12_N9GG22332233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22332233barEv,_ZThn24_N9GG22332233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22332233barEv,_ZThn16_N9GG22332233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22332233barEv,_ZTv0_n24_N9GG22332233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22332233barEv,_ZThn8_N9GG22332233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22332233fooEv,_ZTv0_n20_N9GG22332233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22332233fooEv,_ZThn8_N9GG22332233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2233223 = { "GG2233223", // class name
+ bases_GG2233223, 5,
+ &(vtc_GG2233223[0]), // expected_vtbl_contents
+ &(vtt_GG2233223[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2233223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2233223),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2233223),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names662,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2233233 : virtual EE223 , virtual FF323 {
+ int pg;
+ virtual void foo(); // _ZN9GG22332333fooEv
+ virtual void bar(); // _ZN9GG22332333barEv
+ ~GG2233233(); // tgen
+ GG2233233(); // tgen
+};
+//SIG(1 GG2233233) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2233233 ::foo(){vfunc_called(this, "_ZN9GG22332333fooEv");}
+void GG2233233 ::bar(){vfunc_called(this, "_ZN9GG22332333barEv");}
+GG2233233 ::~GG2233233(){ note_dtor("GG2233233", this);} // tgen
+GG2233233 ::GG2233233(){ note_ctor("GG2233233", this);} // tgen
+
+static void Test_GG2233233()
+{
+ extern Class_Descriptor cd_GG2233233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2233233, buf);
+ GG2233233 *dp, &lv = *(dp=new (buf) GG2233233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2233233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2233233)");
+ check_base_class_offset(lv, (AA2*)(EE223*), ABISELECT(32,16), "GG2233233");
+ check_base_class_offset(lv, (BB2*)(EE223*), ABISELECT(48,24), "GG2233233");
+ check_base_class_offset(lv, (BB2*)(FF323*), ABISELECT(48,24), "GG2233233");
+ check_base_class_offset(lv, (EE223*), ABISELECT(16,8), "GG2233233");
+ check_base_class_offset(lv, (AA3*)(FF323*), ABISELECT(80,40), "GG2233233");
+ check_base_class_offset(lv, (FF323*), ABISELECT(64,32), "GG2233233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2233233.pg");
+ test_class_info(&lv, &cd_GG2233233);
+ dp->~GG2233233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2233233(Test_GG2233233, "GG2233233", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2233233C1Ev();
+extern void _ZN9GG2233233D1Ev();
+Name_Map name_map_GG2233233[] = {
+ NSPAIR(_ZN9GG2233233C1Ev),
+ NSPAIR(_ZN9GG2233233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE223;
+extern VTBL_ENTRY _ZTI5EE223[];
+extern VTBL_ENTRY _ZTV5EE223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE223[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF323;
+extern VTBL_ENTRY _ZTI5FF323[];
+extern VTBL_ENTRY _ZTV5FF323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF323[];
+static Base_Class bases_GG2233233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE223, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF323, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2233233[];
+extern void _ZN9GG22332333fooEv();
+extern void _ZN9GG22332333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22332333fooEv,_ZTv0_n20_N9GG22332333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22332333fooEv,_ZThn8_N9GG22332333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22332333barEv,_ZTv0_n24_N9GG22332333barEv)();
+extern void ABISELECT(_ZThn16_N9GG22332333barEv,_ZThn8_N9GG22332333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22332333barEv,_ZTv0_n12_N9GG22332333barEv)();
+extern void ABISELECT(_ZThn32_N9GG22332333barEv,_ZThn16_N9GG22332333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22332333barEv,_ZTv0_n12_N9GG22332333barEv)();
+extern void ABISELECT(_ZThn48_N9GG22332333barEv,_ZThn24_N9GG22332333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22332333fooEv,_ZTv0_n20_N9GG22332333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22332333fooEv,_ZThn32_N9GG22332333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22332333barEv,_ZTv0_n24_N9GG22332333barEv)();
+extern void ABISELECT(_ZThn64_N9GG22332333barEv,_ZThn32_N9GG22332333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22332333fooEv,_ZTv0_n12_N9GG22332333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22332333fooEv,_ZThn40_N9GG22332333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22332333barEv,_ZTv0_n16_N9GG22332333barEv)();
+extern void ABISELECT(_ZThn80_N9GG22332333barEv,_ZThn40_N9GG22332333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2233233[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2233233[0]),
+ (VTBL_ENTRY)&_ZN9GG22332333fooEv,
+ (VTBL_ENTRY)&_ZN9GG22332333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2233233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22332333fooEv,_ZTv0_n20_N9GG22332333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22332333barEv,_ZTv0_n24_N9GG22332333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2233233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22332333barEv,_ZTv0_n12_N9GG22332333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2233233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22332333barEv,_ZTv0_n12_N9GG22332333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2233233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22332333fooEv,_ZTv0_n20_N9GG22332333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22332333barEv,_ZTv0_n24_N9GG22332333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2233233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22332333fooEv,_ZTv0_n12_N9GG22332333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22332333barEv,_ZTv0_n16_N9GG22332333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2233233[];
+extern void _ZN5EE2233fooEv();
+extern void _ZN5EE2233barEv();
+static VTBL_ENTRY _tg__ZTV5EE223__9GG2233233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&_ZN5EE2233fooEv,
+ (VTBL_ENTRY)&_ZN5EE2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE223__9GG2233233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE223__9GG2233233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void _ZN5FF3233fooEv();
+extern void _ZN5FF3233barEv();
+static VTBL_ENTRY _tg__ZTV5FF323__9GG2233233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&_ZN5FF3233fooEv,
+ (VTBL_ENTRY)&_ZN5FF3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3233fooEv,_ZThn8_N5FF3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv)();
+extern void ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF323__9GG2233233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF323__9GG2233233[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv),
+};
+static VTT_ENTRY vtt_GG2233233[] = {
+ {&(_ZTV9GG2233233[7]), 7,39},
+ {&(_ZTV9GG2233233[15]), 15,39},
+ {&(_ZTV9GG2233233[20]), 20,39},
+ {&(_ZTV9GG2233233[24]), 24,39},
+ {&(_ZTV9GG2233233[31]), 31,39},
+ {&(_ZTV9GG2233233[37]), 37,39},
+ {&(_tg__ZTV5EE223__9GG2233233[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE223__9GG2233233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE223__9GG2233233[3]), 3,4},
+ {&(_tg__ZTV5FF323__9GG2233233[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF323__9GG2233233[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF323__9GG2233233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2233233[];
+extern VTBL_ENTRY _ZTV9GG2233233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2233233[];
+static VTBL_ENTRY alt_thunk_names663[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3233fooEv,_ZThn8_N5FF3233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22332333barEv,_ZTv0_n16_N9GG22332333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22332333barEv,_ZThn40_N9GG22332333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22332333fooEv,_ZTv0_n12_N9GG22332333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22332333fooEv,_ZThn40_N9GG22332333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22332333barEv,_ZTv0_n12_N9GG22332333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22332333barEv,_ZThn24_N9GG22332333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22332333barEv,_ZThn16_N9GG22332333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22332333barEv,_ZTv0_n24_N9GG22332333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22332333barEv,_ZThn32_N9GG22332333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22332333barEv,_ZThn8_N9GG22332333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22332333fooEv,_ZTv0_n20_N9GG22332333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22332333fooEv,_ZThn32_N9GG22332333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22332333fooEv,_ZThn8_N9GG22332333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2233233 = { "GG2233233", // class name
+ bases_GG2233233, 5,
+ &(vtc_GG2233233[0]), // expected_vtbl_contents
+ &(vtt_GG2233233[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2233233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2233233),39, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2233233),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names663,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2233313 : virtual EE223 , virtual FF331 {
+ int pg;
+ virtual void foo(); // _ZN9GG22333133fooEv
+ virtual void bar(); // _ZN9GG22333133barEv
+ ~GG2233313(); // tgen
+ GG2233313(); // tgen
+};
+//SIG(1 GG2233313) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2233313 ::foo(){vfunc_called(this, "_ZN9GG22333133fooEv");}
+void GG2233313 ::bar(){vfunc_called(this, "_ZN9GG22333133barEv");}
+GG2233313 ::~GG2233313(){ note_dtor("GG2233313", this);} // tgen
+GG2233313 ::GG2233313(){ note_ctor("GG2233313", this);} // tgen
+
+static void Test_GG2233313()
+{
+ extern Class_Descriptor cd_GG2233313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2233313, buf);
+ GG2233313 *dp, &lv = *(dp=new (buf) GG2233313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2233313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2233313)");
+ check_base_class_offset(lv, (AA2*)(EE223*), ABISELECT(32,16), "GG2233313");
+ check_base_class_offset(lv, (BB2*)(EE223*), ABISELECT(48,24), "GG2233313");
+ check_base_class_offset(lv, (EE223*), ABISELECT(16,8), "GG2233313");
+ check_base_class_offset(lv, (AA3*)(FF331*), ABISELECT(80,40), "GG2233313");
+ check_base_class_offset(lv, (BB3*)(FF331*), ABISELECT(96,48), "GG2233313");
+ check_base_class_offset(lv, (FF331*), ABISELECT(64,32), "GG2233313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2233313.pg");
+ test_class_info(&lv, &cd_GG2233313);
+ dp->~GG2233313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2233313(Test_GG2233313, "GG2233313", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2233313C1Ev();
+extern void _ZN9GG2233313D1Ev();
+Name_Map name_map_GG2233313[] = {
+ NSPAIR(_ZN9GG2233313C1Ev),
+ NSPAIR(_ZN9GG2233313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE223;
+extern VTBL_ENTRY _ZTI5EE223[];
+extern VTBL_ENTRY _ZTV5EE223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE223[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF331;
+extern VTBL_ENTRY _ZTI5FF331[];
+extern VTBL_ENTRY _ZTV5FF331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF331[];
+static Base_Class bases_GG2233313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE223, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF331, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2233313[];
+extern void _ZN9GG22333133fooEv();
+extern void _ZN9GG22333133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22333133fooEv,_ZTv0_n20_N9GG22333133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22333133fooEv,_ZThn8_N9GG22333133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22333133barEv,_ZTv0_n24_N9GG22333133barEv)();
+extern void ABISELECT(_ZThn16_N9GG22333133barEv,_ZThn8_N9GG22333133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22333133barEv,_ZTv0_n12_N9GG22333133barEv)();
+extern void ABISELECT(_ZThn32_N9GG22333133barEv,_ZThn16_N9GG22333133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22333133barEv,_ZTv0_n12_N9GG22333133barEv)();
+extern void ABISELECT(_ZThn48_N9GG22333133barEv,_ZThn24_N9GG22333133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22333133fooEv,_ZTv0_n20_N9GG22333133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22333133fooEv,_ZThn32_N9GG22333133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22333133fooEv,_ZTv0_n12_N9GG22333133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22333133fooEv,_ZThn40_N9GG22333133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22333133barEv,_ZTv0_n16_N9GG22333133barEv)();
+extern void ABISELECT(_ZThn80_N9GG22333133barEv,_ZThn40_N9GG22333133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22333133fooEv,_ZTv0_n12_N9GG22333133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG22333133fooEv,_ZThn48_N9GG22333133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22333133barEv,_ZTv0_n16_N9GG22333133barEv)();
+extern void ABISELECT(_ZThn96_N9GG22333133barEv,_ZThn48_N9GG22333133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2233313[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2233313[0]),
+ (VTBL_ENTRY)&_ZN9GG22333133fooEv,
+ (VTBL_ENTRY)&_ZN9GG22333133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2233313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22333133fooEv,_ZTv0_n20_N9GG22333133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22333133barEv,_ZTv0_n24_N9GG22333133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2233313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22333133barEv,_ZTv0_n12_N9GG22333133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2233313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22333133barEv,_ZTv0_n12_N9GG22333133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2233313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22333133fooEv,_ZTv0_n20_N9GG22333133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2233313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22333133fooEv,_ZTv0_n12_N9GG22333133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22333133barEv,_ZTv0_n16_N9GG22333133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2233313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22333133fooEv,_ZTv0_n12_N9GG22333133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22333133barEv,_ZTv0_n16_N9GG22333133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2233313[];
+extern void _ZN5EE2233fooEv();
+extern void _ZN5EE2233barEv();
+static VTBL_ENTRY _tg__ZTV5EE223__9GG2233313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&_ZN5EE2233fooEv,
+ (VTBL_ENTRY)&_ZN5EE2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE223__9GG2233313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE223__9GG2233313[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void _ZN5FF3313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF331__9GG2233313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&_ZN5FF3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF331__9GG2233313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3313fooEv,_ZThn16_N5FF3313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF331__9GG2233313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG2233313[] = {
+ {&(_ZTV9GG2233313[8]), 8,44},
+ {&(_ZTV9GG2233313[16]), 16,44},
+ {&(_ZTV9GG2233313[21]), 21,44},
+ {&(_ZTV9GG2233313[25]), 25,44},
+ {&(_ZTV9GG2233313[31]), 31,44},
+ {&(_ZTV9GG2233313[36]), 36,44},
+ {&(_ZTV9GG2233313[42]), 42,44},
+ {&(_tg__ZTV5EE223__9GG2233313[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE223__9GG2233313[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE223__9GG2233313[3]), 3,4},
+ {&(_tg__ZTV5FF331__9GG2233313[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF331__9GG2233313[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF331__9GG2233313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2233313[];
+extern VTBL_ENTRY _ZTV9GG2233313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2233313[];
+static VTBL_ENTRY alt_thunk_names664[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3313fooEv,_ZThn16_N5FF3313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22333133barEv,_ZTv0_n16_N9GG22333133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22333133barEv,_ZThn48_N9GG22333133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22333133barEv,_ZThn40_N9GG22333133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22333133fooEv,_ZTv0_n12_N9GG22333133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22333133fooEv,_ZThn48_N9GG22333133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22333133fooEv,_ZThn40_N9GG22333133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22333133barEv,_ZTv0_n12_N9GG22333133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22333133barEv,_ZThn24_N9GG22333133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22333133barEv,_ZThn16_N9GG22333133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22333133barEv,_ZTv0_n24_N9GG22333133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22333133barEv,_ZThn8_N9GG22333133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22333133fooEv,_ZTv0_n20_N9GG22333133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22333133fooEv,_ZThn32_N9GG22333133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22333133fooEv,_ZThn8_N9GG22333133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2233313 = { "GG2233313", // class name
+ bases_GG2233313, 6,
+ &(vtc_GG2233313[0]), // expected_vtbl_contents
+ &(vtt_GG2233313[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2233313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2233313),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2233313),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names664,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2233323 : virtual EE223 , virtual FF332 {
+ int pg;
+ virtual void foo(); // _ZN9GG22333233fooEv
+ virtual void bar(); // _ZN9GG22333233barEv
+ ~GG2233323(); // tgen
+ GG2233323(); // tgen
+};
+//SIG(1 GG2233323) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2233323 ::foo(){vfunc_called(this, "_ZN9GG22333233fooEv");}
+void GG2233323 ::bar(){vfunc_called(this, "_ZN9GG22333233barEv");}
+GG2233323 ::~GG2233323(){ note_dtor("GG2233323", this);} // tgen
+GG2233323 ::GG2233323(){ note_ctor("GG2233323", this);} // tgen
+
+static void Test_GG2233323()
+{
+ extern Class_Descriptor cd_GG2233323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2233323, buf);
+ GG2233323 *dp, &lv = *(dp=new (buf) GG2233323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2233323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2233323)");
+ check_base_class_offset(lv, (AA2*)(EE223*), ABISELECT(32,16), "GG2233323");
+ check_base_class_offset(lv, (BB2*)(EE223*), ABISELECT(48,24), "GG2233323");
+ check_base_class_offset(lv, (EE223*), ABISELECT(16,8), "GG2233323");
+ check_base_class_offset(lv, (AA3*)(FF332*), ABISELECT(80,40), "GG2233323");
+ check_base_class_offset(lv, (BB3*)(FF332*), ABISELECT(96,48), "GG2233323");
+ check_base_class_offset(lv, (FF332*), ABISELECT(64,32), "GG2233323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2233323.pg");
+ test_class_info(&lv, &cd_GG2233323);
+ dp->~GG2233323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2233323(Test_GG2233323, "GG2233323", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2233323C1Ev();
+extern void _ZN9GG2233323D1Ev();
+Name_Map name_map_GG2233323[] = {
+ NSPAIR(_ZN9GG2233323C1Ev),
+ NSPAIR(_ZN9GG2233323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE223;
+extern VTBL_ENTRY _ZTI5EE223[];
+extern VTBL_ENTRY _ZTV5EE223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE223[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF332;
+extern VTBL_ENTRY _ZTI5FF332[];
+extern VTBL_ENTRY _ZTV5FF332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF332[];
+static Base_Class bases_GG2233323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE223, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF332, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2233323[];
+extern void _ZN9GG22333233fooEv();
+extern void _ZN9GG22333233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22333233fooEv,_ZTv0_n20_N9GG22333233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22333233fooEv,_ZThn8_N9GG22333233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22333233barEv,_ZTv0_n24_N9GG22333233barEv)();
+extern void ABISELECT(_ZThn16_N9GG22333233barEv,_ZThn8_N9GG22333233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22333233barEv,_ZTv0_n12_N9GG22333233barEv)();
+extern void ABISELECT(_ZThn32_N9GG22333233barEv,_ZThn16_N9GG22333233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22333233barEv,_ZTv0_n12_N9GG22333233barEv)();
+extern void ABISELECT(_ZThn48_N9GG22333233barEv,_ZThn24_N9GG22333233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22333233barEv,_ZTv0_n20_N9GG22333233barEv)();
+extern void ABISELECT(_ZThn64_N9GG22333233barEv,_ZThn32_N9GG22333233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22333233fooEv,_ZTv0_n12_N9GG22333233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22333233fooEv,_ZThn40_N9GG22333233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22333233barEv,_ZTv0_n16_N9GG22333233barEv)();
+extern void ABISELECT(_ZThn80_N9GG22333233barEv,_ZThn40_N9GG22333233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22333233fooEv,_ZTv0_n12_N9GG22333233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG22333233fooEv,_ZThn48_N9GG22333233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22333233barEv,_ZTv0_n16_N9GG22333233barEv)();
+extern void ABISELECT(_ZThn96_N9GG22333233barEv,_ZThn48_N9GG22333233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2233323[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2233323[0]),
+ (VTBL_ENTRY)&_ZN9GG22333233fooEv,
+ (VTBL_ENTRY)&_ZN9GG22333233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2233323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22333233fooEv,_ZTv0_n20_N9GG22333233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22333233barEv,_ZTv0_n24_N9GG22333233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2233323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22333233barEv,_ZTv0_n12_N9GG22333233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2233323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22333233barEv,_ZTv0_n12_N9GG22333233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2233323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22333233barEv,_ZTv0_n20_N9GG22333233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2233323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22333233fooEv,_ZTv0_n12_N9GG22333233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22333233barEv,_ZTv0_n16_N9GG22333233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2233323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22333233fooEv,_ZTv0_n12_N9GG22333233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22333233barEv,_ZTv0_n16_N9GG22333233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2233323[];
+extern void _ZN5EE2233fooEv();
+extern void _ZN5EE2233barEv();
+static VTBL_ENTRY _tg__ZTV5EE223__9GG2233323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&_ZN5EE2233fooEv,
+ (VTBL_ENTRY)&_ZN5EE2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE223__9GG2233323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE223__9GG2233323[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void _ZN5FF3323barEv();
+static VTBL_ENTRY _tg__ZTV5FF332__9GG2233323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN5FF3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+extern void ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF332__9GG2233323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+extern void ABISELECT(_ZThn32_N5FF3323barEv,_ZThn16_N5FF3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF332__9GG2233323[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+static VTT_ENTRY vtt_GG2233323[] = {
+ {&(_ZTV9GG2233323[8]), 8,44},
+ {&(_ZTV9GG2233323[16]), 16,44},
+ {&(_ZTV9GG2233323[21]), 21,44},
+ {&(_ZTV9GG2233323[25]), 25,44},
+ {&(_ZTV9GG2233323[31]), 31,44},
+ {&(_ZTV9GG2233323[36]), 36,44},
+ {&(_ZTV9GG2233323[42]), 42,44},
+ {&(_tg__ZTV5EE223__9GG2233323[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE223__9GG2233323[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE223__9GG2233323[3]), 3,4},
+ {&(_tg__ZTV5FF332__9GG2233323[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF332__9GG2233323[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF332__9GG2233323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2233323[];
+extern VTBL_ENTRY _ZTV9GG2233323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2233323[];
+static VTBL_ENTRY alt_thunk_names665[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3323barEv,_ZThn16_N5FF3323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22333233barEv,_ZTv0_n16_N9GG22333233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22333233barEv,_ZThn48_N9GG22333233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22333233barEv,_ZThn40_N9GG22333233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22333233fooEv,_ZTv0_n12_N9GG22333233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22333233fooEv,_ZThn48_N9GG22333233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22333233fooEv,_ZThn40_N9GG22333233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22333233barEv,_ZTv0_n20_N9GG22333233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22333233barEv,_ZThn32_N9GG22333233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22333233barEv,_ZTv0_n12_N9GG22333233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22333233barEv,_ZThn24_N9GG22333233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22333233barEv,_ZThn16_N9GG22333233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22333233barEv,_ZTv0_n24_N9GG22333233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22333233barEv,_ZThn8_N9GG22333233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22333233fooEv,_ZTv0_n20_N9GG22333233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22333233fooEv,_ZThn8_N9GG22333233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2233323 = { "GG2233323", // class name
+ bases_GG2233323, 6,
+ &(vtc_GG2233323[0]), // expected_vtbl_contents
+ &(vtt_GG2233323[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2233323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2233323),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2233323),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names665,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2233333 : virtual EE223 , virtual FF333 {
+ int pg;
+ virtual void foo(); // _ZN9GG22333333fooEv
+ virtual void bar(); // _ZN9GG22333333barEv
+ ~GG2233333(); // tgen
+ GG2233333(); // tgen
+};
+//SIG(1 GG2233333) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2233333 ::foo(){vfunc_called(this, "_ZN9GG22333333fooEv");}
+void GG2233333 ::bar(){vfunc_called(this, "_ZN9GG22333333barEv");}
+GG2233333 ::~GG2233333(){ note_dtor("GG2233333", this);} // tgen
+GG2233333 ::GG2233333(){ note_ctor("GG2233333", this);} // tgen
+
+static void Test_GG2233333()
+{
+ extern Class_Descriptor cd_GG2233333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2233333, buf);
+ GG2233333 *dp, &lv = *(dp=new (buf) GG2233333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2233333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2233333)");
+ check_base_class_offset(lv, (AA2*)(EE223*), ABISELECT(32,16), "GG2233333");
+ check_base_class_offset(lv, (BB2*)(EE223*), ABISELECT(48,24), "GG2233333");
+ check_base_class_offset(lv, (EE223*), ABISELECT(16,8), "GG2233333");
+ check_base_class_offset(lv, (AA3*)(FF333*), ABISELECT(80,40), "GG2233333");
+ check_base_class_offset(lv, (BB3*)(FF333*), ABISELECT(96,48), "GG2233333");
+ check_base_class_offset(lv, (FF333*), ABISELECT(64,32), "GG2233333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2233333.pg");
+ test_class_info(&lv, &cd_GG2233333);
+ dp->~GG2233333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2233333(Test_GG2233333, "GG2233333", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2233333C1Ev();
+extern void _ZN9GG2233333D1Ev();
+Name_Map name_map_GG2233333[] = {
+ NSPAIR(_ZN9GG2233333C1Ev),
+ NSPAIR(_ZN9GG2233333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE223;
+extern VTBL_ENTRY _ZTI5EE223[];
+extern VTBL_ENTRY _ZTV5EE223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE223[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF333;
+extern VTBL_ENTRY _ZTI5FF333[];
+extern VTBL_ENTRY _ZTV5FF333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF333[];
+static Base_Class bases_GG2233333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE223, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 40, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF333, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2233333[];
+extern void _ZN9GG22333333fooEv();
+extern void _ZN9GG22333333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG22333333fooEv,_ZTv0_n20_N9GG22333333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG22333333fooEv,_ZThn8_N9GG22333333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22333333barEv,_ZTv0_n24_N9GG22333333barEv)();
+extern void ABISELECT(_ZThn16_N9GG22333333barEv,_ZThn8_N9GG22333333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22333333barEv,_ZTv0_n12_N9GG22333333barEv)();
+extern void ABISELECT(_ZThn32_N9GG22333333barEv,_ZThn16_N9GG22333333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22333333barEv,_ZTv0_n12_N9GG22333333barEv)();
+extern void ABISELECT(_ZThn48_N9GG22333333barEv,_ZThn24_N9GG22333333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG22333333fooEv,_ZTv0_n20_N9GG22333333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG22333333fooEv,_ZThn32_N9GG22333333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG22333333barEv,_ZTv0_n24_N9GG22333333barEv)();
+extern void ABISELECT(_ZThn64_N9GG22333333barEv,_ZThn32_N9GG22333333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22333333fooEv,_ZTv0_n12_N9GG22333333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG22333333fooEv,_ZThn40_N9GG22333333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22333333barEv,_ZTv0_n16_N9GG22333333barEv)();
+extern void ABISELECT(_ZThn80_N9GG22333333barEv,_ZThn40_N9GG22333333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG22333333fooEv,_ZTv0_n12_N9GG22333333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG22333333fooEv,_ZThn48_N9GG22333333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG22333333barEv,_ZTv0_n16_N9GG22333333barEv)();
+extern void ABISELECT(_ZThn96_N9GG22333333barEv,_ZThn48_N9GG22333333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2233333[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2233333[0]),
+ (VTBL_ENTRY)&_ZN9GG22333333fooEv,
+ (VTBL_ENTRY)&_ZN9GG22333333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2233333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22333333fooEv,_ZTv0_n20_N9GG22333333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22333333barEv,_ZTv0_n24_N9GG22333333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2233333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22333333barEv,_ZTv0_n12_N9GG22333333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2233333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22333333barEv,_ZTv0_n12_N9GG22333333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2233333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG22333333fooEv,_ZTv0_n20_N9GG22333333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG22333333barEv,_ZTv0_n24_N9GG22333333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2233333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22333333fooEv,_ZTv0_n12_N9GG22333333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22333333barEv,_ZTv0_n16_N9GG22333333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2233333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG22333333fooEv,_ZTv0_n12_N9GG22333333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG22333333barEv,_ZTv0_n16_N9GG22333333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2233333[];
+extern void _ZN5EE2233fooEv();
+extern void _ZN5EE2233barEv();
+static VTBL_ENTRY _tg__ZTV5EE223__9GG2233333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&_ZN5EE2233fooEv,
+ (VTBL_ENTRY)&_ZN5EE2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE223__9GG2233333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv)();
+extern void ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE223__9GG2233333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv),
+};
+extern void _ZN5FF3333fooEv();
+extern void _ZN5FF3333barEv();
+static VTBL_ENTRY _tg__ZTV5FF333__9GG2233333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&_ZN5FF3333fooEv,
+ (VTBL_ENTRY)&_ZN5FF3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+extern void ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF333__9GG2233333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3333fooEv,_ZThn16_N5FF3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+extern void ABISELECT(_ZThn32_N5FF3333barEv,_ZThn16_N5FF3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF333__9GG2233333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+static VTT_ENTRY vtt_GG2233333[] = {
+ {&(_ZTV9GG2233333[8]), 8,46},
+ {&(_ZTV9GG2233333[16]), 16,46},
+ {&(_ZTV9GG2233333[21]), 21,46},
+ {&(_ZTV9GG2233333[25]), 25,46},
+ {&(_ZTV9GG2233333[32]), 32,46},
+ {&(_ZTV9GG2233333[38]), 38,46},
+ {&(_ZTV9GG2233333[44]), 44,46},
+ {&(_tg__ZTV5EE223__9GG2233333[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE223__9GG2233333[3]), 3,4},
+ {&(_tg__ZTV3BB2__5EE223__9GG2233333[3]), 3,4},
+ {&(_tg__ZTV5FF333__9GG2233333[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF333__9GG2233333[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF333__9GG2233333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2233333[];
+extern VTBL_ENTRY _ZTV9GG2233333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2233333[];
+static VTBL_ENTRY alt_thunk_names666[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3333barEv,_ZThn16_N5FF3333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3333fooEv,_ZThn16_N5FF3333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2233barEv,_ZTv0_n12_N5EE2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2233barEv,_ZThn16_N5EE2233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2233barEv,_ZThn8_N5EE2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG22333333barEv,_ZTv0_n16_N9GG22333333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22333333barEv,_ZThn48_N9GG22333333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22333333barEv,_ZThn40_N9GG22333333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22333333fooEv,_ZTv0_n12_N9GG22333333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG22333333fooEv,_ZThn48_N9GG22333333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG22333333fooEv,_ZThn40_N9GG22333333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG22333333barEv,_ZTv0_n12_N9GG22333333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG22333333barEv,_ZThn24_N9GG22333333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG22333333barEv,_ZThn16_N9GG22333333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG22333333barEv,_ZTv0_n24_N9GG22333333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22333333barEv,_ZThn32_N9GG22333333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22333333barEv,_ZThn8_N9GG22333333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG22333333fooEv,_ZTv0_n20_N9GG22333333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG22333333fooEv,_ZThn32_N9GG22333333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG22333333fooEv,_ZThn8_N9GG22333333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2233333 = { "GG2233333", // class name
+ bases_GG2233333, 6,
+ &(vtc_GG2233333[0]), // expected_vtbl_contents
+ &(vtt_GG2233333[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2233333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2233333),46, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2233333),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names666,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2311111 : virtual EE231 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG23111113fooEv
+ ~GG2311111(); // tgen
+ GG2311111(); // tgen
+};
+//SIG(1 GG2311111) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v3 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+void GG2311111 ::foo(){vfunc_called(this, "_ZN9GG23111113fooEv");}
+GG2311111 ::~GG2311111(){ note_dtor("GG2311111", this);} // tgen
+GG2311111 ::GG2311111(){ note_ctor("GG2311111", this);} // tgen
+
+static void Test_GG2311111()
+{
+ extern Class_Descriptor cd_GG2311111;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2311111, buf);
+ GG2311111 *dp, &lv = *(dp=new (buf) GG2311111());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2311111)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2311111)");
+ check_base_class_offset(lv, (AA2*)(EE231*), ABISELECT(32,16), "GG2311111");
+ check_base_class_offset(lv, (BB3*)(EE231*), ABISELECT(48,24), "GG2311111");
+ check_base_class_offset(lv, (EE231*), ABISELECT(16,8), "GG2311111");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(80,40), "GG2311111");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(96,48), "GG2311111");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG2311111");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2311111.pg");
+ test_class_info(&lv, &cd_GG2311111);
+ dp->~GG2311111();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2311111(Test_GG2311111, "GG2311111", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2311111C1Ev();
+extern void _ZN9GG2311111D1Ev();
+Name_Map name_map_GG2311111[] = {
+ NSPAIR(_ZN9GG2311111C1Ev),
+ NSPAIR(_ZN9GG2311111D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE231;
+extern VTBL_ENTRY _ZTI5EE231[];
+extern VTBL_ENTRY _ZTV5EE231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE231[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG2311111[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE231, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2311111[];
+extern void _ZN9GG23111113fooEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23111113fooEv,_ZTv0_n20_N9GG23111113fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23111113fooEv,_ZThn8_N9GG23111113fooEv)() __attribute__((weak));
+extern void _ZN3AA23barEv();
+extern void ABISELECT(_ZTv0_n24_N9GG23111113fooEv,_ZTv0_n12_N9GG23111113fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23111113fooEv,_ZThn24_N9GG23111113fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23111113fooEv,_ZTv0_n20_N9GG23111113fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23111113fooEv,_ZThn32_N9GG23111113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23111113fooEv,_ZTv0_n12_N9GG23111113fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23111113fooEv,_ZThn40_N9GG23111113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23111113fooEv,_ZTv0_n12_N9GG23111113fooEv)();
+extern void ABISELECT(_ZThn96_N9GG23111113fooEv,_ZThn48_N9GG23111113fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2311111[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2311111[0]),
+ (VTBL_ENTRY)&_ZN9GG23111113fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2311111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23111113fooEv,_ZTv0_n20_N9GG23111113fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2311111[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+ 0,
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2311111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23111113fooEv,_ZTv0_n12_N9GG23111113fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2311111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23111113fooEv,_ZTv0_n20_N9GG23111113fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2311111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23111113fooEv,_ZTv0_n12_N9GG23111113fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2311111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23111113fooEv,_ZTv0_n12_N9GG23111113fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2311111[];
+extern void _ZN5EE2313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE231__9GG2311111[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN5EE2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE231__9GG2311111[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE231__9GG2311111[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG2311111[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG2311111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG2311111[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG2311111[] = {
+ {&(_ZTV9GG2311111[8]), 8,39},
+ {&(_ZTV9GG2311111[14]), 14,39},
+ {&(_ZTV9GG2311111[18]), 18,39},
+ {&(_ZTV9GG2311111[23]), 23,39},
+ {&(_ZTV9GG2311111[30]), 30,39},
+ {&(_ZTV9GG2311111[34]), 34,39},
+ {&(_ZTV9GG2311111[38]), 38,39},
+ {&(_tg__ZTV5EE231__9GG2311111[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE231__9GG2311111[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE231__9GG2311111[4]), 4,6},
+ {&(_tg__ZTV5FF111__9GG2311111[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG2311111[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG2311111[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2311111[];
+extern VTBL_ENTRY _ZTV9GG2311111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2311111[];
+static VTBL_ENTRY alt_thunk_names667[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23111113fooEv,_ZTv0_n12_N9GG23111113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG23111113fooEv,_ZThn48_N9GG23111113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23111113fooEv,_ZThn40_N9GG23111113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23111113fooEv,_ZThn24_N9GG23111113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23111113fooEv,_ZTv0_n20_N9GG23111113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23111113fooEv,_ZThn32_N9GG23111113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23111113fooEv,_ZThn8_N9GG23111113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2311111 = { "GG2311111", // class name
+ bases_GG2311111, 6,
+ &(vtc_GG2311111[0]), // expected_vtbl_contents
+ &(vtt_GG2311111[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2311111),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2311111),39, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2311111),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names667,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2311113 : virtual EE231 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG23111133fooEv
+ virtual void bar(); // _ZN9GG23111133barEv
+ ~GG2311113(); // tgen
+ GG2311113(); // tgen
+};
+//SIG(1 GG2311113) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2311113 ::foo(){vfunc_called(this, "_ZN9GG23111133fooEv");}
+void GG2311113 ::bar(){vfunc_called(this, "_ZN9GG23111133barEv");}
+GG2311113 ::~GG2311113(){ note_dtor("GG2311113", this);} // tgen
+GG2311113 ::GG2311113(){ note_ctor("GG2311113", this);} // tgen
+
+static void Test_GG2311113()
+{
+ extern Class_Descriptor cd_GG2311113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2311113, buf);
+ GG2311113 *dp, &lv = *(dp=new (buf) GG2311113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2311113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2311113)");
+ check_base_class_offset(lv, (AA2*)(EE231*), ABISELECT(32,16), "GG2311113");
+ check_base_class_offset(lv, (BB3*)(EE231*), ABISELECT(48,24), "GG2311113");
+ check_base_class_offset(lv, (EE231*), ABISELECT(16,8), "GG2311113");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(80,40), "GG2311113");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(96,48), "GG2311113");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG2311113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2311113.pg");
+ test_class_info(&lv, &cd_GG2311113);
+ dp->~GG2311113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2311113(Test_GG2311113, "GG2311113", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2311113C1Ev();
+extern void _ZN9GG2311113D1Ev();
+Name_Map name_map_GG2311113[] = {
+ NSPAIR(_ZN9GG2311113C1Ev),
+ NSPAIR(_ZN9GG2311113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE231;
+extern VTBL_ENTRY _ZTI5EE231[];
+extern VTBL_ENTRY _ZTV5EE231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE231[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG2311113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE231, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2311113[];
+extern void _ZN9GG23111133fooEv();
+extern void _ZN9GG23111133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23111133fooEv,_ZTv0_n20_N9GG23111133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23111133fooEv,_ZThn8_N9GG23111133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23111133barEv,_ZTv0_n12_N9GG23111133barEv)();
+extern void ABISELECT(_ZThn32_N9GG23111133barEv,_ZThn16_N9GG23111133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23111133fooEv,_ZTv0_n12_N9GG23111133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23111133fooEv,_ZThn24_N9GG23111133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23111133barEv,_ZTv0_n16_N9GG23111133barEv)();
+extern void ABISELECT(_ZThn48_N9GG23111133barEv,_ZThn24_N9GG23111133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23111133fooEv,_ZTv0_n20_N9GG23111133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23111133fooEv,_ZThn32_N9GG23111133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23111133fooEv,_ZTv0_n12_N9GG23111133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23111133fooEv,_ZThn40_N9GG23111133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23111133fooEv,_ZTv0_n12_N9GG23111133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG23111133fooEv,_ZThn48_N9GG23111133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2311113[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2311113[0]),
+ (VTBL_ENTRY)&_ZN9GG23111133fooEv,
+ (VTBL_ENTRY)&_ZN9GG23111133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2311113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23111133fooEv,_ZTv0_n20_N9GG23111133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2311113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23111133barEv,_ZTv0_n12_N9GG23111133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2311113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23111133fooEv,_ZTv0_n12_N9GG23111133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23111133barEv,_ZTv0_n16_N9GG23111133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2311113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23111133fooEv,_ZTv0_n20_N9GG23111133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2311113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23111133fooEv,_ZTv0_n12_N9GG23111133fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2311113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23111133fooEv,_ZTv0_n12_N9GG23111133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2311113[];
+extern void _ZN5EE2313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE231__9GG2311113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN5EE2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE231__9GG2311113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE231__9GG2311113[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG2311113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG2311113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG2311113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG2311113[] = {
+ {&(_ZTV9GG2311113[8]), 8,40},
+ {&(_ZTV9GG2311113[15]), 15,40},
+ {&(_ZTV9GG2311113[19]), 19,40},
+ {&(_ZTV9GG2311113[24]), 24,40},
+ {&(_ZTV9GG2311113[31]), 31,40},
+ {&(_ZTV9GG2311113[35]), 35,40},
+ {&(_ZTV9GG2311113[39]), 39,40},
+ {&(_tg__ZTV5EE231__9GG2311113[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE231__9GG2311113[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE231__9GG2311113[4]), 4,6},
+ {&(_tg__ZTV5FF111__9GG2311113[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG2311113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG2311113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2311113[];
+extern VTBL_ENTRY _ZTV9GG2311113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2311113[];
+static VTBL_ENTRY alt_thunk_names668[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23111133barEv,_ZTv0_n16_N9GG23111133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23111133barEv,_ZThn24_N9GG23111133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23111133fooEv,_ZTv0_n12_N9GG23111133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG23111133fooEv,_ZThn48_N9GG23111133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23111133fooEv,_ZThn40_N9GG23111133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23111133fooEv,_ZThn24_N9GG23111133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23111133barEv,_ZTv0_n12_N9GG23111133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23111133barEv,_ZThn16_N9GG23111133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23111133fooEv,_ZTv0_n20_N9GG23111133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23111133fooEv,_ZThn32_N9GG23111133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23111133fooEv,_ZThn8_N9GG23111133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2311113 = { "GG2311113", // class name
+ bases_GG2311113, 6,
+ &(vtc_GG2311113[0]), // expected_vtbl_contents
+ &(vtt_GG2311113[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2311113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2311113),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2311113),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names668,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2311123 : virtual EE231 , virtual FF112 {
+ int pg;
+ virtual void foo(); // _ZN9GG23111233fooEv
+ virtual void bar(); // _ZN9GG23111233barEv
+ ~GG2311123(); // tgen
+ GG2311123(); // tgen
+};
+//SIG(1 GG2311123) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2311123 ::foo(){vfunc_called(this, "_ZN9GG23111233fooEv");}
+void GG2311123 ::bar(){vfunc_called(this, "_ZN9GG23111233barEv");}
+GG2311123 ::~GG2311123(){ note_dtor("GG2311123", this);} // tgen
+GG2311123 ::GG2311123(){ note_ctor("GG2311123", this);} // tgen
+
+static void Test_GG2311123()
+{
+ extern Class_Descriptor cd_GG2311123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2311123, buf);
+ GG2311123 *dp, &lv = *(dp=new (buf) GG2311123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2311123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2311123)");
+ check_base_class_offset(lv, (AA2*)(EE231*), ABISELECT(32,16), "GG2311123");
+ check_base_class_offset(lv, (BB3*)(EE231*), ABISELECT(48,24), "GG2311123");
+ check_base_class_offset(lv, (EE231*), ABISELECT(16,8), "GG2311123");
+ check_base_class_offset(lv, (AA1*)(FF112*), ABISELECT(80,40), "GG2311123");
+ check_base_class_offset(lv, (BB1*)(FF112*), ABISELECT(96,48), "GG2311123");
+ check_base_class_offset(lv, (FF112*), ABISELECT(64,32), "GG2311123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2311123.pg");
+ test_class_info(&lv, &cd_GG2311123);
+ dp->~GG2311123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2311123(Test_GG2311123, "GG2311123", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2311123C1Ev();
+extern void _ZN9GG2311123D1Ev();
+Name_Map name_map_GG2311123[] = {
+ NSPAIR(_ZN9GG2311123C1Ev),
+ NSPAIR(_ZN9GG2311123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE231;
+extern VTBL_ENTRY _ZTI5EE231[];
+extern VTBL_ENTRY _ZTV5EE231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE231[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF112;
+extern VTBL_ENTRY _ZTI5FF112[];
+extern VTBL_ENTRY _ZTV5FF112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF112[];
+static Base_Class bases_GG2311123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE231, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF112, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2311123[];
+extern void _ZN9GG23111233fooEv();
+extern void _ZN9GG23111233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23111233fooEv,_ZTv0_n20_N9GG23111233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23111233fooEv,_ZThn8_N9GG23111233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23111233barEv,_ZTv0_n12_N9GG23111233barEv)();
+extern void ABISELECT(_ZThn32_N9GG23111233barEv,_ZThn16_N9GG23111233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23111233fooEv,_ZTv0_n12_N9GG23111233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23111233fooEv,_ZThn24_N9GG23111233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23111233barEv,_ZTv0_n16_N9GG23111233barEv)();
+extern void ABISELECT(_ZThn48_N9GG23111233barEv,_ZThn24_N9GG23111233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23111233barEv,_ZTv0_n20_N9GG23111233barEv)();
+extern void ABISELECT(_ZThn64_N9GG23111233barEv,_ZThn32_N9GG23111233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23111233fooEv,_ZTv0_n12_N9GG23111233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23111233fooEv,_ZThn40_N9GG23111233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23111233fooEv,_ZTv0_n12_N9GG23111233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG23111233fooEv,_ZThn48_N9GG23111233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2311123[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2311123[0]),
+ (VTBL_ENTRY)&_ZN9GG23111233fooEv,
+ (VTBL_ENTRY)&_ZN9GG23111233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2311123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23111233fooEv,_ZTv0_n20_N9GG23111233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2311123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23111233barEv,_ZTv0_n12_N9GG23111233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2311123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23111233fooEv,_ZTv0_n12_N9GG23111233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23111233barEv,_ZTv0_n16_N9GG23111233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2311123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23111233barEv,_ZTv0_n20_N9GG23111233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2311123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23111233fooEv,_ZTv0_n12_N9GG23111233fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2311123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23111233fooEv,_ZTv0_n12_N9GG23111233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2311123[];
+extern void _ZN5EE2313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE231__9GG2311123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN5EE2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE231__9GG2311123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE231__9GG2311123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF1123barEv();
+static VTBL_ENTRY _tg__ZTV5FF112__9GG2311123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN5FF1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF112__9GG2311123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF112__9GG2311123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG2311123[] = {
+ {&(_ZTV9GG2311123[8]), 8,40},
+ {&(_ZTV9GG2311123[15]), 15,40},
+ {&(_ZTV9GG2311123[19]), 19,40},
+ {&(_ZTV9GG2311123[24]), 24,40},
+ {&(_ZTV9GG2311123[31]), 31,40},
+ {&(_ZTV9GG2311123[35]), 35,40},
+ {&(_ZTV9GG2311123[39]), 39,40},
+ {&(_tg__ZTV5EE231__9GG2311123[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE231__9GG2311123[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE231__9GG2311123[4]), 4,6},
+ {&(_tg__ZTV5FF112__9GG2311123[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF112__9GG2311123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF112__9GG2311123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2311123[];
+extern VTBL_ENTRY _ZTV9GG2311123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2311123[];
+static VTBL_ENTRY alt_thunk_names669[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23111233barEv,_ZTv0_n20_N9GG23111233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23111233barEv,_ZThn32_N9GG23111233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23111233barEv,_ZTv0_n16_N9GG23111233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23111233barEv,_ZThn24_N9GG23111233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23111233fooEv,_ZTv0_n12_N9GG23111233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG23111233fooEv,_ZThn48_N9GG23111233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23111233fooEv,_ZThn40_N9GG23111233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23111233fooEv,_ZThn24_N9GG23111233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23111233barEv,_ZTv0_n12_N9GG23111233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23111233barEv,_ZThn16_N9GG23111233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23111233fooEv,_ZTv0_n20_N9GG23111233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23111233fooEv,_ZThn8_N9GG23111233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2311123 = { "GG2311123", // class name
+ bases_GG2311123, 6,
+ &(vtc_GG2311123[0]), // expected_vtbl_contents
+ &(vtt_GG2311123[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2311123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2311123),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2311123),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names669,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2311133 : virtual EE231 , virtual FF113 {
+ int pg;
+ virtual void foo(); // _ZN9GG23111333fooEv
+ virtual void bar(); // _ZN9GG23111333barEv
+ ~GG2311133(); // tgen
+ GG2311133(); // tgen
+};
+//SIG(1 GG2311133) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2311133 ::foo(){vfunc_called(this, "_ZN9GG23111333fooEv");}
+void GG2311133 ::bar(){vfunc_called(this, "_ZN9GG23111333barEv");}
+GG2311133 ::~GG2311133(){ note_dtor("GG2311133", this);} // tgen
+GG2311133 ::GG2311133(){ note_ctor("GG2311133", this);} // tgen
+
+static void Test_GG2311133()
+{
+ extern Class_Descriptor cd_GG2311133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2311133, buf);
+ GG2311133 *dp, &lv = *(dp=new (buf) GG2311133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2311133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2311133)");
+ check_base_class_offset(lv, (AA2*)(EE231*), ABISELECT(32,16), "GG2311133");
+ check_base_class_offset(lv, (BB3*)(EE231*), ABISELECT(48,24), "GG2311133");
+ check_base_class_offset(lv, (EE231*), ABISELECT(16,8), "GG2311133");
+ check_base_class_offset(lv, (AA1*)(FF113*), ABISELECT(80,40), "GG2311133");
+ check_base_class_offset(lv, (BB1*)(FF113*), ABISELECT(96,48), "GG2311133");
+ check_base_class_offset(lv, (FF113*), ABISELECT(64,32), "GG2311133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2311133.pg");
+ test_class_info(&lv, &cd_GG2311133);
+ dp->~GG2311133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2311133(Test_GG2311133, "GG2311133", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2311133C1Ev();
+extern void _ZN9GG2311133D1Ev();
+Name_Map name_map_GG2311133[] = {
+ NSPAIR(_ZN9GG2311133C1Ev),
+ NSPAIR(_ZN9GG2311133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE231;
+extern VTBL_ENTRY _ZTI5EE231[];
+extern VTBL_ENTRY _ZTV5EE231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE231[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF113;
+extern VTBL_ENTRY _ZTI5FF113[];
+extern VTBL_ENTRY _ZTV5FF113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF113[];
+static Base_Class bases_GG2311133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE231, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF113, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2311133[];
+extern void _ZN9GG23111333fooEv();
+extern void _ZN9GG23111333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23111333fooEv,_ZTv0_n20_N9GG23111333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23111333fooEv,_ZThn8_N9GG23111333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23111333barEv,_ZTv0_n12_N9GG23111333barEv)();
+extern void ABISELECT(_ZThn32_N9GG23111333barEv,_ZThn16_N9GG23111333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23111333fooEv,_ZTv0_n12_N9GG23111333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23111333fooEv,_ZThn24_N9GG23111333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23111333barEv,_ZTv0_n16_N9GG23111333barEv)();
+extern void ABISELECT(_ZThn48_N9GG23111333barEv,_ZThn24_N9GG23111333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23111333fooEv,_ZTv0_n20_N9GG23111333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23111333fooEv,_ZThn32_N9GG23111333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23111333barEv,_ZTv0_n24_N9GG23111333barEv)();
+extern void ABISELECT(_ZThn64_N9GG23111333barEv,_ZThn32_N9GG23111333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23111333fooEv,_ZTv0_n12_N9GG23111333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23111333fooEv,_ZThn40_N9GG23111333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23111333fooEv,_ZTv0_n12_N9GG23111333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG23111333fooEv,_ZThn48_N9GG23111333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2311133[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2311133[0]),
+ (VTBL_ENTRY)&_ZN9GG23111333fooEv,
+ (VTBL_ENTRY)&_ZN9GG23111333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2311133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23111333fooEv,_ZTv0_n20_N9GG23111333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2311133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23111333barEv,_ZTv0_n12_N9GG23111333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2311133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23111333fooEv,_ZTv0_n12_N9GG23111333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23111333barEv,_ZTv0_n16_N9GG23111333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2311133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23111333fooEv,_ZTv0_n20_N9GG23111333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23111333barEv,_ZTv0_n24_N9GG23111333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2311133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23111333fooEv,_ZTv0_n12_N9GG23111333fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2311133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23111333fooEv,_ZTv0_n12_N9GG23111333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2311133[];
+extern void _ZN5EE2313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE231__9GG2311133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN5EE2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE231__9GG2311133[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE231__9GG2311133[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF1133fooEv();
+extern void _ZN5FF1133barEv();
+static VTBL_ENTRY _tg__ZTV5FF113__9GG2311133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&_ZN5FF1133fooEv,
+ (VTBL_ENTRY)&_ZN5FF1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF113__9GG2311133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1133fooEv,_ZThn16_N5FF1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF113__9GG2311133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+static VTT_ENTRY vtt_GG2311133[] = {
+ {&(_ZTV9GG2311133[8]), 8,42},
+ {&(_ZTV9GG2311133[15]), 15,42},
+ {&(_ZTV9GG2311133[19]), 19,42},
+ {&(_ZTV9GG2311133[24]), 24,42},
+ {&(_ZTV9GG2311133[32]), 32,42},
+ {&(_ZTV9GG2311133[37]), 37,42},
+ {&(_ZTV9GG2311133[41]), 41,42},
+ {&(_tg__ZTV5EE231__9GG2311133[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE231__9GG2311133[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE231__9GG2311133[4]), 4,6},
+ {&(_tg__ZTV5FF113__9GG2311133[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF113__9GG2311133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF113__9GG2311133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2311133[];
+extern VTBL_ENTRY _ZTV9GG2311133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2311133[];
+static VTBL_ENTRY alt_thunk_names670[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1133fooEv,_ZThn16_N5FF1133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG23111333barEv,_ZTv0_n24_N9GG23111333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23111333barEv,_ZThn32_N9GG23111333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23111333barEv,_ZTv0_n16_N9GG23111333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23111333barEv,_ZThn24_N9GG23111333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23111333fooEv,_ZTv0_n12_N9GG23111333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG23111333fooEv,_ZThn48_N9GG23111333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23111333fooEv,_ZThn40_N9GG23111333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23111333fooEv,_ZThn24_N9GG23111333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23111333barEv,_ZTv0_n12_N9GG23111333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23111333barEv,_ZThn16_N9GG23111333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23111333fooEv,_ZTv0_n20_N9GG23111333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23111333fooEv,_ZThn32_N9GG23111333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23111333fooEv,_ZThn8_N9GG23111333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2311133 = { "GG2311133", // class name
+ bases_GG2311133, 6,
+ &(vtc_GG2311133[0]), // expected_vtbl_contents
+ &(vtt_GG2311133[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2311133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2311133),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2311133),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names670,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2311213 : virtual EE231 , virtual FF121 {
+ int pg;
+ virtual void foo(); // _ZN9GG23112133fooEv
+ virtual void bar(); // _ZN9GG23112133barEv
+ ~GG2311213(); // tgen
+ GG2311213(); // tgen
+};
+//SIG(1 GG2311213) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2311213 ::foo(){vfunc_called(this, "_ZN9GG23112133fooEv");}
+void GG2311213 ::bar(){vfunc_called(this, "_ZN9GG23112133barEv");}
+GG2311213 ::~GG2311213(){ note_dtor("GG2311213", this);} // tgen
+GG2311213 ::GG2311213(){ note_ctor("GG2311213", this);} // tgen
+
+static void Test_GG2311213()
+{
+ extern Class_Descriptor cd_GG2311213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2311213, buf);
+ GG2311213 *dp, &lv = *(dp=new (buf) GG2311213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2311213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2311213)");
+ check_base_class_offset(lv, (AA2*)(EE231*), ABISELECT(32,16), "GG2311213");
+ check_base_class_offset(lv, (BB3*)(EE231*), ABISELECT(48,24), "GG2311213");
+ check_base_class_offset(lv, (EE231*), ABISELECT(16,8), "GG2311213");
+ check_base_class_offset(lv, (AA1*)(FF121*), ABISELECT(80,40), "GG2311213");
+ check_base_class_offset(lv, (BB2*)(FF121*), ABISELECT(96,48), "GG2311213");
+ check_base_class_offset(lv, (FF121*), ABISELECT(64,32), "GG2311213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2311213.pg");
+ test_class_info(&lv, &cd_GG2311213);
+ dp->~GG2311213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2311213(Test_GG2311213, "GG2311213", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2311213C1Ev();
+extern void _ZN9GG2311213D1Ev();
+Name_Map name_map_GG2311213[] = {
+ NSPAIR(_ZN9GG2311213C1Ev),
+ NSPAIR(_ZN9GG2311213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE231;
+extern VTBL_ENTRY _ZTI5EE231[];
+extern VTBL_ENTRY _ZTV5EE231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE231[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF121;
+extern VTBL_ENTRY _ZTI5FF121[];
+extern VTBL_ENTRY _ZTV5FF121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF121[];
+static Base_Class bases_GG2311213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE231, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF121, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2311213[];
+extern void _ZN9GG23112133fooEv();
+extern void _ZN9GG23112133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23112133fooEv,_ZTv0_n20_N9GG23112133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23112133fooEv,_ZThn8_N9GG23112133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23112133barEv,_ZTv0_n12_N9GG23112133barEv)();
+extern void ABISELECT(_ZThn32_N9GG23112133barEv,_ZThn16_N9GG23112133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23112133fooEv,_ZTv0_n12_N9GG23112133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23112133fooEv,_ZThn24_N9GG23112133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23112133barEv,_ZTv0_n16_N9GG23112133barEv)();
+extern void ABISELECT(_ZThn48_N9GG23112133barEv,_ZThn24_N9GG23112133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23112133fooEv,_ZTv0_n20_N9GG23112133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23112133fooEv,_ZThn32_N9GG23112133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23112133fooEv,_ZTv0_n12_N9GG23112133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23112133fooEv,_ZThn40_N9GG23112133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23112133barEv,_ZTv0_n12_N9GG23112133barEv)();
+extern void ABISELECT(_ZThn96_N9GG23112133barEv,_ZThn48_N9GG23112133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2311213[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2311213[0]),
+ (VTBL_ENTRY)&_ZN9GG23112133fooEv,
+ (VTBL_ENTRY)&_ZN9GG23112133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2311213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23112133fooEv,_ZTv0_n20_N9GG23112133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2311213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23112133barEv,_ZTv0_n12_N9GG23112133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2311213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23112133fooEv,_ZTv0_n12_N9GG23112133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23112133barEv,_ZTv0_n16_N9GG23112133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2311213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23112133fooEv,_ZTv0_n20_N9GG23112133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2311213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23112133fooEv,_ZTv0_n12_N9GG23112133fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2311213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23112133barEv,_ZTv0_n12_N9GG23112133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2311213[];
+extern void _ZN5EE2313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE231__9GG2311213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN5EE2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE231__9GG2311213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE231__9GG2311213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF1213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF121__9GG2311213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN5FF1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1213fooEv,_ZThn8_N5FF1213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF121__9GG2311213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF121__9GG2311213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG2311213[] = {
+ {&(_ZTV9GG2311213[8]), 8,40},
+ {&(_ZTV9GG2311213[15]), 15,40},
+ {&(_ZTV9GG2311213[19]), 19,40},
+ {&(_ZTV9GG2311213[24]), 24,40},
+ {&(_ZTV9GG2311213[31]), 31,40},
+ {&(_ZTV9GG2311213[35]), 35,40},
+ {&(_ZTV9GG2311213[39]), 39,40},
+ {&(_tg__ZTV5EE231__9GG2311213[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE231__9GG2311213[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE231__9GG2311213[4]), 4,6},
+ {&(_tg__ZTV5FF121__9GG2311213[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF121__9GG2311213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF121__9GG2311213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2311213[];
+extern VTBL_ENTRY _ZTV9GG2311213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2311213[];
+static VTBL_ENTRY alt_thunk_names671[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1213fooEv,_ZThn8_N5FF1213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23112133barEv,_ZTv0_n16_N9GG23112133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23112133barEv,_ZThn24_N9GG23112133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23112133fooEv,_ZTv0_n12_N9GG23112133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23112133fooEv,_ZThn40_N9GG23112133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23112133fooEv,_ZThn24_N9GG23112133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23112133barEv,_ZTv0_n12_N9GG23112133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG23112133barEv,_ZThn48_N9GG23112133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23112133barEv,_ZThn16_N9GG23112133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23112133fooEv,_ZTv0_n20_N9GG23112133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23112133fooEv,_ZThn32_N9GG23112133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23112133fooEv,_ZThn8_N9GG23112133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2311213 = { "GG2311213", // class name
+ bases_GG2311213, 6,
+ &(vtc_GG2311213[0]), // expected_vtbl_contents
+ &(vtt_GG2311213[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2311213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2311213),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2311213),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names671,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2311223 : virtual EE231 , virtual FF122 {
+ int pg;
+ virtual void foo(); // _ZN9GG23112233fooEv
+ virtual void bar(); // _ZN9GG23112233barEv
+ ~GG2311223(); // tgen
+ GG2311223(); // tgen
+};
+//SIG(1 GG2311223) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2311223 ::foo(){vfunc_called(this, "_ZN9GG23112233fooEv");}
+void GG2311223 ::bar(){vfunc_called(this, "_ZN9GG23112233barEv");}
+GG2311223 ::~GG2311223(){ note_dtor("GG2311223", this);} // tgen
+GG2311223 ::GG2311223(){ note_ctor("GG2311223", this);} // tgen
+
+static void Test_GG2311223()
+{
+ extern Class_Descriptor cd_GG2311223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2311223, buf);
+ GG2311223 *dp, &lv = *(dp=new (buf) GG2311223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2311223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2311223)");
+ check_base_class_offset(lv, (AA2*)(EE231*), ABISELECT(32,16), "GG2311223");
+ check_base_class_offset(lv, (BB3*)(EE231*), ABISELECT(48,24), "GG2311223");
+ check_base_class_offset(lv, (EE231*), ABISELECT(16,8), "GG2311223");
+ check_base_class_offset(lv, (AA1*)(FF122*), ABISELECT(80,40), "GG2311223");
+ check_base_class_offset(lv, (BB2*)(FF122*), ABISELECT(96,48), "GG2311223");
+ check_base_class_offset(lv, (FF122*), ABISELECT(64,32), "GG2311223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2311223.pg");
+ test_class_info(&lv, &cd_GG2311223);
+ dp->~GG2311223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2311223(Test_GG2311223, "GG2311223", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2311223C1Ev();
+extern void _ZN9GG2311223D1Ev();
+Name_Map name_map_GG2311223[] = {
+ NSPAIR(_ZN9GG2311223C1Ev),
+ NSPAIR(_ZN9GG2311223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE231;
+extern VTBL_ENTRY _ZTI5EE231[];
+extern VTBL_ENTRY _ZTV5EE231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE231[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF122;
+extern VTBL_ENTRY _ZTI5FF122[];
+extern VTBL_ENTRY _ZTV5FF122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF122[];
+static Base_Class bases_GG2311223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE231, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF122, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2311223[];
+extern void _ZN9GG23112233fooEv();
+extern void _ZN9GG23112233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23112233fooEv,_ZTv0_n20_N9GG23112233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23112233fooEv,_ZThn8_N9GG23112233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23112233barEv,_ZTv0_n12_N9GG23112233barEv)();
+extern void ABISELECT(_ZThn32_N9GG23112233barEv,_ZThn16_N9GG23112233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23112233fooEv,_ZTv0_n12_N9GG23112233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23112233fooEv,_ZThn24_N9GG23112233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23112233barEv,_ZTv0_n16_N9GG23112233barEv)();
+extern void ABISELECT(_ZThn48_N9GG23112233barEv,_ZThn24_N9GG23112233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23112233barEv,_ZTv0_n20_N9GG23112233barEv)();
+extern void ABISELECT(_ZThn64_N9GG23112233barEv,_ZThn32_N9GG23112233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23112233fooEv,_ZTv0_n12_N9GG23112233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23112233fooEv,_ZThn40_N9GG23112233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23112233barEv,_ZTv0_n12_N9GG23112233barEv)();
+extern void ABISELECT(_ZThn96_N9GG23112233barEv,_ZThn48_N9GG23112233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2311223[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2311223[0]),
+ (VTBL_ENTRY)&_ZN9GG23112233fooEv,
+ (VTBL_ENTRY)&_ZN9GG23112233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2311223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23112233fooEv,_ZTv0_n20_N9GG23112233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2311223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23112233barEv,_ZTv0_n12_N9GG23112233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2311223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23112233fooEv,_ZTv0_n12_N9GG23112233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23112233barEv,_ZTv0_n16_N9GG23112233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2311223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23112233barEv,_ZTv0_n20_N9GG23112233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2311223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23112233fooEv,_ZTv0_n12_N9GG23112233fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2311223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23112233barEv,_ZTv0_n12_N9GG23112233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2311223[];
+extern void _ZN5EE2313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE231__9GG2311223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN5EE2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE231__9GG2311223[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE231__9GG2311223[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF1223barEv();
+static VTBL_ENTRY _tg__ZTV5FF122__9GG2311223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN5FF1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF122__9GG2311223[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv)();
+extern void ABISELECT(_ZThn32_N5FF1223barEv,_ZThn16_N5FF1223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF122__9GG2311223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv),
+};
+static VTT_ENTRY vtt_GG2311223[] = {
+ {&(_ZTV9GG2311223[8]), 8,40},
+ {&(_ZTV9GG2311223[15]), 15,40},
+ {&(_ZTV9GG2311223[19]), 19,40},
+ {&(_ZTV9GG2311223[24]), 24,40},
+ {&(_ZTV9GG2311223[31]), 31,40},
+ {&(_ZTV9GG2311223[35]), 35,40},
+ {&(_ZTV9GG2311223[39]), 39,40},
+ {&(_tg__ZTV5EE231__9GG2311223[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE231__9GG2311223[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE231__9GG2311223[4]), 4,6},
+ {&(_tg__ZTV5FF122__9GG2311223[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF122__9GG2311223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF122__9GG2311223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2311223[];
+extern VTBL_ENTRY _ZTV9GG2311223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2311223[];
+static VTBL_ENTRY alt_thunk_names672[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1223barEv,_ZThn16_N5FF1223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23112233barEv,_ZTv0_n20_N9GG23112233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23112233barEv,_ZThn32_N9GG23112233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23112233barEv,_ZTv0_n16_N9GG23112233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23112233barEv,_ZThn24_N9GG23112233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23112233fooEv,_ZTv0_n12_N9GG23112233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23112233fooEv,_ZThn40_N9GG23112233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23112233fooEv,_ZThn24_N9GG23112233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23112233barEv,_ZTv0_n12_N9GG23112233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG23112233barEv,_ZThn48_N9GG23112233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23112233barEv,_ZThn16_N9GG23112233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23112233fooEv,_ZTv0_n20_N9GG23112233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23112233fooEv,_ZThn8_N9GG23112233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2311223 = { "GG2311223", // class name
+ bases_GG2311223, 6,
+ &(vtc_GG2311223[0]), // expected_vtbl_contents
+ &(vtt_GG2311223[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2311223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2311223),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2311223),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names672,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2311233 : virtual EE231 , virtual FF123 {
+ int pg;
+ virtual void foo(); // _ZN9GG23112333fooEv
+ virtual void bar(); // _ZN9GG23112333barEv
+ ~GG2311233(); // tgen
+ GG2311233(); // tgen
+};
+//SIG(1 GG2311233) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2311233 ::foo(){vfunc_called(this, "_ZN9GG23112333fooEv");}
+void GG2311233 ::bar(){vfunc_called(this, "_ZN9GG23112333barEv");}
+GG2311233 ::~GG2311233(){ note_dtor("GG2311233", this);} // tgen
+GG2311233 ::GG2311233(){ note_ctor("GG2311233", this);} // tgen
+
+static void Test_GG2311233()
+{
+ extern Class_Descriptor cd_GG2311233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2311233, buf);
+ GG2311233 *dp, &lv = *(dp=new (buf) GG2311233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2311233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2311233)");
+ check_base_class_offset(lv, (AA2*)(EE231*), ABISELECT(32,16), "GG2311233");
+ check_base_class_offset(lv, (BB3*)(EE231*), ABISELECT(48,24), "GG2311233");
+ check_base_class_offset(lv, (EE231*), ABISELECT(16,8), "GG2311233");
+ check_base_class_offset(lv, (AA1*)(FF123*), ABISELECT(80,40), "GG2311233");
+ check_base_class_offset(lv, (BB2*)(FF123*), ABISELECT(96,48), "GG2311233");
+ check_base_class_offset(lv, (FF123*), ABISELECT(64,32), "GG2311233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2311233.pg");
+ test_class_info(&lv, &cd_GG2311233);
+ dp->~GG2311233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2311233(Test_GG2311233, "GG2311233", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2311233C1Ev();
+extern void _ZN9GG2311233D1Ev();
+Name_Map name_map_GG2311233[] = {
+ NSPAIR(_ZN9GG2311233C1Ev),
+ NSPAIR(_ZN9GG2311233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE231;
+extern VTBL_ENTRY _ZTI5EE231[];
+extern VTBL_ENTRY _ZTV5EE231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE231[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF123;
+extern VTBL_ENTRY _ZTI5FF123[];
+extern VTBL_ENTRY _ZTV5FF123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF123[];
+static Base_Class bases_GG2311233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE231, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF123, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2311233[];
+extern void _ZN9GG23112333fooEv();
+extern void _ZN9GG23112333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23112333fooEv,_ZTv0_n20_N9GG23112333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23112333fooEv,_ZThn8_N9GG23112333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23112333barEv,_ZTv0_n12_N9GG23112333barEv)();
+extern void ABISELECT(_ZThn32_N9GG23112333barEv,_ZThn16_N9GG23112333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23112333fooEv,_ZTv0_n12_N9GG23112333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23112333fooEv,_ZThn24_N9GG23112333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23112333barEv,_ZTv0_n16_N9GG23112333barEv)();
+extern void ABISELECT(_ZThn48_N9GG23112333barEv,_ZThn24_N9GG23112333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23112333fooEv,_ZTv0_n20_N9GG23112333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23112333fooEv,_ZThn32_N9GG23112333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23112333barEv,_ZTv0_n24_N9GG23112333barEv)();
+extern void ABISELECT(_ZThn64_N9GG23112333barEv,_ZThn32_N9GG23112333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23112333fooEv,_ZTv0_n12_N9GG23112333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23112333fooEv,_ZThn40_N9GG23112333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23112333barEv,_ZTv0_n12_N9GG23112333barEv)();
+extern void ABISELECT(_ZThn96_N9GG23112333barEv,_ZThn48_N9GG23112333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2311233[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2311233[0]),
+ (VTBL_ENTRY)&_ZN9GG23112333fooEv,
+ (VTBL_ENTRY)&_ZN9GG23112333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2311233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23112333fooEv,_ZTv0_n20_N9GG23112333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2311233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23112333barEv,_ZTv0_n12_N9GG23112333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2311233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23112333fooEv,_ZTv0_n12_N9GG23112333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23112333barEv,_ZTv0_n16_N9GG23112333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2311233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23112333fooEv,_ZTv0_n20_N9GG23112333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23112333barEv,_ZTv0_n24_N9GG23112333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2311233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23112333fooEv,_ZTv0_n12_N9GG23112333fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2311233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23112333barEv,_ZTv0_n12_N9GG23112333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2311233[];
+extern void _ZN5EE2313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE231__9GG2311233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN5EE2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE231__9GG2311233[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE231__9GG2311233[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF1233fooEv();
+extern void _ZN5FF1233barEv();
+static VTBL_ENTRY _tg__ZTV5FF123__9GG2311233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&_ZN5FF1233fooEv,
+ (VTBL_ENTRY)&_ZN5FF1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1233fooEv,_ZThn8_N5FF1233fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF123__9GG2311233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv)();
+extern void ABISELECT(_ZThn32_N5FF1233barEv,_ZThn16_N5FF1233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF123__9GG2311233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv),
+};
+static VTT_ENTRY vtt_GG2311233[] = {
+ {&(_ZTV9GG2311233[8]), 8,42},
+ {&(_ZTV9GG2311233[15]), 15,42},
+ {&(_ZTV9GG2311233[19]), 19,42},
+ {&(_ZTV9GG2311233[24]), 24,42},
+ {&(_ZTV9GG2311233[32]), 32,42},
+ {&(_ZTV9GG2311233[37]), 37,42},
+ {&(_ZTV9GG2311233[41]), 41,42},
+ {&(_tg__ZTV5EE231__9GG2311233[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE231__9GG2311233[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE231__9GG2311233[4]), 4,6},
+ {&(_tg__ZTV5FF123__9GG2311233[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF123__9GG2311233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF123__9GG2311233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2311233[];
+extern VTBL_ENTRY _ZTV9GG2311233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2311233[];
+static VTBL_ENTRY alt_thunk_names673[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1233barEv,_ZThn16_N5FF1233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1233fooEv,_ZThn8_N5FF1233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG23112333barEv,_ZTv0_n24_N9GG23112333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23112333barEv,_ZThn32_N9GG23112333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23112333barEv,_ZTv0_n16_N9GG23112333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23112333barEv,_ZThn24_N9GG23112333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23112333fooEv,_ZTv0_n12_N9GG23112333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23112333fooEv,_ZThn40_N9GG23112333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23112333fooEv,_ZThn24_N9GG23112333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23112333barEv,_ZTv0_n12_N9GG23112333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG23112333barEv,_ZThn48_N9GG23112333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23112333barEv,_ZThn16_N9GG23112333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23112333fooEv,_ZTv0_n20_N9GG23112333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23112333fooEv,_ZThn32_N9GG23112333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23112333fooEv,_ZThn8_N9GG23112333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2311233 = { "GG2311233", // class name
+ bases_GG2311233, 6,
+ &(vtc_GG2311233[0]), // expected_vtbl_contents
+ &(vtt_GG2311233[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2311233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2311233),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2311233),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names673,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2311313 : virtual EE231 , virtual FF131 {
+ int pg;
+ virtual void foo(); // _ZN9GG23113133fooEv
+ virtual void bar(); // _ZN9GG23113133barEv
+ ~GG2311313(); // tgen
+ GG2311313(); // tgen
+};
+//SIG(1 GG2311313) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG2311313 ::foo(){vfunc_called(this, "_ZN9GG23113133fooEv");}
+void GG2311313 ::bar(){vfunc_called(this, "_ZN9GG23113133barEv");}
+GG2311313 ::~GG2311313(){ note_dtor("GG2311313", this);} // tgen
+GG2311313 ::GG2311313(){ note_ctor("GG2311313", this);} // tgen
+
+static void Test_GG2311313()
+{
+ extern Class_Descriptor cd_GG2311313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2311313, buf);
+ GG2311313 *dp, &lv = *(dp=new (buf) GG2311313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2311313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2311313)");
+ check_base_class_offset(lv, (AA2*)(EE231*), ABISELECT(32,16), "GG2311313");
+ check_base_class_offset(lv, (BB3*)(EE231*), ABISELECT(48,24), "GG2311313");
+ check_base_class_offset(lv, (BB3*)(FF131*), ABISELECT(48,24), "GG2311313");
+ check_base_class_offset(lv, (EE231*), ABISELECT(16,8), "GG2311313");
+ check_base_class_offset(lv, (AA1*)(FF131*), ABISELECT(80,40), "GG2311313");
+ check_base_class_offset(lv, (FF131*), ABISELECT(64,32), "GG2311313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2311313.pg");
+ test_class_info(&lv, &cd_GG2311313);
+ dp->~GG2311313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2311313(Test_GG2311313, "GG2311313", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2311313C1Ev();
+extern void _ZN9GG2311313D1Ev();
+Name_Map name_map_GG2311313[] = {
+ NSPAIR(_ZN9GG2311313C1Ev),
+ NSPAIR(_ZN9GG2311313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE231;
+extern VTBL_ENTRY _ZTI5EE231[];
+extern VTBL_ENTRY _ZTV5EE231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE231[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF131;
+extern VTBL_ENTRY _ZTI5FF131[];
+extern VTBL_ENTRY _ZTV5FF131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF131[];
+static Base_Class bases_GG2311313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE231, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF131, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2311313[];
+extern void _ZN9GG23113133fooEv();
+extern void _ZN9GG23113133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23113133fooEv,_ZTv0_n20_N9GG23113133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23113133fooEv,_ZThn8_N9GG23113133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23113133barEv,_ZTv0_n12_N9GG23113133barEv)();
+extern void ABISELECT(_ZThn32_N9GG23113133barEv,_ZThn16_N9GG23113133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23113133fooEv,_ZTv0_n12_N9GG23113133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23113133fooEv,_ZThn24_N9GG23113133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23113133barEv,_ZTv0_n16_N9GG23113133barEv)();
+extern void ABISELECT(_ZThn48_N9GG23113133barEv,_ZThn24_N9GG23113133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23113133fooEv,_ZTv0_n20_N9GG23113133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23113133fooEv,_ZThn32_N9GG23113133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23113133fooEv,_ZTv0_n12_N9GG23113133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23113133fooEv,_ZThn40_N9GG23113133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2311313[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2311313[0]),
+ (VTBL_ENTRY)&_ZN9GG23113133fooEv,
+ (VTBL_ENTRY)&_ZN9GG23113133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2311313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23113133fooEv,_ZTv0_n20_N9GG23113133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2311313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23113133barEv,_ZTv0_n12_N9GG23113133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2311313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23113133fooEv,_ZTv0_n12_N9GG23113133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23113133barEv,_ZTv0_n16_N9GG23113133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2311313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23113133fooEv,_ZTv0_n20_N9GG23113133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2311313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23113133fooEv,_ZTv0_n12_N9GG23113133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2311313[];
+extern void _ZN5EE2313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE231__9GG2311313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN5EE2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE231__9GG2311313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE231__9GG2311313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF1313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF131__9GG2311313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&_ZN5FF1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF131__9GG2311313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF131__9GG2311313[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG2311313[] = {
+ {&(_ZTV9GG2311313[7]), 7,35},
+ {&(_ZTV9GG2311313[14]), 14,35},
+ {&(_ZTV9GG2311313[18]), 18,35},
+ {&(_ZTV9GG2311313[23]), 23,35},
+ {&(_ZTV9GG2311313[30]), 30,35},
+ {&(_ZTV9GG2311313[34]), 34,35},
+ {&(_tg__ZTV5EE231__9GG2311313[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE231__9GG2311313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE231__9GG2311313[4]), 4,6},
+ {&(_tg__ZTV5FF131__9GG2311313[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF131__9GG2311313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF131__9GG2311313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2311313[];
+extern VTBL_ENTRY _ZTV9GG2311313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2311313[];
+static VTBL_ENTRY alt_thunk_names674[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23113133barEv,_ZTv0_n16_N9GG23113133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23113133barEv,_ZThn24_N9GG23113133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23113133fooEv,_ZTv0_n12_N9GG23113133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23113133fooEv,_ZThn40_N9GG23113133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23113133fooEv,_ZThn24_N9GG23113133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23113133barEv,_ZTv0_n12_N9GG23113133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23113133barEv,_ZThn16_N9GG23113133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23113133fooEv,_ZTv0_n20_N9GG23113133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23113133fooEv,_ZThn32_N9GG23113133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23113133fooEv,_ZThn8_N9GG23113133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2311313 = { "GG2311313", // class name
+ bases_GG2311313, 5,
+ &(vtc_GG2311313[0]), // expected_vtbl_contents
+ &(vtt_GG2311313[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2311313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2311313),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2311313),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names674,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2311323 : virtual EE231 , virtual FF132 {
+ int pg;
+ virtual void foo(); // _ZN9GG23113233fooEv
+ virtual void bar(); // _ZN9GG23113233barEv
+ ~GG2311323(); // tgen
+ GG2311323(); // tgen
+};
+//SIG(1 GG2311323) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG2311323 ::foo(){vfunc_called(this, "_ZN9GG23113233fooEv");}
+void GG2311323 ::bar(){vfunc_called(this, "_ZN9GG23113233barEv");}
+GG2311323 ::~GG2311323(){ note_dtor("GG2311323", this);} // tgen
+GG2311323 ::GG2311323(){ note_ctor("GG2311323", this);} // tgen
+
+static void Test_GG2311323()
+{
+ extern Class_Descriptor cd_GG2311323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2311323, buf);
+ GG2311323 *dp, &lv = *(dp=new (buf) GG2311323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2311323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2311323)");
+ check_base_class_offset(lv, (AA2*)(EE231*), ABISELECT(32,16), "GG2311323");
+ check_base_class_offset(lv, (BB3*)(EE231*), ABISELECT(48,24), "GG2311323");
+ check_base_class_offset(lv, (BB3*)(FF132*), ABISELECT(48,24), "GG2311323");
+ check_base_class_offset(lv, (EE231*), ABISELECT(16,8), "GG2311323");
+ check_base_class_offset(lv, (AA1*)(FF132*), ABISELECT(80,40), "GG2311323");
+ check_base_class_offset(lv, (FF132*), ABISELECT(64,32), "GG2311323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2311323.pg");
+ test_class_info(&lv, &cd_GG2311323);
+ dp->~GG2311323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2311323(Test_GG2311323, "GG2311323", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2311323C1Ev();
+extern void _ZN9GG2311323D1Ev();
+Name_Map name_map_GG2311323[] = {
+ NSPAIR(_ZN9GG2311323C1Ev),
+ NSPAIR(_ZN9GG2311323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE231;
+extern VTBL_ENTRY _ZTI5EE231[];
+extern VTBL_ENTRY _ZTV5EE231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE231[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF132;
+extern VTBL_ENTRY _ZTI5FF132[];
+extern VTBL_ENTRY _ZTV5FF132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF132[];
+static Base_Class bases_GG2311323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE231, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF132, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2311323[];
+extern void _ZN9GG23113233fooEv();
+extern void _ZN9GG23113233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23113233fooEv,_ZTv0_n20_N9GG23113233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23113233fooEv,_ZThn8_N9GG23113233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23113233barEv,_ZTv0_n12_N9GG23113233barEv)();
+extern void ABISELECT(_ZThn32_N9GG23113233barEv,_ZThn16_N9GG23113233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23113233fooEv,_ZTv0_n12_N9GG23113233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23113233fooEv,_ZThn24_N9GG23113233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23113233barEv,_ZTv0_n16_N9GG23113233barEv)();
+extern void ABISELECT(_ZThn48_N9GG23113233barEv,_ZThn24_N9GG23113233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23113233barEv,_ZTv0_n20_N9GG23113233barEv)();
+extern void ABISELECT(_ZThn64_N9GG23113233barEv,_ZThn32_N9GG23113233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23113233fooEv,_ZTv0_n12_N9GG23113233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23113233fooEv,_ZThn40_N9GG23113233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2311323[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2311323[0]),
+ (VTBL_ENTRY)&_ZN9GG23113233fooEv,
+ (VTBL_ENTRY)&_ZN9GG23113233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2311323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23113233fooEv,_ZTv0_n20_N9GG23113233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2311323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23113233barEv,_ZTv0_n12_N9GG23113233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2311323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23113233fooEv,_ZTv0_n12_N9GG23113233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23113233barEv,_ZTv0_n16_N9GG23113233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2311323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23113233barEv,_ZTv0_n20_N9GG23113233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2311323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23113233fooEv,_ZTv0_n12_N9GG23113233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2311323[];
+extern void _ZN5EE2313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE231__9GG2311323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN5EE2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE231__9GG2311323[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE231__9GG2311323[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF1323barEv();
+static VTBL_ENTRY _tg__ZTV5FF132__9GG2311323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN5FF1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF132__9GG2311323[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF132__9GG2311323[] = {
+ ABISELECT(16,8),
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv),
+};
+static VTT_ENTRY vtt_GG2311323[] = {
+ {&(_ZTV9GG2311323[7]), 7,35},
+ {&(_ZTV9GG2311323[14]), 14,35},
+ {&(_ZTV9GG2311323[18]), 18,35},
+ {&(_ZTV9GG2311323[23]), 23,35},
+ {&(_ZTV9GG2311323[30]), 30,35},
+ {&(_ZTV9GG2311323[34]), 34,35},
+ {&(_tg__ZTV5EE231__9GG2311323[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE231__9GG2311323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE231__9GG2311323[4]), 4,6},
+ {&(_tg__ZTV5FF132__9GG2311323[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF132__9GG2311323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF132__9GG2311323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2311323[];
+extern VTBL_ENTRY _ZTV9GG2311323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2311323[];
+static VTBL_ENTRY alt_thunk_names675[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23113233barEv,_ZTv0_n20_N9GG23113233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23113233barEv,_ZThn32_N9GG23113233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23113233barEv,_ZTv0_n16_N9GG23113233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23113233barEv,_ZThn24_N9GG23113233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23113233fooEv,_ZTv0_n12_N9GG23113233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23113233fooEv,_ZThn40_N9GG23113233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23113233fooEv,_ZThn24_N9GG23113233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23113233barEv,_ZTv0_n12_N9GG23113233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23113233barEv,_ZThn16_N9GG23113233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23113233fooEv,_ZTv0_n20_N9GG23113233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23113233fooEv,_ZThn8_N9GG23113233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2311323 = { "GG2311323", // class name
+ bases_GG2311323, 5,
+ &(vtc_GG2311323[0]), // expected_vtbl_contents
+ &(vtt_GG2311323[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2311323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2311323),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2311323),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names675,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2311333 : virtual EE231 , virtual FF133 {
+ int pg;
+ virtual void foo(); // _ZN9GG23113333fooEv
+ virtual void bar(); // _ZN9GG23113333barEv
+ ~GG2311333(); // tgen
+ GG2311333(); // tgen
+};
+//SIG(1 GG2311333) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2311333 ::foo(){vfunc_called(this, "_ZN9GG23113333fooEv");}
+void GG2311333 ::bar(){vfunc_called(this, "_ZN9GG23113333barEv");}
+GG2311333 ::~GG2311333(){ note_dtor("GG2311333", this);} // tgen
+GG2311333 ::GG2311333(){ note_ctor("GG2311333", this);} // tgen
+
+static void Test_GG2311333()
+{
+ extern Class_Descriptor cd_GG2311333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2311333, buf);
+ GG2311333 *dp, &lv = *(dp=new (buf) GG2311333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2311333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2311333)");
+ check_base_class_offset(lv, (AA2*)(EE231*), ABISELECT(32,16), "GG2311333");
+ check_base_class_offset(lv, (BB3*)(EE231*), ABISELECT(48,24), "GG2311333");
+ check_base_class_offset(lv, (BB3*)(FF133*), ABISELECT(48,24), "GG2311333");
+ check_base_class_offset(lv, (EE231*), ABISELECT(16,8), "GG2311333");
+ check_base_class_offset(lv, (AA1*)(FF133*), ABISELECT(80,40), "GG2311333");
+ check_base_class_offset(lv, (FF133*), ABISELECT(64,32), "GG2311333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2311333.pg");
+ test_class_info(&lv, &cd_GG2311333);
+ dp->~GG2311333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2311333(Test_GG2311333, "GG2311333", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2311333C1Ev();
+extern void _ZN9GG2311333D1Ev();
+Name_Map name_map_GG2311333[] = {
+ NSPAIR(_ZN9GG2311333C1Ev),
+ NSPAIR(_ZN9GG2311333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE231;
+extern VTBL_ENTRY _ZTI5EE231[];
+extern VTBL_ENTRY _ZTV5EE231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE231[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF133;
+extern VTBL_ENTRY _ZTI5FF133[];
+extern VTBL_ENTRY _ZTV5FF133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF133[];
+static Base_Class bases_GG2311333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE231, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF133, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2311333[];
+extern void _ZN9GG23113333fooEv();
+extern void _ZN9GG23113333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23113333fooEv,_ZTv0_n20_N9GG23113333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23113333fooEv,_ZThn8_N9GG23113333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23113333barEv,_ZTv0_n12_N9GG23113333barEv)();
+extern void ABISELECT(_ZThn32_N9GG23113333barEv,_ZThn16_N9GG23113333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23113333fooEv,_ZTv0_n12_N9GG23113333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23113333fooEv,_ZThn24_N9GG23113333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23113333barEv,_ZTv0_n16_N9GG23113333barEv)();
+extern void ABISELECT(_ZThn48_N9GG23113333barEv,_ZThn24_N9GG23113333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23113333fooEv,_ZTv0_n20_N9GG23113333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23113333fooEv,_ZThn32_N9GG23113333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23113333barEv,_ZTv0_n24_N9GG23113333barEv)();
+extern void ABISELECT(_ZThn64_N9GG23113333barEv,_ZThn32_N9GG23113333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23113333fooEv,_ZTv0_n12_N9GG23113333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23113333fooEv,_ZThn40_N9GG23113333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2311333[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2311333[0]),
+ (VTBL_ENTRY)&_ZN9GG23113333fooEv,
+ (VTBL_ENTRY)&_ZN9GG23113333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2311333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23113333fooEv,_ZTv0_n20_N9GG23113333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2311333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23113333barEv,_ZTv0_n12_N9GG23113333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2311333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23113333fooEv,_ZTv0_n12_N9GG23113333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23113333barEv,_ZTv0_n16_N9GG23113333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2311333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23113333fooEv,_ZTv0_n20_N9GG23113333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23113333barEv,_ZTv0_n24_N9GG23113333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2311333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23113333fooEv,_ZTv0_n12_N9GG23113333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2311333[];
+extern void _ZN5EE2313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE231__9GG2311333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN5EE2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE231__9GG2311333[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE231__9GG2311333[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF1333fooEv();
+extern void _ZN5FF1333barEv();
+static VTBL_ENTRY _tg__ZTV5FF133__9GG2311333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&_ZN5FF1333fooEv,
+ (VTBL_ENTRY)&_ZN5FF1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF133__9GG2311333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF133__9GG2311333[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv),
+};
+static VTT_ENTRY vtt_GG2311333[] = {
+ {&(_ZTV9GG2311333[7]), 7,37},
+ {&(_ZTV9GG2311333[14]), 14,37},
+ {&(_ZTV9GG2311333[18]), 18,37},
+ {&(_ZTV9GG2311333[23]), 23,37},
+ {&(_ZTV9GG2311333[31]), 31,37},
+ {&(_ZTV9GG2311333[36]), 36,37},
+ {&(_tg__ZTV5EE231__9GG2311333[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE231__9GG2311333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE231__9GG2311333[4]), 4,6},
+ {&(_tg__ZTV5FF133__9GG2311333[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF133__9GG2311333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF133__9GG2311333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2311333[];
+extern VTBL_ENTRY _ZTV9GG2311333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2311333[];
+static VTBL_ENTRY alt_thunk_names676[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG23113333barEv,_ZTv0_n24_N9GG23113333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23113333barEv,_ZThn32_N9GG23113333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23113333barEv,_ZTv0_n16_N9GG23113333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23113333barEv,_ZThn24_N9GG23113333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23113333fooEv,_ZTv0_n12_N9GG23113333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23113333fooEv,_ZThn40_N9GG23113333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23113333fooEv,_ZThn24_N9GG23113333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23113333barEv,_ZTv0_n12_N9GG23113333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23113333barEv,_ZThn16_N9GG23113333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23113333fooEv,_ZTv0_n20_N9GG23113333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23113333fooEv,_ZThn32_N9GG23113333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23113333fooEv,_ZThn8_N9GG23113333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2311333 = { "GG2311333", // class name
+ bases_GG2311333, 5,
+ &(vtc_GG2311333[0]), // expected_vtbl_contents
+ &(vtt_GG2311333[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2311333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2311333),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2311333),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names676,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2312113 : virtual EE231 , virtual FF211 {
+ int pg;
+ virtual void foo(); // _ZN9GG23121133fooEv
+ virtual void bar(); // _ZN9GG23121133barEv
+ ~GG2312113(); // tgen
+ GG2312113(); // tgen
+};
+//SIG(1 GG2312113) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2312113 ::foo(){vfunc_called(this, "_ZN9GG23121133fooEv");}
+void GG2312113 ::bar(){vfunc_called(this, "_ZN9GG23121133barEv");}
+GG2312113 ::~GG2312113(){ note_dtor("GG2312113", this);} // tgen
+GG2312113 ::GG2312113(){ note_ctor("GG2312113", this);} // tgen
+
+static void Test_GG2312113()
+{
+ extern Class_Descriptor cd_GG2312113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2312113, buf);
+ GG2312113 *dp, &lv = *(dp=new (buf) GG2312113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2312113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2312113)");
+ check_base_class_offset(lv, (AA2*)(EE231*), ABISELECT(32,16), "GG2312113");
+ check_base_class_offset(lv, (AA2*)(FF211*), ABISELECT(32,16), "GG2312113");
+ check_base_class_offset(lv, (BB3*)(EE231*), ABISELECT(48,24), "GG2312113");
+ check_base_class_offset(lv, (EE231*), ABISELECT(16,8), "GG2312113");
+ check_base_class_offset(lv, (BB1*)(FF211*), ABISELECT(80,40), "GG2312113");
+ check_base_class_offset(lv, (FF211*), ABISELECT(64,32), "GG2312113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2312113.pg");
+ test_class_info(&lv, &cd_GG2312113);
+ dp->~GG2312113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2312113(Test_GG2312113, "GG2312113", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2312113C1Ev();
+extern void _ZN9GG2312113D1Ev();
+Name_Map name_map_GG2312113[] = {
+ NSPAIR(_ZN9GG2312113C1Ev),
+ NSPAIR(_ZN9GG2312113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE231;
+extern VTBL_ENTRY _ZTI5EE231[];
+extern VTBL_ENTRY _ZTV5EE231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE231[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF211;
+extern VTBL_ENTRY _ZTI5FF211[];
+extern VTBL_ENTRY _ZTV5FF211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF211[];
+static Base_Class bases_GG2312113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE231, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF211, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2312113[];
+extern void _ZN9GG23121133fooEv();
+extern void _ZN9GG23121133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23121133fooEv,_ZTv0_n20_N9GG23121133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23121133fooEv,_ZThn8_N9GG23121133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23121133barEv,_ZTv0_n12_N9GG23121133barEv)();
+extern void ABISELECT(_ZThn32_N9GG23121133barEv,_ZThn16_N9GG23121133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23121133fooEv,_ZTv0_n12_N9GG23121133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23121133fooEv,_ZThn24_N9GG23121133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23121133barEv,_ZTv0_n16_N9GG23121133barEv)();
+extern void ABISELECT(_ZThn48_N9GG23121133barEv,_ZThn24_N9GG23121133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23121133fooEv,_ZTv0_n20_N9GG23121133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23121133fooEv,_ZThn32_N9GG23121133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23121133fooEv,_ZTv0_n12_N9GG23121133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23121133fooEv,_ZThn40_N9GG23121133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2312113[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2312113[0]),
+ (VTBL_ENTRY)&_ZN9GG23121133fooEv,
+ (VTBL_ENTRY)&_ZN9GG23121133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2312113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23121133fooEv,_ZTv0_n20_N9GG23121133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2312113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23121133barEv,_ZTv0_n12_N9GG23121133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2312113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23121133fooEv,_ZTv0_n12_N9GG23121133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23121133barEv,_ZTv0_n16_N9GG23121133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2312113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23121133fooEv,_ZTv0_n20_N9GG23121133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2312113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23121133fooEv,_ZTv0_n12_N9GG23121133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2312113[];
+extern void _ZN5EE2313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE231__9GG2312113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN5EE2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE231__9GG2312113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE231__9GG2312113[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF2113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF211__9GG2312113[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN5FF2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF211__9GG2312113[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF2113fooEv,_ZThn8_N5FF2113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF211__9GG2312113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv),
+};
+static VTT_ENTRY vtt_GG2312113[] = {
+ {&(_ZTV9GG2312113[7]), 7,35},
+ {&(_ZTV9GG2312113[14]), 14,35},
+ {&(_ZTV9GG2312113[18]), 18,35},
+ {&(_ZTV9GG2312113[23]), 23,35},
+ {&(_ZTV9GG2312113[30]), 30,35},
+ {&(_ZTV9GG2312113[34]), 34,35},
+ {&(_tg__ZTV5EE231__9GG2312113[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE231__9GG2312113[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE231__9GG2312113[4]), 4,6},
+ {&(_tg__ZTV5FF211__9GG2312113[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF211__9GG2312113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF211__9GG2312113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2312113[];
+extern VTBL_ENTRY _ZTV9GG2312113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2312113[];
+static VTBL_ENTRY alt_thunk_names677[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2113fooEv,_ZThn8_N5FF2113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23121133barEv,_ZTv0_n16_N9GG23121133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23121133barEv,_ZThn24_N9GG23121133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23121133fooEv,_ZTv0_n12_N9GG23121133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23121133fooEv,_ZThn40_N9GG23121133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23121133fooEv,_ZThn24_N9GG23121133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23121133barEv,_ZTv0_n12_N9GG23121133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23121133barEv,_ZThn16_N9GG23121133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23121133fooEv,_ZTv0_n20_N9GG23121133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23121133fooEv,_ZThn32_N9GG23121133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23121133fooEv,_ZThn8_N9GG23121133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2312113 = { "GG2312113", // class name
+ bases_GG2312113, 5,
+ &(vtc_GG2312113[0]), // expected_vtbl_contents
+ &(vtt_GG2312113[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2312113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2312113),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2312113),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names677,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2312123 : virtual EE231 , virtual FF212 {
+ int pg;
+ virtual void foo(); // _ZN9GG23121233fooEv
+ virtual void bar(); // _ZN9GG23121233barEv
+ ~GG2312123(); // tgen
+ GG2312123(); // tgen
+};
+//SIG(1 GG2312123) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2312123 ::foo(){vfunc_called(this, "_ZN9GG23121233fooEv");}
+void GG2312123 ::bar(){vfunc_called(this, "_ZN9GG23121233barEv");}
+GG2312123 ::~GG2312123(){ note_dtor("GG2312123", this);} // tgen
+GG2312123 ::GG2312123(){ note_ctor("GG2312123", this);} // tgen
+
+static void Test_GG2312123()
+{
+ extern Class_Descriptor cd_GG2312123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2312123, buf);
+ GG2312123 *dp, &lv = *(dp=new (buf) GG2312123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2312123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2312123)");
+ check_base_class_offset(lv, (AA2*)(EE231*), ABISELECT(32,16), "GG2312123");
+ check_base_class_offset(lv, (AA2*)(FF212*), ABISELECT(32,16), "GG2312123");
+ check_base_class_offset(lv, (BB3*)(EE231*), ABISELECT(48,24), "GG2312123");
+ check_base_class_offset(lv, (EE231*), ABISELECT(16,8), "GG2312123");
+ check_base_class_offset(lv, (BB1*)(FF212*), ABISELECT(80,40), "GG2312123");
+ check_base_class_offset(lv, (FF212*), ABISELECT(64,32), "GG2312123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2312123.pg");
+ test_class_info(&lv, &cd_GG2312123);
+ dp->~GG2312123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2312123(Test_GG2312123, "GG2312123", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2312123C1Ev();
+extern void _ZN9GG2312123D1Ev();
+Name_Map name_map_GG2312123[] = {
+ NSPAIR(_ZN9GG2312123C1Ev),
+ NSPAIR(_ZN9GG2312123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE231;
+extern VTBL_ENTRY _ZTI5EE231[];
+extern VTBL_ENTRY _ZTV5EE231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE231[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF212;
+extern VTBL_ENTRY _ZTI5FF212[];
+extern VTBL_ENTRY _ZTV5FF212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF212[];
+static Base_Class bases_GG2312123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE231, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF212, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2312123[];
+extern void _ZN9GG23121233fooEv();
+extern void _ZN9GG23121233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23121233fooEv,_ZTv0_n20_N9GG23121233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23121233fooEv,_ZThn8_N9GG23121233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23121233barEv,_ZTv0_n12_N9GG23121233barEv)();
+extern void ABISELECT(_ZThn32_N9GG23121233barEv,_ZThn16_N9GG23121233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23121233fooEv,_ZTv0_n12_N9GG23121233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23121233fooEv,_ZThn24_N9GG23121233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23121233barEv,_ZTv0_n16_N9GG23121233barEv)();
+extern void ABISELECT(_ZThn48_N9GG23121233barEv,_ZThn24_N9GG23121233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23121233barEv,_ZTv0_n20_N9GG23121233barEv)();
+extern void ABISELECT(_ZThn64_N9GG23121233barEv,_ZThn32_N9GG23121233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23121233fooEv,_ZTv0_n12_N9GG23121233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23121233fooEv,_ZThn40_N9GG23121233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2312123[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2312123[0]),
+ (VTBL_ENTRY)&_ZN9GG23121233fooEv,
+ (VTBL_ENTRY)&_ZN9GG23121233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2312123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23121233fooEv,_ZTv0_n20_N9GG23121233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2312123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23121233barEv,_ZTv0_n12_N9GG23121233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2312123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23121233fooEv,_ZTv0_n12_N9GG23121233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23121233barEv,_ZTv0_n16_N9GG23121233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2312123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23121233barEv,_ZTv0_n20_N9GG23121233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2312123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23121233fooEv,_ZTv0_n12_N9GG23121233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2312123[];
+extern void _ZN5EE2313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE231__9GG2312123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN5EE2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE231__9GG2312123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE231__9GG2312123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF2123barEv();
+static VTBL_ENTRY _tg__ZTV5FF212__9GG2312123[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN5FF2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF212__9GG2312123[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF212__9GG2312123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG2312123[] = {
+ {&(_ZTV9GG2312123[7]), 7,35},
+ {&(_ZTV9GG2312123[14]), 14,35},
+ {&(_ZTV9GG2312123[18]), 18,35},
+ {&(_ZTV9GG2312123[23]), 23,35},
+ {&(_ZTV9GG2312123[30]), 30,35},
+ {&(_ZTV9GG2312123[34]), 34,35},
+ {&(_tg__ZTV5EE231__9GG2312123[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE231__9GG2312123[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE231__9GG2312123[4]), 4,6},
+ {&(_tg__ZTV5FF212__9GG2312123[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF212__9GG2312123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF212__9GG2312123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2312123[];
+extern VTBL_ENTRY _ZTV9GG2312123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2312123[];
+static VTBL_ENTRY alt_thunk_names678[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23121233barEv,_ZTv0_n20_N9GG23121233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23121233barEv,_ZThn32_N9GG23121233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23121233barEv,_ZTv0_n16_N9GG23121233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23121233barEv,_ZThn24_N9GG23121233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23121233fooEv,_ZTv0_n12_N9GG23121233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23121233fooEv,_ZThn40_N9GG23121233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23121233fooEv,_ZThn24_N9GG23121233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23121233barEv,_ZTv0_n12_N9GG23121233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23121233barEv,_ZThn16_N9GG23121233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23121233fooEv,_ZTv0_n20_N9GG23121233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23121233fooEv,_ZThn8_N9GG23121233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2312123 = { "GG2312123", // class name
+ bases_GG2312123, 5,
+ &(vtc_GG2312123[0]), // expected_vtbl_contents
+ &(vtt_GG2312123[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2312123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2312123),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2312123),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names678,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2312133 : virtual EE231 , virtual FF213 {
+ int pg;
+ virtual void foo(); // _ZN9GG23121333fooEv
+ virtual void bar(); // _ZN9GG23121333barEv
+ ~GG2312133(); // tgen
+ GG2312133(); // tgen
+};
+//SIG(1 GG2312133) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2312133 ::foo(){vfunc_called(this, "_ZN9GG23121333fooEv");}
+void GG2312133 ::bar(){vfunc_called(this, "_ZN9GG23121333barEv");}
+GG2312133 ::~GG2312133(){ note_dtor("GG2312133", this);} // tgen
+GG2312133 ::GG2312133(){ note_ctor("GG2312133", this);} // tgen
+
+static void Test_GG2312133()
+{
+ extern Class_Descriptor cd_GG2312133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2312133, buf);
+ GG2312133 *dp, &lv = *(dp=new (buf) GG2312133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2312133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2312133)");
+ check_base_class_offset(lv, (AA2*)(EE231*), ABISELECT(32,16), "GG2312133");
+ check_base_class_offset(lv, (AA2*)(FF213*), ABISELECT(32,16), "GG2312133");
+ check_base_class_offset(lv, (BB3*)(EE231*), ABISELECT(48,24), "GG2312133");
+ check_base_class_offset(lv, (EE231*), ABISELECT(16,8), "GG2312133");
+ check_base_class_offset(lv, (BB1*)(FF213*), ABISELECT(80,40), "GG2312133");
+ check_base_class_offset(lv, (FF213*), ABISELECT(64,32), "GG2312133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2312133.pg");
+ test_class_info(&lv, &cd_GG2312133);
+ dp->~GG2312133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2312133(Test_GG2312133, "GG2312133", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2312133C1Ev();
+extern void _ZN9GG2312133D1Ev();
+Name_Map name_map_GG2312133[] = {
+ NSPAIR(_ZN9GG2312133C1Ev),
+ NSPAIR(_ZN9GG2312133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE231;
+extern VTBL_ENTRY _ZTI5EE231[];
+extern VTBL_ENTRY _ZTV5EE231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE231[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF213;
+extern VTBL_ENTRY _ZTI5FF213[];
+extern VTBL_ENTRY _ZTV5FF213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF213[];
+static Base_Class bases_GG2312133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE231, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF213, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2312133[];
+extern void _ZN9GG23121333fooEv();
+extern void _ZN9GG23121333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23121333fooEv,_ZTv0_n20_N9GG23121333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23121333fooEv,_ZThn8_N9GG23121333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23121333barEv,_ZTv0_n12_N9GG23121333barEv)();
+extern void ABISELECT(_ZThn32_N9GG23121333barEv,_ZThn16_N9GG23121333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23121333fooEv,_ZTv0_n12_N9GG23121333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23121333fooEv,_ZThn24_N9GG23121333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23121333barEv,_ZTv0_n16_N9GG23121333barEv)();
+extern void ABISELECT(_ZThn48_N9GG23121333barEv,_ZThn24_N9GG23121333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23121333fooEv,_ZTv0_n20_N9GG23121333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23121333fooEv,_ZThn32_N9GG23121333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23121333barEv,_ZTv0_n24_N9GG23121333barEv)();
+extern void ABISELECT(_ZThn64_N9GG23121333barEv,_ZThn32_N9GG23121333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23121333fooEv,_ZTv0_n12_N9GG23121333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23121333fooEv,_ZThn40_N9GG23121333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2312133[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2312133[0]),
+ (VTBL_ENTRY)&_ZN9GG23121333fooEv,
+ (VTBL_ENTRY)&_ZN9GG23121333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2312133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23121333fooEv,_ZTv0_n20_N9GG23121333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2312133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23121333barEv,_ZTv0_n12_N9GG23121333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2312133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23121333fooEv,_ZTv0_n12_N9GG23121333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23121333barEv,_ZTv0_n16_N9GG23121333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2312133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23121333fooEv,_ZTv0_n20_N9GG23121333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23121333barEv,_ZTv0_n24_N9GG23121333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2312133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23121333fooEv,_ZTv0_n12_N9GG23121333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2312133[];
+extern void _ZN5EE2313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE231__9GG2312133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN5EE2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE231__9GG2312133[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE231__9GG2312133[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF2133fooEv();
+extern void _ZN5FF2133barEv();
+static VTBL_ENTRY _tg__ZTV5FF213__9GG2312133[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&_ZN5FF2133fooEv,
+ (VTBL_ENTRY)&_ZN5FF2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF213__9GG2312133[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF2133fooEv,_ZThn8_N5FF2133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF213__9GG2312133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv),
+};
+static VTT_ENTRY vtt_GG2312133[] = {
+ {&(_ZTV9GG2312133[7]), 7,37},
+ {&(_ZTV9GG2312133[14]), 14,37},
+ {&(_ZTV9GG2312133[18]), 18,37},
+ {&(_ZTV9GG2312133[23]), 23,37},
+ {&(_ZTV9GG2312133[31]), 31,37},
+ {&(_ZTV9GG2312133[36]), 36,37},
+ {&(_tg__ZTV5EE231__9GG2312133[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE231__9GG2312133[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE231__9GG2312133[4]), 4,6},
+ {&(_tg__ZTV5FF213__9GG2312133[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF213__9GG2312133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF213__9GG2312133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2312133[];
+extern VTBL_ENTRY _ZTV9GG2312133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2312133[];
+static VTBL_ENTRY alt_thunk_names679[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2133fooEv,_ZThn8_N5FF2133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG23121333barEv,_ZTv0_n24_N9GG23121333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23121333barEv,_ZThn32_N9GG23121333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23121333barEv,_ZTv0_n16_N9GG23121333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23121333barEv,_ZThn24_N9GG23121333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23121333fooEv,_ZTv0_n12_N9GG23121333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23121333fooEv,_ZThn40_N9GG23121333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23121333fooEv,_ZThn24_N9GG23121333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23121333barEv,_ZTv0_n12_N9GG23121333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23121333barEv,_ZThn16_N9GG23121333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23121333fooEv,_ZTv0_n20_N9GG23121333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23121333fooEv,_ZThn32_N9GG23121333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23121333fooEv,_ZThn8_N9GG23121333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2312133 = { "GG2312133", // class name
+ bases_GG2312133, 5,
+ &(vtc_GG2312133[0]), // expected_vtbl_contents
+ &(vtt_GG2312133[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2312133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2312133),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2312133),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names679,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2312213 : virtual EE231 , virtual FF221 {
+ int pg;
+ virtual void foo(); // _ZN9GG23122133fooEv
+ virtual void bar(); // _ZN9GG23122133barEv
+ ~GG2312213(); // tgen
+ GG2312213(); // tgen
+};
+//SIG(1 GG2312213) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2312213 ::foo(){vfunc_called(this, "_ZN9GG23122133fooEv");}
+void GG2312213 ::bar(){vfunc_called(this, "_ZN9GG23122133barEv");}
+GG2312213 ::~GG2312213(){ note_dtor("GG2312213", this);} // tgen
+GG2312213 ::GG2312213(){ note_ctor("GG2312213", this);} // tgen
+
+static void Test_GG2312213()
+{
+ extern Class_Descriptor cd_GG2312213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2312213, buf);
+ GG2312213 *dp, &lv = *(dp=new (buf) GG2312213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2312213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2312213)");
+ check_base_class_offset(lv, (AA2*)(EE231*), ABISELECT(32,16), "GG2312213");
+ check_base_class_offset(lv, (AA2*)(FF221*), ABISELECT(32,16), "GG2312213");
+ check_base_class_offset(lv, (BB3*)(EE231*), ABISELECT(48,24), "GG2312213");
+ check_base_class_offset(lv, (EE231*), ABISELECT(16,8), "GG2312213");
+ check_base_class_offset(lv, (BB2*)(FF221*), ABISELECT(80,40), "GG2312213");
+ check_base_class_offset(lv, (FF221*), ABISELECT(64,32), "GG2312213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2312213.pg");
+ test_class_info(&lv, &cd_GG2312213);
+ dp->~GG2312213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2312213(Test_GG2312213, "GG2312213", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2312213C1Ev();
+extern void _ZN9GG2312213D1Ev();
+Name_Map name_map_GG2312213[] = {
+ NSPAIR(_ZN9GG2312213C1Ev),
+ NSPAIR(_ZN9GG2312213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE231;
+extern VTBL_ENTRY _ZTI5EE231[];
+extern VTBL_ENTRY _ZTV5EE231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE231[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF221;
+extern VTBL_ENTRY _ZTI5FF221[];
+extern VTBL_ENTRY _ZTV5FF221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF221[];
+static Base_Class bases_GG2312213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE231, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF221, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2312213[];
+extern void _ZN9GG23122133fooEv();
+extern void _ZN9GG23122133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23122133fooEv,_ZTv0_n20_N9GG23122133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23122133fooEv,_ZThn8_N9GG23122133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23122133barEv,_ZTv0_n12_N9GG23122133barEv)();
+extern void ABISELECT(_ZThn32_N9GG23122133barEv,_ZThn16_N9GG23122133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23122133fooEv,_ZTv0_n12_N9GG23122133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23122133fooEv,_ZThn24_N9GG23122133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23122133barEv,_ZTv0_n16_N9GG23122133barEv)();
+extern void ABISELECT(_ZThn48_N9GG23122133barEv,_ZThn24_N9GG23122133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23122133fooEv,_ZTv0_n20_N9GG23122133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23122133fooEv,_ZThn32_N9GG23122133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23122133barEv,_ZTv0_n12_N9GG23122133barEv)();
+extern void ABISELECT(_ZThn80_N9GG23122133barEv,_ZThn40_N9GG23122133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2312213[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2312213[0]),
+ (VTBL_ENTRY)&_ZN9GG23122133fooEv,
+ (VTBL_ENTRY)&_ZN9GG23122133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2312213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23122133fooEv,_ZTv0_n20_N9GG23122133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2312213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23122133barEv,_ZTv0_n12_N9GG23122133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2312213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23122133fooEv,_ZTv0_n12_N9GG23122133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23122133barEv,_ZTv0_n16_N9GG23122133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2312213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23122133fooEv,_ZTv0_n20_N9GG23122133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2312213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23122133barEv,_ZTv0_n12_N9GG23122133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2312213[];
+extern void _ZN5EE2313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE231__9GG2312213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN5EE2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE231__9GG2312213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE231__9GG2312213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF2213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF221__9GG2312213[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN5FF2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF221__9GG2312213[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF221__9GG2312213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG2312213[] = {
+ {&(_ZTV9GG2312213[7]), 7,35},
+ {&(_ZTV9GG2312213[14]), 14,35},
+ {&(_ZTV9GG2312213[18]), 18,35},
+ {&(_ZTV9GG2312213[23]), 23,35},
+ {&(_ZTV9GG2312213[30]), 30,35},
+ {&(_ZTV9GG2312213[34]), 34,35},
+ {&(_tg__ZTV5EE231__9GG2312213[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE231__9GG2312213[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE231__9GG2312213[4]), 4,6},
+ {&(_tg__ZTV5FF221__9GG2312213[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF221__9GG2312213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF221__9GG2312213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2312213[];
+extern VTBL_ENTRY _ZTV9GG2312213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2312213[];
+static VTBL_ENTRY alt_thunk_names680[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23122133barEv,_ZTv0_n16_N9GG23122133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23122133barEv,_ZThn24_N9GG23122133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23122133fooEv,_ZTv0_n12_N9GG23122133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23122133fooEv,_ZThn24_N9GG23122133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23122133barEv,_ZTv0_n12_N9GG23122133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23122133barEv,_ZThn40_N9GG23122133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23122133barEv,_ZThn16_N9GG23122133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23122133fooEv,_ZTv0_n20_N9GG23122133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23122133fooEv,_ZThn32_N9GG23122133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23122133fooEv,_ZThn8_N9GG23122133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2312213 = { "GG2312213", // class name
+ bases_GG2312213, 5,
+ &(vtc_GG2312213[0]), // expected_vtbl_contents
+ &(vtt_GG2312213[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2312213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2312213),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2312213),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names680,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2312222 : virtual EE231 , virtual FF222 {
+ int pg;
+ virtual void bar(); // _ZN9GG23122223barEv
+ ~GG2312222(); // tgen
+ GG2312222(); // tgen
+};
+//SIG(1 GG2312222) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 v1 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v1 Fi} v1 Fi}
+
+
+void GG2312222 ::bar(){vfunc_called(this, "_ZN9GG23122223barEv");}
+GG2312222 ::~GG2312222(){ note_dtor("GG2312222", this);} // tgen
+GG2312222 ::GG2312222(){ note_ctor("GG2312222", this);} // tgen
+
+static void Test_GG2312222()
+{
+ extern Class_Descriptor cd_GG2312222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2312222, buf);
+ GG2312222 *dp, &lv = *(dp=new (buf) GG2312222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2312222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2312222)");
+ check_base_class_offset(lv, (AA2*)(EE231*), ABISELECT(32,16), "GG2312222");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(32,16), "GG2312222");
+ check_base_class_offset(lv, (BB3*)(EE231*), ABISELECT(48,24), "GG2312222");
+ check_base_class_offset(lv, (EE231*), ABISELECT(16,8), "GG2312222");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(80,40), "GG2312222");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG2312222");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2312222.pg");
+ test_class_info(&lv, &cd_GG2312222);
+ dp->~GG2312222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2312222(Test_GG2312222, "GG2312222", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2312222C1Ev();
+extern void _ZN9GG2312222D1Ev();
+Name_Map name_map_GG2312222[] = {
+ NSPAIR(_ZN9GG2312222C1Ev),
+ NSPAIR(_ZN9GG2312222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE231;
+extern VTBL_ENTRY _ZTI5EE231[];
+extern VTBL_ENTRY _ZTV5EE231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE231[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG2312222[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE231, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2312222[];
+extern void _ZN9GG23122223barEv();
+extern void _ZN5EE2313fooEv();
+extern void ABISELECT(_ZTv0_n24_N9GG23122223barEv,_ZTv0_n12_N9GG23122223barEv)();
+extern void ABISELECT(_ZThn32_N9GG23122223barEv,_ZThn16_N9GG23122223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23122223barEv,_ZTv0_n16_N9GG23122223barEv)();
+extern void ABISELECT(_ZThn48_N9GG23122223barEv,_ZThn24_N9GG23122223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23122223barEv,_ZTv0_n20_N9GG23122223barEv)();
+extern void ABISELECT(_ZThn64_N9GG23122223barEv,_ZThn32_N9GG23122223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23122223barEv,_ZTv0_n12_N9GG23122223barEv)();
+extern void ABISELECT(_ZThn80_N9GG23122223barEv,_ZThn40_N9GG23122223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2312222[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2312222[0]),
+ (VTBL_ENTRY)&_ZN9GG23122223barEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2312222[0]),
+ (VTBL_ENTRY)&_ZN5EE2313fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2312222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23122223barEv,_ZTv0_n12_N9GG23122223barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2312222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23122223barEv,_ZTv0_n16_N9GG23122223barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2312222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23122223barEv,_ZTv0_n20_N9GG23122223barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2312222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23122223barEv,_ZTv0_n12_N9GG23122223barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2312222[];
+extern void _ZN5EE2313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE231__9GG2312222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN5EE2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE231__9GG2312222[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE231__9GG2312222[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG2312222[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG2312222[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG2312222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG2312222[] = {
+ {&(_ZTV9GG2312222[7]), 7,34},
+ {&(_ZTV9GG2312222[13]), 13,34},
+ {&(_ZTV9GG2312222[17]), 17,34},
+ {&(_ZTV9GG2312222[22]), 22,34},
+ {&(_ZTV9GG2312222[29]), 29,34},
+ {&(_ZTV9GG2312222[33]), 33,34},
+ {&(_tg__ZTV5EE231__9GG2312222[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE231__9GG2312222[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE231__9GG2312222[4]), 4,6},
+ {&(_tg__ZTV5FF222__9GG2312222[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG2312222[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG2312222[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2312222[];
+extern VTBL_ENTRY _ZTV9GG2312222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2312222[];
+static VTBL_ENTRY alt_thunk_names681[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23122223barEv,_ZTv0_n20_N9GG23122223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23122223barEv,_ZThn32_N9GG23122223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23122223barEv,_ZTv0_n16_N9GG23122223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23122223barEv,_ZThn24_N9GG23122223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23122223barEv,_ZTv0_n12_N9GG23122223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23122223barEv,_ZThn40_N9GG23122223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23122223barEv,_ZThn16_N9GG23122223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2312222 = { "GG2312222", // class name
+ bases_GG2312222, 5,
+ &(vtc_GG2312222[0]), // expected_vtbl_contents
+ &(vtt_GG2312222[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2312222),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2312222),34, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2312222),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names681,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2312223 : virtual EE231 , virtual FF222 {
+ int pg;
+ virtual void foo(); // _ZN9GG23122233fooEv
+ virtual void bar(); // _ZN9GG23122233barEv
+ ~GG2312223(); // tgen
+ GG2312223(); // tgen
+};
+//SIG(1 GG2312223) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2312223 ::foo(){vfunc_called(this, "_ZN9GG23122233fooEv");}
+void GG2312223 ::bar(){vfunc_called(this, "_ZN9GG23122233barEv");}
+GG2312223 ::~GG2312223(){ note_dtor("GG2312223", this);} // tgen
+GG2312223 ::GG2312223(){ note_ctor("GG2312223", this);} // tgen
+
+static void Test_GG2312223()
+{
+ extern Class_Descriptor cd_GG2312223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2312223, buf);
+ GG2312223 *dp, &lv = *(dp=new (buf) GG2312223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2312223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2312223)");
+ check_base_class_offset(lv, (AA2*)(EE231*), ABISELECT(32,16), "GG2312223");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(32,16), "GG2312223");
+ check_base_class_offset(lv, (BB3*)(EE231*), ABISELECT(48,24), "GG2312223");
+ check_base_class_offset(lv, (EE231*), ABISELECT(16,8), "GG2312223");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(80,40), "GG2312223");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG2312223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2312223.pg");
+ test_class_info(&lv, &cd_GG2312223);
+ dp->~GG2312223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2312223(Test_GG2312223, "GG2312223", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2312223C1Ev();
+extern void _ZN9GG2312223D1Ev();
+Name_Map name_map_GG2312223[] = {
+ NSPAIR(_ZN9GG2312223C1Ev),
+ NSPAIR(_ZN9GG2312223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE231;
+extern VTBL_ENTRY _ZTI5EE231[];
+extern VTBL_ENTRY _ZTV5EE231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE231[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG2312223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE231, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2312223[];
+extern void _ZN9GG23122233fooEv();
+extern void _ZN9GG23122233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23122233fooEv,_ZTv0_n20_N9GG23122233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23122233fooEv,_ZThn8_N9GG23122233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23122233barEv,_ZTv0_n12_N9GG23122233barEv)();
+extern void ABISELECT(_ZThn32_N9GG23122233barEv,_ZThn16_N9GG23122233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23122233fooEv,_ZTv0_n12_N9GG23122233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23122233fooEv,_ZThn24_N9GG23122233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23122233barEv,_ZTv0_n16_N9GG23122233barEv)();
+extern void ABISELECT(_ZThn48_N9GG23122233barEv,_ZThn24_N9GG23122233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23122233barEv,_ZTv0_n20_N9GG23122233barEv)();
+extern void ABISELECT(_ZThn64_N9GG23122233barEv,_ZThn32_N9GG23122233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23122233barEv,_ZTv0_n12_N9GG23122233barEv)();
+extern void ABISELECT(_ZThn80_N9GG23122233barEv,_ZThn40_N9GG23122233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2312223[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2312223[0]),
+ (VTBL_ENTRY)&_ZN9GG23122233fooEv,
+ (VTBL_ENTRY)&_ZN9GG23122233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2312223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23122233fooEv,_ZTv0_n20_N9GG23122233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2312223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23122233barEv,_ZTv0_n12_N9GG23122233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2312223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23122233fooEv,_ZTv0_n12_N9GG23122233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23122233barEv,_ZTv0_n16_N9GG23122233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2312223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23122233barEv,_ZTv0_n20_N9GG23122233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2312223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23122233barEv,_ZTv0_n12_N9GG23122233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2312223[];
+extern void _ZN5EE2313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE231__9GG2312223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN5EE2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE231__9GG2312223[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE231__9GG2312223[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG2312223[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG2312223[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG2312223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG2312223[] = {
+ {&(_ZTV9GG2312223[7]), 7,35},
+ {&(_ZTV9GG2312223[14]), 14,35},
+ {&(_ZTV9GG2312223[18]), 18,35},
+ {&(_ZTV9GG2312223[23]), 23,35},
+ {&(_ZTV9GG2312223[30]), 30,35},
+ {&(_ZTV9GG2312223[34]), 34,35},
+ {&(_tg__ZTV5EE231__9GG2312223[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE231__9GG2312223[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE231__9GG2312223[4]), 4,6},
+ {&(_tg__ZTV5FF222__9GG2312223[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG2312223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG2312223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2312223[];
+extern VTBL_ENTRY _ZTV9GG2312223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2312223[];
+static VTBL_ENTRY alt_thunk_names682[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23122233barEv,_ZTv0_n20_N9GG23122233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23122233barEv,_ZThn32_N9GG23122233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23122233barEv,_ZTv0_n16_N9GG23122233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23122233barEv,_ZThn24_N9GG23122233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23122233fooEv,_ZTv0_n12_N9GG23122233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23122233fooEv,_ZThn24_N9GG23122233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23122233barEv,_ZTv0_n12_N9GG23122233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23122233barEv,_ZThn40_N9GG23122233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23122233barEv,_ZThn16_N9GG23122233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23122233fooEv,_ZTv0_n20_N9GG23122233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23122233fooEv,_ZThn8_N9GG23122233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2312223 = { "GG2312223", // class name
+ bases_GG2312223, 5,
+ &(vtc_GG2312223[0]), // expected_vtbl_contents
+ &(vtt_GG2312223[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2312223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2312223),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2312223),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names682,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2312233 : virtual EE231 , virtual FF223 {
+ int pg;
+ virtual void foo(); // _ZN9GG23122333fooEv
+ virtual void bar(); // _ZN9GG23122333barEv
+ ~GG2312233(); // tgen
+ GG2312233(); // tgen
+};
+//SIG(1 GG2312233) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2312233 ::foo(){vfunc_called(this, "_ZN9GG23122333fooEv");}
+void GG2312233 ::bar(){vfunc_called(this, "_ZN9GG23122333barEv");}
+GG2312233 ::~GG2312233(){ note_dtor("GG2312233", this);} // tgen
+GG2312233 ::GG2312233(){ note_ctor("GG2312233", this);} // tgen
+
+static void Test_GG2312233()
+{
+ extern Class_Descriptor cd_GG2312233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2312233, buf);
+ GG2312233 *dp, &lv = *(dp=new (buf) GG2312233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2312233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2312233)");
+ check_base_class_offset(lv, (AA2*)(EE231*), ABISELECT(32,16), "GG2312233");
+ check_base_class_offset(lv, (AA2*)(FF223*), ABISELECT(32,16), "GG2312233");
+ check_base_class_offset(lv, (BB3*)(EE231*), ABISELECT(48,24), "GG2312233");
+ check_base_class_offset(lv, (EE231*), ABISELECT(16,8), "GG2312233");
+ check_base_class_offset(lv, (BB2*)(FF223*), ABISELECT(80,40), "GG2312233");
+ check_base_class_offset(lv, (FF223*), ABISELECT(64,32), "GG2312233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2312233.pg");
+ test_class_info(&lv, &cd_GG2312233);
+ dp->~GG2312233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2312233(Test_GG2312233, "GG2312233", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2312233C1Ev();
+extern void _ZN9GG2312233D1Ev();
+Name_Map name_map_GG2312233[] = {
+ NSPAIR(_ZN9GG2312233C1Ev),
+ NSPAIR(_ZN9GG2312233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE231;
+extern VTBL_ENTRY _ZTI5EE231[];
+extern VTBL_ENTRY _ZTV5EE231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE231[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF223;
+extern VTBL_ENTRY _ZTI5FF223[];
+extern VTBL_ENTRY _ZTV5FF223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF223[];
+static Base_Class bases_GG2312233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE231, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF223, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2312233[];
+extern void _ZN9GG23122333fooEv();
+extern void _ZN9GG23122333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23122333fooEv,_ZTv0_n20_N9GG23122333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23122333fooEv,_ZThn8_N9GG23122333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23122333barEv,_ZTv0_n12_N9GG23122333barEv)();
+extern void ABISELECT(_ZThn32_N9GG23122333barEv,_ZThn16_N9GG23122333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23122333fooEv,_ZTv0_n12_N9GG23122333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23122333fooEv,_ZThn24_N9GG23122333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23122333barEv,_ZTv0_n16_N9GG23122333barEv)();
+extern void ABISELECT(_ZThn48_N9GG23122333barEv,_ZThn24_N9GG23122333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23122333fooEv,_ZTv0_n20_N9GG23122333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23122333fooEv,_ZThn32_N9GG23122333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23122333barEv,_ZTv0_n24_N9GG23122333barEv)();
+extern void ABISELECT(_ZThn64_N9GG23122333barEv,_ZThn32_N9GG23122333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23122333barEv,_ZTv0_n12_N9GG23122333barEv)();
+extern void ABISELECT(_ZThn80_N9GG23122333barEv,_ZThn40_N9GG23122333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2312233[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2312233[0]),
+ (VTBL_ENTRY)&_ZN9GG23122333fooEv,
+ (VTBL_ENTRY)&_ZN9GG23122333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2312233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23122333fooEv,_ZTv0_n20_N9GG23122333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2312233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23122333barEv,_ZTv0_n12_N9GG23122333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2312233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23122333fooEv,_ZTv0_n12_N9GG23122333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23122333barEv,_ZTv0_n16_N9GG23122333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2312233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23122333fooEv,_ZTv0_n20_N9GG23122333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23122333barEv,_ZTv0_n24_N9GG23122333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2312233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23122333barEv,_ZTv0_n12_N9GG23122333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2312233[];
+extern void _ZN5EE2313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE231__9GG2312233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN5EE2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE231__9GG2312233[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE231__9GG2312233[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF2233fooEv();
+extern void _ZN5FF2233barEv();
+static VTBL_ENTRY _tg__ZTV5FF223__9GG2312233[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&_ZN5FF2233fooEv,
+ (VTBL_ENTRY)&_ZN5FF2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF223__9GG2312233[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+extern void ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF223__9GG2312233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+static VTT_ENTRY vtt_GG2312233[] = {
+ {&(_ZTV9GG2312233[7]), 7,37},
+ {&(_ZTV9GG2312233[14]), 14,37},
+ {&(_ZTV9GG2312233[18]), 18,37},
+ {&(_ZTV9GG2312233[23]), 23,37},
+ {&(_ZTV9GG2312233[31]), 31,37},
+ {&(_ZTV9GG2312233[36]), 36,37},
+ {&(_tg__ZTV5EE231__9GG2312233[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE231__9GG2312233[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE231__9GG2312233[4]), 4,6},
+ {&(_tg__ZTV5FF223__9GG2312233[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF223__9GG2312233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF223__9GG2312233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2312233[];
+extern VTBL_ENTRY _ZTV9GG2312233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2312233[];
+static VTBL_ENTRY alt_thunk_names683[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG23122333barEv,_ZTv0_n24_N9GG23122333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23122333barEv,_ZThn32_N9GG23122333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23122333barEv,_ZTv0_n16_N9GG23122333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23122333barEv,_ZThn24_N9GG23122333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23122333fooEv,_ZTv0_n12_N9GG23122333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23122333fooEv,_ZThn24_N9GG23122333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23122333barEv,_ZTv0_n12_N9GG23122333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23122333barEv,_ZThn40_N9GG23122333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23122333barEv,_ZThn16_N9GG23122333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23122333fooEv,_ZTv0_n20_N9GG23122333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23122333fooEv,_ZThn32_N9GG23122333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23122333fooEv,_ZThn8_N9GG23122333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2312233 = { "GG2312233", // class name
+ bases_GG2312233, 5,
+ &(vtc_GG2312233[0]), // expected_vtbl_contents
+ &(vtt_GG2312233[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2312233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2312233),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2312233),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names683,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2312313 : virtual EE231 , virtual FF231 {
+ int pg;
+ virtual void foo(); // _ZN9GG23123133fooEv
+ virtual void bar(); // _ZN9GG23123133barEv
+ ~GG2312313(); // tgen
+ GG2312313(); // tgen
+};
+//SIG(1 GG2312313) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC3 VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG2312313 ::foo(){vfunc_called(this, "_ZN9GG23123133fooEv");}
+void GG2312313 ::bar(){vfunc_called(this, "_ZN9GG23123133barEv");}
+GG2312313 ::~GG2312313(){ note_dtor("GG2312313", this);} // tgen
+GG2312313 ::GG2312313(){ note_ctor("GG2312313", this);} // tgen
+
+static void Test_GG2312313()
+{
+ extern Class_Descriptor cd_GG2312313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG2312313, buf);
+ GG2312313 *dp, &lv = *(dp=new (buf) GG2312313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG2312313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2312313)");
+ check_base_class_offset(lv, (AA2*)(EE231*), ABISELECT(32,16), "GG2312313");
+ check_base_class_offset(lv, (AA2*)(FF231*), ABISELECT(32,16), "GG2312313");
+ check_base_class_offset(lv, (BB3*)(EE231*), ABISELECT(48,24), "GG2312313");
+ check_base_class_offset(lv, (BB3*)(FF231*), ABISELECT(48,24), "GG2312313");
+ check_base_class_offset(lv, (EE231*), ABISELECT(16,8), "GG2312313");
+ check_base_class_offset(lv, (FF231*), ABISELECT(64,32), "GG2312313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2312313.pg");
+ test_class_info(&lv, &cd_GG2312313);
+ dp->~GG2312313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2312313(Test_GG2312313, "GG2312313", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG2312313C1Ev();
+extern void _ZN9GG2312313D1Ev();
+Name_Map name_map_GG2312313[] = {
+ NSPAIR(_ZN9GG2312313C1Ev),
+ NSPAIR(_ZN9GG2312313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE231;
+extern VTBL_ENTRY _ZTI5EE231[];
+extern VTBL_ENTRY _ZTV5EE231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE231[];
+extern Class_Descriptor cd_FF231;
+extern VTBL_ENTRY _ZTI5FF231[];
+extern VTBL_ENTRY _ZTV5FF231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF231[];
+static Base_Class bases_GG2312313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE231, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF231, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2312313[];
+extern void _ZN9GG23123133fooEv();
+extern void _ZN9GG23123133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23123133fooEv,_ZTv0_n20_N9GG23123133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23123133fooEv,_ZThn8_N9GG23123133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23123133barEv,_ZTv0_n12_N9GG23123133barEv)();
+extern void ABISELECT(_ZThn32_N9GG23123133barEv,_ZThn16_N9GG23123133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23123133fooEv,_ZTv0_n12_N9GG23123133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23123133fooEv,_ZThn24_N9GG23123133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23123133barEv,_ZTv0_n16_N9GG23123133barEv)();
+extern void ABISELECT(_ZThn48_N9GG23123133barEv,_ZThn24_N9GG23123133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23123133fooEv,_ZTv0_n20_N9GG23123133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23123133fooEv,_ZThn32_N9GG23123133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2312313[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2312313[0]),
+ (VTBL_ENTRY)&_ZN9GG23123133fooEv,
+ (VTBL_ENTRY)&_ZN9GG23123133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2312313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23123133fooEv,_ZTv0_n20_N9GG23123133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2312313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23123133barEv,_ZTv0_n12_N9GG23123133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2312313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23123133fooEv,_ZTv0_n12_N9GG23123133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23123133barEv,_ZTv0_n16_N9GG23123133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2312313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23123133fooEv,_ZTv0_n20_N9GG23123133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2312313[];
+extern void _ZN5EE2313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE231__9GG2312313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN5EE2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE231__9GG2312313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE231__9GG2312313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF2313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF231__9GG2312313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN5FF2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF231__9GG2312313[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv)();
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF231__9GG2312313[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG2312313[] = {
+ {&(_ZTV9GG2312313[6]), 6,30},
+ {&(_ZTV9GG2312313[13]), 13,30},
+ {&(_ZTV9GG2312313[17]), 17,30},
+ {&(_ZTV9GG2312313[22]), 22,30},
+ {&(_ZTV9GG2312313[29]), 29,30},
+ {&(_tg__ZTV5EE231__9GG2312313[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE231__9GG2312313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE231__9GG2312313[4]), 4,6},
+ {&(_tg__ZTV5FF231__9GG2312313[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF231__9GG2312313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF231__9GG2312313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2312313[];
+extern VTBL_ENTRY _ZTV9GG2312313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2312313[];
+static VTBL_ENTRY alt_thunk_names684[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23123133barEv,_ZTv0_n16_N9GG23123133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23123133barEv,_ZThn24_N9GG23123133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23123133fooEv,_ZTv0_n12_N9GG23123133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23123133fooEv,_ZThn24_N9GG23123133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23123133barEv,_ZTv0_n12_N9GG23123133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23123133barEv,_ZThn16_N9GG23123133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23123133fooEv,_ZTv0_n20_N9GG23123133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23123133fooEv,_ZThn32_N9GG23123133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23123133fooEv,_ZThn8_N9GG23123133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2312313 = { "GG2312313", // class name
+ bases_GG2312313, 4,
+ &(vtc_GG2312313[0]), // expected_vtbl_contents
+ &(vtt_GG2312313[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG2312313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2312313),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2312313),11, //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 GG2312323 : virtual EE231 , virtual FF232 {
+ int pg;
+ virtual void foo(); // _ZN9GG23123233fooEv
+ virtual void bar(); // _ZN9GG23123233barEv
+ ~GG2312323(); // tgen
+ GG2312323(); // tgen
+};
+//SIG(1 GG2312323) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC3 VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG2312323 ::foo(){vfunc_called(this, "_ZN9GG23123233fooEv");}
+void GG2312323 ::bar(){vfunc_called(this, "_ZN9GG23123233barEv");}
+GG2312323 ::~GG2312323(){ note_dtor("GG2312323", this);} // tgen
+GG2312323 ::GG2312323(){ note_ctor("GG2312323", this);} // tgen
+
+static void Test_GG2312323()
+{
+ extern Class_Descriptor cd_GG2312323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG2312323, buf);
+ GG2312323 *dp, &lv = *(dp=new (buf) GG2312323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG2312323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2312323)");
+ check_base_class_offset(lv, (AA2*)(EE231*), ABISELECT(32,16), "GG2312323");
+ check_base_class_offset(lv, (AA2*)(FF232*), ABISELECT(32,16), "GG2312323");
+ check_base_class_offset(lv, (BB3*)(EE231*), ABISELECT(48,24), "GG2312323");
+ check_base_class_offset(lv, (BB3*)(FF232*), ABISELECT(48,24), "GG2312323");
+ check_base_class_offset(lv, (EE231*), ABISELECT(16,8), "GG2312323");
+ check_base_class_offset(lv, (FF232*), ABISELECT(64,32), "GG2312323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2312323.pg");
+ test_class_info(&lv, &cd_GG2312323);
+ dp->~GG2312323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2312323(Test_GG2312323, "GG2312323", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG2312323C1Ev();
+extern void _ZN9GG2312323D1Ev();
+Name_Map name_map_GG2312323[] = {
+ NSPAIR(_ZN9GG2312323C1Ev),
+ NSPAIR(_ZN9GG2312323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE231;
+extern VTBL_ENTRY _ZTI5EE231[];
+extern VTBL_ENTRY _ZTV5EE231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE231[];
+extern Class_Descriptor cd_FF232;
+extern VTBL_ENTRY _ZTI5FF232[];
+extern VTBL_ENTRY _ZTV5FF232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF232[];
+static Base_Class bases_GG2312323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE231, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF232, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2312323[];
+extern void _ZN9GG23123233fooEv();
+extern void _ZN9GG23123233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23123233fooEv,_ZTv0_n20_N9GG23123233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23123233fooEv,_ZThn8_N9GG23123233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23123233barEv,_ZTv0_n12_N9GG23123233barEv)();
+extern void ABISELECT(_ZThn32_N9GG23123233barEv,_ZThn16_N9GG23123233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23123233fooEv,_ZTv0_n12_N9GG23123233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23123233fooEv,_ZThn24_N9GG23123233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23123233barEv,_ZTv0_n16_N9GG23123233barEv)();
+extern void ABISELECT(_ZThn48_N9GG23123233barEv,_ZThn24_N9GG23123233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23123233barEv,_ZTv0_n20_N9GG23123233barEv)();
+extern void ABISELECT(_ZThn64_N9GG23123233barEv,_ZThn32_N9GG23123233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2312323[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2312323[0]),
+ (VTBL_ENTRY)&_ZN9GG23123233fooEv,
+ (VTBL_ENTRY)&_ZN9GG23123233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2312323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23123233fooEv,_ZTv0_n20_N9GG23123233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2312323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23123233barEv,_ZTv0_n12_N9GG23123233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2312323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23123233fooEv,_ZTv0_n12_N9GG23123233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23123233barEv,_ZTv0_n16_N9GG23123233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2312323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23123233barEv,_ZTv0_n20_N9GG23123233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2312323[];
+extern void _ZN5EE2313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE231__9GG2312323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN5EE2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE231__9GG2312323[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE231__9GG2312323[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF2323barEv();
+static VTBL_ENTRY _tg__ZTV5FF232__9GG2312323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN5FF2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF232__9GG2312323[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF232__9GG2312323[] = {
+ ABISELECT(16,8),
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv),
+};
+static VTT_ENTRY vtt_GG2312323[] = {
+ {&(_ZTV9GG2312323[6]), 6,30},
+ {&(_ZTV9GG2312323[13]), 13,30},
+ {&(_ZTV9GG2312323[17]), 17,30},
+ {&(_ZTV9GG2312323[22]), 22,30},
+ {&(_ZTV9GG2312323[29]), 29,30},
+ {&(_tg__ZTV5EE231__9GG2312323[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE231__9GG2312323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE231__9GG2312323[4]), 4,6},
+ {&(_tg__ZTV5FF232__9GG2312323[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF232__9GG2312323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF232__9GG2312323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2312323[];
+extern VTBL_ENTRY _ZTV9GG2312323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2312323[];
+static VTBL_ENTRY alt_thunk_names685[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23123233barEv,_ZTv0_n20_N9GG23123233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23123233barEv,_ZThn32_N9GG23123233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23123233barEv,_ZTv0_n16_N9GG23123233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23123233barEv,_ZThn24_N9GG23123233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23123233fooEv,_ZTv0_n12_N9GG23123233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23123233fooEv,_ZThn24_N9GG23123233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23123233barEv,_ZTv0_n12_N9GG23123233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23123233barEv,_ZThn16_N9GG23123233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23123233fooEv,_ZTv0_n20_N9GG23123233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23123233fooEv,_ZThn8_N9GG23123233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2312323 = { "GG2312323", // class name
+ bases_GG2312323, 4,
+ &(vtc_GG2312323[0]), // expected_vtbl_contents
+ &(vtt_GG2312323[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG2312323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2312323),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2312323),11, //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 GG2312333 : virtual EE231 , virtual FF233 {
+ int pg;
+ virtual void foo(); // _ZN9GG23123333fooEv
+ virtual void bar(); // _ZN9GG23123333barEv
+ ~GG2312333(); // tgen
+ GG2312333(); // tgen
+};
+//SIG(1 GG2312333) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC3 VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2312333 ::foo(){vfunc_called(this, "_ZN9GG23123333fooEv");}
+void GG2312333 ::bar(){vfunc_called(this, "_ZN9GG23123333barEv");}
+GG2312333 ::~GG2312333(){ note_dtor("GG2312333", this);} // tgen
+GG2312333 ::GG2312333(){ note_ctor("GG2312333", this);} // tgen
+
+static void Test_GG2312333()
+{
+ extern Class_Descriptor cd_GG2312333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG2312333, buf);
+ GG2312333 *dp, &lv = *(dp=new (buf) GG2312333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG2312333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2312333)");
+ check_base_class_offset(lv, (AA2*)(EE231*), ABISELECT(32,16), "GG2312333");
+ check_base_class_offset(lv, (AA2*)(FF233*), ABISELECT(32,16), "GG2312333");
+ check_base_class_offset(lv, (BB3*)(EE231*), ABISELECT(48,24), "GG2312333");
+ check_base_class_offset(lv, (BB3*)(FF233*), ABISELECT(48,24), "GG2312333");
+ check_base_class_offset(lv, (EE231*), ABISELECT(16,8), "GG2312333");
+ check_base_class_offset(lv, (FF233*), ABISELECT(64,32), "GG2312333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2312333.pg");
+ test_class_info(&lv, &cd_GG2312333);
+ dp->~GG2312333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2312333(Test_GG2312333, "GG2312333", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG2312333C1Ev();
+extern void _ZN9GG2312333D1Ev();
+Name_Map name_map_GG2312333[] = {
+ NSPAIR(_ZN9GG2312333C1Ev),
+ NSPAIR(_ZN9GG2312333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE231;
+extern VTBL_ENTRY _ZTI5EE231[];
+extern VTBL_ENTRY _ZTV5EE231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE231[];
+extern Class_Descriptor cd_FF233;
+extern VTBL_ENTRY _ZTI5FF233[];
+extern VTBL_ENTRY _ZTV5FF233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF233[];
+static Base_Class bases_GG2312333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE231, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF233, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2312333[];
+extern void _ZN9GG23123333fooEv();
+extern void _ZN9GG23123333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23123333fooEv,_ZTv0_n20_N9GG23123333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23123333fooEv,_ZThn8_N9GG23123333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23123333barEv,_ZTv0_n12_N9GG23123333barEv)();
+extern void ABISELECT(_ZThn32_N9GG23123333barEv,_ZThn16_N9GG23123333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23123333fooEv,_ZTv0_n12_N9GG23123333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23123333fooEv,_ZThn24_N9GG23123333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23123333barEv,_ZTv0_n16_N9GG23123333barEv)();
+extern void ABISELECT(_ZThn48_N9GG23123333barEv,_ZThn24_N9GG23123333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23123333fooEv,_ZTv0_n20_N9GG23123333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23123333fooEv,_ZThn32_N9GG23123333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23123333barEv,_ZTv0_n24_N9GG23123333barEv)();
+extern void ABISELECT(_ZThn64_N9GG23123333barEv,_ZThn32_N9GG23123333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2312333[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2312333[0]),
+ (VTBL_ENTRY)&_ZN9GG23123333fooEv,
+ (VTBL_ENTRY)&_ZN9GG23123333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2312333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23123333fooEv,_ZTv0_n20_N9GG23123333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2312333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23123333barEv,_ZTv0_n12_N9GG23123333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2312333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23123333fooEv,_ZTv0_n12_N9GG23123333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23123333barEv,_ZTv0_n16_N9GG23123333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2312333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23123333fooEv,_ZTv0_n20_N9GG23123333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23123333barEv,_ZTv0_n24_N9GG23123333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2312333[];
+extern void _ZN5EE2313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE231__9GG2312333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN5EE2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE231__9GG2312333[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE231__9GG2312333[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF2333fooEv();
+extern void _ZN5FF2333barEv();
+static VTBL_ENTRY _tg__ZTV5FF233__9GG2312333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&_ZN5FF2333fooEv,
+ (VTBL_ENTRY)&_ZN5FF2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF233__9GG2312333[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF233__9GG2312333[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv),
+};
+static VTT_ENTRY vtt_GG2312333[] = {
+ {&(_ZTV9GG2312333[6]), 6,32},
+ {&(_ZTV9GG2312333[13]), 13,32},
+ {&(_ZTV9GG2312333[17]), 17,32},
+ {&(_ZTV9GG2312333[22]), 22,32},
+ {&(_ZTV9GG2312333[30]), 30,32},
+ {&(_tg__ZTV5EE231__9GG2312333[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE231__9GG2312333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE231__9GG2312333[4]), 4,6},
+ {&(_tg__ZTV5FF233__9GG2312333[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF233__9GG2312333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF233__9GG2312333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2312333[];
+extern VTBL_ENTRY _ZTV9GG2312333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2312333[];
+static VTBL_ENTRY alt_thunk_names686[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG23123333barEv,_ZTv0_n24_N9GG23123333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23123333barEv,_ZThn32_N9GG23123333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23123333barEv,_ZTv0_n16_N9GG23123333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23123333barEv,_ZThn24_N9GG23123333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23123333fooEv,_ZTv0_n12_N9GG23123333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23123333fooEv,_ZThn24_N9GG23123333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23123333barEv,_ZTv0_n12_N9GG23123333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23123333barEv,_ZThn16_N9GG23123333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23123333fooEv,_ZTv0_n20_N9GG23123333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23123333fooEv,_ZThn32_N9GG23123333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23123333fooEv,_ZThn8_N9GG23123333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2312333 = { "GG2312333", // class name
+ bases_GG2312333, 4,
+ &(vtc_GG2312333[0]), // expected_vtbl_contents
+ &(vtt_GG2312333[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG2312333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2312333),32, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2312333),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names686,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2313113 : virtual EE231 , virtual FF311 {
+ int pg;
+ virtual void foo(); // _ZN9GG23131133fooEv
+ virtual void bar(); // _ZN9GG23131133barEv
+ ~GG2313113(); // tgen
+ GG2313113(); // tgen
+};
+//SIG(1 GG2313113) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2313113 ::foo(){vfunc_called(this, "_ZN9GG23131133fooEv");}
+void GG2313113 ::bar(){vfunc_called(this, "_ZN9GG23131133barEv");}
+GG2313113 ::~GG2313113(){ note_dtor("GG2313113", this);} // tgen
+GG2313113 ::GG2313113(){ note_ctor("GG2313113", this);} // tgen
+
+static void Test_GG2313113()
+{
+ extern Class_Descriptor cd_GG2313113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2313113, buf);
+ GG2313113 *dp, &lv = *(dp=new (buf) GG2313113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2313113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2313113)");
+ check_base_class_offset(lv, (AA2*)(EE231*), ABISELECT(32,16), "GG2313113");
+ check_base_class_offset(lv, (BB3*)(EE231*), ABISELECT(48,24), "GG2313113");
+ check_base_class_offset(lv, (EE231*), ABISELECT(16,8), "GG2313113");
+ check_base_class_offset(lv, (AA3*)(FF311*), ABISELECT(80,40), "GG2313113");
+ check_base_class_offset(lv, (BB1*)(FF311*), ABISELECT(96,48), "GG2313113");
+ check_base_class_offset(lv, (FF311*), ABISELECT(64,32), "GG2313113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2313113.pg");
+ test_class_info(&lv, &cd_GG2313113);
+ dp->~GG2313113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2313113(Test_GG2313113, "GG2313113", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2313113C1Ev();
+extern void _ZN9GG2313113D1Ev();
+Name_Map name_map_GG2313113[] = {
+ NSPAIR(_ZN9GG2313113C1Ev),
+ NSPAIR(_ZN9GG2313113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE231;
+extern VTBL_ENTRY _ZTI5EE231[];
+extern VTBL_ENTRY _ZTV5EE231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE231[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF311;
+extern VTBL_ENTRY _ZTI5FF311[];
+extern VTBL_ENTRY _ZTV5FF311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF311[];
+static Base_Class bases_GG2313113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE231, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF311, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2313113[];
+extern void _ZN9GG23131133fooEv();
+extern void _ZN9GG23131133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23131133fooEv,_ZTv0_n20_N9GG23131133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23131133fooEv,_ZThn8_N9GG23131133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23131133barEv,_ZTv0_n12_N9GG23131133barEv)();
+extern void ABISELECT(_ZThn32_N9GG23131133barEv,_ZThn16_N9GG23131133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23131133fooEv,_ZTv0_n12_N9GG23131133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23131133fooEv,_ZThn24_N9GG23131133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23131133barEv,_ZTv0_n16_N9GG23131133barEv)();
+extern void ABISELECT(_ZThn48_N9GG23131133barEv,_ZThn24_N9GG23131133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23131133fooEv,_ZTv0_n20_N9GG23131133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23131133fooEv,_ZThn32_N9GG23131133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23131133fooEv,_ZTv0_n12_N9GG23131133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23131133fooEv,_ZThn40_N9GG23131133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23131133barEv,_ZTv0_n16_N9GG23131133barEv)();
+extern void ABISELECT(_ZThn80_N9GG23131133barEv,_ZThn40_N9GG23131133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23131133fooEv,_ZTv0_n12_N9GG23131133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG23131133fooEv,_ZThn48_N9GG23131133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2313113[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2313113[0]),
+ (VTBL_ENTRY)&_ZN9GG23131133fooEv,
+ (VTBL_ENTRY)&_ZN9GG23131133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2313113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23131133fooEv,_ZTv0_n20_N9GG23131133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2313113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23131133barEv,_ZTv0_n12_N9GG23131133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2313113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23131133fooEv,_ZTv0_n12_N9GG23131133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23131133barEv,_ZTv0_n16_N9GG23131133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2313113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23131133fooEv,_ZTv0_n20_N9GG23131133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2313113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23131133fooEv,_ZTv0_n12_N9GG23131133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23131133barEv,_ZTv0_n16_N9GG23131133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2313113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23131133fooEv,_ZTv0_n12_N9GG23131133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2313113[];
+extern void _ZN5EE2313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE231__9GG2313113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN5EE2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE231__9GG2313113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE231__9GG2313113[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF3113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF311__9GG2313113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&_ZN5FF3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF311__9GG2313113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3113fooEv,_ZThn16_N5FF3113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF311__9GG2313113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+};
+static VTT_ENTRY vtt_GG2313113[] = {
+ {&(_ZTV9GG2313113[8]), 8,42},
+ {&(_ZTV9GG2313113[15]), 15,42},
+ {&(_ZTV9GG2313113[19]), 19,42},
+ {&(_ZTV9GG2313113[24]), 24,42},
+ {&(_ZTV9GG2313113[31]), 31,42},
+ {&(_ZTV9GG2313113[36]), 36,42},
+ {&(_ZTV9GG2313113[41]), 41,42},
+ {&(_tg__ZTV5EE231__9GG2313113[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE231__9GG2313113[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE231__9GG2313113[4]), 4,6},
+ {&(_tg__ZTV5FF311__9GG2313113[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF311__9GG2313113[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF311__9GG2313113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2313113[];
+extern VTBL_ENTRY _ZTV9GG2313113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2313113[];
+static VTBL_ENTRY alt_thunk_names687[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3113fooEv,_ZThn16_N5FF3113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23131133barEv,_ZTv0_n16_N9GG23131133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23131133barEv,_ZThn40_N9GG23131133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23131133barEv,_ZThn24_N9GG23131133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23131133fooEv,_ZTv0_n12_N9GG23131133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG23131133fooEv,_ZThn48_N9GG23131133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23131133fooEv,_ZThn40_N9GG23131133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23131133fooEv,_ZThn24_N9GG23131133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23131133barEv,_ZTv0_n12_N9GG23131133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23131133barEv,_ZThn16_N9GG23131133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23131133fooEv,_ZTv0_n20_N9GG23131133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23131133fooEv,_ZThn32_N9GG23131133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23131133fooEv,_ZThn8_N9GG23131133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2313113 = { "GG2313113", // class name
+ bases_GG2313113, 6,
+ &(vtc_GG2313113[0]), // expected_vtbl_contents
+ &(vtt_GG2313113[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2313113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2313113),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2313113),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names687,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2313123 : virtual EE231 , virtual FF312 {
+ int pg;
+ virtual void foo(); // _ZN9GG23131233fooEv
+ virtual void bar(); // _ZN9GG23131233barEv
+ ~GG2313123(); // tgen
+ GG2313123(); // tgen
+};
+//SIG(1 GG2313123) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2313123 ::foo(){vfunc_called(this, "_ZN9GG23131233fooEv");}
+void GG2313123 ::bar(){vfunc_called(this, "_ZN9GG23131233barEv");}
+GG2313123 ::~GG2313123(){ note_dtor("GG2313123", this);} // tgen
+GG2313123 ::GG2313123(){ note_ctor("GG2313123", this);} // tgen
+
+static void Test_GG2313123()
+{
+ extern Class_Descriptor cd_GG2313123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2313123, buf);
+ GG2313123 *dp, &lv = *(dp=new (buf) GG2313123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2313123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2313123)");
+ check_base_class_offset(lv, (AA2*)(EE231*), ABISELECT(32,16), "GG2313123");
+ check_base_class_offset(lv, (BB3*)(EE231*), ABISELECT(48,24), "GG2313123");
+ check_base_class_offset(lv, (EE231*), ABISELECT(16,8), "GG2313123");
+ check_base_class_offset(lv, (AA3*)(FF312*), ABISELECT(80,40), "GG2313123");
+ check_base_class_offset(lv, (BB1*)(FF312*), ABISELECT(96,48), "GG2313123");
+ check_base_class_offset(lv, (FF312*), ABISELECT(64,32), "GG2313123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2313123.pg");
+ test_class_info(&lv, &cd_GG2313123);
+ dp->~GG2313123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2313123(Test_GG2313123, "GG2313123", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2313123C1Ev();
+extern void _ZN9GG2313123D1Ev();
+Name_Map name_map_GG2313123[] = {
+ NSPAIR(_ZN9GG2313123C1Ev),
+ NSPAIR(_ZN9GG2313123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE231;
+extern VTBL_ENTRY _ZTI5EE231[];
+extern VTBL_ENTRY _ZTV5EE231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE231[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF312;
+extern VTBL_ENTRY _ZTI5FF312[];
+extern VTBL_ENTRY _ZTV5FF312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF312[];
+static Base_Class bases_GG2313123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE231, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF312, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2313123[];
+extern void _ZN9GG23131233fooEv();
+extern void _ZN9GG23131233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23131233fooEv,_ZTv0_n20_N9GG23131233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23131233fooEv,_ZThn8_N9GG23131233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23131233barEv,_ZTv0_n12_N9GG23131233barEv)();
+extern void ABISELECT(_ZThn32_N9GG23131233barEv,_ZThn16_N9GG23131233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23131233fooEv,_ZTv0_n12_N9GG23131233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23131233fooEv,_ZThn24_N9GG23131233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23131233barEv,_ZTv0_n16_N9GG23131233barEv)();
+extern void ABISELECT(_ZThn48_N9GG23131233barEv,_ZThn24_N9GG23131233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23131233barEv,_ZTv0_n20_N9GG23131233barEv)();
+extern void ABISELECT(_ZThn64_N9GG23131233barEv,_ZThn32_N9GG23131233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23131233fooEv,_ZTv0_n12_N9GG23131233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23131233fooEv,_ZThn40_N9GG23131233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23131233barEv,_ZTv0_n16_N9GG23131233barEv)();
+extern void ABISELECT(_ZThn80_N9GG23131233barEv,_ZThn40_N9GG23131233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23131233fooEv,_ZTv0_n12_N9GG23131233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG23131233fooEv,_ZThn48_N9GG23131233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2313123[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2313123[0]),
+ (VTBL_ENTRY)&_ZN9GG23131233fooEv,
+ (VTBL_ENTRY)&_ZN9GG23131233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2313123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23131233fooEv,_ZTv0_n20_N9GG23131233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2313123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23131233barEv,_ZTv0_n12_N9GG23131233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2313123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23131233fooEv,_ZTv0_n12_N9GG23131233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23131233barEv,_ZTv0_n16_N9GG23131233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2313123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23131233barEv,_ZTv0_n20_N9GG23131233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2313123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23131233fooEv,_ZTv0_n12_N9GG23131233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23131233barEv,_ZTv0_n16_N9GG23131233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2313123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23131233fooEv,_ZTv0_n12_N9GG23131233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2313123[];
+extern void _ZN5EE2313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE231__9GG2313123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN5EE2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE231__9GG2313123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE231__9GG2313123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF3123barEv();
+static VTBL_ENTRY _tg__ZTV5FF312__9GG2313123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN5FF3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv)();
+extern void ABISELECT(_ZThn16_N5FF3123barEv,_ZThn8_N5FF3123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF312__9GG2313123[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF312__9GG2313123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG2313123[] = {
+ {&(_ZTV9GG2313123[8]), 8,42},
+ {&(_ZTV9GG2313123[15]), 15,42},
+ {&(_ZTV9GG2313123[19]), 19,42},
+ {&(_ZTV9GG2313123[24]), 24,42},
+ {&(_ZTV9GG2313123[31]), 31,42},
+ {&(_ZTV9GG2313123[36]), 36,42},
+ {&(_ZTV9GG2313123[41]), 41,42},
+ {&(_tg__ZTV5EE231__9GG2313123[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE231__9GG2313123[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE231__9GG2313123[4]), 4,6},
+ {&(_tg__ZTV5FF312__9GG2313123[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF312__9GG2313123[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF312__9GG2313123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2313123[];
+extern VTBL_ENTRY _ZTV9GG2313123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2313123[];
+static VTBL_ENTRY alt_thunk_names688[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3123barEv,_ZThn8_N5FF3123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23131233barEv,_ZTv0_n20_N9GG23131233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23131233barEv,_ZThn32_N9GG23131233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23131233barEv,_ZTv0_n16_N9GG23131233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23131233barEv,_ZThn40_N9GG23131233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23131233barEv,_ZThn24_N9GG23131233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23131233fooEv,_ZTv0_n12_N9GG23131233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG23131233fooEv,_ZThn48_N9GG23131233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23131233fooEv,_ZThn40_N9GG23131233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23131233fooEv,_ZThn24_N9GG23131233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23131233barEv,_ZTv0_n12_N9GG23131233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23131233barEv,_ZThn16_N9GG23131233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23131233fooEv,_ZTv0_n20_N9GG23131233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23131233fooEv,_ZThn8_N9GG23131233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2313123 = { "GG2313123", // class name
+ bases_GG2313123, 6,
+ &(vtc_GG2313123[0]), // expected_vtbl_contents
+ &(vtt_GG2313123[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2313123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2313123),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2313123),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names688,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2313133 : virtual EE231 , virtual FF313 {
+ int pg;
+ virtual void foo(); // _ZN9GG23131333fooEv
+ virtual void bar(); // _ZN9GG23131333barEv
+ ~GG2313133(); // tgen
+ GG2313133(); // tgen
+};
+//SIG(1 GG2313133) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2313133 ::foo(){vfunc_called(this, "_ZN9GG23131333fooEv");}
+void GG2313133 ::bar(){vfunc_called(this, "_ZN9GG23131333barEv");}
+GG2313133 ::~GG2313133(){ note_dtor("GG2313133", this);} // tgen
+GG2313133 ::GG2313133(){ note_ctor("GG2313133", this);} // tgen
+
+static void Test_GG2313133()
+{
+ extern Class_Descriptor cd_GG2313133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2313133, buf);
+ GG2313133 *dp, &lv = *(dp=new (buf) GG2313133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2313133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2313133)");
+ check_base_class_offset(lv, (AA2*)(EE231*), ABISELECT(32,16), "GG2313133");
+ check_base_class_offset(lv, (BB3*)(EE231*), ABISELECT(48,24), "GG2313133");
+ check_base_class_offset(lv, (EE231*), ABISELECT(16,8), "GG2313133");
+ check_base_class_offset(lv, (AA3*)(FF313*), ABISELECT(80,40), "GG2313133");
+ check_base_class_offset(lv, (BB1*)(FF313*), ABISELECT(96,48), "GG2313133");
+ check_base_class_offset(lv, (FF313*), ABISELECT(64,32), "GG2313133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2313133.pg");
+ test_class_info(&lv, &cd_GG2313133);
+ dp->~GG2313133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2313133(Test_GG2313133, "GG2313133", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2313133C1Ev();
+extern void _ZN9GG2313133D1Ev();
+Name_Map name_map_GG2313133[] = {
+ NSPAIR(_ZN9GG2313133C1Ev),
+ NSPAIR(_ZN9GG2313133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE231;
+extern VTBL_ENTRY _ZTI5EE231[];
+extern VTBL_ENTRY _ZTV5EE231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE231[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF313;
+extern VTBL_ENTRY _ZTI5FF313[];
+extern VTBL_ENTRY _ZTV5FF313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF313[];
+static Base_Class bases_GG2313133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE231, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 40, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF313, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2313133[];
+extern void _ZN9GG23131333fooEv();
+extern void _ZN9GG23131333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23131333fooEv,_ZTv0_n20_N9GG23131333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23131333fooEv,_ZThn8_N9GG23131333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23131333barEv,_ZTv0_n12_N9GG23131333barEv)();
+extern void ABISELECT(_ZThn32_N9GG23131333barEv,_ZThn16_N9GG23131333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23131333fooEv,_ZTv0_n12_N9GG23131333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23131333fooEv,_ZThn24_N9GG23131333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23131333barEv,_ZTv0_n16_N9GG23131333barEv)();
+extern void ABISELECT(_ZThn48_N9GG23131333barEv,_ZThn24_N9GG23131333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23131333fooEv,_ZTv0_n20_N9GG23131333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23131333fooEv,_ZThn32_N9GG23131333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23131333barEv,_ZTv0_n24_N9GG23131333barEv)();
+extern void ABISELECT(_ZThn64_N9GG23131333barEv,_ZThn32_N9GG23131333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23131333fooEv,_ZTv0_n12_N9GG23131333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23131333fooEv,_ZThn40_N9GG23131333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23131333barEv,_ZTv0_n16_N9GG23131333barEv)();
+extern void ABISELECT(_ZThn80_N9GG23131333barEv,_ZThn40_N9GG23131333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23131333fooEv,_ZTv0_n12_N9GG23131333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG23131333fooEv,_ZThn48_N9GG23131333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2313133[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2313133[0]),
+ (VTBL_ENTRY)&_ZN9GG23131333fooEv,
+ (VTBL_ENTRY)&_ZN9GG23131333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2313133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23131333fooEv,_ZTv0_n20_N9GG23131333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2313133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23131333barEv,_ZTv0_n12_N9GG23131333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2313133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23131333fooEv,_ZTv0_n12_N9GG23131333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23131333barEv,_ZTv0_n16_N9GG23131333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2313133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23131333fooEv,_ZTv0_n20_N9GG23131333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23131333barEv,_ZTv0_n24_N9GG23131333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2313133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23131333fooEv,_ZTv0_n12_N9GG23131333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23131333barEv,_ZTv0_n16_N9GG23131333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2313133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23131333fooEv,_ZTv0_n12_N9GG23131333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2313133[];
+extern void _ZN5EE2313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE231__9GG2313133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN5EE2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE231__9GG2313133[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE231__9GG2313133[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF3133fooEv();
+extern void _ZN5FF3133barEv();
+static VTBL_ENTRY _tg__ZTV5FF313__9GG2313133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&_ZN5FF3133fooEv,
+ (VTBL_ENTRY)&_ZN5FF3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv)();
+extern void ABISELECT(_ZThn16_N5FF3133barEv,_ZThn8_N5FF3133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF313__9GG2313133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3133fooEv,_ZThn16_N5FF3133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF313__9GG2313133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+};
+static VTT_ENTRY vtt_GG2313133[] = {
+ {&(_ZTV9GG2313133[8]), 8,44},
+ {&(_ZTV9GG2313133[15]), 15,44},
+ {&(_ZTV9GG2313133[19]), 19,44},
+ {&(_ZTV9GG2313133[24]), 24,44},
+ {&(_ZTV9GG2313133[32]), 32,44},
+ {&(_ZTV9GG2313133[38]), 38,44},
+ {&(_ZTV9GG2313133[43]), 43,44},
+ {&(_tg__ZTV5EE231__9GG2313133[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE231__9GG2313133[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE231__9GG2313133[4]), 4,6},
+ {&(_tg__ZTV5FF313__9GG2313133[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF313__9GG2313133[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF313__9GG2313133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2313133[];
+extern VTBL_ENTRY _ZTV9GG2313133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2313133[];
+static VTBL_ENTRY alt_thunk_names689[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3133barEv,_ZThn8_N5FF3133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3133fooEv,_ZThn16_N5FF3133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG23131333barEv,_ZTv0_n24_N9GG23131333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23131333barEv,_ZThn32_N9GG23131333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23131333barEv,_ZTv0_n16_N9GG23131333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23131333barEv,_ZThn40_N9GG23131333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23131333barEv,_ZThn24_N9GG23131333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23131333fooEv,_ZTv0_n12_N9GG23131333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG23131333fooEv,_ZThn48_N9GG23131333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23131333fooEv,_ZThn40_N9GG23131333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23131333fooEv,_ZThn24_N9GG23131333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23131333barEv,_ZTv0_n12_N9GG23131333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23131333barEv,_ZThn16_N9GG23131333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23131333fooEv,_ZTv0_n20_N9GG23131333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23131333fooEv,_ZThn32_N9GG23131333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23131333fooEv,_ZThn8_N9GG23131333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2313133 = { "GG2313133", // class name
+ bases_GG2313133, 6,
+ &(vtc_GG2313133[0]), // expected_vtbl_contents
+ &(vtt_GG2313133[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2313133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2313133),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2313133),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names689,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2313213 : virtual EE231 , virtual FF321 {
+ int pg;
+ virtual void foo(); // _ZN9GG23132133fooEv
+ virtual void bar(); // _ZN9GG23132133barEv
+ ~GG2313213(); // tgen
+ GG2313213(); // tgen
+};
+//SIG(1 GG2313213) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2313213 ::foo(){vfunc_called(this, "_ZN9GG23132133fooEv");}
+void GG2313213 ::bar(){vfunc_called(this, "_ZN9GG23132133barEv");}
+GG2313213 ::~GG2313213(){ note_dtor("GG2313213", this);} // tgen
+GG2313213 ::GG2313213(){ note_ctor("GG2313213", this);} // tgen
+
+static void Test_GG2313213()
+{
+ extern Class_Descriptor cd_GG2313213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2313213, buf);
+ GG2313213 *dp, &lv = *(dp=new (buf) GG2313213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2313213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2313213)");
+ check_base_class_offset(lv, (AA2*)(EE231*), ABISELECT(32,16), "GG2313213");
+ check_base_class_offset(lv, (BB3*)(EE231*), ABISELECT(48,24), "GG2313213");
+ check_base_class_offset(lv, (EE231*), ABISELECT(16,8), "GG2313213");
+ check_base_class_offset(lv, (AA3*)(FF321*), ABISELECT(80,40), "GG2313213");
+ check_base_class_offset(lv, (BB2*)(FF321*), ABISELECT(96,48), "GG2313213");
+ check_base_class_offset(lv, (FF321*), ABISELECT(64,32), "GG2313213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2313213.pg");
+ test_class_info(&lv, &cd_GG2313213);
+ dp->~GG2313213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2313213(Test_GG2313213, "GG2313213", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2313213C1Ev();
+extern void _ZN9GG2313213D1Ev();
+Name_Map name_map_GG2313213[] = {
+ NSPAIR(_ZN9GG2313213C1Ev),
+ NSPAIR(_ZN9GG2313213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE231;
+extern VTBL_ENTRY _ZTI5EE231[];
+extern VTBL_ENTRY _ZTV5EE231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE231[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF321;
+extern VTBL_ENTRY _ZTI5FF321[];
+extern VTBL_ENTRY _ZTV5FF321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF321[];
+static Base_Class bases_GG2313213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE231, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF321, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2313213[];
+extern void _ZN9GG23132133fooEv();
+extern void _ZN9GG23132133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23132133fooEv,_ZTv0_n20_N9GG23132133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23132133fooEv,_ZThn8_N9GG23132133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23132133barEv,_ZTv0_n12_N9GG23132133barEv)();
+extern void ABISELECT(_ZThn32_N9GG23132133barEv,_ZThn16_N9GG23132133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23132133fooEv,_ZTv0_n12_N9GG23132133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23132133fooEv,_ZThn24_N9GG23132133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23132133barEv,_ZTv0_n16_N9GG23132133barEv)();
+extern void ABISELECT(_ZThn48_N9GG23132133barEv,_ZThn24_N9GG23132133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23132133fooEv,_ZTv0_n20_N9GG23132133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23132133fooEv,_ZThn32_N9GG23132133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23132133fooEv,_ZTv0_n12_N9GG23132133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23132133fooEv,_ZThn40_N9GG23132133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23132133barEv,_ZTv0_n16_N9GG23132133barEv)();
+extern void ABISELECT(_ZThn80_N9GG23132133barEv,_ZThn40_N9GG23132133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23132133barEv,_ZTv0_n12_N9GG23132133barEv)();
+extern void ABISELECT(_ZThn96_N9GG23132133barEv,_ZThn48_N9GG23132133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2313213[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2313213[0]),
+ (VTBL_ENTRY)&_ZN9GG23132133fooEv,
+ (VTBL_ENTRY)&_ZN9GG23132133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2313213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23132133fooEv,_ZTv0_n20_N9GG23132133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2313213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23132133barEv,_ZTv0_n12_N9GG23132133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2313213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23132133fooEv,_ZTv0_n12_N9GG23132133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23132133barEv,_ZTv0_n16_N9GG23132133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2313213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23132133fooEv,_ZTv0_n20_N9GG23132133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2313213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23132133fooEv,_ZTv0_n12_N9GG23132133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23132133barEv,_ZTv0_n16_N9GG23132133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2313213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23132133barEv,_ZTv0_n12_N9GG23132133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2313213[];
+extern void _ZN5EE2313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE231__9GG2313213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN5EE2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE231__9GG2313213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE231__9GG2313213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF3213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF321__9GG2313213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN5FF3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3213fooEv,_ZThn8_N5FF3213fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF321__9GG2313213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF321__9GG2313213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG2313213[] = {
+ {&(_ZTV9GG2313213[8]), 8,42},
+ {&(_ZTV9GG2313213[15]), 15,42},
+ {&(_ZTV9GG2313213[19]), 19,42},
+ {&(_ZTV9GG2313213[24]), 24,42},
+ {&(_ZTV9GG2313213[31]), 31,42},
+ {&(_ZTV9GG2313213[36]), 36,42},
+ {&(_ZTV9GG2313213[41]), 41,42},
+ {&(_tg__ZTV5EE231__9GG2313213[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE231__9GG2313213[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE231__9GG2313213[4]), 4,6},
+ {&(_tg__ZTV5FF321__9GG2313213[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF321__9GG2313213[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF321__9GG2313213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2313213[];
+extern VTBL_ENTRY _ZTV9GG2313213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2313213[];
+static VTBL_ENTRY alt_thunk_names690[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3213fooEv,_ZThn8_N5FF3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23132133barEv,_ZTv0_n16_N9GG23132133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23132133barEv,_ZThn40_N9GG23132133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23132133barEv,_ZThn24_N9GG23132133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23132133fooEv,_ZTv0_n12_N9GG23132133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23132133fooEv,_ZThn40_N9GG23132133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23132133fooEv,_ZThn24_N9GG23132133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23132133barEv,_ZTv0_n12_N9GG23132133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG23132133barEv,_ZThn48_N9GG23132133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23132133barEv,_ZThn16_N9GG23132133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23132133fooEv,_ZTv0_n20_N9GG23132133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23132133fooEv,_ZThn32_N9GG23132133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23132133fooEv,_ZThn8_N9GG23132133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2313213 = { "GG2313213", // class name
+ bases_GG2313213, 6,
+ &(vtc_GG2313213[0]), // expected_vtbl_contents
+ &(vtt_GG2313213[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2313213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2313213),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2313213),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names690,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2313223 : virtual EE231 , virtual FF322 {
+ int pg;
+ virtual void foo(); // _ZN9GG23132233fooEv
+ virtual void bar(); // _ZN9GG23132233barEv
+ ~GG2313223(); // tgen
+ GG2313223(); // tgen
+};
+//SIG(1 GG2313223) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2313223 ::foo(){vfunc_called(this, "_ZN9GG23132233fooEv");}
+void GG2313223 ::bar(){vfunc_called(this, "_ZN9GG23132233barEv");}
+GG2313223 ::~GG2313223(){ note_dtor("GG2313223", this);} // tgen
+GG2313223 ::GG2313223(){ note_ctor("GG2313223", this);} // tgen
+
+static void Test_GG2313223()
+{
+ extern Class_Descriptor cd_GG2313223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2313223, buf);
+ GG2313223 *dp, &lv = *(dp=new (buf) GG2313223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2313223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2313223)");
+ check_base_class_offset(lv, (AA2*)(EE231*), ABISELECT(32,16), "GG2313223");
+ check_base_class_offset(lv, (BB3*)(EE231*), ABISELECT(48,24), "GG2313223");
+ check_base_class_offset(lv, (EE231*), ABISELECT(16,8), "GG2313223");
+ check_base_class_offset(lv, (AA3*)(FF322*), ABISELECT(80,40), "GG2313223");
+ check_base_class_offset(lv, (BB2*)(FF322*), ABISELECT(96,48), "GG2313223");
+ check_base_class_offset(lv, (FF322*), ABISELECT(64,32), "GG2313223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2313223.pg");
+ test_class_info(&lv, &cd_GG2313223);
+ dp->~GG2313223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2313223(Test_GG2313223, "GG2313223", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2313223C1Ev();
+extern void _ZN9GG2313223D1Ev();
+Name_Map name_map_GG2313223[] = {
+ NSPAIR(_ZN9GG2313223C1Ev),
+ NSPAIR(_ZN9GG2313223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE231;
+extern VTBL_ENTRY _ZTI5EE231[];
+extern VTBL_ENTRY _ZTV5EE231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE231[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF322;
+extern VTBL_ENTRY _ZTI5FF322[];
+extern VTBL_ENTRY _ZTV5FF322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF322[];
+static Base_Class bases_GG2313223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE231, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF322, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2313223[];
+extern void _ZN9GG23132233fooEv();
+extern void _ZN9GG23132233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23132233fooEv,_ZTv0_n20_N9GG23132233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23132233fooEv,_ZThn8_N9GG23132233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23132233barEv,_ZTv0_n12_N9GG23132233barEv)();
+extern void ABISELECT(_ZThn32_N9GG23132233barEv,_ZThn16_N9GG23132233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23132233fooEv,_ZTv0_n12_N9GG23132233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23132233fooEv,_ZThn24_N9GG23132233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23132233barEv,_ZTv0_n16_N9GG23132233barEv)();
+extern void ABISELECT(_ZThn48_N9GG23132233barEv,_ZThn24_N9GG23132233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23132233barEv,_ZTv0_n20_N9GG23132233barEv)();
+extern void ABISELECT(_ZThn64_N9GG23132233barEv,_ZThn32_N9GG23132233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23132233fooEv,_ZTv0_n12_N9GG23132233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23132233fooEv,_ZThn40_N9GG23132233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23132233barEv,_ZTv0_n16_N9GG23132233barEv)();
+extern void ABISELECT(_ZThn80_N9GG23132233barEv,_ZThn40_N9GG23132233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23132233barEv,_ZTv0_n12_N9GG23132233barEv)();
+extern void ABISELECT(_ZThn96_N9GG23132233barEv,_ZThn48_N9GG23132233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2313223[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2313223[0]),
+ (VTBL_ENTRY)&_ZN9GG23132233fooEv,
+ (VTBL_ENTRY)&_ZN9GG23132233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2313223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23132233fooEv,_ZTv0_n20_N9GG23132233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2313223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23132233barEv,_ZTv0_n12_N9GG23132233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2313223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23132233fooEv,_ZTv0_n12_N9GG23132233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23132233barEv,_ZTv0_n16_N9GG23132233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2313223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23132233barEv,_ZTv0_n20_N9GG23132233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2313223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23132233fooEv,_ZTv0_n12_N9GG23132233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23132233barEv,_ZTv0_n16_N9GG23132233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2313223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23132233barEv,_ZTv0_n12_N9GG23132233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2313223[];
+extern void _ZN5EE2313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE231__9GG2313223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN5EE2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE231__9GG2313223[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE231__9GG2313223[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF3223barEv();
+static VTBL_ENTRY _tg__ZTV5FF322__9GG2313223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN5FF3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv)();
+extern void ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF322__9GG2313223[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv)();
+extern void ABISELECT(_ZThn32_N5FF3223barEv,_ZThn16_N5FF3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF322__9GG2313223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv),
+};
+static VTT_ENTRY vtt_GG2313223[] = {
+ {&(_ZTV9GG2313223[8]), 8,42},
+ {&(_ZTV9GG2313223[15]), 15,42},
+ {&(_ZTV9GG2313223[19]), 19,42},
+ {&(_ZTV9GG2313223[24]), 24,42},
+ {&(_ZTV9GG2313223[31]), 31,42},
+ {&(_ZTV9GG2313223[36]), 36,42},
+ {&(_ZTV9GG2313223[41]), 41,42},
+ {&(_tg__ZTV5EE231__9GG2313223[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE231__9GG2313223[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE231__9GG2313223[4]), 4,6},
+ {&(_tg__ZTV5FF322__9GG2313223[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF322__9GG2313223[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF322__9GG2313223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2313223[];
+extern VTBL_ENTRY _ZTV9GG2313223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2313223[];
+static VTBL_ENTRY alt_thunk_names691[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3223barEv,_ZThn16_N5FF3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23132233barEv,_ZTv0_n20_N9GG23132233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23132233barEv,_ZThn32_N9GG23132233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23132233barEv,_ZTv0_n16_N9GG23132233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23132233barEv,_ZThn40_N9GG23132233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23132233barEv,_ZThn24_N9GG23132233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23132233fooEv,_ZTv0_n12_N9GG23132233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23132233fooEv,_ZThn40_N9GG23132233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23132233fooEv,_ZThn24_N9GG23132233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23132233barEv,_ZTv0_n12_N9GG23132233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG23132233barEv,_ZThn48_N9GG23132233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23132233barEv,_ZThn16_N9GG23132233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23132233fooEv,_ZTv0_n20_N9GG23132233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23132233fooEv,_ZThn8_N9GG23132233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2313223 = { "GG2313223", // class name
+ bases_GG2313223, 6,
+ &(vtc_GG2313223[0]), // expected_vtbl_contents
+ &(vtt_GG2313223[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2313223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2313223),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2313223),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names691,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2313233 : virtual EE231 , virtual FF323 {
+ int pg;
+ virtual void foo(); // _ZN9GG23132333fooEv
+ virtual void bar(); // _ZN9GG23132333barEv
+ ~GG2313233(); // tgen
+ GG2313233(); // tgen
+};
+//SIG(1 GG2313233) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2313233 ::foo(){vfunc_called(this, "_ZN9GG23132333fooEv");}
+void GG2313233 ::bar(){vfunc_called(this, "_ZN9GG23132333barEv");}
+GG2313233 ::~GG2313233(){ note_dtor("GG2313233", this);} // tgen
+GG2313233 ::GG2313233(){ note_ctor("GG2313233", this);} // tgen
+
+static void Test_GG2313233()
+{
+ extern Class_Descriptor cd_GG2313233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2313233, buf);
+ GG2313233 *dp, &lv = *(dp=new (buf) GG2313233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2313233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2313233)");
+ check_base_class_offset(lv, (AA2*)(EE231*), ABISELECT(32,16), "GG2313233");
+ check_base_class_offset(lv, (BB3*)(EE231*), ABISELECT(48,24), "GG2313233");
+ check_base_class_offset(lv, (EE231*), ABISELECT(16,8), "GG2313233");
+ check_base_class_offset(lv, (AA3*)(FF323*), ABISELECT(80,40), "GG2313233");
+ check_base_class_offset(lv, (BB2*)(FF323*), ABISELECT(96,48), "GG2313233");
+ check_base_class_offset(lv, (FF323*), ABISELECT(64,32), "GG2313233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2313233.pg");
+ test_class_info(&lv, &cd_GG2313233);
+ dp->~GG2313233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2313233(Test_GG2313233, "GG2313233", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2313233C1Ev();
+extern void _ZN9GG2313233D1Ev();
+Name_Map name_map_GG2313233[] = {
+ NSPAIR(_ZN9GG2313233C1Ev),
+ NSPAIR(_ZN9GG2313233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE231;
+extern VTBL_ENTRY _ZTI5EE231[];
+extern VTBL_ENTRY _ZTV5EE231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE231[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF323;
+extern VTBL_ENTRY _ZTI5FF323[];
+extern VTBL_ENTRY _ZTV5FF323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF323[];
+static Base_Class bases_GG2313233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE231, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 40, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF323, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2313233[];
+extern void _ZN9GG23132333fooEv();
+extern void _ZN9GG23132333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23132333fooEv,_ZTv0_n20_N9GG23132333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23132333fooEv,_ZThn8_N9GG23132333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23132333barEv,_ZTv0_n12_N9GG23132333barEv)();
+extern void ABISELECT(_ZThn32_N9GG23132333barEv,_ZThn16_N9GG23132333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23132333fooEv,_ZTv0_n12_N9GG23132333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23132333fooEv,_ZThn24_N9GG23132333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23132333barEv,_ZTv0_n16_N9GG23132333barEv)();
+extern void ABISELECT(_ZThn48_N9GG23132333barEv,_ZThn24_N9GG23132333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23132333fooEv,_ZTv0_n20_N9GG23132333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23132333fooEv,_ZThn32_N9GG23132333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23132333barEv,_ZTv0_n24_N9GG23132333barEv)();
+extern void ABISELECT(_ZThn64_N9GG23132333barEv,_ZThn32_N9GG23132333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23132333fooEv,_ZTv0_n12_N9GG23132333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23132333fooEv,_ZThn40_N9GG23132333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23132333barEv,_ZTv0_n16_N9GG23132333barEv)();
+extern void ABISELECT(_ZThn80_N9GG23132333barEv,_ZThn40_N9GG23132333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23132333barEv,_ZTv0_n12_N9GG23132333barEv)();
+extern void ABISELECT(_ZThn96_N9GG23132333barEv,_ZThn48_N9GG23132333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2313233[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2313233[0]),
+ (VTBL_ENTRY)&_ZN9GG23132333fooEv,
+ (VTBL_ENTRY)&_ZN9GG23132333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2313233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23132333fooEv,_ZTv0_n20_N9GG23132333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2313233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23132333barEv,_ZTv0_n12_N9GG23132333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2313233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23132333fooEv,_ZTv0_n12_N9GG23132333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23132333barEv,_ZTv0_n16_N9GG23132333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2313233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23132333fooEv,_ZTv0_n20_N9GG23132333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23132333barEv,_ZTv0_n24_N9GG23132333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2313233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23132333fooEv,_ZTv0_n12_N9GG23132333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23132333barEv,_ZTv0_n16_N9GG23132333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2313233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23132333barEv,_ZTv0_n12_N9GG23132333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2313233[];
+extern void _ZN5EE2313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE231__9GG2313233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN5EE2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE231__9GG2313233[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE231__9GG2313233[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF3233fooEv();
+extern void _ZN5FF3233barEv();
+static VTBL_ENTRY _tg__ZTV5FF323__9GG2313233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&_ZN5FF3233fooEv,
+ (VTBL_ENTRY)&_ZN5FF3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3233fooEv,_ZThn8_N5FF3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv)();
+extern void ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF323__9GG2313233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv)();
+extern void ABISELECT(_ZThn32_N5FF3233barEv,_ZThn16_N5FF3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF323__9GG2313233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv),
+};
+static VTT_ENTRY vtt_GG2313233[] = {
+ {&(_ZTV9GG2313233[8]), 8,44},
+ {&(_ZTV9GG2313233[15]), 15,44},
+ {&(_ZTV9GG2313233[19]), 19,44},
+ {&(_ZTV9GG2313233[24]), 24,44},
+ {&(_ZTV9GG2313233[32]), 32,44},
+ {&(_ZTV9GG2313233[38]), 38,44},
+ {&(_ZTV9GG2313233[43]), 43,44},
+ {&(_tg__ZTV5EE231__9GG2313233[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE231__9GG2313233[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE231__9GG2313233[4]), 4,6},
+ {&(_tg__ZTV5FF323__9GG2313233[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF323__9GG2313233[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF323__9GG2313233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2313233[];
+extern VTBL_ENTRY _ZTV9GG2313233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2313233[];
+static VTBL_ENTRY alt_thunk_names692[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3233barEv,_ZThn16_N5FF3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3233fooEv,_ZThn8_N5FF3233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG23132333barEv,_ZTv0_n24_N9GG23132333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23132333barEv,_ZThn32_N9GG23132333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23132333barEv,_ZTv0_n16_N9GG23132333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23132333barEv,_ZThn40_N9GG23132333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23132333barEv,_ZThn24_N9GG23132333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23132333fooEv,_ZTv0_n12_N9GG23132333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23132333fooEv,_ZThn40_N9GG23132333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23132333fooEv,_ZThn24_N9GG23132333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23132333barEv,_ZTv0_n12_N9GG23132333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG23132333barEv,_ZThn48_N9GG23132333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23132333barEv,_ZThn16_N9GG23132333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23132333fooEv,_ZTv0_n20_N9GG23132333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23132333fooEv,_ZThn32_N9GG23132333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23132333fooEv,_ZThn8_N9GG23132333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2313233 = { "GG2313233", // class name
+ bases_GG2313233, 6,
+ &(vtc_GG2313233[0]), // expected_vtbl_contents
+ &(vtt_GG2313233[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2313233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2313233),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2313233),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names692,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2313313 : virtual EE231 , virtual FF331 {
+ int pg;
+ virtual void foo(); // _ZN9GG23133133fooEv
+ virtual void bar(); // _ZN9GG23133133barEv
+ ~GG2313313(); // tgen
+ GG2313313(); // tgen
+};
+//SIG(1 GG2313313) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG2313313 ::foo(){vfunc_called(this, "_ZN9GG23133133fooEv");}
+void GG2313313 ::bar(){vfunc_called(this, "_ZN9GG23133133barEv");}
+GG2313313 ::~GG2313313(){ note_dtor("GG2313313", this);} // tgen
+GG2313313 ::GG2313313(){ note_ctor("GG2313313", this);} // tgen
+
+static void Test_GG2313313()
+{
+ extern Class_Descriptor cd_GG2313313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2313313, buf);
+ GG2313313 *dp, &lv = *(dp=new (buf) GG2313313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2313313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2313313)");
+ check_base_class_offset(lv, (AA2*)(EE231*), ABISELECT(32,16), "GG2313313");
+ check_base_class_offset(lv, (BB3*)(EE231*), ABISELECT(48,24), "GG2313313");
+ check_base_class_offset(lv, (BB3*)(FF331*), ABISELECT(48,24), "GG2313313");
+ check_base_class_offset(lv, (EE231*), ABISELECT(16,8), "GG2313313");
+ check_base_class_offset(lv, (AA3*)(FF331*), ABISELECT(80,40), "GG2313313");
+ check_base_class_offset(lv, (FF331*), ABISELECT(64,32), "GG2313313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2313313.pg");
+ test_class_info(&lv, &cd_GG2313313);
+ dp->~GG2313313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2313313(Test_GG2313313, "GG2313313", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2313313C1Ev();
+extern void _ZN9GG2313313D1Ev();
+Name_Map name_map_GG2313313[] = {
+ NSPAIR(_ZN9GG2313313C1Ev),
+ NSPAIR(_ZN9GG2313313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE231;
+extern VTBL_ENTRY _ZTI5EE231[];
+extern VTBL_ENTRY _ZTV5EE231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE231[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF331;
+extern VTBL_ENTRY _ZTI5FF331[];
+extern VTBL_ENTRY _ZTV5FF331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF331[];
+static Base_Class bases_GG2313313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE231, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF331, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2313313[];
+extern void _ZN9GG23133133fooEv();
+extern void _ZN9GG23133133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23133133fooEv,_ZTv0_n20_N9GG23133133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23133133fooEv,_ZThn8_N9GG23133133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23133133barEv,_ZTv0_n12_N9GG23133133barEv)();
+extern void ABISELECT(_ZThn32_N9GG23133133barEv,_ZThn16_N9GG23133133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23133133fooEv,_ZTv0_n12_N9GG23133133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23133133fooEv,_ZThn24_N9GG23133133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23133133barEv,_ZTv0_n16_N9GG23133133barEv)();
+extern void ABISELECT(_ZThn48_N9GG23133133barEv,_ZThn24_N9GG23133133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23133133fooEv,_ZTv0_n20_N9GG23133133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23133133fooEv,_ZThn32_N9GG23133133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23133133fooEv,_ZTv0_n12_N9GG23133133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23133133fooEv,_ZThn40_N9GG23133133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23133133barEv,_ZTv0_n16_N9GG23133133barEv)();
+extern void ABISELECT(_ZThn80_N9GG23133133barEv,_ZThn40_N9GG23133133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2313313[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2313313[0]),
+ (VTBL_ENTRY)&_ZN9GG23133133fooEv,
+ (VTBL_ENTRY)&_ZN9GG23133133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2313313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23133133fooEv,_ZTv0_n20_N9GG23133133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2313313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23133133barEv,_ZTv0_n12_N9GG23133133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2313313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23133133fooEv,_ZTv0_n12_N9GG23133133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23133133barEv,_ZTv0_n16_N9GG23133133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2313313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23133133fooEv,_ZTv0_n20_N9GG23133133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2313313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23133133fooEv,_ZTv0_n12_N9GG23133133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23133133barEv,_ZTv0_n16_N9GG23133133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2313313[];
+extern void _ZN5EE2313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE231__9GG2313313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN5EE2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE231__9GG2313313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE231__9GG2313313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF3313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF331__9GG2313313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&_ZN5FF3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF331__9GG2313313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF331__9GG2313313[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG2313313[] = {
+ {&(_ZTV9GG2313313[7]), 7,37},
+ {&(_ZTV9GG2313313[14]), 14,37},
+ {&(_ZTV9GG2313313[18]), 18,37},
+ {&(_ZTV9GG2313313[23]), 23,37},
+ {&(_ZTV9GG2313313[30]), 30,37},
+ {&(_ZTV9GG2313313[35]), 35,37},
+ {&(_tg__ZTV5EE231__9GG2313313[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE231__9GG2313313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE231__9GG2313313[4]), 4,6},
+ {&(_tg__ZTV5FF331__9GG2313313[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF331__9GG2313313[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF331__9GG2313313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2313313[];
+extern VTBL_ENTRY _ZTV9GG2313313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2313313[];
+static VTBL_ENTRY alt_thunk_names693[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23133133barEv,_ZTv0_n16_N9GG23133133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23133133barEv,_ZThn40_N9GG23133133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23133133barEv,_ZThn24_N9GG23133133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23133133fooEv,_ZTv0_n12_N9GG23133133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23133133fooEv,_ZThn40_N9GG23133133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23133133fooEv,_ZThn24_N9GG23133133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23133133barEv,_ZTv0_n12_N9GG23133133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23133133barEv,_ZThn16_N9GG23133133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23133133fooEv,_ZTv0_n20_N9GG23133133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23133133fooEv,_ZThn32_N9GG23133133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23133133fooEv,_ZThn8_N9GG23133133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2313313 = { "GG2313313", // class name
+ bases_GG2313313, 5,
+ &(vtc_GG2313313[0]), // expected_vtbl_contents
+ &(vtt_GG2313313[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2313313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2313313),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2313313),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names693,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2313323 : virtual EE231 , virtual FF332 {
+ int pg;
+ virtual void foo(); // _ZN9GG23133233fooEv
+ virtual void bar(); // _ZN9GG23133233barEv
+ ~GG2313323(); // tgen
+ GG2313323(); // tgen
+};
+//SIG(1 GG2313323) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG2313323 ::foo(){vfunc_called(this, "_ZN9GG23133233fooEv");}
+void GG2313323 ::bar(){vfunc_called(this, "_ZN9GG23133233barEv");}
+GG2313323 ::~GG2313323(){ note_dtor("GG2313323", this);} // tgen
+GG2313323 ::GG2313323(){ note_ctor("GG2313323", this);} // tgen
+
+static void Test_GG2313323()
+{
+ extern Class_Descriptor cd_GG2313323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2313323, buf);
+ GG2313323 *dp, &lv = *(dp=new (buf) GG2313323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2313323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2313323)");
+ check_base_class_offset(lv, (AA2*)(EE231*), ABISELECT(32,16), "GG2313323");
+ check_base_class_offset(lv, (BB3*)(EE231*), ABISELECT(48,24), "GG2313323");
+ check_base_class_offset(lv, (BB3*)(FF332*), ABISELECT(48,24), "GG2313323");
+ check_base_class_offset(lv, (EE231*), ABISELECT(16,8), "GG2313323");
+ check_base_class_offset(lv, (AA3*)(FF332*), ABISELECT(80,40), "GG2313323");
+ check_base_class_offset(lv, (FF332*), ABISELECT(64,32), "GG2313323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2313323.pg");
+ test_class_info(&lv, &cd_GG2313323);
+ dp->~GG2313323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2313323(Test_GG2313323, "GG2313323", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2313323C1Ev();
+extern void _ZN9GG2313323D1Ev();
+Name_Map name_map_GG2313323[] = {
+ NSPAIR(_ZN9GG2313323C1Ev),
+ NSPAIR(_ZN9GG2313323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE231;
+extern VTBL_ENTRY _ZTI5EE231[];
+extern VTBL_ENTRY _ZTV5EE231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE231[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF332;
+extern VTBL_ENTRY _ZTI5FF332[];
+extern VTBL_ENTRY _ZTV5FF332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF332[];
+static Base_Class bases_GG2313323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE231, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF332, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2313323[];
+extern void _ZN9GG23133233fooEv();
+extern void _ZN9GG23133233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23133233fooEv,_ZTv0_n20_N9GG23133233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23133233fooEv,_ZThn8_N9GG23133233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23133233barEv,_ZTv0_n12_N9GG23133233barEv)();
+extern void ABISELECT(_ZThn32_N9GG23133233barEv,_ZThn16_N9GG23133233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23133233fooEv,_ZTv0_n12_N9GG23133233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23133233fooEv,_ZThn24_N9GG23133233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23133233barEv,_ZTv0_n16_N9GG23133233barEv)();
+extern void ABISELECT(_ZThn48_N9GG23133233barEv,_ZThn24_N9GG23133233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23133233barEv,_ZTv0_n20_N9GG23133233barEv)();
+extern void ABISELECT(_ZThn64_N9GG23133233barEv,_ZThn32_N9GG23133233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23133233fooEv,_ZTv0_n12_N9GG23133233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23133233fooEv,_ZThn40_N9GG23133233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23133233barEv,_ZTv0_n16_N9GG23133233barEv)();
+extern void ABISELECT(_ZThn80_N9GG23133233barEv,_ZThn40_N9GG23133233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2313323[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2313323[0]),
+ (VTBL_ENTRY)&_ZN9GG23133233fooEv,
+ (VTBL_ENTRY)&_ZN9GG23133233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2313323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23133233fooEv,_ZTv0_n20_N9GG23133233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2313323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23133233barEv,_ZTv0_n12_N9GG23133233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2313323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23133233fooEv,_ZTv0_n12_N9GG23133233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23133233barEv,_ZTv0_n16_N9GG23133233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2313323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23133233barEv,_ZTv0_n20_N9GG23133233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2313323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23133233fooEv,_ZTv0_n12_N9GG23133233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23133233barEv,_ZTv0_n16_N9GG23133233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2313323[];
+extern void _ZN5EE2313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE231__9GG2313323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN5EE2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE231__9GG2313323[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE231__9GG2313323[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF3323barEv();
+static VTBL_ENTRY _tg__ZTV5FF332__9GG2313323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN5FF3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+extern void ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF332__9GG2313323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF332__9GG2313323[] = {
+ ABISELECT(16,8),
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+static VTT_ENTRY vtt_GG2313323[] = {
+ {&(_ZTV9GG2313323[7]), 7,37},
+ {&(_ZTV9GG2313323[14]), 14,37},
+ {&(_ZTV9GG2313323[18]), 18,37},
+ {&(_ZTV9GG2313323[23]), 23,37},
+ {&(_ZTV9GG2313323[30]), 30,37},
+ {&(_ZTV9GG2313323[35]), 35,37},
+ {&(_tg__ZTV5EE231__9GG2313323[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE231__9GG2313323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE231__9GG2313323[4]), 4,6},
+ {&(_tg__ZTV5FF332__9GG2313323[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF332__9GG2313323[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF332__9GG2313323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2313323[];
+extern VTBL_ENTRY _ZTV9GG2313323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2313323[];
+static VTBL_ENTRY alt_thunk_names694[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23133233barEv,_ZTv0_n20_N9GG23133233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23133233barEv,_ZThn32_N9GG23133233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23133233barEv,_ZTv0_n16_N9GG23133233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23133233barEv,_ZThn40_N9GG23133233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23133233barEv,_ZThn24_N9GG23133233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23133233fooEv,_ZTv0_n12_N9GG23133233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23133233fooEv,_ZThn40_N9GG23133233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23133233fooEv,_ZThn24_N9GG23133233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23133233barEv,_ZTv0_n12_N9GG23133233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23133233barEv,_ZThn16_N9GG23133233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23133233fooEv,_ZTv0_n20_N9GG23133233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23133233fooEv,_ZThn8_N9GG23133233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2313323 = { "GG2313323", // class name
+ bases_GG2313323, 5,
+ &(vtc_GG2313323[0]), // expected_vtbl_contents
+ &(vtt_GG2313323[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2313323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2313323),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2313323),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names694,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2313333 : virtual EE231 , virtual FF333 {
+ int pg;
+ virtual void foo(); // _ZN9GG23133333fooEv
+ virtual void bar(); // _ZN9GG23133333barEv
+ ~GG2313333(); // tgen
+ GG2313333(); // tgen
+};
+//SIG(1 GG2313333) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2313333 ::foo(){vfunc_called(this, "_ZN9GG23133333fooEv");}
+void GG2313333 ::bar(){vfunc_called(this, "_ZN9GG23133333barEv");}
+GG2313333 ::~GG2313333(){ note_dtor("GG2313333", this);} // tgen
+GG2313333 ::GG2313333(){ note_ctor("GG2313333", this);} // tgen
+
+static void Test_GG2313333()
+{
+ extern Class_Descriptor cd_GG2313333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2313333, buf);
+ GG2313333 *dp, &lv = *(dp=new (buf) GG2313333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2313333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2313333)");
+ check_base_class_offset(lv, (AA2*)(EE231*), ABISELECT(32,16), "GG2313333");
+ check_base_class_offset(lv, (BB3*)(EE231*), ABISELECT(48,24), "GG2313333");
+ check_base_class_offset(lv, (BB3*)(FF333*), ABISELECT(48,24), "GG2313333");
+ check_base_class_offset(lv, (EE231*), ABISELECT(16,8), "GG2313333");
+ check_base_class_offset(lv, (AA3*)(FF333*), ABISELECT(80,40), "GG2313333");
+ check_base_class_offset(lv, (FF333*), ABISELECT(64,32), "GG2313333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2313333.pg");
+ test_class_info(&lv, &cd_GG2313333);
+ dp->~GG2313333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2313333(Test_GG2313333, "GG2313333", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2313333C1Ev();
+extern void _ZN9GG2313333D1Ev();
+Name_Map name_map_GG2313333[] = {
+ NSPAIR(_ZN9GG2313333C1Ev),
+ NSPAIR(_ZN9GG2313333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE231;
+extern VTBL_ENTRY _ZTI5EE231[];
+extern VTBL_ENTRY _ZTV5EE231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE231[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF333;
+extern VTBL_ENTRY _ZTI5FF333[];
+extern VTBL_ENTRY _ZTV5FF333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF333[];
+static Base_Class bases_GG2313333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE231, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF333, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2313333[];
+extern void _ZN9GG23133333fooEv();
+extern void _ZN9GG23133333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23133333fooEv,_ZTv0_n20_N9GG23133333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23133333fooEv,_ZThn8_N9GG23133333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23133333barEv,_ZTv0_n12_N9GG23133333barEv)();
+extern void ABISELECT(_ZThn32_N9GG23133333barEv,_ZThn16_N9GG23133333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23133333fooEv,_ZTv0_n12_N9GG23133333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23133333fooEv,_ZThn24_N9GG23133333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23133333barEv,_ZTv0_n16_N9GG23133333barEv)();
+extern void ABISELECT(_ZThn48_N9GG23133333barEv,_ZThn24_N9GG23133333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23133333fooEv,_ZTv0_n20_N9GG23133333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23133333fooEv,_ZThn32_N9GG23133333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23133333barEv,_ZTv0_n24_N9GG23133333barEv)();
+extern void ABISELECT(_ZThn64_N9GG23133333barEv,_ZThn32_N9GG23133333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23133333fooEv,_ZTv0_n12_N9GG23133333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23133333fooEv,_ZThn40_N9GG23133333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23133333barEv,_ZTv0_n16_N9GG23133333barEv)();
+extern void ABISELECT(_ZThn80_N9GG23133333barEv,_ZThn40_N9GG23133333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2313333[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2313333[0]),
+ (VTBL_ENTRY)&_ZN9GG23133333fooEv,
+ (VTBL_ENTRY)&_ZN9GG23133333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2313333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23133333fooEv,_ZTv0_n20_N9GG23133333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2313333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23133333barEv,_ZTv0_n12_N9GG23133333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2313333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23133333fooEv,_ZTv0_n12_N9GG23133333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23133333barEv,_ZTv0_n16_N9GG23133333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2313333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23133333fooEv,_ZTv0_n20_N9GG23133333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23133333barEv,_ZTv0_n24_N9GG23133333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2313333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23133333fooEv,_ZTv0_n12_N9GG23133333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23133333barEv,_ZTv0_n16_N9GG23133333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2313333[];
+extern void _ZN5EE2313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE231__9GG2313333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN5EE2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5EE231__9GG2313333[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE231__9GG2313333[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF3333fooEv();
+extern void _ZN5FF3333barEv();
+static VTBL_ENTRY _tg__ZTV5FF333__9GG2313333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&_ZN5FF3333fooEv,
+ (VTBL_ENTRY)&_ZN5FF3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+extern void ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF333__9GG2313333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF333__9GG2313333[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+static VTT_ENTRY vtt_GG2313333[] = {
+ {&(_ZTV9GG2313333[7]), 7,39},
+ {&(_ZTV9GG2313333[14]), 14,39},
+ {&(_ZTV9GG2313333[18]), 18,39},
+ {&(_ZTV9GG2313333[23]), 23,39},
+ {&(_ZTV9GG2313333[31]), 31,39},
+ {&(_ZTV9GG2313333[37]), 37,39},
+ {&(_tg__ZTV5EE231__9GG2313333[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE231__9GG2313333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE231__9GG2313333[4]), 4,6},
+ {&(_tg__ZTV5FF333__9GG2313333[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF333__9GG2313333[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF333__9GG2313333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2313333[];
+extern VTBL_ENTRY _ZTV9GG2313333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2313333[];
+static VTBL_ENTRY alt_thunk_names695[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2313fooEv,_ZTv0_n12_N5EE2313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2313fooEv,_ZThn16_N5EE2313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG23133333barEv,_ZTv0_n24_N9GG23133333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23133333barEv,_ZThn32_N9GG23133333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23133333barEv,_ZTv0_n16_N9GG23133333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23133333barEv,_ZThn40_N9GG23133333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23133333barEv,_ZThn24_N9GG23133333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23133333fooEv,_ZTv0_n12_N9GG23133333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23133333fooEv,_ZThn40_N9GG23133333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23133333fooEv,_ZThn24_N9GG23133333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23133333barEv,_ZTv0_n12_N9GG23133333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23133333barEv,_ZThn16_N9GG23133333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23133333fooEv,_ZTv0_n20_N9GG23133333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23133333fooEv,_ZThn32_N9GG23133333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23133333fooEv,_ZThn8_N9GG23133333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2313333 = { "GG2313333", // class name
+ bases_GG2313333, 5,
+ &(vtc_GG2313333[0]), // expected_vtbl_contents
+ &(vtt_GG2313333[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2313333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2313333),39, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2313333),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names695,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2321111 : virtual EE232 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG23211113fooEv
+ ~GG2321111(); // tgen
+ GG2321111(); // tgen
+};
+//SIG(1 GG2321111) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+void GG2321111 ::foo(){vfunc_called(this, "_ZN9GG23211113fooEv");}
+GG2321111 ::~GG2321111(){ note_dtor("GG2321111", this);} // tgen
+GG2321111 ::GG2321111(){ note_ctor("GG2321111", this);} // tgen
+
+static void Test_GG2321111()
+{
+ extern Class_Descriptor cd_GG2321111;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2321111, buf);
+ GG2321111 *dp, &lv = *(dp=new (buf) GG2321111());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2321111)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2321111)");
+ check_base_class_offset(lv, (AA2*)(EE232*), ABISELECT(32,16), "GG2321111");
+ check_base_class_offset(lv, (BB3*)(EE232*), ABISELECT(48,24), "GG2321111");
+ check_base_class_offset(lv, (EE232*), ABISELECT(16,8), "GG2321111");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(80,40), "GG2321111");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(96,48), "GG2321111");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG2321111");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2321111.pg");
+ test_class_info(&lv, &cd_GG2321111);
+ dp->~GG2321111();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2321111(Test_GG2321111, "GG2321111", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2321111C1Ev();
+extern void _ZN9GG2321111D1Ev();
+Name_Map name_map_GG2321111[] = {
+ NSPAIR(_ZN9GG2321111C1Ev),
+ NSPAIR(_ZN9GG2321111D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE232;
+extern VTBL_ENTRY _ZTI5EE232[];
+extern VTBL_ENTRY _ZTV5EE232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE232[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG2321111[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE232, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2321111[];
+extern void _ZN9GG23211113fooEv();
+extern void _ZN5EE2323barEv();
+extern void ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv)();
+extern void ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23211113fooEv,_ZTv0_n12_N9GG23211113fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23211113fooEv,_ZThn24_N9GG23211113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv)();
+extern void ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23211113fooEv,_ZTv0_n20_N9GG23211113fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23211113fooEv,_ZThn32_N9GG23211113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23211113fooEv,_ZTv0_n12_N9GG23211113fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23211113fooEv,_ZThn40_N9GG23211113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23211113fooEv,_ZTv0_n12_N9GG23211113fooEv)();
+extern void ABISELECT(_ZThn96_N9GG23211113fooEv,_ZThn48_N9GG23211113fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2321111[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2321111[0]),
+ (VTBL_ENTRY)&_ZN9GG23211113fooEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2321111[0]),
+ (VTBL_ENTRY)&_ZN5EE2323barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2321111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2321111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23211113fooEv,_ZTv0_n12_N9GG23211113fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2321111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23211113fooEv,_ZTv0_n20_N9GG23211113fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2321111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23211113fooEv,_ZTv0_n12_N9GG23211113fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2321111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23211113fooEv,_ZTv0_n12_N9GG23211113fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2321111[];
+extern void _ZN5EE2323barEv();
+static VTBL_ENTRY _tg__ZTV5EE232__9GG2321111[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN5EE2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv)();
+extern void ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE232__9GG2321111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv)();
+extern void ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE232__9GG2321111[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv),
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG2321111[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG2321111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG2321111[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG2321111[] = {
+ {&(_ZTV9GG2321111[8]), 8,39},
+ {&(_ZTV9GG2321111[14]), 14,39},
+ {&(_ZTV9GG2321111[18]), 18,39},
+ {&(_ZTV9GG2321111[23]), 23,39},
+ {&(_ZTV9GG2321111[30]), 30,39},
+ {&(_ZTV9GG2321111[34]), 34,39},
+ {&(_ZTV9GG2321111[38]), 38,39},
+ {&(_tg__ZTV5EE232__9GG2321111[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE232__9GG2321111[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE232__9GG2321111[4]), 4,6},
+ {&(_tg__ZTV5FF111__9GG2321111[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG2321111[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG2321111[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2321111[];
+extern VTBL_ENTRY _ZTV9GG2321111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2321111[];
+static VTBL_ENTRY alt_thunk_names696[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23211113fooEv,_ZTv0_n20_N9GG23211113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23211113fooEv,_ZThn32_N9GG23211113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23211113fooEv,_ZTv0_n12_N9GG23211113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG23211113fooEv,_ZThn48_N9GG23211113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23211113fooEv,_ZThn40_N9GG23211113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23211113fooEv,_ZThn24_N9GG23211113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2321111 = { "GG2321111", // class name
+ bases_GG2321111, 6,
+ &(vtc_GG2321111[0]), // expected_vtbl_contents
+ &(vtt_GG2321111[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2321111),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2321111),39, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2321111),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names696,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2321113 : virtual EE232 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG23211133fooEv
+ virtual void bar(); // _ZN9GG23211133barEv
+ ~GG2321113(); // tgen
+ GG2321113(); // tgen
+};
+//SIG(1 GG2321113) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2321113 ::foo(){vfunc_called(this, "_ZN9GG23211133fooEv");}
+void GG2321113 ::bar(){vfunc_called(this, "_ZN9GG23211133barEv");}
+GG2321113 ::~GG2321113(){ note_dtor("GG2321113", this);} // tgen
+GG2321113 ::GG2321113(){ note_ctor("GG2321113", this);} // tgen
+
+static void Test_GG2321113()
+{
+ extern Class_Descriptor cd_GG2321113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2321113, buf);
+ GG2321113 *dp, &lv = *(dp=new (buf) GG2321113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2321113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2321113)");
+ check_base_class_offset(lv, (AA2*)(EE232*), ABISELECT(32,16), "GG2321113");
+ check_base_class_offset(lv, (BB3*)(EE232*), ABISELECT(48,24), "GG2321113");
+ check_base_class_offset(lv, (EE232*), ABISELECT(16,8), "GG2321113");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(80,40), "GG2321113");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(96,48), "GG2321113");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG2321113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2321113.pg");
+ test_class_info(&lv, &cd_GG2321113);
+ dp->~GG2321113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2321113(Test_GG2321113, "GG2321113", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2321113C1Ev();
+extern void _ZN9GG2321113D1Ev();
+Name_Map name_map_GG2321113[] = {
+ NSPAIR(_ZN9GG2321113C1Ev),
+ NSPAIR(_ZN9GG2321113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE232;
+extern VTBL_ENTRY _ZTI5EE232[];
+extern VTBL_ENTRY _ZTV5EE232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE232[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG2321113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE232, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2321113[];
+extern void _ZN9GG23211133fooEv();
+extern void _ZN9GG23211133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23211133barEv,_ZTv0_n20_N9GG23211133barEv)();
+extern void ABISELECT(_ZThn16_N9GG23211133barEv,_ZThn8_N9GG23211133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23211133barEv,_ZTv0_n12_N9GG23211133barEv)();
+extern void ABISELECT(_ZThn32_N9GG23211133barEv,_ZThn16_N9GG23211133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23211133fooEv,_ZTv0_n12_N9GG23211133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23211133fooEv,_ZThn24_N9GG23211133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23211133barEv,_ZTv0_n16_N9GG23211133barEv)();
+extern void ABISELECT(_ZThn48_N9GG23211133barEv,_ZThn24_N9GG23211133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23211133fooEv,_ZTv0_n20_N9GG23211133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23211133fooEv,_ZThn32_N9GG23211133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23211133fooEv,_ZTv0_n12_N9GG23211133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23211133fooEv,_ZThn40_N9GG23211133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23211133fooEv,_ZTv0_n12_N9GG23211133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG23211133fooEv,_ZThn48_N9GG23211133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2321113[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2321113[0]),
+ (VTBL_ENTRY)&_ZN9GG23211133fooEv,
+ (VTBL_ENTRY)&_ZN9GG23211133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2321113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23211133barEv,_ZTv0_n20_N9GG23211133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2321113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23211133barEv,_ZTv0_n12_N9GG23211133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2321113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23211133fooEv,_ZTv0_n12_N9GG23211133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23211133barEv,_ZTv0_n16_N9GG23211133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2321113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23211133fooEv,_ZTv0_n20_N9GG23211133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2321113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23211133fooEv,_ZTv0_n12_N9GG23211133fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2321113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23211133fooEv,_ZTv0_n12_N9GG23211133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2321113[];
+extern void _ZN5EE2323barEv();
+static VTBL_ENTRY _tg__ZTV5EE232__9GG2321113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN5EE2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv)();
+extern void ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE232__9GG2321113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv)();
+extern void ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE232__9GG2321113[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv),
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG2321113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG2321113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG2321113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG2321113[] = {
+ {&(_ZTV9GG2321113[8]), 8,40},
+ {&(_ZTV9GG2321113[15]), 15,40},
+ {&(_ZTV9GG2321113[19]), 19,40},
+ {&(_ZTV9GG2321113[24]), 24,40},
+ {&(_ZTV9GG2321113[31]), 31,40},
+ {&(_ZTV9GG2321113[35]), 35,40},
+ {&(_ZTV9GG2321113[39]), 39,40},
+ {&(_tg__ZTV5EE232__9GG2321113[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE232__9GG2321113[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE232__9GG2321113[4]), 4,6},
+ {&(_tg__ZTV5FF111__9GG2321113[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG2321113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG2321113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2321113[];
+extern VTBL_ENTRY _ZTV9GG2321113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2321113[];
+static VTBL_ENTRY alt_thunk_names697[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23211133fooEv,_ZTv0_n20_N9GG23211133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23211133fooEv,_ZThn32_N9GG23211133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23211133barEv,_ZTv0_n16_N9GG23211133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23211133barEv,_ZThn24_N9GG23211133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23211133fooEv,_ZTv0_n12_N9GG23211133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG23211133fooEv,_ZThn48_N9GG23211133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23211133fooEv,_ZThn40_N9GG23211133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23211133fooEv,_ZThn24_N9GG23211133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23211133barEv,_ZTv0_n12_N9GG23211133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23211133barEv,_ZThn16_N9GG23211133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23211133barEv,_ZTv0_n20_N9GG23211133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23211133barEv,_ZThn8_N9GG23211133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2321113 = { "GG2321113", // class name
+ bases_GG2321113, 6,
+ &(vtc_GG2321113[0]), // expected_vtbl_contents
+ &(vtt_GG2321113[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2321113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2321113),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2321113),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names697,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2321123 : virtual EE232 , virtual FF112 {
+ int pg;
+ virtual void foo(); // _ZN9GG23211233fooEv
+ virtual void bar(); // _ZN9GG23211233barEv
+ ~GG2321123(); // tgen
+ GG2321123(); // tgen
+};
+//SIG(1 GG2321123) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2321123 ::foo(){vfunc_called(this, "_ZN9GG23211233fooEv");}
+void GG2321123 ::bar(){vfunc_called(this, "_ZN9GG23211233barEv");}
+GG2321123 ::~GG2321123(){ note_dtor("GG2321123", this);} // tgen
+GG2321123 ::GG2321123(){ note_ctor("GG2321123", this);} // tgen
+
+static void Test_GG2321123()
+{
+ extern Class_Descriptor cd_GG2321123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2321123, buf);
+ GG2321123 *dp, &lv = *(dp=new (buf) GG2321123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2321123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2321123)");
+ check_base_class_offset(lv, (AA2*)(EE232*), ABISELECT(32,16), "GG2321123");
+ check_base_class_offset(lv, (BB3*)(EE232*), ABISELECT(48,24), "GG2321123");
+ check_base_class_offset(lv, (EE232*), ABISELECT(16,8), "GG2321123");
+ check_base_class_offset(lv, (AA1*)(FF112*), ABISELECT(80,40), "GG2321123");
+ check_base_class_offset(lv, (BB1*)(FF112*), ABISELECT(96,48), "GG2321123");
+ check_base_class_offset(lv, (FF112*), ABISELECT(64,32), "GG2321123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2321123.pg");
+ test_class_info(&lv, &cd_GG2321123);
+ dp->~GG2321123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2321123(Test_GG2321123, "GG2321123", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2321123C1Ev();
+extern void _ZN9GG2321123D1Ev();
+Name_Map name_map_GG2321123[] = {
+ NSPAIR(_ZN9GG2321123C1Ev),
+ NSPAIR(_ZN9GG2321123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE232;
+extern VTBL_ENTRY _ZTI5EE232[];
+extern VTBL_ENTRY _ZTV5EE232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE232[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF112;
+extern VTBL_ENTRY _ZTI5FF112[];
+extern VTBL_ENTRY _ZTV5FF112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF112[];
+static Base_Class bases_GG2321123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE232, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF112, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2321123[];
+extern void _ZN9GG23211233fooEv();
+extern void _ZN9GG23211233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23211233barEv,_ZTv0_n20_N9GG23211233barEv)();
+extern void ABISELECT(_ZThn16_N9GG23211233barEv,_ZThn8_N9GG23211233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23211233barEv,_ZTv0_n12_N9GG23211233barEv)();
+extern void ABISELECT(_ZThn32_N9GG23211233barEv,_ZThn16_N9GG23211233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23211233fooEv,_ZTv0_n12_N9GG23211233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23211233fooEv,_ZThn24_N9GG23211233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23211233barEv,_ZTv0_n16_N9GG23211233barEv)();
+extern void ABISELECT(_ZThn48_N9GG23211233barEv,_ZThn24_N9GG23211233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23211233barEv,_ZTv0_n20_N9GG23211233barEv)();
+extern void ABISELECT(_ZThn64_N9GG23211233barEv,_ZThn32_N9GG23211233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23211233fooEv,_ZTv0_n12_N9GG23211233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23211233fooEv,_ZThn40_N9GG23211233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23211233fooEv,_ZTv0_n12_N9GG23211233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG23211233fooEv,_ZThn48_N9GG23211233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2321123[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2321123[0]),
+ (VTBL_ENTRY)&_ZN9GG23211233fooEv,
+ (VTBL_ENTRY)&_ZN9GG23211233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2321123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23211233barEv,_ZTv0_n20_N9GG23211233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2321123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23211233barEv,_ZTv0_n12_N9GG23211233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2321123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23211233fooEv,_ZTv0_n12_N9GG23211233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23211233barEv,_ZTv0_n16_N9GG23211233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2321123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23211233barEv,_ZTv0_n20_N9GG23211233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2321123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23211233fooEv,_ZTv0_n12_N9GG23211233fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2321123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23211233fooEv,_ZTv0_n12_N9GG23211233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2321123[];
+extern void _ZN5EE2323barEv();
+static VTBL_ENTRY _tg__ZTV5EE232__9GG2321123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN5EE2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv)();
+extern void ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE232__9GG2321123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv)();
+extern void ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE232__9GG2321123[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv),
+};
+extern void _ZN5FF1123barEv();
+static VTBL_ENTRY _tg__ZTV5FF112__9GG2321123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN5FF1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF112__9GG2321123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF112__9GG2321123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG2321123[] = {
+ {&(_ZTV9GG2321123[8]), 8,40},
+ {&(_ZTV9GG2321123[15]), 15,40},
+ {&(_ZTV9GG2321123[19]), 19,40},
+ {&(_ZTV9GG2321123[24]), 24,40},
+ {&(_ZTV9GG2321123[31]), 31,40},
+ {&(_ZTV9GG2321123[35]), 35,40},
+ {&(_ZTV9GG2321123[39]), 39,40},
+ {&(_tg__ZTV5EE232__9GG2321123[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE232__9GG2321123[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE232__9GG2321123[4]), 4,6},
+ {&(_tg__ZTV5FF112__9GG2321123[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF112__9GG2321123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF112__9GG2321123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2321123[];
+extern VTBL_ENTRY _ZTV9GG2321123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2321123[];
+static VTBL_ENTRY alt_thunk_names698[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23211233barEv,_ZTv0_n16_N9GG23211233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23211233barEv,_ZThn24_N9GG23211233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23211233fooEv,_ZTv0_n12_N9GG23211233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG23211233fooEv,_ZThn48_N9GG23211233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23211233fooEv,_ZThn40_N9GG23211233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23211233fooEv,_ZThn24_N9GG23211233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23211233barEv,_ZTv0_n12_N9GG23211233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23211233barEv,_ZThn16_N9GG23211233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23211233barEv,_ZTv0_n20_N9GG23211233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23211233barEv,_ZThn32_N9GG23211233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23211233barEv,_ZThn8_N9GG23211233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2321123 = { "GG2321123", // class name
+ bases_GG2321123, 6,
+ &(vtc_GG2321123[0]), // expected_vtbl_contents
+ &(vtt_GG2321123[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2321123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2321123),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2321123),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names698,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2321133 : virtual EE232 , virtual FF113 {
+ int pg;
+ virtual void foo(); // _ZN9GG23211333fooEv
+ virtual void bar(); // _ZN9GG23211333barEv
+ ~GG2321133(); // tgen
+ GG2321133(); // tgen
+};
+//SIG(1 GG2321133) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2321133 ::foo(){vfunc_called(this, "_ZN9GG23211333fooEv");}
+void GG2321133 ::bar(){vfunc_called(this, "_ZN9GG23211333barEv");}
+GG2321133 ::~GG2321133(){ note_dtor("GG2321133", this);} // tgen
+GG2321133 ::GG2321133(){ note_ctor("GG2321133", this);} // tgen
+
+static void Test_GG2321133()
+{
+ extern Class_Descriptor cd_GG2321133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2321133, buf);
+ GG2321133 *dp, &lv = *(dp=new (buf) GG2321133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2321133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2321133)");
+ check_base_class_offset(lv, (AA2*)(EE232*), ABISELECT(32,16), "GG2321133");
+ check_base_class_offset(lv, (BB3*)(EE232*), ABISELECT(48,24), "GG2321133");
+ check_base_class_offset(lv, (EE232*), ABISELECT(16,8), "GG2321133");
+ check_base_class_offset(lv, (AA1*)(FF113*), ABISELECT(80,40), "GG2321133");
+ check_base_class_offset(lv, (BB1*)(FF113*), ABISELECT(96,48), "GG2321133");
+ check_base_class_offset(lv, (FF113*), ABISELECT(64,32), "GG2321133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2321133.pg");
+ test_class_info(&lv, &cd_GG2321133);
+ dp->~GG2321133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2321133(Test_GG2321133, "GG2321133", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2321133C1Ev();
+extern void _ZN9GG2321133D1Ev();
+Name_Map name_map_GG2321133[] = {
+ NSPAIR(_ZN9GG2321133C1Ev),
+ NSPAIR(_ZN9GG2321133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE232;
+extern VTBL_ENTRY _ZTI5EE232[];
+extern VTBL_ENTRY _ZTV5EE232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE232[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF113;
+extern VTBL_ENTRY _ZTI5FF113[];
+extern VTBL_ENTRY _ZTV5FF113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF113[];
+static Base_Class bases_GG2321133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE232, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF113, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2321133[];
+extern void _ZN9GG23211333fooEv();
+extern void _ZN9GG23211333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23211333barEv,_ZTv0_n20_N9GG23211333barEv)();
+extern void ABISELECT(_ZThn16_N9GG23211333barEv,_ZThn8_N9GG23211333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23211333barEv,_ZTv0_n12_N9GG23211333barEv)();
+extern void ABISELECT(_ZThn32_N9GG23211333barEv,_ZThn16_N9GG23211333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23211333fooEv,_ZTv0_n12_N9GG23211333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23211333fooEv,_ZThn24_N9GG23211333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23211333barEv,_ZTv0_n16_N9GG23211333barEv)();
+extern void ABISELECT(_ZThn48_N9GG23211333barEv,_ZThn24_N9GG23211333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23211333fooEv,_ZTv0_n20_N9GG23211333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23211333fooEv,_ZThn32_N9GG23211333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23211333barEv,_ZTv0_n24_N9GG23211333barEv)();
+extern void ABISELECT(_ZThn64_N9GG23211333barEv,_ZThn32_N9GG23211333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23211333fooEv,_ZTv0_n12_N9GG23211333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23211333fooEv,_ZThn40_N9GG23211333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23211333fooEv,_ZTv0_n12_N9GG23211333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG23211333fooEv,_ZThn48_N9GG23211333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2321133[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2321133[0]),
+ (VTBL_ENTRY)&_ZN9GG23211333fooEv,
+ (VTBL_ENTRY)&_ZN9GG23211333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2321133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23211333barEv,_ZTv0_n20_N9GG23211333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2321133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23211333barEv,_ZTv0_n12_N9GG23211333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2321133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23211333fooEv,_ZTv0_n12_N9GG23211333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23211333barEv,_ZTv0_n16_N9GG23211333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2321133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23211333fooEv,_ZTv0_n20_N9GG23211333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23211333barEv,_ZTv0_n24_N9GG23211333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2321133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23211333fooEv,_ZTv0_n12_N9GG23211333fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2321133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23211333fooEv,_ZTv0_n12_N9GG23211333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2321133[];
+extern void _ZN5EE2323barEv();
+static VTBL_ENTRY _tg__ZTV5EE232__9GG2321133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN5EE2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv)();
+extern void ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE232__9GG2321133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv)();
+extern void ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE232__9GG2321133[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv),
+};
+extern void _ZN5FF1133fooEv();
+extern void _ZN5FF1133barEv();
+static VTBL_ENTRY _tg__ZTV5FF113__9GG2321133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&_ZN5FF1133fooEv,
+ (VTBL_ENTRY)&_ZN5FF1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF113__9GG2321133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1133fooEv,_ZThn16_N5FF1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF113__9GG2321133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+static VTT_ENTRY vtt_GG2321133[] = {
+ {&(_ZTV9GG2321133[8]), 8,42},
+ {&(_ZTV9GG2321133[15]), 15,42},
+ {&(_ZTV9GG2321133[19]), 19,42},
+ {&(_ZTV9GG2321133[24]), 24,42},
+ {&(_ZTV9GG2321133[32]), 32,42},
+ {&(_ZTV9GG2321133[37]), 37,42},
+ {&(_ZTV9GG2321133[41]), 41,42},
+ {&(_tg__ZTV5EE232__9GG2321133[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE232__9GG2321133[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE232__9GG2321133[4]), 4,6},
+ {&(_tg__ZTV5FF113__9GG2321133[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF113__9GG2321133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF113__9GG2321133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2321133[];
+extern VTBL_ENTRY _ZTV9GG2321133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2321133[];
+static VTBL_ENTRY alt_thunk_names699[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1133fooEv,_ZThn16_N5FF1133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG23211333barEv,_ZTv0_n24_N9GG23211333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23211333barEv,_ZThn32_N9GG23211333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23211333fooEv,_ZTv0_n20_N9GG23211333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23211333fooEv,_ZThn32_N9GG23211333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23211333barEv,_ZTv0_n16_N9GG23211333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23211333barEv,_ZThn24_N9GG23211333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23211333fooEv,_ZTv0_n12_N9GG23211333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG23211333fooEv,_ZThn48_N9GG23211333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23211333fooEv,_ZThn40_N9GG23211333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23211333fooEv,_ZThn24_N9GG23211333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23211333barEv,_ZTv0_n12_N9GG23211333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23211333barEv,_ZThn16_N9GG23211333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23211333barEv,_ZTv0_n20_N9GG23211333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23211333barEv,_ZThn8_N9GG23211333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2321133 = { "GG2321133", // class name
+ bases_GG2321133, 6,
+ &(vtc_GG2321133[0]), // expected_vtbl_contents
+ &(vtt_GG2321133[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2321133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2321133),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2321133),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names699,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2321213 : virtual EE232 , virtual FF121 {
+ int pg;
+ virtual void foo(); // _ZN9GG23212133fooEv
+ virtual void bar(); // _ZN9GG23212133barEv
+ ~GG2321213(); // tgen
+ GG2321213(); // tgen
+};
+//SIG(1 GG2321213) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2321213 ::foo(){vfunc_called(this, "_ZN9GG23212133fooEv");}
+void GG2321213 ::bar(){vfunc_called(this, "_ZN9GG23212133barEv");}
+GG2321213 ::~GG2321213(){ note_dtor("GG2321213", this);} // tgen
+GG2321213 ::GG2321213(){ note_ctor("GG2321213", this);} // tgen
+
+static void Test_GG2321213()
+{
+ extern Class_Descriptor cd_GG2321213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2321213, buf);
+ GG2321213 *dp, &lv = *(dp=new (buf) GG2321213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2321213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2321213)");
+ check_base_class_offset(lv, (AA2*)(EE232*), ABISELECT(32,16), "GG2321213");
+ check_base_class_offset(lv, (BB3*)(EE232*), ABISELECT(48,24), "GG2321213");
+ check_base_class_offset(lv, (EE232*), ABISELECT(16,8), "GG2321213");
+ check_base_class_offset(lv, (AA1*)(FF121*), ABISELECT(80,40), "GG2321213");
+ check_base_class_offset(lv, (BB2*)(FF121*), ABISELECT(96,48), "GG2321213");
+ check_base_class_offset(lv, (FF121*), ABISELECT(64,32), "GG2321213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2321213.pg");
+ test_class_info(&lv, &cd_GG2321213);
+ dp->~GG2321213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2321213(Test_GG2321213, "GG2321213", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2321213C1Ev();
+extern void _ZN9GG2321213D1Ev();
+Name_Map name_map_GG2321213[] = {
+ NSPAIR(_ZN9GG2321213C1Ev),
+ NSPAIR(_ZN9GG2321213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE232;
+extern VTBL_ENTRY _ZTI5EE232[];
+extern VTBL_ENTRY _ZTV5EE232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE232[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF121;
+extern VTBL_ENTRY _ZTI5FF121[];
+extern VTBL_ENTRY _ZTV5FF121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF121[];
+static Base_Class bases_GG2321213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE232, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF121, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2321213[];
+extern void _ZN9GG23212133fooEv();
+extern void _ZN9GG23212133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23212133barEv,_ZTv0_n20_N9GG23212133barEv)();
+extern void ABISELECT(_ZThn16_N9GG23212133barEv,_ZThn8_N9GG23212133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23212133barEv,_ZTv0_n12_N9GG23212133barEv)();
+extern void ABISELECT(_ZThn32_N9GG23212133barEv,_ZThn16_N9GG23212133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23212133fooEv,_ZTv0_n12_N9GG23212133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23212133fooEv,_ZThn24_N9GG23212133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23212133barEv,_ZTv0_n16_N9GG23212133barEv)();
+extern void ABISELECT(_ZThn48_N9GG23212133barEv,_ZThn24_N9GG23212133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23212133fooEv,_ZTv0_n20_N9GG23212133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23212133fooEv,_ZThn32_N9GG23212133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23212133fooEv,_ZTv0_n12_N9GG23212133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23212133fooEv,_ZThn40_N9GG23212133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23212133barEv,_ZTv0_n12_N9GG23212133barEv)();
+extern void ABISELECT(_ZThn96_N9GG23212133barEv,_ZThn48_N9GG23212133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2321213[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2321213[0]),
+ (VTBL_ENTRY)&_ZN9GG23212133fooEv,
+ (VTBL_ENTRY)&_ZN9GG23212133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2321213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23212133barEv,_ZTv0_n20_N9GG23212133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2321213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23212133barEv,_ZTv0_n12_N9GG23212133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2321213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23212133fooEv,_ZTv0_n12_N9GG23212133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23212133barEv,_ZTv0_n16_N9GG23212133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2321213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23212133fooEv,_ZTv0_n20_N9GG23212133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2321213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23212133fooEv,_ZTv0_n12_N9GG23212133fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2321213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23212133barEv,_ZTv0_n12_N9GG23212133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2321213[];
+extern void _ZN5EE2323barEv();
+static VTBL_ENTRY _tg__ZTV5EE232__9GG2321213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN5EE2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv)();
+extern void ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE232__9GG2321213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv)();
+extern void ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE232__9GG2321213[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv),
+};
+extern void _ZN5FF1213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF121__9GG2321213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN5FF1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1213fooEv,_ZThn8_N5FF1213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF121__9GG2321213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF121__9GG2321213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG2321213[] = {
+ {&(_ZTV9GG2321213[8]), 8,40},
+ {&(_ZTV9GG2321213[15]), 15,40},
+ {&(_ZTV9GG2321213[19]), 19,40},
+ {&(_ZTV9GG2321213[24]), 24,40},
+ {&(_ZTV9GG2321213[31]), 31,40},
+ {&(_ZTV9GG2321213[35]), 35,40},
+ {&(_ZTV9GG2321213[39]), 39,40},
+ {&(_tg__ZTV5EE232__9GG2321213[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE232__9GG2321213[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE232__9GG2321213[4]), 4,6},
+ {&(_tg__ZTV5FF121__9GG2321213[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF121__9GG2321213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF121__9GG2321213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2321213[];
+extern VTBL_ENTRY _ZTV9GG2321213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2321213[];
+static VTBL_ENTRY alt_thunk_names700[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1213fooEv,_ZThn8_N5FF1213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23212133fooEv,_ZTv0_n20_N9GG23212133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23212133fooEv,_ZThn32_N9GG23212133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23212133barEv,_ZTv0_n16_N9GG23212133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23212133barEv,_ZThn24_N9GG23212133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23212133fooEv,_ZTv0_n12_N9GG23212133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23212133fooEv,_ZThn40_N9GG23212133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23212133fooEv,_ZThn24_N9GG23212133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23212133barEv,_ZTv0_n12_N9GG23212133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG23212133barEv,_ZThn48_N9GG23212133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23212133barEv,_ZThn16_N9GG23212133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23212133barEv,_ZTv0_n20_N9GG23212133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23212133barEv,_ZThn8_N9GG23212133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2321213 = { "GG2321213", // class name
+ bases_GG2321213, 6,
+ &(vtc_GG2321213[0]), // expected_vtbl_contents
+ &(vtt_GG2321213[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2321213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2321213),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2321213),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names700,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2321223 : virtual EE232 , virtual FF122 {
+ int pg;
+ virtual void foo(); // _ZN9GG23212233fooEv
+ virtual void bar(); // _ZN9GG23212233barEv
+ ~GG2321223(); // tgen
+ GG2321223(); // tgen
+};
+//SIG(1 GG2321223) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2321223 ::foo(){vfunc_called(this, "_ZN9GG23212233fooEv");}
+void GG2321223 ::bar(){vfunc_called(this, "_ZN9GG23212233barEv");}
+GG2321223 ::~GG2321223(){ note_dtor("GG2321223", this);} // tgen
+GG2321223 ::GG2321223(){ note_ctor("GG2321223", this);} // tgen
+
+static void Test_GG2321223()
+{
+ extern Class_Descriptor cd_GG2321223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2321223, buf);
+ GG2321223 *dp, &lv = *(dp=new (buf) GG2321223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2321223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2321223)");
+ check_base_class_offset(lv, (AA2*)(EE232*), ABISELECT(32,16), "GG2321223");
+ check_base_class_offset(lv, (BB3*)(EE232*), ABISELECT(48,24), "GG2321223");
+ check_base_class_offset(lv, (EE232*), ABISELECT(16,8), "GG2321223");
+ check_base_class_offset(lv, (AA1*)(FF122*), ABISELECT(80,40), "GG2321223");
+ check_base_class_offset(lv, (BB2*)(FF122*), ABISELECT(96,48), "GG2321223");
+ check_base_class_offset(lv, (FF122*), ABISELECT(64,32), "GG2321223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2321223.pg");
+ test_class_info(&lv, &cd_GG2321223);
+ dp->~GG2321223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2321223(Test_GG2321223, "GG2321223", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2321223C1Ev();
+extern void _ZN9GG2321223D1Ev();
+Name_Map name_map_GG2321223[] = {
+ NSPAIR(_ZN9GG2321223C1Ev),
+ NSPAIR(_ZN9GG2321223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE232;
+extern VTBL_ENTRY _ZTI5EE232[];
+extern VTBL_ENTRY _ZTV5EE232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE232[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF122;
+extern VTBL_ENTRY _ZTI5FF122[];
+extern VTBL_ENTRY _ZTV5FF122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF122[];
+static Base_Class bases_GG2321223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE232, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF122, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2321223[];
+extern void _ZN9GG23212233fooEv();
+extern void _ZN9GG23212233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23212233barEv,_ZTv0_n20_N9GG23212233barEv)();
+extern void ABISELECT(_ZThn16_N9GG23212233barEv,_ZThn8_N9GG23212233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23212233barEv,_ZTv0_n12_N9GG23212233barEv)();
+extern void ABISELECT(_ZThn32_N9GG23212233barEv,_ZThn16_N9GG23212233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23212233fooEv,_ZTv0_n12_N9GG23212233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23212233fooEv,_ZThn24_N9GG23212233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23212233barEv,_ZTv0_n16_N9GG23212233barEv)();
+extern void ABISELECT(_ZThn48_N9GG23212233barEv,_ZThn24_N9GG23212233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23212233barEv,_ZTv0_n20_N9GG23212233barEv)();
+extern void ABISELECT(_ZThn64_N9GG23212233barEv,_ZThn32_N9GG23212233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23212233fooEv,_ZTv0_n12_N9GG23212233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23212233fooEv,_ZThn40_N9GG23212233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23212233barEv,_ZTv0_n12_N9GG23212233barEv)();
+extern void ABISELECT(_ZThn96_N9GG23212233barEv,_ZThn48_N9GG23212233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2321223[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2321223[0]),
+ (VTBL_ENTRY)&_ZN9GG23212233fooEv,
+ (VTBL_ENTRY)&_ZN9GG23212233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2321223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23212233barEv,_ZTv0_n20_N9GG23212233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2321223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23212233barEv,_ZTv0_n12_N9GG23212233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2321223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23212233fooEv,_ZTv0_n12_N9GG23212233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23212233barEv,_ZTv0_n16_N9GG23212233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2321223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23212233barEv,_ZTv0_n20_N9GG23212233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2321223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23212233fooEv,_ZTv0_n12_N9GG23212233fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2321223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23212233barEv,_ZTv0_n12_N9GG23212233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2321223[];
+extern void _ZN5EE2323barEv();
+static VTBL_ENTRY _tg__ZTV5EE232__9GG2321223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN5EE2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv)();
+extern void ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE232__9GG2321223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv)();
+extern void ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE232__9GG2321223[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv),
+};
+extern void _ZN5FF1223barEv();
+static VTBL_ENTRY _tg__ZTV5FF122__9GG2321223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN5FF1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF122__9GG2321223[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv)();
+extern void ABISELECT(_ZThn32_N5FF1223barEv,_ZThn16_N5FF1223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF122__9GG2321223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv),
+};
+static VTT_ENTRY vtt_GG2321223[] = {
+ {&(_ZTV9GG2321223[8]), 8,40},
+ {&(_ZTV9GG2321223[15]), 15,40},
+ {&(_ZTV9GG2321223[19]), 19,40},
+ {&(_ZTV9GG2321223[24]), 24,40},
+ {&(_ZTV9GG2321223[31]), 31,40},
+ {&(_ZTV9GG2321223[35]), 35,40},
+ {&(_ZTV9GG2321223[39]), 39,40},
+ {&(_tg__ZTV5EE232__9GG2321223[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE232__9GG2321223[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE232__9GG2321223[4]), 4,6},
+ {&(_tg__ZTV5FF122__9GG2321223[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF122__9GG2321223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF122__9GG2321223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2321223[];
+extern VTBL_ENTRY _ZTV9GG2321223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2321223[];
+static VTBL_ENTRY alt_thunk_names701[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1223barEv,_ZThn16_N5FF1223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23212233barEv,_ZTv0_n16_N9GG23212233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23212233barEv,_ZThn24_N9GG23212233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23212233fooEv,_ZTv0_n12_N9GG23212233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23212233fooEv,_ZThn40_N9GG23212233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23212233fooEv,_ZThn24_N9GG23212233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23212233barEv,_ZTv0_n12_N9GG23212233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG23212233barEv,_ZThn48_N9GG23212233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23212233barEv,_ZThn16_N9GG23212233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23212233barEv,_ZTv0_n20_N9GG23212233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23212233barEv,_ZThn32_N9GG23212233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23212233barEv,_ZThn8_N9GG23212233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2321223 = { "GG2321223", // class name
+ bases_GG2321223, 6,
+ &(vtc_GG2321223[0]), // expected_vtbl_contents
+ &(vtt_GG2321223[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2321223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2321223),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2321223),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names701,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2321233 : virtual EE232 , virtual FF123 {
+ int pg;
+ virtual void foo(); // _ZN9GG23212333fooEv
+ virtual void bar(); // _ZN9GG23212333barEv
+ ~GG2321233(); // tgen
+ GG2321233(); // tgen
+};
+//SIG(1 GG2321233) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2321233 ::foo(){vfunc_called(this, "_ZN9GG23212333fooEv");}
+void GG2321233 ::bar(){vfunc_called(this, "_ZN9GG23212333barEv");}
+GG2321233 ::~GG2321233(){ note_dtor("GG2321233", this);} // tgen
+GG2321233 ::GG2321233(){ note_ctor("GG2321233", this);} // tgen
+
+static void Test_GG2321233()
+{
+ extern Class_Descriptor cd_GG2321233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2321233, buf);
+ GG2321233 *dp, &lv = *(dp=new (buf) GG2321233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2321233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2321233)");
+ check_base_class_offset(lv, (AA2*)(EE232*), ABISELECT(32,16), "GG2321233");
+ check_base_class_offset(lv, (BB3*)(EE232*), ABISELECT(48,24), "GG2321233");
+ check_base_class_offset(lv, (EE232*), ABISELECT(16,8), "GG2321233");
+ check_base_class_offset(lv, (AA1*)(FF123*), ABISELECT(80,40), "GG2321233");
+ check_base_class_offset(lv, (BB2*)(FF123*), ABISELECT(96,48), "GG2321233");
+ check_base_class_offset(lv, (FF123*), ABISELECT(64,32), "GG2321233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2321233.pg");
+ test_class_info(&lv, &cd_GG2321233);
+ dp->~GG2321233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2321233(Test_GG2321233, "GG2321233", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2321233C1Ev();
+extern void _ZN9GG2321233D1Ev();
+Name_Map name_map_GG2321233[] = {
+ NSPAIR(_ZN9GG2321233C1Ev),
+ NSPAIR(_ZN9GG2321233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE232;
+extern VTBL_ENTRY _ZTI5EE232[];
+extern VTBL_ENTRY _ZTV5EE232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE232[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF123;
+extern VTBL_ENTRY _ZTI5FF123[];
+extern VTBL_ENTRY _ZTV5FF123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF123[];
+static Base_Class bases_GG2321233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE232, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF123, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2321233[];
+extern void _ZN9GG23212333fooEv();
+extern void _ZN9GG23212333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23212333barEv,_ZTv0_n20_N9GG23212333barEv)();
+extern void ABISELECT(_ZThn16_N9GG23212333barEv,_ZThn8_N9GG23212333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23212333barEv,_ZTv0_n12_N9GG23212333barEv)();
+extern void ABISELECT(_ZThn32_N9GG23212333barEv,_ZThn16_N9GG23212333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23212333fooEv,_ZTv0_n12_N9GG23212333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23212333fooEv,_ZThn24_N9GG23212333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23212333barEv,_ZTv0_n16_N9GG23212333barEv)();
+extern void ABISELECT(_ZThn48_N9GG23212333barEv,_ZThn24_N9GG23212333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23212333fooEv,_ZTv0_n20_N9GG23212333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23212333fooEv,_ZThn32_N9GG23212333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23212333barEv,_ZTv0_n24_N9GG23212333barEv)();
+extern void ABISELECT(_ZThn64_N9GG23212333barEv,_ZThn32_N9GG23212333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23212333fooEv,_ZTv0_n12_N9GG23212333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23212333fooEv,_ZThn40_N9GG23212333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23212333barEv,_ZTv0_n12_N9GG23212333barEv)();
+extern void ABISELECT(_ZThn96_N9GG23212333barEv,_ZThn48_N9GG23212333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2321233[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2321233[0]),
+ (VTBL_ENTRY)&_ZN9GG23212333fooEv,
+ (VTBL_ENTRY)&_ZN9GG23212333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2321233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23212333barEv,_ZTv0_n20_N9GG23212333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2321233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23212333barEv,_ZTv0_n12_N9GG23212333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2321233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23212333fooEv,_ZTv0_n12_N9GG23212333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23212333barEv,_ZTv0_n16_N9GG23212333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2321233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23212333fooEv,_ZTv0_n20_N9GG23212333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23212333barEv,_ZTv0_n24_N9GG23212333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2321233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23212333fooEv,_ZTv0_n12_N9GG23212333fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2321233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23212333barEv,_ZTv0_n12_N9GG23212333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2321233[];
+extern void _ZN5EE2323barEv();
+static VTBL_ENTRY _tg__ZTV5EE232__9GG2321233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN5EE2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv)();
+extern void ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE232__9GG2321233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv)();
+extern void ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE232__9GG2321233[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv),
+};
+extern void _ZN5FF1233fooEv();
+extern void _ZN5FF1233barEv();
+static VTBL_ENTRY _tg__ZTV5FF123__9GG2321233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&_ZN5FF1233fooEv,
+ (VTBL_ENTRY)&_ZN5FF1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1233fooEv,_ZThn8_N5FF1233fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF123__9GG2321233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv)();
+extern void ABISELECT(_ZThn32_N5FF1233barEv,_ZThn16_N5FF1233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF123__9GG2321233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv),
+};
+static VTT_ENTRY vtt_GG2321233[] = {
+ {&(_ZTV9GG2321233[8]), 8,42},
+ {&(_ZTV9GG2321233[15]), 15,42},
+ {&(_ZTV9GG2321233[19]), 19,42},
+ {&(_ZTV9GG2321233[24]), 24,42},
+ {&(_ZTV9GG2321233[32]), 32,42},
+ {&(_ZTV9GG2321233[37]), 37,42},
+ {&(_ZTV9GG2321233[41]), 41,42},
+ {&(_tg__ZTV5EE232__9GG2321233[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE232__9GG2321233[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE232__9GG2321233[4]), 4,6},
+ {&(_tg__ZTV5FF123__9GG2321233[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF123__9GG2321233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF123__9GG2321233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2321233[];
+extern VTBL_ENTRY _ZTV9GG2321233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2321233[];
+static VTBL_ENTRY alt_thunk_names702[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1233barEv,_ZThn16_N5FF1233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1233fooEv,_ZThn8_N5FF1233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG23212333barEv,_ZTv0_n24_N9GG23212333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23212333barEv,_ZThn32_N9GG23212333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23212333fooEv,_ZTv0_n20_N9GG23212333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23212333fooEv,_ZThn32_N9GG23212333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23212333barEv,_ZTv0_n16_N9GG23212333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23212333barEv,_ZThn24_N9GG23212333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23212333fooEv,_ZTv0_n12_N9GG23212333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23212333fooEv,_ZThn40_N9GG23212333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23212333fooEv,_ZThn24_N9GG23212333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23212333barEv,_ZTv0_n12_N9GG23212333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG23212333barEv,_ZThn48_N9GG23212333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23212333barEv,_ZThn16_N9GG23212333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23212333barEv,_ZTv0_n20_N9GG23212333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23212333barEv,_ZThn8_N9GG23212333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2321233 = { "GG2321233", // class name
+ bases_GG2321233, 6,
+ &(vtc_GG2321233[0]), // expected_vtbl_contents
+ &(vtt_GG2321233[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2321233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2321233),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2321233),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names702,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2321313 : virtual EE232 , virtual FF131 {
+ int pg;
+ virtual void foo(); // _ZN9GG23213133fooEv
+ virtual void bar(); // _ZN9GG23213133barEv
+ ~GG2321313(); // tgen
+ GG2321313(); // tgen
+};
+//SIG(1 GG2321313) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG2321313 ::foo(){vfunc_called(this, "_ZN9GG23213133fooEv");}
+void GG2321313 ::bar(){vfunc_called(this, "_ZN9GG23213133barEv");}
+GG2321313 ::~GG2321313(){ note_dtor("GG2321313", this);} // tgen
+GG2321313 ::GG2321313(){ note_ctor("GG2321313", this);} // tgen
+
+static void Test_GG2321313()
+{
+ extern Class_Descriptor cd_GG2321313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2321313, buf);
+ GG2321313 *dp, &lv = *(dp=new (buf) GG2321313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2321313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2321313)");
+ check_base_class_offset(lv, (AA2*)(EE232*), ABISELECT(32,16), "GG2321313");
+ check_base_class_offset(lv, (BB3*)(EE232*), ABISELECT(48,24), "GG2321313");
+ check_base_class_offset(lv, (BB3*)(FF131*), ABISELECT(48,24), "GG2321313");
+ check_base_class_offset(lv, (EE232*), ABISELECT(16,8), "GG2321313");
+ check_base_class_offset(lv, (AA1*)(FF131*), ABISELECT(80,40), "GG2321313");
+ check_base_class_offset(lv, (FF131*), ABISELECT(64,32), "GG2321313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2321313.pg");
+ test_class_info(&lv, &cd_GG2321313);
+ dp->~GG2321313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2321313(Test_GG2321313, "GG2321313", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2321313C1Ev();
+extern void _ZN9GG2321313D1Ev();
+Name_Map name_map_GG2321313[] = {
+ NSPAIR(_ZN9GG2321313C1Ev),
+ NSPAIR(_ZN9GG2321313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE232;
+extern VTBL_ENTRY _ZTI5EE232[];
+extern VTBL_ENTRY _ZTV5EE232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE232[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF131;
+extern VTBL_ENTRY _ZTI5FF131[];
+extern VTBL_ENTRY _ZTV5FF131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF131[];
+static Base_Class bases_GG2321313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE232, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF131, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2321313[];
+extern void _ZN9GG23213133fooEv();
+extern void _ZN9GG23213133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23213133barEv,_ZTv0_n20_N9GG23213133barEv)();
+extern void ABISELECT(_ZThn16_N9GG23213133barEv,_ZThn8_N9GG23213133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23213133barEv,_ZTv0_n12_N9GG23213133barEv)();
+extern void ABISELECT(_ZThn32_N9GG23213133barEv,_ZThn16_N9GG23213133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23213133fooEv,_ZTv0_n12_N9GG23213133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23213133fooEv,_ZThn24_N9GG23213133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23213133barEv,_ZTv0_n16_N9GG23213133barEv)();
+extern void ABISELECT(_ZThn48_N9GG23213133barEv,_ZThn24_N9GG23213133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23213133fooEv,_ZTv0_n20_N9GG23213133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23213133fooEv,_ZThn32_N9GG23213133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23213133fooEv,_ZTv0_n12_N9GG23213133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23213133fooEv,_ZThn40_N9GG23213133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2321313[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2321313[0]),
+ (VTBL_ENTRY)&_ZN9GG23213133fooEv,
+ (VTBL_ENTRY)&_ZN9GG23213133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2321313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23213133barEv,_ZTv0_n20_N9GG23213133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2321313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23213133barEv,_ZTv0_n12_N9GG23213133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2321313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23213133fooEv,_ZTv0_n12_N9GG23213133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23213133barEv,_ZTv0_n16_N9GG23213133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2321313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23213133fooEv,_ZTv0_n20_N9GG23213133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2321313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23213133fooEv,_ZTv0_n12_N9GG23213133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2321313[];
+extern void _ZN5EE2323barEv();
+static VTBL_ENTRY _tg__ZTV5EE232__9GG2321313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN5EE2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv)();
+extern void ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE232__9GG2321313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv)();
+extern void ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE232__9GG2321313[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv),
+};
+extern void _ZN5FF1313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF131__9GG2321313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&_ZN5FF1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF131__9GG2321313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF131__9GG2321313[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG2321313[] = {
+ {&(_ZTV9GG2321313[7]), 7,35},
+ {&(_ZTV9GG2321313[14]), 14,35},
+ {&(_ZTV9GG2321313[18]), 18,35},
+ {&(_ZTV9GG2321313[23]), 23,35},
+ {&(_ZTV9GG2321313[30]), 30,35},
+ {&(_ZTV9GG2321313[34]), 34,35},
+ {&(_tg__ZTV5EE232__9GG2321313[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE232__9GG2321313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE232__9GG2321313[4]), 4,6},
+ {&(_tg__ZTV5FF131__9GG2321313[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF131__9GG2321313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF131__9GG2321313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2321313[];
+extern VTBL_ENTRY _ZTV9GG2321313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2321313[];
+static VTBL_ENTRY alt_thunk_names703[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23213133fooEv,_ZTv0_n20_N9GG23213133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23213133fooEv,_ZThn32_N9GG23213133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23213133barEv,_ZTv0_n16_N9GG23213133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23213133barEv,_ZThn24_N9GG23213133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23213133fooEv,_ZTv0_n12_N9GG23213133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23213133fooEv,_ZThn40_N9GG23213133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23213133fooEv,_ZThn24_N9GG23213133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23213133barEv,_ZTv0_n12_N9GG23213133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23213133barEv,_ZThn16_N9GG23213133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23213133barEv,_ZTv0_n20_N9GG23213133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23213133barEv,_ZThn8_N9GG23213133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2321313 = { "GG2321313", // class name
+ bases_GG2321313, 5,
+ &(vtc_GG2321313[0]), // expected_vtbl_contents
+ &(vtt_GG2321313[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2321313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2321313),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2321313),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names703,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2321323 : virtual EE232 , virtual FF132 {
+ int pg;
+ virtual void foo(); // _ZN9GG23213233fooEv
+ virtual void bar(); // _ZN9GG23213233barEv
+ ~GG2321323(); // tgen
+ GG2321323(); // tgen
+};
+//SIG(1 GG2321323) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG2321323 ::foo(){vfunc_called(this, "_ZN9GG23213233fooEv");}
+void GG2321323 ::bar(){vfunc_called(this, "_ZN9GG23213233barEv");}
+GG2321323 ::~GG2321323(){ note_dtor("GG2321323", this);} // tgen
+GG2321323 ::GG2321323(){ note_ctor("GG2321323", this);} // tgen
+
+static void Test_GG2321323()
+{
+ extern Class_Descriptor cd_GG2321323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2321323, buf);
+ GG2321323 *dp, &lv = *(dp=new (buf) GG2321323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2321323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2321323)");
+ check_base_class_offset(lv, (AA2*)(EE232*), ABISELECT(32,16), "GG2321323");
+ check_base_class_offset(lv, (BB3*)(EE232*), ABISELECT(48,24), "GG2321323");
+ check_base_class_offset(lv, (BB3*)(FF132*), ABISELECT(48,24), "GG2321323");
+ check_base_class_offset(lv, (EE232*), ABISELECT(16,8), "GG2321323");
+ check_base_class_offset(lv, (AA1*)(FF132*), ABISELECT(80,40), "GG2321323");
+ check_base_class_offset(lv, (FF132*), ABISELECT(64,32), "GG2321323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2321323.pg");
+ test_class_info(&lv, &cd_GG2321323);
+ dp->~GG2321323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2321323(Test_GG2321323, "GG2321323", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2321323C1Ev();
+extern void _ZN9GG2321323D1Ev();
+Name_Map name_map_GG2321323[] = {
+ NSPAIR(_ZN9GG2321323C1Ev),
+ NSPAIR(_ZN9GG2321323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE232;
+extern VTBL_ENTRY _ZTI5EE232[];
+extern VTBL_ENTRY _ZTV5EE232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE232[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF132;
+extern VTBL_ENTRY _ZTI5FF132[];
+extern VTBL_ENTRY _ZTV5FF132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF132[];
+static Base_Class bases_GG2321323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE232, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF132, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2321323[];
+extern void _ZN9GG23213233fooEv();
+extern void _ZN9GG23213233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23213233barEv,_ZTv0_n20_N9GG23213233barEv)();
+extern void ABISELECT(_ZThn16_N9GG23213233barEv,_ZThn8_N9GG23213233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23213233barEv,_ZTv0_n12_N9GG23213233barEv)();
+extern void ABISELECT(_ZThn32_N9GG23213233barEv,_ZThn16_N9GG23213233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23213233fooEv,_ZTv0_n12_N9GG23213233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23213233fooEv,_ZThn24_N9GG23213233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23213233barEv,_ZTv0_n16_N9GG23213233barEv)();
+extern void ABISELECT(_ZThn48_N9GG23213233barEv,_ZThn24_N9GG23213233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23213233barEv,_ZTv0_n20_N9GG23213233barEv)();
+extern void ABISELECT(_ZThn64_N9GG23213233barEv,_ZThn32_N9GG23213233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23213233fooEv,_ZTv0_n12_N9GG23213233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23213233fooEv,_ZThn40_N9GG23213233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2321323[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2321323[0]),
+ (VTBL_ENTRY)&_ZN9GG23213233fooEv,
+ (VTBL_ENTRY)&_ZN9GG23213233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2321323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23213233barEv,_ZTv0_n20_N9GG23213233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2321323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23213233barEv,_ZTv0_n12_N9GG23213233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2321323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23213233fooEv,_ZTv0_n12_N9GG23213233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23213233barEv,_ZTv0_n16_N9GG23213233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2321323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23213233barEv,_ZTv0_n20_N9GG23213233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2321323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23213233fooEv,_ZTv0_n12_N9GG23213233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2321323[];
+extern void _ZN5EE2323barEv();
+static VTBL_ENTRY _tg__ZTV5EE232__9GG2321323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN5EE2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv)();
+extern void ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE232__9GG2321323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv)();
+extern void ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE232__9GG2321323[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv),
+};
+extern void _ZN5FF1323barEv();
+static VTBL_ENTRY _tg__ZTV5FF132__9GG2321323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN5FF1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF132__9GG2321323[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF132__9GG2321323[] = {
+ ABISELECT(16,8),
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv),
+};
+static VTT_ENTRY vtt_GG2321323[] = {
+ {&(_ZTV9GG2321323[7]), 7,35},
+ {&(_ZTV9GG2321323[14]), 14,35},
+ {&(_ZTV9GG2321323[18]), 18,35},
+ {&(_ZTV9GG2321323[23]), 23,35},
+ {&(_ZTV9GG2321323[30]), 30,35},
+ {&(_ZTV9GG2321323[34]), 34,35},
+ {&(_tg__ZTV5EE232__9GG2321323[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE232__9GG2321323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE232__9GG2321323[4]), 4,6},
+ {&(_tg__ZTV5FF132__9GG2321323[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF132__9GG2321323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF132__9GG2321323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2321323[];
+extern VTBL_ENTRY _ZTV9GG2321323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2321323[];
+static VTBL_ENTRY alt_thunk_names704[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23213233barEv,_ZTv0_n16_N9GG23213233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23213233barEv,_ZThn24_N9GG23213233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23213233fooEv,_ZTv0_n12_N9GG23213233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23213233fooEv,_ZThn40_N9GG23213233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23213233fooEv,_ZThn24_N9GG23213233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23213233barEv,_ZTv0_n12_N9GG23213233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23213233barEv,_ZThn16_N9GG23213233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23213233barEv,_ZTv0_n20_N9GG23213233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23213233barEv,_ZThn32_N9GG23213233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23213233barEv,_ZThn8_N9GG23213233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2321323 = { "GG2321323", // class name
+ bases_GG2321323, 5,
+ &(vtc_GG2321323[0]), // expected_vtbl_contents
+ &(vtt_GG2321323[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2321323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2321323),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2321323),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names704,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2321333 : virtual EE232 , virtual FF133 {
+ int pg;
+ virtual void foo(); // _ZN9GG23213333fooEv
+ virtual void bar(); // _ZN9GG23213333barEv
+ ~GG2321333(); // tgen
+ GG2321333(); // tgen
+};
+//SIG(1 GG2321333) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2321333 ::foo(){vfunc_called(this, "_ZN9GG23213333fooEv");}
+void GG2321333 ::bar(){vfunc_called(this, "_ZN9GG23213333barEv");}
+GG2321333 ::~GG2321333(){ note_dtor("GG2321333", this);} // tgen
+GG2321333 ::GG2321333(){ note_ctor("GG2321333", this);} // tgen
+
+static void Test_GG2321333()
+{
+ extern Class_Descriptor cd_GG2321333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2321333, buf);
+ GG2321333 *dp, &lv = *(dp=new (buf) GG2321333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2321333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2321333)");
+ check_base_class_offset(lv, (AA2*)(EE232*), ABISELECT(32,16), "GG2321333");
+ check_base_class_offset(lv, (BB3*)(EE232*), ABISELECT(48,24), "GG2321333");
+ check_base_class_offset(lv, (BB3*)(FF133*), ABISELECT(48,24), "GG2321333");
+ check_base_class_offset(lv, (EE232*), ABISELECT(16,8), "GG2321333");
+ check_base_class_offset(lv, (AA1*)(FF133*), ABISELECT(80,40), "GG2321333");
+ check_base_class_offset(lv, (FF133*), ABISELECT(64,32), "GG2321333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2321333.pg");
+ test_class_info(&lv, &cd_GG2321333);
+ dp->~GG2321333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2321333(Test_GG2321333, "GG2321333", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2321333C1Ev();
+extern void _ZN9GG2321333D1Ev();
+Name_Map name_map_GG2321333[] = {
+ NSPAIR(_ZN9GG2321333C1Ev),
+ NSPAIR(_ZN9GG2321333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE232;
+extern VTBL_ENTRY _ZTI5EE232[];
+extern VTBL_ENTRY _ZTV5EE232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE232[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF133;
+extern VTBL_ENTRY _ZTI5FF133[];
+extern VTBL_ENTRY _ZTV5FF133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF133[];
+static Base_Class bases_GG2321333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE232, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF133, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2321333[];
+extern void _ZN9GG23213333fooEv();
+extern void _ZN9GG23213333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23213333barEv,_ZTv0_n20_N9GG23213333barEv)();
+extern void ABISELECT(_ZThn16_N9GG23213333barEv,_ZThn8_N9GG23213333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23213333barEv,_ZTv0_n12_N9GG23213333barEv)();
+extern void ABISELECT(_ZThn32_N9GG23213333barEv,_ZThn16_N9GG23213333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23213333fooEv,_ZTv0_n12_N9GG23213333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23213333fooEv,_ZThn24_N9GG23213333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23213333barEv,_ZTv0_n16_N9GG23213333barEv)();
+extern void ABISELECT(_ZThn48_N9GG23213333barEv,_ZThn24_N9GG23213333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23213333fooEv,_ZTv0_n20_N9GG23213333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23213333fooEv,_ZThn32_N9GG23213333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23213333barEv,_ZTv0_n24_N9GG23213333barEv)();
+extern void ABISELECT(_ZThn64_N9GG23213333barEv,_ZThn32_N9GG23213333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23213333fooEv,_ZTv0_n12_N9GG23213333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23213333fooEv,_ZThn40_N9GG23213333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2321333[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2321333[0]),
+ (VTBL_ENTRY)&_ZN9GG23213333fooEv,
+ (VTBL_ENTRY)&_ZN9GG23213333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2321333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23213333barEv,_ZTv0_n20_N9GG23213333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2321333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23213333barEv,_ZTv0_n12_N9GG23213333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2321333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23213333fooEv,_ZTv0_n12_N9GG23213333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23213333barEv,_ZTv0_n16_N9GG23213333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2321333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23213333fooEv,_ZTv0_n20_N9GG23213333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23213333barEv,_ZTv0_n24_N9GG23213333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2321333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23213333fooEv,_ZTv0_n12_N9GG23213333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2321333[];
+extern void _ZN5EE2323barEv();
+static VTBL_ENTRY _tg__ZTV5EE232__9GG2321333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN5EE2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv)();
+extern void ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE232__9GG2321333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv)();
+extern void ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE232__9GG2321333[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv),
+};
+extern void _ZN5FF1333fooEv();
+extern void _ZN5FF1333barEv();
+static VTBL_ENTRY _tg__ZTV5FF133__9GG2321333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&_ZN5FF1333fooEv,
+ (VTBL_ENTRY)&_ZN5FF1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF133__9GG2321333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF133__9GG2321333[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv),
+};
+static VTT_ENTRY vtt_GG2321333[] = {
+ {&(_ZTV9GG2321333[7]), 7,37},
+ {&(_ZTV9GG2321333[14]), 14,37},
+ {&(_ZTV9GG2321333[18]), 18,37},
+ {&(_ZTV9GG2321333[23]), 23,37},
+ {&(_ZTV9GG2321333[31]), 31,37},
+ {&(_ZTV9GG2321333[36]), 36,37},
+ {&(_tg__ZTV5EE232__9GG2321333[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE232__9GG2321333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE232__9GG2321333[4]), 4,6},
+ {&(_tg__ZTV5FF133__9GG2321333[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF133__9GG2321333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF133__9GG2321333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2321333[];
+extern VTBL_ENTRY _ZTV9GG2321333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2321333[];
+static VTBL_ENTRY alt_thunk_names705[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG23213333barEv,_ZTv0_n24_N9GG23213333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23213333barEv,_ZThn32_N9GG23213333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23213333fooEv,_ZTv0_n20_N9GG23213333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23213333fooEv,_ZThn32_N9GG23213333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23213333barEv,_ZTv0_n16_N9GG23213333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23213333barEv,_ZThn24_N9GG23213333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23213333fooEv,_ZTv0_n12_N9GG23213333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23213333fooEv,_ZThn40_N9GG23213333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23213333fooEv,_ZThn24_N9GG23213333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23213333barEv,_ZTv0_n12_N9GG23213333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23213333barEv,_ZThn16_N9GG23213333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23213333barEv,_ZTv0_n20_N9GG23213333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23213333barEv,_ZThn8_N9GG23213333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2321333 = { "GG2321333", // class name
+ bases_GG2321333, 5,
+ &(vtc_GG2321333[0]), // expected_vtbl_contents
+ &(vtt_GG2321333[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2321333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2321333),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2321333),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names705,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2322113 : virtual EE232 , virtual FF211 {
+ int pg;
+ virtual void foo(); // _ZN9GG23221133fooEv
+ virtual void bar(); // _ZN9GG23221133barEv
+ ~GG2322113(); // tgen
+ GG2322113(); // tgen
+};
+//SIG(1 GG2322113) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2322113 ::foo(){vfunc_called(this, "_ZN9GG23221133fooEv");}
+void GG2322113 ::bar(){vfunc_called(this, "_ZN9GG23221133barEv");}
+GG2322113 ::~GG2322113(){ note_dtor("GG2322113", this);} // tgen
+GG2322113 ::GG2322113(){ note_ctor("GG2322113", this);} // tgen
+
+static void Test_GG2322113()
+{
+ extern Class_Descriptor cd_GG2322113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2322113, buf);
+ GG2322113 *dp, &lv = *(dp=new (buf) GG2322113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2322113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2322113)");
+ check_base_class_offset(lv, (AA2*)(EE232*), ABISELECT(32,16), "GG2322113");
+ check_base_class_offset(lv, (AA2*)(FF211*), ABISELECT(32,16), "GG2322113");
+ check_base_class_offset(lv, (BB3*)(EE232*), ABISELECT(48,24), "GG2322113");
+ check_base_class_offset(lv, (EE232*), ABISELECT(16,8), "GG2322113");
+ check_base_class_offset(lv, (BB1*)(FF211*), ABISELECT(80,40), "GG2322113");
+ check_base_class_offset(lv, (FF211*), ABISELECT(64,32), "GG2322113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2322113.pg");
+ test_class_info(&lv, &cd_GG2322113);
+ dp->~GG2322113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2322113(Test_GG2322113, "GG2322113", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2322113C1Ev();
+extern void _ZN9GG2322113D1Ev();
+Name_Map name_map_GG2322113[] = {
+ NSPAIR(_ZN9GG2322113C1Ev),
+ NSPAIR(_ZN9GG2322113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE232;
+extern VTBL_ENTRY _ZTI5EE232[];
+extern VTBL_ENTRY _ZTV5EE232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE232[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF211;
+extern VTBL_ENTRY _ZTI5FF211[];
+extern VTBL_ENTRY _ZTV5FF211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF211[];
+static Base_Class bases_GG2322113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE232, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF211, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2322113[];
+extern void _ZN9GG23221133fooEv();
+extern void _ZN9GG23221133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23221133barEv,_ZTv0_n20_N9GG23221133barEv)();
+extern void ABISELECT(_ZThn16_N9GG23221133barEv,_ZThn8_N9GG23221133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23221133barEv,_ZTv0_n12_N9GG23221133barEv)();
+extern void ABISELECT(_ZThn32_N9GG23221133barEv,_ZThn16_N9GG23221133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23221133fooEv,_ZTv0_n12_N9GG23221133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23221133fooEv,_ZThn24_N9GG23221133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23221133barEv,_ZTv0_n16_N9GG23221133barEv)();
+extern void ABISELECT(_ZThn48_N9GG23221133barEv,_ZThn24_N9GG23221133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23221133fooEv,_ZTv0_n20_N9GG23221133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23221133fooEv,_ZThn32_N9GG23221133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23221133fooEv,_ZTv0_n12_N9GG23221133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23221133fooEv,_ZThn40_N9GG23221133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2322113[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2322113[0]),
+ (VTBL_ENTRY)&_ZN9GG23221133fooEv,
+ (VTBL_ENTRY)&_ZN9GG23221133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2322113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23221133barEv,_ZTv0_n20_N9GG23221133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2322113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23221133barEv,_ZTv0_n12_N9GG23221133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2322113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23221133fooEv,_ZTv0_n12_N9GG23221133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23221133barEv,_ZTv0_n16_N9GG23221133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2322113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23221133fooEv,_ZTv0_n20_N9GG23221133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2322113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23221133fooEv,_ZTv0_n12_N9GG23221133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2322113[];
+extern void _ZN5EE2323barEv();
+static VTBL_ENTRY _tg__ZTV5EE232__9GG2322113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN5EE2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv)();
+extern void ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE232__9GG2322113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv)();
+extern void ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE232__9GG2322113[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv),
+};
+extern void _ZN5FF2113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF211__9GG2322113[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN5FF2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF211__9GG2322113[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF2113fooEv,_ZThn8_N5FF2113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF211__9GG2322113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv),
+};
+static VTT_ENTRY vtt_GG2322113[] = {
+ {&(_ZTV9GG2322113[7]), 7,35},
+ {&(_ZTV9GG2322113[14]), 14,35},
+ {&(_ZTV9GG2322113[18]), 18,35},
+ {&(_ZTV9GG2322113[23]), 23,35},
+ {&(_ZTV9GG2322113[30]), 30,35},
+ {&(_ZTV9GG2322113[34]), 34,35},
+ {&(_tg__ZTV5EE232__9GG2322113[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE232__9GG2322113[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE232__9GG2322113[4]), 4,6},
+ {&(_tg__ZTV5FF211__9GG2322113[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF211__9GG2322113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF211__9GG2322113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2322113[];
+extern VTBL_ENTRY _ZTV9GG2322113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2322113[];
+static VTBL_ENTRY alt_thunk_names706[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2113fooEv,_ZThn8_N5FF2113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23221133fooEv,_ZTv0_n20_N9GG23221133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23221133fooEv,_ZThn32_N9GG23221133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23221133barEv,_ZTv0_n16_N9GG23221133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23221133barEv,_ZThn24_N9GG23221133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23221133fooEv,_ZTv0_n12_N9GG23221133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23221133fooEv,_ZThn40_N9GG23221133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23221133fooEv,_ZThn24_N9GG23221133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23221133barEv,_ZTv0_n12_N9GG23221133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23221133barEv,_ZThn16_N9GG23221133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23221133barEv,_ZTv0_n20_N9GG23221133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23221133barEv,_ZThn8_N9GG23221133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2322113 = { "GG2322113", // class name
+ bases_GG2322113, 5,
+ &(vtc_GG2322113[0]), // expected_vtbl_contents
+ &(vtt_GG2322113[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2322113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2322113),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2322113),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names706,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2322123 : virtual EE232 , virtual FF212 {
+ int pg;
+ virtual void foo(); // _ZN9GG23221233fooEv
+ virtual void bar(); // _ZN9GG23221233barEv
+ ~GG2322123(); // tgen
+ GG2322123(); // tgen
+};
+//SIG(1 GG2322123) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2322123 ::foo(){vfunc_called(this, "_ZN9GG23221233fooEv");}
+void GG2322123 ::bar(){vfunc_called(this, "_ZN9GG23221233barEv");}
+GG2322123 ::~GG2322123(){ note_dtor("GG2322123", this);} // tgen
+GG2322123 ::GG2322123(){ note_ctor("GG2322123", this);} // tgen
+
+static void Test_GG2322123()
+{
+ extern Class_Descriptor cd_GG2322123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2322123, buf);
+ GG2322123 *dp, &lv = *(dp=new (buf) GG2322123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2322123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2322123)");
+ check_base_class_offset(lv, (AA2*)(EE232*), ABISELECT(32,16), "GG2322123");
+ check_base_class_offset(lv, (AA2*)(FF212*), ABISELECT(32,16), "GG2322123");
+ check_base_class_offset(lv, (BB3*)(EE232*), ABISELECT(48,24), "GG2322123");
+ check_base_class_offset(lv, (EE232*), ABISELECT(16,8), "GG2322123");
+ check_base_class_offset(lv, (BB1*)(FF212*), ABISELECT(80,40), "GG2322123");
+ check_base_class_offset(lv, (FF212*), ABISELECT(64,32), "GG2322123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2322123.pg");
+ test_class_info(&lv, &cd_GG2322123);
+ dp->~GG2322123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2322123(Test_GG2322123, "GG2322123", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2322123C1Ev();
+extern void _ZN9GG2322123D1Ev();
+Name_Map name_map_GG2322123[] = {
+ NSPAIR(_ZN9GG2322123C1Ev),
+ NSPAIR(_ZN9GG2322123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE232;
+extern VTBL_ENTRY _ZTI5EE232[];
+extern VTBL_ENTRY _ZTV5EE232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE232[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF212;
+extern VTBL_ENTRY _ZTI5FF212[];
+extern VTBL_ENTRY _ZTV5FF212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF212[];
+static Base_Class bases_GG2322123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE232, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF212, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2322123[];
+extern void _ZN9GG23221233fooEv();
+extern void _ZN9GG23221233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23221233barEv,_ZTv0_n20_N9GG23221233barEv)();
+extern void ABISELECT(_ZThn16_N9GG23221233barEv,_ZThn8_N9GG23221233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23221233barEv,_ZTv0_n12_N9GG23221233barEv)();
+extern void ABISELECT(_ZThn32_N9GG23221233barEv,_ZThn16_N9GG23221233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23221233fooEv,_ZTv0_n12_N9GG23221233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23221233fooEv,_ZThn24_N9GG23221233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23221233barEv,_ZTv0_n16_N9GG23221233barEv)();
+extern void ABISELECT(_ZThn48_N9GG23221233barEv,_ZThn24_N9GG23221233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23221233barEv,_ZTv0_n20_N9GG23221233barEv)();
+extern void ABISELECT(_ZThn64_N9GG23221233barEv,_ZThn32_N9GG23221233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23221233fooEv,_ZTv0_n12_N9GG23221233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23221233fooEv,_ZThn40_N9GG23221233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2322123[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2322123[0]),
+ (VTBL_ENTRY)&_ZN9GG23221233fooEv,
+ (VTBL_ENTRY)&_ZN9GG23221233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2322123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23221233barEv,_ZTv0_n20_N9GG23221233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2322123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23221233barEv,_ZTv0_n12_N9GG23221233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2322123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23221233fooEv,_ZTv0_n12_N9GG23221233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23221233barEv,_ZTv0_n16_N9GG23221233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2322123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23221233barEv,_ZTv0_n20_N9GG23221233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2322123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23221233fooEv,_ZTv0_n12_N9GG23221233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2322123[];
+extern void _ZN5EE2323barEv();
+static VTBL_ENTRY _tg__ZTV5EE232__9GG2322123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN5EE2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv)();
+extern void ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE232__9GG2322123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv)();
+extern void ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE232__9GG2322123[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv),
+};
+extern void _ZN5FF2123barEv();
+static VTBL_ENTRY _tg__ZTV5FF212__9GG2322123[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN5FF2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF212__9GG2322123[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF212__9GG2322123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG2322123[] = {
+ {&(_ZTV9GG2322123[7]), 7,35},
+ {&(_ZTV9GG2322123[14]), 14,35},
+ {&(_ZTV9GG2322123[18]), 18,35},
+ {&(_ZTV9GG2322123[23]), 23,35},
+ {&(_ZTV9GG2322123[30]), 30,35},
+ {&(_ZTV9GG2322123[34]), 34,35},
+ {&(_tg__ZTV5EE232__9GG2322123[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE232__9GG2322123[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE232__9GG2322123[4]), 4,6},
+ {&(_tg__ZTV5FF212__9GG2322123[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF212__9GG2322123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF212__9GG2322123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2322123[];
+extern VTBL_ENTRY _ZTV9GG2322123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2322123[];
+static VTBL_ENTRY alt_thunk_names707[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23221233barEv,_ZTv0_n16_N9GG23221233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23221233barEv,_ZThn24_N9GG23221233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23221233fooEv,_ZTv0_n12_N9GG23221233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23221233fooEv,_ZThn40_N9GG23221233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23221233fooEv,_ZThn24_N9GG23221233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23221233barEv,_ZTv0_n12_N9GG23221233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23221233barEv,_ZThn16_N9GG23221233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23221233barEv,_ZTv0_n20_N9GG23221233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23221233barEv,_ZThn32_N9GG23221233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23221233barEv,_ZThn8_N9GG23221233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2322123 = { "GG2322123", // class name
+ bases_GG2322123, 5,
+ &(vtc_GG2322123[0]), // expected_vtbl_contents
+ &(vtt_GG2322123[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2322123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2322123),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2322123),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names707,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2322133 : virtual EE232 , virtual FF213 {
+ int pg;
+ virtual void foo(); // _ZN9GG23221333fooEv
+ virtual void bar(); // _ZN9GG23221333barEv
+ ~GG2322133(); // tgen
+ GG2322133(); // tgen
+};
+//SIG(1 GG2322133) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2322133 ::foo(){vfunc_called(this, "_ZN9GG23221333fooEv");}
+void GG2322133 ::bar(){vfunc_called(this, "_ZN9GG23221333barEv");}
+GG2322133 ::~GG2322133(){ note_dtor("GG2322133", this);} // tgen
+GG2322133 ::GG2322133(){ note_ctor("GG2322133", this);} // tgen
+
+static void Test_GG2322133()
+{
+ extern Class_Descriptor cd_GG2322133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2322133, buf);
+ GG2322133 *dp, &lv = *(dp=new (buf) GG2322133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2322133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2322133)");
+ check_base_class_offset(lv, (AA2*)(EE232*), ABISELECT(32,16), "GG2322133");
+ check_base_class_offset(lv, (AA2*)(FF213*), ABISELECT(32,16), "GG2322133");
+ check_base_class_offset(lv, (BB3*)(EE232*), ABISELECT(48,24), "GG2322133");
+ check_base_class_offset(lv, (EE232*), ABISELECT(16,8), "GG2322133");
+ check_base_class_offset(lv, (BB1*)(FF213*), ABISELECT(80,40), "GG2322133");
+ check_base_class_offset(lv, (FF213*), ABISELECT(64,32), "GG2322133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2322133.pg");
+ test_class_info(&lv, &cd_GG2322133);
+ dp->~GG2322133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2322133(Test_GG2322133, "GG2322133", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2322133C1Ev();
+extern void _ZN9GG2322133D1Ev();
+Name_Map name_map_GG2322133[] = {
+ NSPAIR(_ZN9GG2322133C1Ev),
+ NSPAIR(_ZN9GG2322133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE232;
+extern VTBL_ENTRY _ZTI5EE232[];
+extern VTBL_ENTRY _ZTV5EE232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE232[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF213;
+extern VTBL_ENTRY _ZTI5FF213[];
+extern VTBL_ENTRY _ZTV5FF213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF213[];
+static Base_Class bases_GG2322133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE232, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF213, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2322133[];
+extern void _ZN9GG23221333fooEv();
+extern void _ZN9GG23221333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23221333barEv,_ZTv0_n20_N9GG23221333barEv)();
+extern void ABISELECT(_ZThn16_N9GG23221333barEv,_ZThn8_N9GG23221333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23221333barEv,_ZTv0_n12_N9GG23221333barEv)();
+extern void ABISELECT(_ZThn32_N9GG23221333barEv,_ZThn16_N9GG23221333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23221333fooEv,_ZTv0_n12_N9GG23221333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23221333fooEv,_ZThn24_N9GG23221333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23221333barEv,_ZTv0_n16_N9GG23221333barEv)();
+extern void ABISELECT(_ZThn48_N9GG23221333barEv,_ZThn24_N9GG23221333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23221333fooEv,_ZTv0_n20_N9GG23221333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23221333fooEv,_ZThn32_N9GG23221333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23221333barEv,_ZTv0_n24_N9GG23221333barEv)();
+extern void ABISELECT(_ZThn64_N9GG23221333barEv,_ZThn32_N9GG23221333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23221333fooEv,_ZTv0_n12_N9GG23221333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23221333fooEv,_ZThn40_N9GG23221333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2322133[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2322133[0]),
+ (VTBL_ENTRY)&_ZN9GG23221333fooEv,
+ (VTBL_ENTRY)&_ZN9GG23221333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2322133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23221333barEv,_ZTv0_n20_N9GG23221333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2322133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23221333barEv,_ZTv0_n12_N9GG23221333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2322133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23221333fooEv,_ZTv0_n12_N9GG23221333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23221333barEv,_ZTv0_n16_N9GG23221333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2322133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23221333fooEv,_ZTv0_n20_N9GG23221333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23221333barEv,_ZTv0_n24_N9GG23221333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2322133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23221333fooEv,_ZTv0_n12_N9GG23221333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2322133[];
+extern void _ZN5EE2323barEv();
+static VTBL_ENTRY _tg__ZTV5EE232__9GG2322133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN5EE2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv)();
+extern void ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE232__9GG2322133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv)();
+extern void ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE232__9GG2322133[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv),
+};
+extern void _ZN5FF2133fooEv();
+extern void _ZN5FF2133barEv();
+static VTBL_ENTRY _tg__ZTV5FF213__9GG2322133[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&_ZN5FF2133fooEv,
+ (VTBL_ENTRY)&_ZN5FF2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF213__9GG2322133[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF2133fooEv,_ZThn8_N5FF2133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF213__9GG2322133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv),
+};
+static VTT_ENTRY vtt_GG2322133[] = {
+ {&(_ZTV9GG2322133[7]), 7,37},
+ {&(_ZTV9GG2322133[14]), 14,37},
+ {&(_ZTV9GG2322133[18]), 18,37},
+ {&(_ZTV9GG2322133[23]), 23,37},
+ {&(_ZTV9GG2322133[31]), 31,37},
+ {&(_ZTV9GG2322133[36]), 36,37},
+ {&(_tg__ZTV5EE232__9GG2322133[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE232__9GG2322133[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE232__9GG2322133[4]), 4,6},
+ {&(_tg__ZTV5FF213__9GG2322133[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF213__9GG2322133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF213__9GG2322133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2322133[];
+extern VTBL_ENTRY _ZTV9GG2322133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2322133[];
+static VTBL_ENTRY alt_thunk_names708[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2133fooEv,_ZThn8_N5FF2133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG23221333barEv,_ZTv0_n24_N9GG23221333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23221333barEv,_ZThn32_N9GG23221333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23221333fooEv,_ZTv0_n20_N9GG23221333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23221333fooEv,_ZThn32_N9GG23221333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23221333barEv,_ZTv0_n16_N9GG23221333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23221333barEv,_ZThn24_N9GG23221333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23221333fooEv,_ZTv0_n12_N9GG23221333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23221333fooEv,_ZThn40_N9GG23221333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23221333fooEv,_ZThn24_N9GG23221333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23221333barEv,_ZTv0_n12_N9GG23221333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23221333barEv,_ZThn16_N9GG23221333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23221333barEv,_ZTv0_n20_N9GG23221333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23221333barEv,_ZThn8_N9GG23221333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2322133 = { "GG2322133", // class name
+ bases_GG2322133, 5,
+ &(vtc_GG2322133[0]), // expected_vtbl_contents
+ &(vtt_GG2322133[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2322133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2322133),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2322133),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names708,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2322213 : virtual EE232 , virtual FF221 {
+ int pg;
+ virtual void foo(); // _ZN9GG23222133fooEv
+ virtual void bar(); // _ZN9GG23222133barEv
+ ~GG2322213(); // tgen
+ GG2322213(); // tgen
+};
+//SIG(1 GG2322213) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2322213 ::foo(){vfunc_called(this, "_ZN9GG23222133fooEv");}
+void GG2322213 ::bar(){vfunc_called(this, "_ZN9GG23222133barEv");}
+GG2322213 ::~GG2322213(){ note_dtor("GG2322213", this);} // tgen
+GG2322213 ::GG2322213(){ note_ctor("GG2322213", this);} // tgen
+
+static void Test_GG2322213()
+{
+ extern Class_Descriptor cd_GG2322213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2322213, buf);
+ GG2322213 *dp, &lv = *(dp=new (buf) GG2322213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2322213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2322213)");
+ check_base_class_offset(lv, (AA2*)(EE232*), ABISELECT(32,16), "GG2322213");
+ check_base_class_offset(lv, (AA2*)(FF221*), ABISELECT(32,16), "GG2322213");
+ check_base_class_offset(lv, (BB3*)(EE232*), ABISELECT(48,24), "GG2322213");
+ check_base_class_offset(lv, (EE232*), ABISELECT(16,8), "GG2322213");
+ check_base_class_offset(lv, (BB2*)(FF221*), ABISELECT(80,40), "GG2322213");
+ check_base_class_offset(lv, (FF221*), ABISELECT(64,32), "GG2322213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2322213.pg");
+ test_class_info(&lv, &cd_GG2322213);
+ dp->~GG2322213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2322213(Test_GG2322213, "GG2322213", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2322213C1Ev();
+extern void _ZN9GG2322213D1Ev();
+Name_Map name_map_GG2322213[] = {
+ NSPAIR(_ZN9GG2322213C1Ev),
+ NSPAIR(_ZN9GG2322213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE232;
+extern VTBL_ENTRY _ZTI5EE232[];
+extern VTBL_ENTRY _ZTV5EE232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE232[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF221;
+extern VTBL_ENTRY _ZTI5FF221[];
+extern VTBL_ENTRY _ZTV5FF221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF221[];
+static Base_Class bases_GG2322213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE232, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF221, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2322213[];
+extern void _ZN9GG23222133fooEv();
+extern void _ZN9GG23222133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23222133barEv,_ZTv0_n20_N9GG23222133barEv)();
+extern void ABISELECT(_ZThn16_N9GG23222133barEv,_ZThn8_N9GG23222133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23222133barEv,_ZTv0_n12_N9GG23222133barEv)();
+extern void ABISELECT(_ZThn32_N9GG23222133barEv,_ZThn16_N9GG23222133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23222133fooEv,_ZTv0_n12_N9GG23222133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23222133fooEv,_ZThn24_N9GG23222133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23222133barEv,_ZTv0_n16_N9GG23222133barEv)();
+extern void ABISELECT(_ZThn48_N9GG23222133barEv,_ZThn24_N9GG23222133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23222133fooEv,_ZTv0_n20_N9GG23222133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23222133fooEv,_ZThn32_N9GG23222133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23222133barEv,_ZTv0_n12_N9GG23222133barEv)();
+extern void ABISELECT(_ZThn80_N9GG23222133barEv,_ZThn40_N9GG23222133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2322213[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2322213[0]),
+ (VTBL_ENTRY)&_ZN9GG23222133fooEv,
+ (VTBL_ENTRY)&_ZN9GG23222133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2322213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23222133barEv,_ZTv0_n20_N9GG23222133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2322213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23222133barEv,_ZTv0_n12_N9GG23222133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2322213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23222133fooEv,_ZTv0_n12_N9GG23222133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23222133barEv,_ZTv0_n16_N9GG23222133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2322213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23222133fooEv,_ZTv0_n20_N9GG23222133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2322213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23222133barEv,_ZTv0_n12_N9GG23222133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2322213[];
+extern void _ZN5EE2323barEv();
+static VTBL_ENTRY _tg__ZTV5EE232__9GG2322213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN5EE2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv)();
+extern void ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE232__9GG2322213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv)();
+extern void ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE232__9GG2322213[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv),
+};
+extern void _ZN5FF2213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF221__9GG2322213[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN5FF2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF221__9GG2322213[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF221__9GG2322213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG2322213[] = {
+ {&(_ZTV9GG2322213[7]), 7,35},
+ {&(_ZTV9GG2322213[14]), 14,35},
+ {&(_ZTV9GG2322213[18]), 18,35},
+ {&(_ZTV9GG2322213[23]), 23,35},
+ {&(_ZTV9GG2322213[30]), 30,35},
+ {&(_ZTV9GG2322213[34]), 34,35},
+ {&(_tg__ZTV5EE232__9GG2322213[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE232__9GG2322213[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE232__9GG2322213[4]), 4,6},
+ {&(_tg__ZTV5FF221__9GG2322213[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF221__9GG2322213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF221__9GG2322213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2322213[];
+extern VTBL_ENTRY _ZTV9GG2322213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2322213[];
+static VTBL_ENTRY alt_thunk_names709[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23222133fooEv,_ZTv0_n20_N9GG23222133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23222133fooEv,_ZThn32_N9GG23222133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23222133barEv,_ZTv0_n16_N9GG23222133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23222133barEv,_ZThn24_N9GG23222133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23222133fooEv,_ZTv0_n12_N9GG23222133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23222133fooEv,_ZThn24_N9GG23222133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23222133barEv,_ZTv0_n12_N9GG23222133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23222133barEv,_ZThn40_N9GG23222133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23222133barEv,_ZThn16_N9GG23222133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23222133barEv,_ZTv0_n20_N9GG23222133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23222133barEv,_ZThn8_N9GG23222133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2322213 = { "GG2322213", // class name
+ bases_GG2322213, 5,
+ &(vtc_GG2322213[0]), // expected_vtbl_contents
+ &(vtt_GG2322213[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2322213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2322213),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2322213),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names709,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2322222 : virtual EE232 , virtual FF222 {
+ int pg;
+ virtual void bar(); // _ZN9GG23222223barEv
+ ~GG2322222(); // tgen
+ GG2322222(); // tgen
+};
+//SIG(1 GG2322222) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 v1 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v1 Fi} v1 Fi}
+
+
+void GG2322222 ::bar(){vfunc_called(this, "_ZN9GG23222223barEv");}
+GG2322222 ::~GG2322222(){ note_dtor("GG2322222", this);} // tgen
+GG2322222 ::GG2322222(){ note_ctor("GG2322222", this);} // tgen
+
+static void Test_GG2322222()
+{
+ extern Class_Descriptor cd_GG2322222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2322222, buf);
+ GG2322222 *dp, &lv = *(dp=new (buf) GG2322222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2322222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2322222)");
+ check_base_class_offset(lv, (AA2*)(EE232*), ABISELECT(32,16), "GG2322222");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(32,16), "GG2322222");
+ check_base_class_offset(lv, (BB3*)(EE232*), ABISELECT(48,24), "GG2322222");
+ check_base_class_offset(lv, (EE232*), ABISELECT(16,8), "GG2322222");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(80,40), "GG2322222");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG2322222");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2322222.pg");
+ test_class_info(&lv, &cd_GG2322222);
+ dp->~GG2322222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2322222(Test_GG2322222, "GG2322222", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2322222C1Ev();
+extern void _ZN9GG2322222D1Ev();
+Name_Map name_map_GG2322222[] = {
+ NSPAIR(_ZN9GG2322222C1Ev),
+ NSPAIR(_ZN9GG2322222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE232;
+extern VTBL_ENTRY _ZTI5EE232[];
+extern VTBL_ENTRY _ZTV5EE232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE232[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG2322222[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE232, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2322222[];
+extern void _ZN9GG23222223barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23222223barEv,_ZTv0_n20_N9GG23222223barEv)();
+extern void ABISELECT(_ZThn16_N9GG23222223barEv,_ZThn8_N9GG23222223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23222223barEv,_ZTv0_n12_N9GG23222223barEv)();
+extern void ABISELECT(_ZThn32_N9GG23222223barEv,_ZThn16_N9GG23222223barEv)() __attribute__((weak));
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N9GG23222223barEv,_ZTv0_n16_N9GG23222223barEv)();
+extern void ABISELECT(_ZThn48_N9GG23222223barEv,_ZThn24_N9GG23222223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23222223barEv,_ZTv0_n20_N9GG23222223barEv)();
+extern void ABISELECT(_ZThn64_N9GG23222223barEv,_ZThn32_N9GG23222223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23222223barEv,_ZTv0_n12_N9GG23222223barEv)();
+extern void ABISELECT(_ZThn80_N9GG23222223barEv,_ZThn40_N9GG23222223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2322222[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2322222[0]),
+ (VTBL_ENTRY)&_ZN9GG23222223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2322222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23222223barEv,_ZTv0_n20_N9GG23222223barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2322222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23222223barEv,_ZTv0_n12_N9GG23222223barEv),
+ ABISELECT(-48,-24),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2322222[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23222223barEv,_ZTv0_n16_N9GG23222223barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2322222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23222223barEv,_ZTv0_n20_N9GG23222223barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2322222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23222223barEv,_ZTv0_n12_N9GG23222223barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2322222[];
+extern void _ZN5EE2323barEv();
+static VTBL_ENTRY _tg__ZTV5EE232__9GG2322222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN5EE2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv)();
+extern void ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE232__9GG2322222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv)();
+extern void ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE232__9GG2322222[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv),
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG2322222[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG2322222[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG2322222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG2322222[] = {
+ {&(_ZTV9GG2322222[7]), 7,34},
+ {&(_ZTV9GG2322222[13]), 13,34},
+ {&(_ZTV9GG2322222[17]), 17,34},
+ {&(_ZTV9GG2322222[22]), 22,34},
+ {&(_ZTV9GG2322222[29]), 29,34},
+ {&(_ZTV9GG2322222[33]), 33,34},
+ {&(_tg__ZTV5EE232__9GG2322222[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE232__9GG2322222[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE232__9GG2322222[4]), 4,6},
+ {&(_tg__ZTV5FF222__9GG2322222[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG2322222[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG2322222[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2322222[];
+extern VTBL_ENTRY _ZTV9GG2322222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2322222[];
+static VTBL_ENTRY alt_thunk_names710[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23222223barEv,_ZTv0_n16_N9GG23222223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23222223barEv,_ZThn24_N9GG23222223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23222223barEv,_ZTv0_n12_N9GG23222223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23222223barEv,_ZThn40_N9GG23222223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23222223barEv,_ZThn16_N9GG23222223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23222223barEv,_ZTv0_n20_N9GG23222223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23222223barEv,_ZThn32_N9GG23222223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23222223barEv,_ZThn8_N9GG23222223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2322222 = { "GG2322222", // class name
+ bases_GG2322222, 5,
+ &(vtc_GG2322222[0]), // expected_vtbl_contents
+ &(vtt_GG2322222[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2322222),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2322222),34, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2322222),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names710,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2322223 : virtual EE232 , virtual FF222 {
+ int pg;
+ virtual void foo(); // _ZN9GG23222233fooEv
+ virtual void bar(); // _ZN9GG23222233barEv
+ ~GG2322223(); // tgen
+ GG2322223(); // tgen
+};
+//SIG(1 GG2322223) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2322223 ::foo(){vfunc_called(this, "_ZN9GG23222233fooEv");}
+void GG2322223 ::bar(){vfunc_called(this, "_ZN9GG23222233barEv");}
+GG2322223 ::~GG2322223(){ note_dtor("GG2322223", this);} // tgen
+GG2322223 ::GG2322223(){ note_ctor("GG2322223", this);} // tgen
+
+static void Test_GG2322223()
+{
+ extern Class_Descriptor cd_GG2322223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2322223, buf);
+ GG2322223 *dp, &lv = *(dp=new (buf) GG2322223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2322223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2322223)");
+ check_base_class_offset(lv, (AA2*)(EE232*), ABISELECT(32,16), "GG2322223");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(32,16), "GG2322223");
+ check_base_class_offset(lv, (BB3*)(EE232*), ABISELECT(48,24), "GG2322223");
+ check_base_class_offset(lv, (EE232*), ABISELECT(16,8), "GG2322223");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(80,40), "GG2322223");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG2322223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2322223.pg");
+ test_class_info(&lv, &cd_GG2322223);
+ dp->~GG2322223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2322223(Test_GG2322223, "GG2322223", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2322223C1Ev();
+extern void _ZN9GG2322223D1Ev();
+Name_Map name_map_GG2322223[] = {
+ NSPAIR(_ZN9GG2322223C1Ev),
+ NSPAIR(_ZN9GG2322223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE232;
+extern VTBL_ENTRY _ZTI5EE232[];
+extern VTBL_ENTRY _ZTV5EE232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE232[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG2322223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE232, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2322223[];
+extern void _ZN9GG23222233fooEv();
+extern void _ZN9GG23222233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23222233barEv,_ZTv0_n20_N9GG23222233barEv)();
+extern void ABISELECT(_ZThn16_N9GG23222233barEv,_ZThn8_N9GG23222233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23222233barEv,_ZTv0_n12_N9GG23222233barEv)();
+extern void ABISELECT(_ZThn32_N9GG23222233barEv,_ZThn16_N9GG23222233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23222233fooEv,_ZTv0_n12_N9GG23222233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23222233fooEv,_ZThn24_N9GG23222233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23222233barEv,_ZTv0_n16_N9GG23222233barEv)();
+extern void ABISELECT(_ZThn48_N9GG23222233barEv,_ZThn24_N9GG23222233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23222233barEv,_ZTv0_n20_N9GG23222233barEv)();
+extern void ABISELECT(_ZThn64_N9GG23222233barEv,_ZThn32_N9GG23222233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23222233barEv,_ZTv0_n12_N9GG23222233barEv)();
+extern void ABISELECT(_ZThn80_N9GG23222233barEv,_ZThn40_N9GG23222233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2322223[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2322223[0]),
+ (VTBL_ENTRY)&_ZN9GG23222233fooEv,
+ (VTBL_ENTRY)&_ZN9GG23222233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2322223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23222233barEv,_ZTv0_n20_N9GG23222233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2322223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23222233barEv,_ZTv0_n12_N9GG23222233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2322223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23222233fooEv,_ZTv0_n12_N9GG23222233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23222233barEv,_ZTv0_n16_N9GG23222233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2322223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23222233barEv,_ZTv0_n20_N9GG23222233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2322223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23222233barEv,_ZTv0_n12_N9GG23222233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2322223[];
+extern void _ZN5EE2323barEv();
+static VTBL_ENTRY _tg__ZTV5EE232__9GG2322223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN5EE2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv)();
+extern void ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE232__9GG2322223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv)();
+extern void ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE232__9GG2322223[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv),
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG2322223[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG2322223[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG2322223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG2322223[] = {
+ {&(_ZTV9GG2322223[7]), 7,35},
+ {&(_ZTV9GG2322223[14]), 14,35},
+ {&(_ZTV9GG2322223[18]), 18,35},
+ {&(_ZTV9GG2322223[23]), 23,35},
+ {&(_ZTV9GG2322223[30]), 30,35},
+ {&(_ZTV9GG2322223[34]), 34,35},
+ {&(_tg__ZTV5EE232__9GG2322223[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE232__9GG2322223[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE232__9GG2322223[4]), 4,6},
+ {&(_tg__ZTV5FF222__9GG2322223[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG2322223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG2322223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2322223[];
+extern VTBL_ENTRY _ZTV9GG2322223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2322223[];
+static VTBL_ENTRY alt_thunk_names711[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23222233barEv,_ZTv0_n16_N9GG23222233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23222233barEv,_ZThn24_N9GG23222233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23222233fooEv,_ZTv0_n12_N9GG23222233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23222233fooEv,_ZThn24_N9GG23222233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23222233barEv,_ZTv0_n12_N9GG23222233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23222233barEv,_ZThn40_N9GG23222233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23222233barEv,_ZThn16_N9GG23222233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23222233barEv,_ZTv0_n20_N9GG23222233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23222233barEv,_ZThn32_N9GG23222233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23222233barEv,_ZThn8_N9GG23222233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2322223 = { "GG2322223", // class name
+ bases_GG2322223, 5,
+ &(vtc_GG2322223[0]), // expected_vtbl_contents
+ &(vtt_GG2322223[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2322223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2322223),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2322223),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names711,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2322233 : virtual EE232 , virtual FF223 {
+ int pg;
+ virtual void foo(); // _ZN9GG23222333fooEv
+ virtual void bar(); // _ZN9GG23222333barEv
+ ~GG2322233(); // tgen
+ GG2322233(); // tgen
+};
+//SIG(1 GG2322233) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2322233 ::foo(){vfunc_called(this, "_ZN9GG23222333fooEv");}
+void GG2322233 ::bar(){vfunc_called(this, "_ZN9GG23222333barEv");}
+GG2322233 ::~GG2322233(){ note_dtor("GG2322233", this);} // tgen
+GG2322233 ::GG2322233(){ note_ctor("GG2322233", this);} // tgen
+
+static void Test_GG2322233()
+{
+ extern Class_Descriptor cd_GG2322233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2322233, buf);
+ GG2322233 *dp, &lv = *(dp=new (buf) GG2322233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2322233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2322233)");
+ check_base_class_offset(lv, (AA2*)(EE232*), ABISELECT(32,16), "GG2322233");
+ check_base_class_offset(lv, (AA2*)(FF223*), ABISELECT(32,16), "GG2322233");
+ check_base_class_offset(lv, (BB3*)(EE232*), ABISELECT(48,24), "GG2322233");
+ check_base_class_offset(lv, (EE232*), ABISELECT(16,8), "GG2322233");
+ check_base_class_offset(lv, (BB2*)(FF223*), ABISELECT(80,40), "GG2322233");
+ check_base_class_offset(lv, (FF223*), ABISELECT(64,32), "GG2322233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2322233.pg");
+ test_class_info(&lv, &cd_GG2322233);
+ dp->~GG2322233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2322233(Test_GG2322233, "GG2322233", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2322233C1Ev();
+extern void _ZN9GG2322233D1Ev();
+Name_Map name_map_GG2322233[] = {
+ NSPAIR(_ZN9GG2322233C1Ev),
+ NSPAIR(_ZN9GG2322233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE232;
+extern VTBL_ENTRY _ZTI5EE232[];
+extern VTBL_ENTRY _ZTV5EE232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE232[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF223;
+extern VTBL_ENTRY _ZTI5FF223[];
+extern VTBL_ENTRY _ZTV5FF223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF223[];
+static Base_Class bases_GG2322233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE232, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF223, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2322233[];
+extern void _ZN9GG23222333fooEv();
+extern void _ZN9GG23222333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23222333barEv,_ZTv0_n20_N9GG23222333barEv)();
+extern void ABISELECT(_ZThn16_N9GG23222333barEv,_ZThn8_N9GG23222333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23222333barEv,_ZTv0_n12_N9GG23222333barEv)();
+extern void ABISELECT(_ZThn32_N9GG23222333barEv,_ZThn16_N9GG23222333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23222333fooEv,_ZTv0_n12_N9GG23222333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23222333fooEv,_ZThn24_N9GG23222333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23222333barEv,_ZTv0_n16_N9GG23222333barEv)();
+extern void ABISELECT(_ZThn48_N9GG23222333barEv,_ZThn24_N9GG23222333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23222333fooEv,_ZTv0_n20_N9GG23222333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23222333fooEv,_ZThn32_N9GG23222333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23222333barEv,_ZTv0_n24_N9GG23222333barEv)();
+extern void ABISELECT(_ZThn64_N9GG23222333barEv,_ZThn32_N9GG23222333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23222333barEv,_ZTv0_n12_N9GG23222333barEv)();
+extern void ABISELECT(_ZThn80_N9GG23222333barEv,_ZThn40_N9GG23222333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2322233[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2322233[0]),
+ (VTBL_ENTRY)&_ZN9GG23222333fooEv,
+ (VTBL_ENTRY)&_ZN9GG23222333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2322233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23222333barEv,_ZTv0_n20_N9GG23222333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2322233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23222333barEv,_ZTv0_n12_N9GG23222333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2322233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23222333fooEv,_ZTv0_n12_N9GG23222333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23222333barEv,_ZTv0_n16_N9GG23222333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2322233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23222333fooEv,_ZTv0_n20_N9GG23222333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23222333barEv,_ZTv0_n24_N9GG23222333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2322233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23222333barEv,_ZTv0_n12_N9GG23222333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2322233[];
+extern void _ZN5EE2323barEv();
+static VTBL_ENTRY _tg__ZTV5EE232__9GG2322233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN5EE2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv)();
+extern void ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE232__9GG2322233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv)();
+extern void ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE232__9GG2322233[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv),
+};
+extern void _ZN5FF2233fooEv();
+extern void _ZN5FF2233barEv();
+static VTBL_ENTRY _tg__ZTV5FF223__9GG2322233[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&_ZN5FF2233fooEv,
+ (VTBL_ENTRY)&_ZN5FF2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF223__9GG2322233[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+extern void ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF223__9GG2322233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+static VTT_ENTRY vtt_GG2322233[] = {
+ {&(_ZTV9GG2322233[7]), 7,37},
+ {&(_ZTV9GG2322233[14]), 14,37},
+ {&(_ZTV9GG2322233[18]), 18,37},
+ {&(_ZTV9GG2322233[23]), 23,37},
+ {&(_ZTV9GG2322233[31]), 31,37},
+ {&(_ZTV9GG2322233[36]), 36,37},
+ {&(_tg__ZTV5EE232__9GG2322233[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE232__9GG2322233[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE232__9GG2322233[4]), 4,6},
+ {&(_tg__ZTV5FF223__9GG2322233[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF223__9GG2322233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF223__9GG2322233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2322233[];
+extern VTBL_ENTRY _ZTV9GG2322233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2322233[];
+static VTBL_ENTRY alt_thunk_names712[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG23222333barEv,_ZTv0_n24_N9GG23222333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23222333barEv,_ZThn32_N9GG23222333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23222333fooEv,_ZTv0_n20_N9GG23222333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23222333fooEv,_ZThn32_N9GG23222333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23222333barEv,_ZTv0_n16_N9GG23222333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23222333barEv,_ZThn24_N9GG23222333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23222333fooEv,_ZTv0_n12_N9GG23222333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23222333fooEv,_ZThn24_N9GG23222333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23222333barEv,_ZTv0_n12_N9GG23222333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23222333barEv,_ZThn40_N9GG23222333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23222333barEv,_ZThn16_N9GG23222333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23222333barEv,_ZTv0_n20_N9GG23222333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23222333barEv,_ZThn8_N9GG23222333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2322233 = { "GG2322233", // class name
+ bases_GG2322233, 5,
+ &(vtc_GG2322233[0]), // expected_vtbl_contents
+ &(vtt_GG2322233[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2322233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2322233),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2322233),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names712,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2322313 : virtual EE232 , virtual FF231 {
+ int pg;
+ virtual void foo(); // _ZN9GG23223133fooEv
+ virtual void bar(); // _ZN9GG23223133barEv
+ ~GG2322313(); // tgen
+ GG2322313(); // tgen
+};
+//SIG(1 GG2322313) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC3 VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG2322313 ::foo(){vfunc_called(this, "_ZN9GG23223133fooEv");}
+void GG2322313 ::bar(){vfunc_called(this, "_ZN9GG23223133barEv");}
+GG2322313 ::~GG2322313(){ note_dtor("GG2322313", this);} // tgen
+GG2322313 ::GG2322313(){ note_ctor("GG2322313", this);} // tgen
+
+static void Test_GG2322313()
+{
+ extern Class_Descriptor cd_GG2322313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG2322313, buf);
+ GG2322313 *dp, &lv = *(dp=new (buf) GG2322313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG2322313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2322313)");
+ check_base_class_offset(lv, (AA2*)(EE232*), ABISELECT(32,16), "GG2322313");
+ check_base_class_offset(lv, (AA2*)(FF231*), ABISELECT(32,16), "GG2322313");
+ check_base_class_offset(lv, (BB3*)(EE232*), ABISELECT(48,24), "GG2322313");
+ check_base_class_offset(lv, (BB3*)(FF231*), ABISELECT(48,24), "GG2322313");
+ check_base_class_offset(lv, (EE232*), ABISELECT(16,8), "GG2322313");
+ check_base_class_offset(lv, (FF231*), ABISELECT(64,32), "GG2322313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2322313.pg");
+ test_class_info(&lv, &cd_GG2322313);
+ dp->~GG2322313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2322313(Test_GG2322313, "GG2322313", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG2322313C1Ev();
+extern void _ZN9GG2322313D1Ev();
+Name_Map name_map_GG2322313[] = {
+ NSPAIR(_ZN9GG2322313C1Ev),
+ NSPAIR(_ZN9GG2322313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE232;
+extern VTBL_ENTRY _ZTI5EE232[];
+extern VTBL_ENTRY _ZTV5EE232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE232[];
+extern Class_Descriptor cd_FF231;
+extern VTBL_ENTRY _ZTI5FF231[];
+extern VTBL_ENTRY _ZTV5FF231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF231[];
+static Base_Class bases_GG2322313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE232, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF231, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2322313[];
+extern void _ZN9GG23223133fooEv();
+extern void _ZN9GG23223133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23223133barEv,_ZTv0_n20_N9GG23223133barEv)();
+extern void ABISELECT(_ZThn16_N9GG23223133barEv,_ZThn8_N9GG23223133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23223133barEv,_ZTv0_n12_N9GG23223133barEv)();
+extern void ABISELECT(_ZThn32_N9GG23223133barEv,_ZThn16_N9GG23223133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23223133fooEv,_ZTv0_n12_N9GG23223133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23223133fooEv,_ZThn24_N9GG23223133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23223133barEv,_ZTv0_n16_N9GG23223133barEv)();
+extern void ABISELECT(_ZThn48_N9GG23223133barEv,_ZThn24_N9GG23223133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23223133fooEv,_ZTv0_n20_N9GG23223133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23223133fooEv,_ZThn32_N9GG23223133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2322313[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2322313[0]),
+ (VTBL_ENTRY)&_ZN9GG23223133fooEv,
+ (VTBL_ENTRY)&_ZN9GG23223133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2322313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23223133barEv,_ZTv0_n20_N9GG23223133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2322313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23223133barEv,_ZTv0_n12_N9GG23223133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2322313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23223133fooEv,_ZTv0_n12_N9GG23223133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23223133barEv,_ZTv0_n16_N9GG23223133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2322313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23223133fooEv,_ZTv0_n20_N9GG23223133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2322313[];
+extern void _ZN5EE2323barEv();
+static VTBL_ENTRY _tg__ZTV5EE232__9GG2322313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN5EE2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv)();
+extern void ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE232__9GG2322313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv)();
+extern void ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE232__9GG2322313[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv),
+};
+extern void _ZN5FF2313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF231__9GG2322313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN5FF2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF231__9GG2322313[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv)();
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF231__9GG2322313[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG2322313[] = {
+ {&(_ZTV9GG2322313[6]), 6,30},
+ {&(_ZTV9GG2322313[13]), 13,30},
+ {&(_ZTV9GG2322313[17]), 17,30},
+ {&(_ZTV9GG2322313[22]), 22,30},
+ {&(_ZTV9GG2322313[29]), 29,30},
+ {&(_tg__ZTV5EE232__9GG2322313[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE232__9GG2322313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE232__9GG2322313[4]), 4,6},
+ {&(_tg__ZTV5FF231__9GG2322313[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF231__9GG2322313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF231__9GG2322313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2322313[];
+extern VTBL_ENTRY _ZTV9GG2322313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2322313[];
+static VTBL_ENTRY alt_thunk_names713[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23223133fooEv,_ZTv0_n20_N9GG23223133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23223133fooEv,_ZThn32_N9GG23223133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23223133barEv,_ZTv0_n16_N9GG23223133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23223133barEv,_ZThn24_N9GG23223133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23223133fooEv,_ZTv0_n12_N9GG23223133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23223133fooEv,_ZThn24_N9GG23223133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23223133barEv,_ZTv0_n12_N9GG23223133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23223133barEv,_ZThn16_N9GG23223133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23223133barEv,_ZTv0_n20_N9GG23223133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23223133barEv,_ZThn8_N9GG23223133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2322313 = { "GG2322313", // class name
+ bases_GG2322313, 4,
+ &(vtc_GG2322313[0]), // expected_vtbl_contents
+ &(vtt_GG2322313[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG2322313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2322313),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2322313),11, //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 GG2322323 : virtual EE232 , virtual FF232 {
+ int pg;
+ virtual void foo(); // _ZN9GG23223233fooEv
+ virtual void bar(); // _ZN9GG23223233barEv
+ ~GG2322323(); // tgen
+ GG2322323(); // tgen
+};
+//SIG(1 GG2322323) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC3 VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG2322323 ::foo(){vfunc_called(this, "_ZN9GG23223233fooEv");}
+void GG2322323 ::bar(){vfunc_called(this, "_ZN9GG23223233barEv");}
+GG2322323 ::~GG2322323(){ note_dtor("GG2322323", this);} // tgen
+GG2322323 ::GG2322323(){ note_ctor("GG2322323", this);} // tgen
+
+static void Test_GG2322323()
+{
+ extern Class_Descriptor cd_GG2322323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG2322323, buf);
+ GG2322323 *dp, &lv = *(dp=new (buf) GG2322323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG2322323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2322323)");
+ check_base_class_offset(lv, (AA2*)(EE232*), ABISELECT(32,16), "GG2322323");
+ check_base_class_offset(lv, (AA2*)(FF232*), ABISELECT(32,16), "GG2322323");
+ check_base_class_offset(lv, (BB3*)(EE232*), ABISELECT(48,24), "GG2322323");
+ check_base_class_offset(lv, (BB3*)(FF232*), ABISELECT(48,24), "GG2322323");
+ check_base_class_offset(lv, (EE232*), ABISELECT(16,8), "GG2322323");
+ check_base_class_offset(lv, (FF232*), ABISELECT(64,32), "GG2322323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2322323.pg");
+ test_class_info(&lv, &cd_GG2322323);
+ dp->~GG2322323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2322323(Test_GG2322323, "GG2322323", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG2322323C1Ev();
+extern void _ZN9GG2322323D1Ev();
+Name_Map name_map_GG2322323[] = {
+ NSPAIR(_ZN9GG2322323C1Ev),
+ NSPAIR(_ZN9GG2322323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE232;
+extern VTBL_ENTRY _ZTI5EE232[];
+extern VTBL_ENTRY _ZTV5EE232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE232[];
+extern Class_Descriptor cd_FF232;
+extern VTBL_ENTRY _ZTI5FF232[];
+extern VTBL_ENTRY _ZTV5FF232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF232[];
+static Base_Class bases_GG2322323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE232, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF232, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2322323[];
+extern void _ZN9GG23223233fooEv();
+extern void _ZN9GG23223233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23223233barEv,_ZTv0_n20_N9GG23223233barEv)();
+extern void ABISELECT(_ZThn16_N9GG23223233barEv,_ZThn8_N9GG23223233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23223233barEv,_ZTv0_n12_N9GG23223233barEv)();
+extern void ABISELECT(_ZThn32_N9GG23223233barEv,_ZThn16_N9GG23223233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23223233fooEv,_ZTv0_n12_N9GG23223233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23223233fooEv,_ZThn24_N9GG23223233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23223233barEv,_ZTv0_n16_N9GG23223233barEv)();
+extern void ABISELECT(_ZThn48_N9GG23223233barEv,_ZThn24_N9GG23223233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23223233barEv,_ZTv0_n20_N9GG23223233barEv)();
+extern void ABISELECT(_ZThn64_N9GG23223233barEv,_ZThn32_N9GG23223233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2322323[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2322323[0]),
+ (VTBL_ENTRY)&_ZN9GG23223233fooEv,
+ (VTBL_ENTRY)&_ZN9GG23223233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2322323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23223233barEv,_ZTv0_n20_N9GG23223233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2322323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23223233barEv,_ZTv0_n12_N9GG23223233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2322323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23223233fooEv,_ZTv0_n12_N9GG23223233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23223233barEv,_ZTv0_n16_N9GG23223233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2322323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23223233barEv,_ZTv0_n20_N9GG23223233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2322323[];
+extern void _ZN5EE2323barEv();
+static VTBL_ENTRY _tg__ZTV5EE232__9GG2322323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN5EE2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv)();
+extern void ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE232__9GG2322323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv)();
+extern void ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE232__9GG2322323[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv),
+};
+extern void _ZN5FF2323barEv();
+static VTBL_ENTRY _tg__ZTV5FF232__9GG2322323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN5FF2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF232__9GG2322323[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF232__9GG2322323[] = {
+ ABISELECT(16,8),
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv),
+};
+static VTT_ENTRY vtt_GG2322323[] = {
+ {&(_ZTV9GG2322323[6]), 6,30},
+ {&(_ZTV9GG2322323[13]), 13,30},
+ {&(_ZTV9GG2322323[17]), 17,30},
+ {&(_ZTV9GG2322323[22]), 22,30},
+ {&(_ZTV9GG2322323[29]), 29,30},
+ {&(_tg__ZTV5EE232__9GG2322323[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE232__9GG2322323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE232__9GG2322323[4]), 4,6},
+ {&(_tg__ZTV5FF232__9GG2322323[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF232__9GG2322323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF232__9GG2322323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2322323[];
+extern VTBL_ENTRY _ZTV9GG2322323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2322323[];
+static VTBL_ENTRY alt_thunk_names714[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23223233barEv,_ZTv0_n16_N9GG23223233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23223233barEv,_ZThn24_N9GG23223233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23223233fooEv,_ZTv0_n12_N9GG23223233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23223233fooEv,_ZThn24_N9GG23223233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23223233barEv,_ZTv0_n12_N9GG23223233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23223233barEv,_ZThn16_N9GG23223233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23223233barEv,_ZTv0_n20_N9GG23223233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23223233barEv,_ZThn32_N9GG23223233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23223233barEv,_ZThn8_N9GG23223233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2322323 = { "GG2322323", // class name
+ bases_GG2322323, 4,
+ &(vtc_GG2322323[0]), // expected_vtbl_contents
+ &(vtt_GG2322323[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG2322323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2322323),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2322323),11, //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 GG2322333 : virtual EE232 , virtual FF233 {
+ int pg;
+ virtual void foo(); // _ZN9GG23223333fooEv
+ virtual void bar(); // _ZN9GG23223333barEv
+ ~GG2322333(); // tgen
+ GG2322333(); // tgen
+};
+//SIG(1 GG2322333) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC3 VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2322333 ::foo(){vfunc_called(this, "_ZN9GG23223333fooEv");}
+void GG2322333 ::bar(){vfunc_called(this, "_ZN9GG23223333barEv");}
+GG2322333 ::~GG2322333(){ note_dtor("GG2322333", this);} // tgen
+GG2322333 ::GG2322333(){ note_ctor("GG2322333", this);} // tgen
+
+static void Test_GG2322333()
+{
+ extern Class_Descriptor cd_GG2322333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG2322333, buf);
+ GG2322333 *dp, &lv = *(dp=new (buf) GG2322333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG2322333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2322333)");
+ check_base_class_offset(lv, (AA2*)(EE232*), ABISELECT(32,16), "GG2322333");
+ check_base_class_offset(lv, (AA2*)(FF233*), ABISELECT(32,16), "GG2322333");
+ check_base_class_offset(lv, (BB3*)(EE232*), ABISELECT(48,24), "GG2322333");
+ check_base_class_offset(lv, (BB3*)(FF233*), ABISELECT(48,24), "GG2322333");
+ check_base_class_offset(lv, (EE232*), ABISELECT(16,8), "GG2322333");
+ check_base_class_offset(lv, (FF233*), ABISELECT(64,32), "GG2322333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2322333.pg");
+ test_class_info(&lv, &cd_GG2322333);
+ dp->~GG2322333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2322333(Test_GG2322333, "GG2322333", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG2322333C1Ev();
+extern void _ZN9GG2322333D1Ev();
+Name_Map name_map_GG2322333[] = {
+ NSPAIR(_ZN9GG2322333C1Ev),
+ NSPAIR(_ZN9GG2322333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE232;
+extern VTBL_ENTRY _ZTI5EE232[];
+extern VTBL_ENTRY _ZTV5EE232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE232[];
+extern Class_Descriptor cd_FF233;
+extern VTBL_ENTRY _ZTI5FF233[];
+extern VTBL_ENTRY _ZTV5FF233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF233[];
+static Base_Class bases_GG2322333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE232, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF233, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2322333[];
+extern void _ZN9GG23223333fooEv();
+extern void _ZN9GG23223333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23223333barEv,_ZTv0_n20_N9GG23223333barEv)();
+extern void ABISELECT(_ZThn16_N9GG23223333barEv,_ZThn8_N9GG23223333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23223333barEv,_ZTv0_n12_N9GG23223333barEv)();
+extern void ABISELECT(_ZThn32_N9GG23223333barEv,_ZThn16_N9GG23223333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23223333fooEv,_ZTv0_n12_N9GG23223333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23223333fooEv,_ZThn24_N9GG23223333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23223333barEv,_ZTv0_n16_N9GG23223333barEv)();
+extern void ABISELECT(_ZThn48_N9GG23223333barEv,_ZThn24_N9GG23223333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23223333fooEv,_ZTv0_n20_N9GG23223333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23223333fooEv,_ZThn32_N9GG23223333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23223333barEv,_ZTv0_n24_N9GG23223333barEv)();
+extern void ABISELECT(_ZThn64_N9GG23223333barEv,_ZThn32_N9GG23223333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2322333[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2322333[0]),
+ (VTBL_ENTRY)&_ZN9GG23223333fooEv,
+ (VTBL_ENTRY)&_ZN9GG23223333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2322333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23223333barEv,_ZTv0_n20_N9GG23223333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2322333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23223333barEv,_ZTv0_n12_N9GG23223333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2322333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23223333fooEv,_ZTv0_n12_N9GG23223333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23223333barEv,_ZTv0_n16_N9GG23223333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2322333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23223333fooEv,_ZTv0_n20_N9GG23223333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23223333barEv,_ZTv0_n24_N9GG23223333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2322333[];
+extern void _ZN5EE2323barEv();
+static VTBL_ENTRY _tg__ZTV5EE232__9GG2322333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN5EE2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv)();
+extern void ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE232__9GG2322333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv)();
+extern void ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE232__9GG2322333[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv),
+};
+extern void _ZN5FF2333fooEv();
+extern void _ZN5FF2333barEv();
+static VTBL_ENTRY _tg__ZTV5FF233__9GG2322333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&_ZN5FF2333fooEv,
+ (VTBL_ENTRY)&_ZN5FF2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF233__9GG2322333[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF233__9GG2322333[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv),
+};
+static VTT_ENTRY vtt_GG2322333[] = {
+ {&(_ZTV9GG2322333[6]), 6,32},
+ {&(_ZTV9GG2322333[13]), 13,32},
+ {&(_ZTV9GG2322333[17]), 17,32},
+ {&(_ZTV9GG2322333[22]), 22,32},
+ {&(_ZTV9GG2322333[30]), 30,32},
+ {&(_tg__ZTV5EE232__9GG2322333[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE232__9GG2322333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE232__9GG2322333[4]), 4,6},
+ {&(_tg__ZTV5FF233__9GG2322333[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF233__9GG2322333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF233__9GG2322333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2322333[];
+extern VTBL_ENTRY _ZTV9GG2322333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2322333[];
+static VTBL_ENTRY alt_thunk_names715[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG23223333barEv,_ZTv0_n24_N9GG23223333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23223333barEv,_ZThn32_N9GG23223333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23223333fooEv,_ZTv0_n20_N9GG23223333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23223333fooEv,_ZThn32_N9GG23223333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23223333barEv,_ZTv0_n16_N9GG23223333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23223333barEv,_ZThn24_N9GG23223333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23223333fooEv,_ZTv0_n12_N9GG23223333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23223333fooEv,_ZThn24_N9GG23223333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23223333barEv,_ZTv0_n12_N9GG23223333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23223333barEv,_ZThn16_N9GG23223333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23223333barEv,_ZTv0_n20_N9GG23223333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23223333barEv,_ZThn8_N9GG23223333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2322333 = { "GG2322333", // class name
+ bases_GG2322333, 4,
+ &(vtc_GG2322333[0]), // expected_vtbl_contents
+ &(vtt_GG2322333[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG2322333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2322333),32, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2322333),11, //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 GG2323113 : virtual EE232 , virtual FF311 {
+ int pg;
+ virtual void foo(); // _ZN9GG23231133fooEv
+ virtual void bar(); // _ZN9GG23231133barEv
+ ~GG2323113(); // tgen
+ GG2323113(); // tgen
+};
+//SIG(1 GG2323113) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2323113 ::foo(){vfunc_called(this, "_ZN9GG23231133fooEv");}
+void GG2323113 ::bar(){vfunc_called(this, "_ZN9GG23231133barEv");}
+GG2323113 ::~GG2323113(){ note_dtor("GG2323113", this);} // tgen
+GG2323113 ::GG2323113(){ note_ctor("GG2323113", this);} // tgen
+
+static void Test_GG2323113()
+{
+ extern Class_Descriptor cd_GG2323113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2323113, buf);
+ GG2323113 *dp, &lv = *(dp=new (buf) GG2323113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2323113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2323113)");
+ check_base_class_offset(lv, (AA2*)(EE232*), ABISELECT(32,16), "GG2323113");
+ check_base_class_offset(lv, (BB3*)(EE232*), ABISELECT(48,24), "GG2323113");
+ check_base_class_offset(lv, (EE232*), ABISELECT(16,8), "GG2323113");
+ check_base_class_offset(lv, (AA3*)(FF311*), ABISELECT(80,40), "GG2323113");
+ check_base_class_offset(lv, (BB1*)(FF311*), ABISELECT(96,48), "GG2323113");
+ check_base_class_offset(lv, (FF311*), ABISELECT(64,32), "GG2323113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2323113.pg");
+ test_class_info(&lv, &cd_GG2323113);
+ dp->~GG2323113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2323113(Test_GG2323113, "GG2323113", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2323113C1Ev();
+extern void _ZN9GG2323113D1Ev();
+Name_Map name_map_GG2323113[] = {
+ NSPAIR(_ZN9GG2323113C1Ev),
+ NSPAIR(_ZN9GG2323113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE232;
+extern VTBL_ENTRY _ZTI5EE232[];
+extern VTBL_ENTRY _ZTV5EE232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE232[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF311;
+extern VTBL_ENTRY _ZTI5FF311[];
+extern VTBL_ENTRY _ZTV5FF311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF311[];
+static Base_Class bases_GG2323113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE232, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF311, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2323113[];
+extern void _ZN9GG23231133fooEv();
+extern void _ZN9GG23231133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23231133barEv,_ZTv0_n20_N9GG23231133barEv)();
+extern void ABISELECT(_ZThn16_N9GG23231133barEv,_ZThn8_N9GG23231133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23231133barEv,_ZTv0_n12_N9GG23231133barEv)();
+extern void ABISELECT(_ZThn32_N9GG23231133barEv,_ZThn16_N9GG23231133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23231133fooEv,_ZTv0_n12_N9GG23231133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23231133fooEv,_ZThn24_N9GG23231133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23231133barEv,_ZTv0_n16_N9GG23231133barEv)();
+extern void ABISELECT(_ZThn48_N9GG23231133barEv,_ZThn24_N9GG23231133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23231133fooEv,_ZTv0_n20_N9GG23231133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23231133fooEv,_ZThn32_N9GG23231133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23231133fooEv,_ZTv0_n12_N9GG23231133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23231133fooEv,_ZThn40_N9GG23231133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23231133barEv,_ZTv0_n16_N9GG23231133barEv)();
+extern void ABISELECT(_ZThn80_N9GG23231133barEv,_ZThn40_N9GG23231133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23231133fooEv,_ZTv0_n12_N9GG23231133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG23231133fooEv,_ZThn48_N9GG23231133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2323113[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2323113[0]),
+ (VTBL_ENTRY)&_ZN9GG23231133fooEv,
+ (VTBL_ENTRY)&_ZN9GG23231133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2323113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23231133barEv,_ZTv0_n20_N9GG23231133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2323113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23231133barEv,_ZTv0_n12_N9GG23231133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2323113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23231133fooEv,_ZTv0_n12_N9GG23231133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23231133barEv,_ZTv0_n16_N9GG23231133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2323113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23231133fooEv,_ZTv0_n20_N9GG23231133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2323113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23231133fooEv,_ZTv0_n12_N9GG23231133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23231133barEv,_ZTv0_n16_N9GG23231133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2323113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23231133fooEv,_ZTv0_n12_N9GG23231133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2323113[];
+extern void _ZN5EE2323barEv();
+static VTBL_ENTRY _tg__ZTV5EE232__9GG2323113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN5EE2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv)();
+extern void ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE232__9GG2323113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv)();
+extern void ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE232__9GG2323113[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv),
+};
+extern void _ZN5FF3113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF311__9GG2323113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&_ZN5FF3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF311__9GG2323113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3113fooEv,_ZThn16_N5FF3113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF311__9GG2323113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+};
+static VTT_ENTRY vtt_GG2323113[] = {
+ {&(_ZTV9GG2323113[8]), 8,42},
+ {&(_ZTV9GG2323113[15]), 15,42},
+ {&(_ZTV9GG2323113[19]), 19,42},
+ {&(_ZTV9GG2323113[24]), 24,42},
+ {&(_ZTV9GG2323113[31]), 31,42},
+ {&(_ZTV9GG2323113[36]), 36,42},
+ {&(_ZTV9GG2323113[41]), 41,42},
+ {&(_tg__ZTV5EE232__9GG2323113[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE232__9GG2323113[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE232__9GG2323113[4]), 4,6},
+ {&(_tg__ZTV5FF311__9GG2323113[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF311__9GG2323113[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF311__9GG2323113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2323113[];
+extern VTBL_ENTRY _ZTV9GG2323113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2323113[];
+static VTBL_ENTRY alt_thunk_names716[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3113fooEv,_ZThn16_N5FF3113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23231133fooEv,_ZTv0_n20_N9GG23231133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23231133fooEv,_ZThn32_N9GG23231133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23231133barEv,_ZTv0_n16_N9GG23231133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23231133barEv,_ZThn40_N9GG23231133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23231133barEv,_ZThn24_N9GG23231133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23231133fooEv,_ZTv0_n12_N9GG23231133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG23231133fooEv,_ZThn48_N9GG23231133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23231133fooEv,_ZThn40_N9GG23231133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23231133fooEv,_ZThn24_N9GG23231133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23231133barEv,_ZTv0_n12_N9GG23231133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23231133barEv,_ZThn16_N9GG23231133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23231133barEv,_ZTv0_n20_N9GG23231133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23231133barEv,_ZThn8_N9GG23231133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2323113 = { "GG2323113", // class name
+ bases_GG2323113, 6,
+ &(vtc_GG2323113[0]), // expected_vtbl_contents
+ &(vtt_GG2323113[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2323113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2323113),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2323113),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names716,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2323123 : virtual EE232 , virtual FF312 {
+ int pg;
+ virtual void foo(); // _ZN9GG23231233fooEv
+ virtual void bar(); // _ZN9GG23231233barEv
+ ~GG2323123(); // tgen
+ GG2323123(); // tgen
+};
+//SIG(1 GG2323123) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2323123 ::foo(){vfunc_called(this, "_ZN9GG23231233fooEv");}
+void GG2323123 ::bar(){vfunc_called(this, "_ZN9GG23231233barEv");}
+GG2323123 ::~GG2323123(){ note_dtor("GG2323123", this);} // tgen
+GG2323123 ::GG2323123(){ note_ctor("GG2323123", this);} // tgen
+
+static void Test_GG2323123()
+{
+ extern Class_Descriptor cd_GG2323123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2323123, buf);
+ GG2323123 *dp, &lv = *(dp=new (buf) GG2323123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2323123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2323123)");
+ check_base_class_offset(lv, (AA2*)(EE232*), ABISELECT(32,16), "GG2323123");
+ check_base_class_offset(lv, (BB3*)(EE232*), ABISELECT(48,24), "GG2323123");
+ check_base_class_offset(lv, (EE232*), ABISELECT(16,8), "GG2323123");
+ check_base_class_offset(lv, (AA3*)(FF312*), ABISELECT(80,40), "GG2323123");
+ check_base_class_offset(lv, (BB1*)(FF312*), ABISELECT(96,48), "GG2323123");
+ check_base_class_offset(lv, (FF312*), ABISELECT(64,32), "GG2323123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2323123.pg");
+ test_class_info(&lv, &cd_GG2323123);
+ dp->~GG2323123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2323123(Test_GG2323123, "GG2323123", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2323123C1Ev();
+extern void _ZN9GG2323123D1Ev();
+Name_Map name_map_GG2323123[] = {
+ NSPAIR(_ZN9GG2323123C1Ev),
+ NSPAIR(_ZN9GG2323123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE232;
+extern VTBL_ENTRY _ZTI5EE232[];
+extern VTBL_ENTRY _ZTV5EE232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE232[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF312;
+extern VTBL_ENTRY _ZTI5FF312[];
+extern VTBL_ENTRY _ZTV5FF312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF312[];
+static Base_Class bases_GG2323123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE232, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF312, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2323123[];
+extern void _ZN9GG23231233fooEv();
+extern void _ZN9GG23231233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23231233barEv,_ZTv0_n20_N9GG23231233barEv)();
+extern void ABISELECT(_ZThn16_N9GG23231233barEv,_ZThn8_N9GG23231233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23231233barEv,_ZTv0_n12_N9GG23231233barEv)();
+extern void ABISELECT(_ZThn32_N9GG23231233barEv,_ZThn16_N9GG23231233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23231233fooEv,_ZTv0_n12_N9GG23231233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23231233fooEv,_ZThn24_N9GG23231233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23231233barEv,_ZTv0_n16_N9GG23231233barEv)();
+extern void ABISELECT(_ZThn48_N9GG23231233barEv,_ZThn24_N9GG23231233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23231233barEv,_ZTv0_n20_N9GG23231233barEv)();
+extern void ABISELECT(_ZThn64_N9GG23231233barEv,_ZThn32_N9GG23231233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23231233fooEv,_ZTv0_n12_N9GG23231233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23231233fooEv,_ZThn40_N9GG23231233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23231233barEv,_ZTv0_n16_N9GG23231233barEv)();
+extern void ABISELECT(_ZThn80_N9GG23231233barEv,_ZThn40_N9GG23231233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23231233fooEv,_ZTv0_n12_N9GG23231233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG23231233fooEv,_ZThn48_N9GG23231233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2323123[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2323123[0]),
+ (VTBL_ENTRY)&_ZN9GG23231233fooEv,
+ (VTBL_ENTRY)&_ZN9GG23231233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2323123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23231233barEv,_ZTv0_n20_N9GG23231233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2323123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23231233barEv,_ZTv0_n12_N9GG23231233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2323123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23231233fooEv,_ZTv0_n12_N9GG23231233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23231233barEv,_ZTv0_n16_N9GG23231233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2323123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23231233barEv,_ZTv0_n20_N9GG23231233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2323123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23231233fooEv,_ZTv0_n12_N9GG23231233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23231233barEv,_ZTv0_n16_N9GG23231233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2323123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23231233fooEv,_ZTv0_n12_N9GG23231233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2323123[];
+extern void _ZN5EE2323barEv();
+static VTBL_ENTRY _tg__ZTV5EE232__9GG2323123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN5EE2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv)();
+extern void ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE232__9GG2323123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv)();
+extern void ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE232__9GG2323123[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv),
+};
+extern void _ZN5FF3123barEv();
+static VTBL_ENTRY _tg__ZTV5FF312__9GG2323123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN5FF3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv)();
+extern void ABISELECT(_ZThn16_N5FF3123barEv,_ZThn8_N5FF3123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF312__9GG2323123[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF312__9GG2323123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG2323123[] = {
+ {&(_ZTV9GG2323123[8]), 8,42},
+ {&(_ZTV9GG2323123[15]), 15,42},
+ {&(_ZTV9GG2323123[19]), 19,42},
+ {&(_ZTV9GG2323123[24]), 24,42},
+ {&(_ZTV9GG2323123[31]), 31,42},
+ {&(_ZTV9GG2323123[36]), 36,42},
+ {&(_ZTV9GG2323123[41]), 41,42},
+ {&(_tg__ZTV5EE232__9GG2323123[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE232__9GG2323123[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE232__9GG2323123[4]), 4,6},
+ {&(_tg__ZTV5FF312__9GG2323123[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF312__9GG2323123[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF312__9GG2323123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2323123[];
+extern VTBL_ENTRY _ZTV9GG2323123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2323123[];
+static VTBL_ENTRY alt_thunk_names717[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3123barEv,_ZThn8_N5FF3123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23231233barEv,_ZTv0_n16_N9GG23231233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23231233barEv,_ZThn40_N9GG23231233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23231233barEv,_ZThn24_N9GG23231233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23231233fooEv,_ZTv0_n12_N9GG23231233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG23231233fooEv,_ZThn48_N9GG23231233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23231233fooEv,_ZThn40_N9GG23231233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23231233fooEv,_ZThn24_N9GG23231233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23231233barEv,_ZTv0_n12_N9GG23231233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23231233barEv,_ZThn16_N9GG23231233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23231233barEv,_ZTv0_n20_N9GG23231233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23231233barEv,_ZThn32_N9GG23231233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23231233barEv,_ZThn8_N9GG23231233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2323123 = { "GG2323123", // class name
+ bases_GG2323123, 6,
+ &(vtc_GG2323123[0]), // expected_vtbl_contents
+ &(vtt_GG2323123[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2323123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2323123),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2323123),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names717,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2323133 : virtual EE232 , virtual FF313 {
+ int pg;
+ virtual void foo(); // _ZN9GG23231333fooEv
+ virtual void bar(); // _ZN9GG23231333barEv
+ ~GG2323133(); // tgen
+ GG2323133(); // tgen
+};
+//SIG(1 GG2323133) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2323133 ::foo(){vfunc_called(this, "_ZN9GG23231333fooEv");}
+void GG2323133 ::bar(){vfunc_called(this, "_ZN9GG23231333barEv");}
+GG2323133 ::~GG2323133(){ note_dtor("GG2323133", this);} // tgen
+GG2323133 ::GG2323133(){ note_ctor("GG2323133", this);} // tgen
+
+static void Test_GG2323133()
+{
+ extern Class_Descriptor cd_GG2323133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2323133, buf);
+ GG2323133 *dp, &lv = *(dp=new (buf) GG2323133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2323133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2323133)");
+ check_base_class_offset(lv, (AA2*)(EE232*), ABISELECT(32,16), "GG2323133");
+ check_base_class_offset(lv, (BB3*)(EE232*), ABISELECT(48,24), "GG2323133");
+ check_base_class_offset(lv, (EE232*), ABISELECT(16,8), "GG2323133");
+ check_base_class_offset(lv, (AA3*)(FF313*), ABISELECT(80,40), "GG2323133");
+ check_base_class_offset(lv, (BB1*)(FF313*), ABISELECT(96,48), "GG2323133");
+ check_base_class_offset(lv, (FF313*), ABISELECT(64,32), "GG2323133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2323133.pg");
+ test_class_info(&lv, &cd_GG2323133);
+ dp->~GG2323133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2323133(Test_GG2323133, "GG2323133", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2323133C1Ev();
+extern void _ZN9GG2323133D1Ev();
+Name_Map name_map_GG2323133[] = {
+ NSPAIR(_ZN9GG2323133C1Ev),
+ NSPAIR(_ZN9GG2323133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE232;
+extern VTBL_ENTRY _ZTI5EE232[];
+extern VTBL_ENTRY _ZTV5EE232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE232[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF313;
+extern VTBL_ENTRY _ZTI5FF313[];
+extern VTBL_ENTRY _ZTV5FF313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF313[];
+static Base_Class bases_GG2323133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE232, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 40, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF313, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2323133[];
+extern void _ZN9GG23231333fooEv();
+extern void _ZN9GG23231333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23231333barEv,_ZTv0_n20_N9GG23231333barEv)();
+extern void ABISELECT(_ZThn16_N9GG23231333barEv,_ZThn8_N9GG23231333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23231333barEv,_ZTv0_n12_N9GG23231333barEv)();
+extern void ABISELECT(_ZThn32_N9GG23231333barEv,_ZThn16_N9GG23231333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23231333fooEv,_ZTv0_n12_N9GG23231333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23231333fooEv,_ZThn24_N9GG23231333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23231333barEv,_ZTv0_n16_N9GG23231333barEv)();
+extern void ABISELECT(_ZThn48_N9GG23231333barEv,_ZThn24_N9GG23231333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23231333fooEv,_ZTv0_n20_N9GG23231333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23231333fooEv,_ZThn32_N9GG23231333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23231333barEv,_ZTv0_n24_N9GG23231333barEv)();
+extern void ABISELECT(_ZThn64_N9GG23231333barEv,_ZThn32_N9GG23231333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23231333fooEv,_ZTv0_n12_N9GG23231333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23231333fooEv,_ZThn40_N9GG23231333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23231333barEv,_ZTv0_n16_N9GG23231333barEv)();
+extern void ABISELECT(_ZThn80_N9GG23231333barEv,_ZThn40_N9GG23231333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23231333fooEv,_ZTv0_n12_N9GG23231333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG23231333fooEv,_ZThn48_N9GG23231333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2323133[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2323133[0]),
+ (VTBL_ENTRY)&_ZN9GG23231333fooEv,
+ (VTBL_ENTRY)&_ZN9GG23231333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2323133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23231333barEv,_ZTv0_n20_N9GG23231333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2323133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23231333barEv,_ZTv0_n12_N9GG23231333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2323133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23231333fooEv,_ZTv0_n12_N9GG23231333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23231333barEv,_ZTv0_n16_N9GG23231333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2323133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23231333fooEv,_ZTv0_n20_N9GG23231333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23231333barEv,_ZTv0_n24_N9GG23231333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2323133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23231333fooEv,_ZTv0_n12_N9GG23231333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23231333barEv,_ZTv0_n16_N9GG23231333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2323133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23231333fooEv,_ZTv0_n12_N9GG23231333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2323133[];
+extern void _ZN5EE2323barEv();
+static VTBL_ENTRY _tg__ZTV5EE232__9GG2323133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN5EE2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv)();
+extern void ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE232__9GG2323133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv)();
+extern void ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE232__9GG2323133[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv),
+};
+extern void _ZN5FF3133fooEv();
+extern void _ZN5FF3133barEv();
+static VTBL_ENTRY _tg__ZTV5FF313__9GG2323133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&_ZN5FF3133fooEv,
+ (VTBL_ENTRY)&_ZN5FF3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv)();
+extern void ABISELECT(_ZThn16_N5FF3133barEv,_ZThn8_N5FF3133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF313__9GG2323133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3133fooEv,_ZThn16_N5FF3133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF313__9GG2323133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+};
+static VTT_ENTRY vtt_GG2323133[] = {
+ {&(_ZTV9GG2323133[8]), 8,44},
+ {&(_ZTV9GG2323133[15]), 15,44},
+ {&(_ZTV9GG2323133[19]), 19,44},
+ {&(_ZTV9GG2323133[24]), 24,44},
+ {&(_ZTV9GG2323133[32]), 32,44},
+ {&(_ZTV9GG2323133[38]), 38,44},
+ {&(_ZTV9GG2323133[43]), 43,44},
+ {&(_tg__ZTV5EE232__9GG2323133[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE232__9GG2323133[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE232__9GG2323133[4]), 4,6},
+ {&(_tg__ZTV5FF313__9GG2323133[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF313__9GG2323133[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF313__9GG2323133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2323133[];
+extern VTBL_ENTRY _ZTV9GG2323133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2323133[];
+static VTBL_ENTRY alt_thunk_names718[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3133barEv,_ZThn8_N5FF3133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3133fooEv,_ZThn16_N5FF3133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG23231333barEv,_ZTv0_n24_N9GG23231333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23231333barEv,_ZThn32_N9GG23231333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23231333fooEv,_ZTv0_n20_N9GG23231333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23231333fooEv,_ZThn32_N9GG23231333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23231333barEv,_ZTv0_n16_N9GG23231333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23231333barEv,_ZThn40_N9GG23231333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23231333barEv,_ZThn24_N9GG23231333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23231333fooEv,_ZTv0_n12_N9GG23231333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG23231333fooEv,_ZThn48_N9GG23231333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23231333fooEv,_ZThn40_N9GG23231333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23231333fooEv,_ZThn24_N9GG23231333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23231333barEv,_ZTv0_n12_N9GG23231333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23231333barEv,_ZThn16_N9GG23231333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23231333barEv,_ZTv0_n20_N9GG23231333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23231333barEv,_ZThn8_N9GG23231333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2323133 = { "GG2323133", // class name
+ bases_GG2323133, 6,
+ &(vtc_GG2323133[0]), // expected_vtbl_contents
+ &(vtt_GG2323133[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2323133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2323133),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2323133),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names718,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2323213 : virtual EE232 , virtual FF321 {
+ int pg;
+ virtual void foo(); // _ZN9GG23232133fooEv
+ virtual void bar(); // _ZN9GG23232133barEv
+ ~GG2323213(); // tgen
+ GG2323213(); // tgen
+};
+//SIG(1 GG2323213) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2323213 ::foo(){vfunc_called(this, "_ZN9GG23232133fooEv");}
+void GG2323213 ::bar(){vfunc_called(this, "_ZN9GG23232133barEv");}
+GG2323213 ::~GG2323213(){ note_dtor("GG2323213", this);} // tgen
+GG2323213 ::GG2323213(){ note_ctor("GG2323213", this);} // tgen
+
+static void Test_GG2323213()
+{
+ extern Class_Descriptor cd_GG2323213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2323213, buf);
+ GG2323213 *dp, &lv = *(dp=new (buf) GG2323213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2323213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2323213)");
+ check_base_class_offset(lv, (AA2*)(EE232*), ABISELECT(32,16), "GG2323213");
+ check_base_class_offset(lv, (BB3*)(EE232*), ABISELECT(48,24), "GG2323213");
+ check_base_class_offset(lv, (EE232*), ABISELECT(16,8), "GG2323213");
+ check_base_class_offset(lv, (AA3*)(FF321*), ABISELECT(80,40), "GG2323213");
+ check_base_class_offset(lv, (BB2*)(FF321*), ABISELECT(96,48), "GG2323213");
+ check_base_class_offset(lv, (FF321*), ABISELECT(64,32), "GG2323213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2323213.pg");
+ test_class_info(&lv, &cd_GG2323213);
+ dp->~GG2323213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2323213(Test_GG2323213, "GG2323213", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2323213C1Ev();
+extern void _ZN9GG2323213D1Ev();
+Name_Map name_map_GG2323213[] = {
+ NSPAIR(_ZN9GG2323213C1Ev),
+ NSPAIR(_ZN9GG2323213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE232;
+extern VTBL_ENTRY _ZTI5EE232[];
+extern VTBL_ENTRY _ZTV5EE232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE232[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF321;
+extern VTBL_ENTRY _ZTI5FF321[];
+extern VTBL_ENTRY _ZTV5FF321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF321[];
+static Base_Class bases_GG2323213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE232, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF321, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2323213[];
+extern void _ZN9GG23232133fooEv();
+extern void _ZN9GG23232133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23232133barEv,_ZTv0_n20_N9GG23232133barEv)();
+extern void ABISELECT(_ZThn16_N9GG23232133barEv,_ZThn8_N9GG23232133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23232133barEv,_ZTv0_n12_N9GG23232133barEv)();
+extern void ABISELECT(_ZThn32_N9GG23232133barEv,_ZThn16_N9GG23232133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23232133fooEv,_ZTv0_n12_N9GG23232133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23232133fooEv,_ZThn24_N9GG23232133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23232133barEv,_ZTv0_n16_N9GG23232133barEv)();
+extern void ABISELECT(_ZThn48_N9GG23232133barEv,_ZThn24_N9GG23232133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23232133fooEv,_ZTv0_n20_N9GG23232133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23232133fooEv,_ZThn32_N9GG23232133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23232133fooEv,_ZTv0_n12_N9GG23232133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23232133fooEv,_ZThn40_N9GG23232133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23232133barEv,_ZTv0_n16_N9GG23232133barEv)();
+extern void ABISELECT(_ZThn80_N9GG23232133barEv,_ZThn40_N9GG23232133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23232133barEv,_ZTv0_n12_N9GG23232133barEv)();
+extern void ABISELECT(_ZThn96_N9GG23232133barEv,_ZThn48_N9GG23232133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2323213[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2323213[0]),
+ (VTBL_ENTRY)&_ZN9GG23232133fooEv,
+ (VTBL_ENTRY)&_ZN9GG23232133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2323213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23232133barEv,_ZTv0_n20_N9GG23232133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2323213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23232133barEv,_ZTv0_n12_N9GG23232133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2323213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23232133fooEv,_ZTv0_n12_N9GG23232133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23232133barEv,_ZTv0_n16_N9GG23232133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2323213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23232133fooEv,_ZTv0_n20_N9GG23232133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2323213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23232133fooEv,_ZTv0_n12_N9GG23232133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23232133barEv,_ZTv0_n16_N9GG23232133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2323213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23232133barEv,_ZTv0_n12_N9GG23232133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2323213[];
+extern void _ZN5EE2323barEv();
+static VTBL_ENTRY _tg__ZTV5EE232__9GG2323213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN5EE2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv)();
+extern void ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE232__9GG2323213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv)();
+extern void ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE232__9GG2323213[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv),
+};
+extern void _ZN5FF3213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF321__9GG2323213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN5FF3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3213fooEv,_ZThn8_N5FF3213fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF321__9GG2323213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF321__9GG2323213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG2323213[] = {
+ {&(_ZTV9GG2323213[8]), 8,42},
+ {&(_ZTV9GG2323213[15]), 15,42},
+ {&(_ZTV9GG2323213[19]), 19,42},
+ {&(_ZTV9GG2323213[24]), 24,42},
+ {&(_ZTV9GG2323213[31]), 31,42},
+ {&(_ZTV9GG2323213[36]), 36,42},
+ {&(_ZTV9GG2323213[41]), 41,42},
+ {&(_tg__ZTV5EE232__9GG2323213[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE232__9GG2323213[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE232__9GG2323213[4]), 4,6},
+ {&(_tg__ZTV5FF321__9GG2323213[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF321__9GG2323213[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF321__9GG2323213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2323213[];
+extern VTBL_ENTRY _ZTV9GG2323213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2323213[];
+static VTBL_ENTRY alt_thunk_names719[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3213fooEv,_ZThn8_N5FF3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23232133fooEv,_ZTv0_n20_N9GG23232133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23232133fooEv,_ZThn32_N9GG23232133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23232133barEv,_ZTv0_n16_N9GG23232133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23232133barEv,_ZThn40_N9GG23232133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23232133barEv,_ZThn24_N9GG23232133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23232133fooEv,_ZTv0_n12_N9GG23232133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23232133fooEv,_ZThn40_N9GG23232133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23232133fooEv,_ZThn24_N9GG23232133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23232133barEv,_ZTv0_n12_N9GG23232133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG23232133barEv,_ZThn48_N9GG23232133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23232133barEv,_ZThn16_N9GG23232133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23232133barEv,_ZTv0_n20_N9GG23232133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23232133barEv,_ZThn8_N9GG23232133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2323213 = { "GG2323213", // class name
+ bases_GG2323213, 6,
+ &(vtc_GG2323213[0]), // expected_vtbl_contents
+ &(vtt_GG2323213[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2323213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2323213),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2323213),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names719,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2323223 : virtual EE232 , virtual FF322 {
+ int pg;
+ virtual void foo(); // _ZN9GG23232233fooEv
+ virtual void bar(); // _ZN9GG23232233barEv
+ ~GG2323223(); // tgen
+ GG2323223(); // tgen
+};
+//SIG(1 GG2323223) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2323223 ::foo(){vfunc_called(this, "_ZN9GG23232233fooEv");}
+void GG2323223 ::bar(){vfunc_called(this, "_ZN9GG23232233barEv");}
+GG2323223 ::~GG2323223(){ note_dtor("GG2323223", this);} // tgen
+GG2323223 ::GG2323223(){ note_ctor("GG2323223", this);} // tgen
+
+static void Test_GG2323223()
+{
+ extern Class_Descriptor cd_GG2323223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2323223, buf);
+ GG2323223 *dp, &lv = *(dp=new (buf) GG2323223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2323223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2323223)");
+ check_base_class_offset(lv, (AA2*)(EE232*), ABISELECT(32,16), "GG2323223");
+ check_base_class_offset(lv, (BB3*)(EE232*), ABISELECT(48,24), "GG2323223");
+ check_base_class_offset(lv, (EE232*), ABISELECT(16,8), "GG2323223");
+ check_base_class_offset(lv, (AA3*)(FF322*), ABISELECT(80,40), "GG2323223");
+ check_base_class_offset(lv, (BB2*)(FF322*), ABISELECT(96,48), "GG2323223");
+ check_base_class_offset(lv, (FF322*), ABISELECT(64,32), "GG2323223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2323223.pg");
+ test_class_info(&lv, &cd_GG2323223);
+ dp->~GG2323223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2323223(Test_GG2323223, "GG2323223", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2323223C1Ev();
+extern void _ZN9GG2323223D1Ev();
+Name_Map name_map_GG2323223[] = {
+ NSPAIR(_ZN9GG2323223C1Ev),
+ NSPAIR(_ZN9GG2323223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE232;
+extern VTBL_ENTRY _ZTI5EE232[];
+extern VTBL_ENTRY _ZTV5EE232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE232[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF322;
+extern VTBL_ENTRY _ZTI5FF322[];
+extern VTBL_ENTRY _ZTV5FF322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF322[];
+static Base_Class bases_GG2323223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE232, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF322, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2323223[];
+extern void _ZN9GG23232233fooEv();
+extern void _ZN9GG23232233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23232233barEv,_ZTv0_n20_N9GG23232233barEv)();
+extern void ABISELECT(_ZThn16_N9GG23232233barEv,_ZThn8_N9GG23232233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23232233barEv,_ZTv0_n12_N9GG23232233barEv)();
+extern void ABISELECT(_ZThn32_N9GG23232233barEv,_ZThn16_N9GG23232233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23232233fooEv,_ZTv0_n12_N9GG23232233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23232233fooEv,_ZThn24_N9GG23232233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23232233barEv,_ZTv0_n16_N9GG23232233barEv)();
+extern void ABISELECT(_ZThn48_N9GG23232233barEv,_ZThn24_N9GG23232233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23232233barEv,_ZTv0_n20_N9GG23232233barEv)();
+extern void ABISELECT(_ZThn64_N9GG23232233barEv,_ZThn32_N9GG23232233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23232233fooEv,_ZTv0_n12_N9GG23232233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23232233fooEv,_ZThn40_N9GG23232233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23232233barEv,_ZTv0_n16_N9GG23232233barEv)();
+extern void ABISELECT(_ZThn80_N9GG23232233barEv,_ZThn40_N9GG23232233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23232233barEv,_ZTv0_n12_N9GG23232233barEv)();
+extern void ABISELECT(_ZThn96_N9GG23232233barEv,_ZThn48_N9GG23232233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2323223[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2323223[0]),
+ (VTBL_ENTRY)&_ZN9GG23232233fooEv,
+ (VTBL_ENTRY)&_ZN9GG23232233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2323223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23232233barEv,_ZTv0_n20_N9GG23232233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2323223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23232233barEv,_ZTv0_n12_N9GG23232233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2323223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23232233fooEv,_ZTv0_n12_N9GG23232233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23232233barEv,_ZTv0_n16_N9GG23232233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2323223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23232233barEv,_ZTv0_n20_N9GG23232233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2323223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23232233fooEv,_ZTv0_n12_N9GG23232233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23232233barEv,_ZTv0_n16_N9GG23232233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2323223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23232233barEv,_ZTv0_n12_N9GG23232233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2323223[];
+extern void _ZN5EE2323barEv();
+static VTBL_ENTRY _tg__ZTV5EE232__9GG2323223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN5EE2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv)();
+extern void ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE232__9GG2323223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv)();
+extern void ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE232__9GG2323223[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv),
+};
+extern void _ZN5FF3223barEv();
+static VTBL_ENTRY _tg__ZTV5FF322__9GG2323223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN5FF3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv)();
+extern void ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF322__9GG2323223[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv)();
+extern void ABISELECT(_ZThn32_N5FF3223barEv,_ZThn16_N5FF3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF322__9GG2323223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv),
+};
+static VTT_ENTRY vtt_GG2323223[] = {
+ {&(_ZTV9GG2323223[8]), 8,42},
+ {&(_ZTV9GG2323223[15]), 15,42},
+ {&(_ZTV9GG2323223[19]), 19,42},
+ {&(_ZTV9GG2323223[24]), 24,42},
+ {&(_ZTV9GG2323223[31]), 31,42},
+ {&(_ZTV9GG2323223[36]), 36,42},
+ {&(_ZTV9GG2323223[41]), 41,42},
+ {&(_tg__ZTV5EE232__9GG2323223[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE232__9GG2323223[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE232__9GG2323223[4]), 4,6},
+ {&(_tg__ZTV5FF322__9GG2323223[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF322__9GG2323223[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF322__9GG2323223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2323223[];
+extern VTBL_ENTRY _ZTV9GG2323223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2323223[];
+static VTBL_ENTRY alt_thunk_names720[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3223barEv,_ZThn16_N5FF3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23232233barEv,_ZTv0_n16_N9GG23232233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23232233barEv,_ZThn40_N9GG23232233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23232233barEv,_ZThn24_N9GG23232233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23232233fooEv,_ZTv0_n12_N9GG23232233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23232233fooEv,_ZThn40_N9GG23232233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23232233fooEv,_ZThn24_N9GG23232233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23232233barEv,_ZTv0_n12_N9GG23232233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG23232233barEv,_ZThn48_N9GG23232233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23232233barEv,_ZThn16_N9GG23232233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23232233barEv,_ZTv0_n20_N9GG23232233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23232233barEv,_ZThn32_N9GG23232233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23232233barEv,_ZThn8_N9GG23232233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2323223 = { "GG2323223", // class name
+ bases_GG2323223, 6,
+ &(vtc_GG2323223[0]), // expected_vtbl_contents
+ &(vtt_GG2323223[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2323223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2323223),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2323223),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names720,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2323233 : virtual EE232 , virtual FF323 {
+ int pg;
+ virtual void foo(); // _ZN9GG23232333fooEv
+ virtual void bar(); // _ZN9GG23232333barEv
+ ~GG2323233(); // tgen
+ GG2323233(); // tgen
+};
+//SIG(1 GG2323233) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2323233 ::foo(){vfunc_called(this, "_ZN9GG23232333fooEv");}
+void GG2323233 ::bar(){vfunc_called(this, "_ZN9GG23232333barEv");}
+GG2323233 ::~GG2323233(){ note_dtor("GG2323233", this);} // tgen
+GG2323233 ::GG2323233(){ note_ctor("GG2323233", this);} // tgen
+
+static void Test_GG2323233()
+{
+ extern Class_Descriptor cd_GG2323233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2323233, buf);
+ GG2323233 *dp, &lv = *(dp=new (buf) GG2323233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2323233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2323233)");
+ check_base_class_offset(lv, (AA2*)(EE232*), ABISELECT(32,16), "GG2323233");
+ check_base_class_offset(lv, (BB3*)(EE232*), ABISELECT(48,24), "GG2323233");
+ check_base_class_offset(lv, (EE232*), ABISELECT(16,8), "GG2323233");
+ check_base_class_offset(lv, (AA3*)(FF323*), ABISELECT(80,40), "GG2323233");
+ check_base_class_offset(lv, (BB2*)(FF323*), ABISELECT(96,48), "GG2323233");
+ check_base_class_offset(lv, (FF323*), ABISELECT(64,32), "GG2323233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2323233.pg");
+ test_class_info(&lv, &cd_GG2323233);
+ dp->~GG2323233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2323233(Test_GG2323233, "GG2323233", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2323233C1Ev();
+extern void _ZN9GG2323233D1Ev();
+Name_Map name_map_GG2323233[] = {
+ NSPAIR(_ZN9GG2323233C1Ev),
+ NSPAIR(_ZN9GG2323233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE232;
+extern VTBL_ENTRY _ZTI5EE232[];
+extern VTBL_ENTRY _ZTV5EE232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE232[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF323;
+extern VTBL_ENTRY _ZTI5FF323[];
+extern VTBL_ENTRY _ZTV5FF323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF323[];
+static Base_Class bases_GG2323233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE232, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 40, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF323, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2323233[];
+extern void _ZN9GG23232333fooEv();
+extern void _ZN9GG23232333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23232333barEv,_ZTv0_n20_N9GG23232333barEv)();
+extern void ABISELECT(_ZThn16_N9GG23232333barEv,_ZThn8_N9GG23232333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23232333barEv,_ZTv0_n12_N9GG23232333barEv)();
+extern void ABISELECT(_ZThn32_N9GG23232333barEv,_ZThn16_N9GG23232333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23232333fooEv,_ZTv0_n12_N9GG23232333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23232333fooEv,_ZThn24_N9GG23232333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23232333barEv,_ZTv0_n16_N9GG23232333barEv)();
+extern void ABISELECT(_ZThn48_N9GG23232333barEv,_ZThn24_N9GG23232333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23232333fooEv,_ZTv0_n20_N9GG23232333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23232333fooEv,_ZThn32_N9GG23232333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23232333barEv,_ZTv0_n24_N9GG23232333barEv)();
+extern void ABISELECT(_ZThn64_N9GG23232333barEv,_ZThn32_N9GG23232333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23232333fooEv,_ZTv0_n12_N9GG23232333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23232333fooEv,_ZThn40_N9GG23232333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23232333barEv,_ZTv0_n16_N9GG23232333barEv)();
+extern void ABISELECT(_ZThn80_N9GG23232333barEv,_ZThn40_N9GG23232333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23232333barEv,_ZTv0_n12_N9GG23232333barEv)();
+extern void ABISELECT(_ZThn96_N9GG23232333barEv,_ZThn48_N9GG23232333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2323233[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2323233[0]),
+ (VTBL_ENTRY)&_ZN9GG23232333fooEv,
+ (VTBL_ENTRY)&_ZN9GG23232333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2323233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23232333barEv,_ZTv0_n20_N9GG23232333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2323233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23232333barEv,_ZTv0_n12_N9GG23232333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2323233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23232333fooEv,_ZTv0_n12_N9GG23232333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23232333barEv,_ZTv0_n16_N9GG23232333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2323233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23232333fooEv,_ZTv0_n20_N9GG23232333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23232333barEv,_ZTv0_n24_N9GG23232333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2323233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23232333fooEv,_ZTv0_n12_N9GG23232333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23232333barEv,_ZTv0_n16_N9GG23232333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2323233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23232333barEv,_ZTv0_n12_N9GG23232333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2323233[];
+extern void _ZN5EE2323barEv();
+static VTBL_ENTRY _tg__ZTV5EE232__9GG2323233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN5EE2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv)();
+extern void ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE232__9GG2323233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv)();
+extern void ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE232__9GG2323233[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv),
+};
+extern void _ZN5FF3233fooEv();
+extern void _ZN5FF3233barEv();
+static VTBL_ENTRY _tg__ZTV5FF323__9GG2323233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&_ZN5FF3233fooEv,
+ (VTBL_ENTRY)&_ZN5FF3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3233fooEv,_ZThn8_N5FF3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv)();
+extern void ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF323__9GG2323233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv)();
+extern void ABISELECT(_ZThn32_N5FF3233barEv,_ZThn16_N5FF3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF323__9GG2323233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv),
+};
+static VTT_ENTRY vtt_GG2323233[] = {
+ {&(_ZTV9GG2323233[8]), 8,44},
+ {&(_ZTV9GG2323233[15]), 15,44},
+ {&(_ZTV9GG2323233[19]), 19,44},
+ {&(_ZTV9GG2323233[24]), 24,44},
+ {&(_ZTV9GG2323233[32]), 32,44},
+ {&(_ZTV9GG2323233[38]), 38,44},
+ {&(_ZTV9GG2323233[43]), 43,44},
+ {&(_tg__ZTV5EE232__9GG2323233[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE232__9GG2323233[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE232__9GG2323233[4]), 4,6},
+ {&(_tg__ZTV5FF323__9GG2323233[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF323__9GG2323233[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF323__9GG2323233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2323233[];
+extern VTBL_ENTRY _ZTV9GG2323233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2323233[];
+static VTBL_ENTRY alt_thunk_names721[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3233barEv,_ZThn16_N5FF3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3233fooEv,_ZThn8_N5FF3233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG23232333barEv,_ZTv0_n24_N9GG23232333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23232333barEv,_ZThn32_N9GG23232333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23232333fooEv,_ZTv0_n20_N9GG23232333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23232333fooEv,_ZThn32_N9GG23232333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23232333barEv,_ZTv0_n16_N9GG23232333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23232333barEv,_ZThn40_N9GG23232333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23232333barEv,_ZThn24_N9GG23232333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23232333fooEv,_ZTv0_n12_N9GG23232333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23232333fooEv,_ZThn40_N9GG23232333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23232333fooEv,_ZThn24_N9GG23232333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23232333barEv,_ZTv0_n12_N9GG23232333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG23232333barEv,_ZThn48_N9GG23232333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23232333barEv,_ZThn16_N9GG23232333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23232333barEv,_ZTv0_n20_N9GG23232333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23232333barEv,_ZThn8_N9GG23232333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2323233 = { "GG2323233", // class name
+ bases_GG2323233, 6,
+ &(vtc_GG2323233[0]), // expected_vtbl_contents
+ &(vtt_GG2323233[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2323233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2323233),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2323233),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names721,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2323313 : virtual EE232 , virtual FF331 {
+ int pg;
+ virtual void foo(); // _ZN9GG23233133fooEv
+ virtual void bar(); // _ZN9GG23233133barEv
+ ~GG2323313(); // tgen
+ GG2323313(); // tgen
+};
+//SIG(1 GG2323313) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG2323313 ::foo(){vfunc_called(this, "_ZN9GG23233133fooEv");}
+void GG2323313 ::bar(){vfunc_called(this, "_ZN9GG23233133barEv");}
+GG2323313 ::~GG2323313(){ note_dtor("GG2323313", this);} // tgen
+GG2323313 ::GG2323313(){ note_ctor("GG2323313", this);} // tgen
+
+static void Test_GG2323313()
+{
+ extern Class_Descriptor cd_GG2323313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2323313, buf);
+ GG2323313 *dp, &lv = *(dp=new (buf) GG2323313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2323313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2323313)");
+ check_base_class_offset(lv, (AA2*)(EE232*), ABISELECT(32,16), "GG2323313");
+ check_base_class_offset(lv, (BB3*)(EE232*), ABISELECT(48,24), "GG2323313");
+ check_base_class_offset(lv, (BB3*)(FF331*), ABISELECT(48,24), "GG2323313");
+ check_base_class_offset(lv, (EE232*), ABISELECT(16,8), "GG2323313");
+ check_base_class_offset(lv, (AA3*)(FF331*), ABISELECT(80,40), "GG2323313");
+ check_base_class_offset(lv, (FF331*), ABISELECT(64,32), "GG2323313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2323313.pg");
+ test_class_info(&lv, &cd_GG2323313);
+ dp->~GG2323313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2323313(Test_GG2323313, "GG2323313", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2323313C1Ev();
+extern void _ZN9GG2323313D1Ev();
+Name_Map name_map_GG2323313[] = {
+ NSPAIR(_ZN9GG2323313C1Ev),
+ NSPAIR(_ZN9GG2323313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE232;
+extern VTBL_ENTRY _ZTI5EE232[];
+extern VTBL_ENTRY _ZTV5EE232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE232[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF331;
+extern VTBL_ENTRY _ZTI5FF331[];
+extern VTBL_ENTRY _ZTV5FF331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF331[];
+static Base_Class bases_GG2323313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE232, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF331, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2323313[];
+extern void _ZN9GG23233133fooEv();
+extern void _ZN9GG23233133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23233133barEv,_ZTv0_n20_N9GG23233133barEv)();
+extern void ABISELECT(_ZThn16_N9GG23233133barEv,_ZThn8_N9GG23233133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23233133barEv,_ZTv0_n12_N9GG23233133barEv)();
+extern void ABISELECT(_ZThn32_N9GG23233133barEv,_ZThn16_N9GG23233133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23233133fooEv,_ZTv0_n12_N9GG23233133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23233133fooEv,_ZThn24_N9GG23233133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23233133barEv,_ZTv0_n16_N9GG23233133barEv)();
+extern void ABISELECT(_ZThn48_N9GG23233133barEv,_ZThn24_N9GG23233133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23233133fooEv,_ZTv0_n20_N9GG23233133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23233133fooEv,_ZThn32_N9GG23233133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23233133fooEv,_ZTv0_n12_N9GG23233133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23233133fooEv,_ZThn40_N9GG23233133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23233133barEv,_ZTv0_n16_N9GG23233133barEv)();
+extern void ABISELECT(_ZThn80_N9GG23233133barEv,_ZThn40_N9GG23233133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2323313[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2323313[0]),
+ (VTBL_ENTRY)&_ZN9GG23233133fooEv,
+ (VTBL_ENTRY)&_ZN9GG23233133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2323313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23233133barEv,_ZTv0_n20_N9GG23233133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2323313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23233133barEv,_ZTv0_n12_N9GG23233133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2323313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23233133fooEv,_ZTv0_n12_N9GG23233133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23233133barEv,_ZTv0_n16_N9GG23233133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2323313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23233133fooEv,_ZTv0_n20_N9GG23233133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2323313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23233133fooEv,_ZTv0_n12_N9GG23233133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23233133barEv,_ZTv0_n16_N9GG23233133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2323313[];
+extern void _ZN5EE2323barEv();
+static VTBL_ENTRY _tg__ZTV5EE232__9GG2323313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN5EE2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv)();
+extern void ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE232__9GG2323313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv)();
+extern void ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE232__9GG2323313[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv),
+};
+extern void _ZN5FF3313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF331__9GG2323313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&_ZN5FF3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF331__9GG2323313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF331__9GG2323313[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG2323313[] = {
+ {&(_ZTV9GG2323313[7]), 7,37},
+ {&(_ZTV9GG2323313[14]), 14,37},
+ {&(_ZTV9GG2323313[18]), 18,37},
+ {&(_ZTV9GG2323313[23]), 23,37},
+ {&(_ZTV9GG2323313[30]), 30,37},
+ {&(_ZTV9GG2323313[35]), 35,37},
+ {&(_tg__ZTV5EE232__9GG2323313[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE232__9GG2323313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE232__9GG2323313[4]), 4,6},
+ {&(_tg__ZTV5FF331__9GG2323313[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF331__9GG2323313[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF331__9GG2323313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2323313[];
+extern VTBL_ENTRY _ZTV9GG2323313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2323313[];
+static VTBL_ENTRY alt_thunk_names722[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23233133fooEv,_ZTv0_n20_N9GG23233133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23233133fooEv,_ZThn32_N9GG23233133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23233133barEv,_ZTv0_n16_N9GG23233133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23233133barEv,_ZThn40_N9GG23233133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23233133barEv,_ZThn24_N9GG23233133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23233133fooEv,_ZTv0_n12_N9GG23233133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23233133fooEv,_ZThn40_N9GG23233133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23233133fooEv,_ZThn24_N9GG23233133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23233133barEv,_ZTv0_n12_N9GG23233133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23233133barEv,_ZThn16_N9GG23233133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23233133barEv,_ZTv0_n20_N9GG23233133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23233133barEv,_ZThn8_N9GG23233133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2323313 = { "GG2323313", // class name
+ bases_GG2323313, 5,
+ &(vtc_GG2323313[0]), // expected_vtbl_contents
+ &(vtt_GG2323313[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2323313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2323313),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2323313),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names722,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2323323 : virtual EE232 , virtual FF332 {
+ int pg;
+ virtual void foo(); // _ZN9GG23233233fooEv
+ virtual void bar(); // _ZN9GG23233233barEv
+ ~GG2323323(); // tgen
+ GG2323323(); // tgen
+};
+//SIG(1 GG2323323) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG2323323 ::foo(){vfunc_called(this, "_ZN9GG23233233fooEv");}
+void GG2323323 ::bar(){vfunc_called(this, "_ZN9GG23233233barEv");}
+GG2323323 ::~GG2323323(){ note_dtor("GG2323323", this);} // tgen
+GG2323323 ::GG2323323(){ note_ctor("GG2323323", this);} // tgen
+
+static void Test_GG2323323()
+{
+ extern Class_Descriptor cd_GG2323323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2323323, buf);
+ GG2323323 *dp, &lv = *(dp=new (buf) GG2323323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2323323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2323323)");
+ check_base_class_offset(lv, (AA2*)(EE232*), ABISELECT(32,16), "GG2323323");
+ check_base_class_offset(lv, (BB3*)(EE232*), ABISELECT(48,24), "GG2323323");
+ check_base_class_offset(lv, (BB3*)(FF332*), ABISELECT(48,24), "GG2323323");
+ check_base_class_offset(lv, (EE232*), ABISELECT(16,8), "GG2323323");
+ check_base_class_offset(lv, (AA3*)(FF332*), ABISELECT(80,40), "GG2323323");
+ check_base_class_offset(lv, (FF332*), ABISELECT(64,32), "GG2323323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2323323.pg");
+ test_class_info(&lv, &cd_GG2323323);
+ dp->~GG2323323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2323323(Test_GG2323323, "GG2323323", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2323323C1Ev();
+extern void _ZN9GG2323323D1Ev();
+Name_Map name_map_GG2323323[] = {
+ NSPAIR(_ZN9GG2323323C1Ev),
+ NSPAIR(_ZN9GG2323323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE232;
+extern VTBL_ENTRY _ZTI5EE232[];
+extern VTBL_ENTRY _ZTV5EE232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE232[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF332;
+extern VTBL_ENTRY _ZTI5FF332[];
+extern VTBL_ENTRY _ZTV5FF332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF332[];
+static Base_Class bases_GG2323323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE232, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF332, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2323323[];
+extern void _ZN9GG23233233fooEv();
+extern void _ZN9GG23233233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23233233barEv,_ZTv0_n20_N9GG23233233barEv)();
+extern void ABISELECT(_ZThn16_N9GG23233233barEv,_ZThn8_N9GG23233233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23233233barEv,_ZTv0_n12_N9GG23233233barEv)();
+extern void ABISELECT(_ZThn32_N9GG23233233barEv,_ZThn16_N9GG23233233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23233233fooEv,_ZTv0_n12_N9GG23233233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23233233fooEv,_ZThn24_N9GG23233233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23233233barEv,_ZTv0_n16_N9GG23233233barEv)();
+extern void ABISELECT(_ZThn48_N9GG23233233barEv,_ZThn24_N9GG23233233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23233233barEv,_ZTv0_n20_N9GG23233233barEv)();
+extern void ABISELECT(_ZThn64_N9GG23233233barEv,_ZThn32_N9GG23233233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23233233fooEv,_ZTv0_n12_N9GG23233233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23233233fooEv,_ZThn40_N9GG23233233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23233233barEv,_ZTv0_n16_N9GG23233233barEv)();
+extern void ABISELECT(_ZThn80_N9GG23233233barEv,_ZThn40_N9GG23233233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2323323[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2323323[0]),
+ (VTBL_ENTRY)&_ZN9GG23233233fooEv,
+ (VTBL_ENTRY)&_ZN9GG23233233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2323323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23233233barEv,_ZTv0_n20_N9GG23233233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2323323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23233233barEv,_ZTv0_n12_N9GG23233233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2323323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23233233fooEv,_ZTv0_n12_N9GG23233233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23233233barEv,_ZTv0_n16_N9GG23233233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2323323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23233233barEv,_ZTv0_n20_N9GG23233233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2323323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23233233fooEv,_ZTv0_n12_N9GG23233233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23233233barEv,_ZTv0_n16_N9GG23233233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2323323[];
+extern void _ZN5EE2323barEv();
+static VTBL_ENTRY _tg__ZTV5EE232__9GG2323323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN5EE2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv)();
+extern void ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE232__9GG2323323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv)();
+extern void ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE232__9GG2323323[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv),
+};
+extern void _ZN5FF3323barEv();
+static VTBL_ENTRY _tg__ZTV5FF332__9GG2323323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN5FF3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+extern void ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF332__9GG2323323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF332__9GG2323323[] = {
+ ABISELECT(16,8),
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+static VTT_ENTRY vtt_GG2323323[] = {
+ {&(_ZTV9GG2323323[7]), 7,37},
+ {&(_ZTV9GG2323323[14]), 14,37},
+ {&(_ZTV9GG2323323[18]), 18,37},
+ {&(_ZTV9GG2323323[23]), 23,37},
+ {&(_ZTV9GG2323323[30]), 30,37},
+ {&(_ZTV9GG2323323[35]), 35,37},
+ {&(_tg__ZTV5EE232__9GG2323323[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE232__9GG2323323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE232__9GG2323323[4]), 4,6},
+ {&(_tg__ZTV5FF332__9GG2323323[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF332__9GG2323323[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF332__9GG2323323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2323323[];
+extern VTBL_ENTRY _ZTV9GG2323323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2323323[];
+static VTBL_ENTRY alt_thunk_names723[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23233233barEv,_ZTv0_n16_N9GG23233233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23233233barEv,_ZThn40_N9GG23233233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23233233barEv,_ZThn24_N9GG23233233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23233233fooEv,_ZTv0_n12_N9GG23233233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23233233fooEv,_ZThn40_N9GG23233233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23233233fooEv,_ZThn24_N9GG23233233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23233233barEv,_ZTv0_n12_N9GG23233233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23233233barEv,_ZThn16_N9GG23233233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23233233barEv,_ZTv0_n20_N9GG23233233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23233233barEv,_ZThn32_N9GG23233233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23233233barEv,_ZThn8_N9GG23233233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2323323 = { "GG2323323", // class name
+ bases_GG2323323, 5,
+ &(vtc_GG2323323[0]), // expected_vtbl_contents
+ &(vtt_GG2323323[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2323323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2323323),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2323323),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names723,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2323333 : virtual EE232 , virtual FF333 {
+ int pg;
+ virtual void foo(); // _ZN9GG23233333fooEv
+ virtual void bar(); // _ZN9GG23233333barEv
+ ~GG2323333(); // tgen
+ GG2323333(); // tgen
+};
+//SIG(1 GG2323333) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2323333 ::foo(){vfunc_called(this, "_ZN9GG23233333fooEv");}
+void GG2323333 ::bar(){vfunc_called(this, "_ZN9GG23233333barEv");}
+GG2323333 ::~GG2323333(){ note_dtor("GG2323333", this);} // tgen
+GG2323333 ::GG2323333(){ note_ctor("GG2323333", this);} // tgen
+
+static void Test_GG2323333()
+{
+ extern Class_Descriptor cd_GG2323333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2323333, buf);
+ GG2323333 *dp, &lv = *(dp=new (buf) GG2323333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2323333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2323333)");
+ check_base_class_offset(lv, (AA2*)(EE232*), ABISELECT(32,16), "GG2323333");
+ check_base_class_offset(lv, (BB3*)(EE232*), ABISELECT(48,24), "GG2323333");
+ check_base_class_offset(lv, (BB3*)(FF333*), ABISELECT(48,24), "GG2323333");
+ check_base_class_offset(lv, (EE232*), ABISELECT(16,8), "GG2323333");
+ check_base_class_offset(lv, (AA3*)(FF333*), ABISELECT(80,40), "GG2323333");
+ check_base_class_offset(lv, (FF333*), ABISELECT(64,32), "GG2323333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2323333.pg");
+ test_class_info(&lv, &cd_GG2323333);
+ dp->~GG2323333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2323333(Test_GG2323333, "GG2323333", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2323333C1Ev();
+extern void _ZN9GG2323333D1Ev();
+Name_Map name_map_GG2323333[] = {
+ NSPAIR(_ZN9GG2323333C1Ev),
+ NSPAIR(_ZN9GG2323333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE232;
+extern VTBL_ENTRY _ZTI5EE232[];
+extern VTBL_ENTRY _ZTV5EE232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE232[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF333;
+extern VTBL_ENTRY _ZTI5FF333[];
+extern VTBL_ENTRY _ZTV5FF333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF333[];
+static Base_Class bases_GG2323333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE232, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF333, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2323333[];
+extern void _ZN9GG23233333fooEv();
+extern void _ZN9GG23233333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23233333barEv,_ZTv0_n20_N9GG23233333barEv)();
+extern void ABISELECT(_ZThn16_N9GG23233333barEv,_ZThn8_N9GG23233333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23233333barEv,_ZTv0_n12_N9GG23233333barEv)();
+extern void ABISELECT(_ZThn32_N9GG23233333barEv,_ZThn16_N9GG23233333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23233333fooEv,_ZTv0_n12_N9GG23233333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23233333fooEv,_ZThn24_N9GG23233333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23233333barEv,_ZTv0_n16_N9GG23233333barEv)();
+extern void ABISELECT(_ZThn48_N9GG23233333barEv,_ZThn24_N9GG23233333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23233333fooEv,_ZTv0_n20_N9GG23233333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23233333fooEv,_ZThn32_N9GG23233333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23233333barEv,_ZTv0_n24_N9GG23233333barEv)();
+extern void ABISELECT(_ZThn64_N9GG23233333barEv,_ZThn32_N9GG23233333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23233333fooEv,_ZTv0_n12_N9GG23233333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23233333fooEv,_ZThn40_N9GG23233333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23233333barEv,_ZTv0_n16_N9GG23233333barEv)();
+extern void ABISELECT(_ZThn80_N9GG23233333barEv,_ZThn40_N9GG23233333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2323333[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2323333[0]),
+ (VTBL_ENTRY)&_ZN9GG23233333fooEv,
+ (VTBL_ENTRY)&_ZN9GG23233333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2323333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23233333barEv,_ZTv0_n20_N9GG23233333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2323333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23233333barEv,_ZTv0_n12_N9GG23233333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2323333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23233333fooEv,_ZTv0_n12_N9GG23233333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23233333barEv,_ZTv0_n16_N9GG23233333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2323333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23233333fooEv,_ZTv0_n20_N9GG23233333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23233333barEv,_ZTv0_n24_N9GG23233333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2323333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23233333fooEv,_ZTv0_n12_N9GG23233333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23233333barEv,_ZTv0_n16_N9GG23233333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2323333[];
+extern void _ZN5EE2323barEv();
+static VTBL_ENTRY _tg__ZTV5EE232__9GG2323333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN5EE2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv)();
+extern void ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE232__9GG2323333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv)();
+extern void ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE232__9GG2323333[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv),
+};
+extern void _ZN5FF3333fooEv();
+extern void _ZN5FF3333barEv();
+static VTBL_ENTRY _tg__ZTV5FF333__9GG2323333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&_ZN5FF3333fooEv,
+ (VTBL_ENTRY)&_ZN5FF3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+extern void ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF333__9GG2323333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF333__9GG2323333[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+static VTT_ENTRY vtt_GG2323333[] = {
+ {&(_ZTV9GG2323333[7]), 7,39},
+ {&(_ZTV9GG2323333[14]), 14,39},
+ {&(_ZTV9GG2323333[18]), 18,39},
+ {&(_ZTV9GG2323333[23]), 23,39},
+ {&(_ZTV9GG2323333[31]), 31,39},
+ {&(_ZTV9GG2323333[37]), 37,39},
+ {&(_tg__ZTV5EE232__9GG2323333[4]), 4,5},
+ {&(_tg__ZTV3AA2__5EE232__9GG2323333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE232__9GG2323333[4]), 4,6},
+ {&(_tg__ZTV5FF333__9GG2323333[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF333__9GG2323333[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF333__9GG2323333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2323333[];
+extern VTBL_ENTRY _ZTV9GG2323333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2323333[];
+static VTBL_ENTRY alt_thunk_names724[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2323barEv,_ZTv0_n16_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2323barEv,_ZThn16_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2323barEv,_ZTv0_n12_N5EE2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2323barEv,_ZThn8_N5EE2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG23233333barEv,_ZTv0_n24_N9GG23233333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23233333barEv,_ZThn32_N9GG23233333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23233333fooEv,_ZTv0_n20_N9GG23233333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23233333fooEv,_ZThn32_N9GG23233333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23233333barEv,_ZTv0_n16_N9GG23233333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23233333barEv,_ZThn40_N9GG23233333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23233333barEv,_ZThn24_N9GG23233333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23233333fooEv,_ZTv0_n12_N9GG23233333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23233333fooEv,_ZThn40_N9GG23233333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23233333fooEv,_ZThn24_N9GG23233333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23233333barEv,_ZTv0_n12_N9GG23233333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23233333barEv,_ZThn16_N9GG23233333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23233333barEv,_ZTv0_n20_N9GG23233333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23233333barEv,_ZThn8_N9GG23233333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2323333 = { "GG2323333", // class name
+ bases_GG2323333, 5,
+ &(vtc_GG2323333[0]), // expected_vtbl_contents
+ &(vtt_GG2323333[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2323333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2323333),39, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2323333),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names724,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2331111 : virtual EE233 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG23311113fooEv
+ ~GG2331111(); // tgen
+ GG2331111(); // tgen
+};
+//SIG(1 GG2331111) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+void GG2331111 ::foo(){vfunc_called(this, "_ZN9GG23311113fooEv");}
+GG2331111 ::~GG2331111(){ note_dtor("GG2331111", this);} // tgen
+GG2331111 ::GG2331111(){ note_ctor("GG2331111", this);} // tgen
+
+static void Test_GG2331111()
+{
+ extern Class_Descriptor cd_GG2331111;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2331111, buf);
+ GG2331111 *dp, &lv = *(dp=new (buf) GG2331111());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2331111)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2331111)");
+ check_base_class_offset(lv, (AA2*)(EE233*), ABISELECT(32,16), "GG2331111");
+ check_base_class_offset(lv, (BB3*)(EE233*), ABISELECT(48,24), "GG2331111");
+ check_base_class_offset(lv, (EE233*), ABISELECT(16,8), "GG2331111");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(80,40), "GG2331111");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(96,48), "GG2331111");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG2331111");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2331111.pg");
+ test_class_info(&lv, &cd_GG2331111);
+ dp->~GG2331111();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2331111(Test_GG2331111, "GG2331111", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2331111C1Ev();
+extern void _ZN9GG2331111D1Ev();
+Name_Map name_map_GG2331111[] = {
+ NSPAIR(_ZN9GG2331111C1Ev),
+ NSPAIR(_ZN9GG2331111D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE233;
+extern VTBL_ENTRY _ZTI5EE233[];
+extern VTBL_ENTRY _ZTV5EE233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE233[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG2331111[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE233, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 37, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2331111[];
+extern void _ZN9GG23311113fooEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23311113fooEv,_ZTv0_n20_N9GG23311113fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23311113fooEv,_ZThn8_N9GG23311113fooEv)() __attribute__((weak));
+extern void _ZN5EE2333barEv();
+extern void ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv)();
+extern void ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23311113fooEv,_ZTv0_n12_N9GG23311113fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23311113fooEv,_ZThn24_N9GG23311113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv)();
+extern void ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23311113fooEv,_ZTv0_n20_N9GG23311113fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23311113fooEv,_ZThn32_N9GG23311113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23311113fooEv,_ZTv0_n12_N9GG23311113fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23311113fooEv,_ZThn40_N9GG23311113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23311113fooEv,_ZTv0_n12_N9GG23311113fooEv)();
+extern void ABISELECT(_ZThn96_N9GG23311113fooEv,_ZThn48_N9GG23311113fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2331111[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2331111[0]),
+ (VTBL_ENTRY)&_ZN9GG23311113fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2331111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23311113fooEv,_ZTv0_n20_N9GG23311113fooEv),
+ (VTBL_ENTRY)&_ZN5EE2333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2331111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2331111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23311113fooEv,_ZTv0_n12_N9GG23311113fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2331111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23311113fooEv,_ZTv0_n20_N9GG23311113fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2331111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23311113fooEv,_ZTv0_n12_N9GG23311113fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2331111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23311113fooEv,_ZTv0_n12_N9GG23311113fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2331111[];
+extern void _ZN5EE2333fooEv();
+extern void _ZN5EE2333barEv();
+static VTBL_ENTRY _tg__ZTV5EE233__9GG2331111[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&_ZN5EE2333fooEv,
+ (VTBL_ENTRY)&_ZN5EE2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv)();
+extern void ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE233__9GG2331111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv)();
+extern void ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE233__9GG2331111[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv),
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG2331111[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG2331111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG2331111[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG2331111[] = {
+ {&(_ZTV9GG2331111[8]), 8,41},
+ {&(_ZTV9GG2331111[15]), 15,41},
+ {&(_ZTV9GG2331111[20]), 20,41},
+ {&(_ZTV9GG2331111[25]), 25,41},
+ {&(_ZTV9GG2331111[32]), 32,41},
+ {&(_ZTV9GG2331111[36]), 36,41},
+ {&(_ZTV9GG2331111[40]), 40,41},
+ {&(_tg__ZTV5EE233__9GG2331111[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE233__9GG2331111[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE233__9GG2331111[4]), 4,6},
+ {&(_tg__ZTV5FF111__9GG2331111[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG2331111[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG2331111[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2331111[];
+extern VTBL_ENTRY _ZTV9GG2331111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2331111[];
+static VTBL_ENTRY alt_thunk_names725[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23311113fooEv,_ZTv0_n12_N9GG23311113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG23311113fooEv,_ZThn48_N9GG23311113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23311113fooEv,_ZThn40_N9GG23311113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23311113fooEv,_ZThn24_N9GG23311113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23311113fooEv,_ZTv0_n20_N9GG23311113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23311113fooEv,_ZThn32_N9GG23311113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23311113fooEv,_ZThn8_N9GG23311113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2331111 = { "GG2331111", // class name
+ bases_GG2331111, 6,
+ &(vtc_GG2331111[0]), // expected_vtbl_contents
+ &(vtt_GG2331111[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2331111),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2331111),41, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2331111),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names725,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2331113 : virtual EE233 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG23311133fooEv
+ virtual void bar(); // _ZN9GG23311133barEv
+ ~GG2331113(); // tgen
+ GG2331113(); // tgen
+};
+//SIG(1 GG2331113) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2331113 ::foo(){vfunc_called(this, "_ZN9GG23311133fooEv");}
+void GG2331113 ::bar(){vfunc_called(this, "_ZN9GG23311133barEv");}
+GG2331113 ::~GG2331113(){ note_dtor("GG2331113", this);} // tgen
+GG2331113 ::GG2331113(){ note_ctor("GG2331113", this);} // tgen
+
+static void Test_GG2331113()
+{
+ extern Class_Descriptor cd_GG2331113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2331113, buf);
+ GG2331113 *dp, &lv = *(dp=new (buf) GG2331113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2331113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2331113)");
+ check_base_class_offset(lv, (AA2*)(EE233*), ABISELECT(32,16), "GG2331113");
+ check_base_class_offset(lv, (BB3*)(EE233*), ABISELECT(48,24), "GG2331113");
+ check_base_class_offset(lv, (EE233*), ABISELECT(16,8), "GG2331113");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(80,40), "GG2331113");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(96,48), "GG2331113");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG2331113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2331113.pg");
+ test_class_info(&lv, &cd_GG2331113);
+ dp->~GG2331113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2331113(Test_GG2331113, "GG2331113", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2331113C1Ev();
+extern void _ZN9GG2331113D1Ev();
+Name_Map name_map_GG2331113[] = {
+ NSPAIR(_ZN9GG2331113C1Ev),
+ NSPAIR(_ZN9GG2331113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE233;
+extern VTBL_ENTRY _ZTI5EE233[];
+extern VTBL_ENTRY _ZTV5EE233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE233[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG2331113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE233, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2331113[];
+extern void _ZN9GG23311133fooEv();
+extern void _ZN9GG23311133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23311133fooEv,_ZTv0_n20_N9GG23311133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23311133fooEv,_ZThn8_N9GG23311133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23311133barEv,_ZTv0_n24_N9GG23311133barEv)();
+extern void ABISELECT(_ZThn16_N9GG23311133barEv,_ZThn8_N9GG23311133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23311133barEv,_ZTv0_n12_N9GG23311133barEv)();
+extern void ABISELECT(_ZThn32_N9GG23311133barEv,_ZThn16_N9GG23311133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23311133fooEv,_ZTv0_n12_N9GG23311133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23311133fooEv,_ZThn24_N9GG23311133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23311133barEv,_ZTv0_n16_N9GG23311133barEv)();
+extern void ABISELECT(_ZThn48_N9GG23311133barEv,_ZThn24_N9GG23311133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23311133fooEv,_ZTv0_n20_N9GG23311133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23311133fooEv,_ZThn32_N9GG23311133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23311133fooEv,_ZTv0_n12_N9GG23311133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23311133fooEv,_ZThn40_N9GG23311133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23311133fooEv,_ZTv0_n12_N9GG23311133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG23311133fooEv,_ZThn48_N9GG23311133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2331113[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2331113[0]),
+ (VTBL_ENTRY)&_ZN9GG23311133fooEv,
+ (VTBL_ENTRY)&_ZN9GG23311133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2331113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23311133fooEv,_ZTv0_n20_N9GG23311133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23311133barEv,_ZTv0_n24_N9GG23311133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2331113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23311133barEv,_ZTv0_n12_N9GG23311133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2331113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23311133fooEv,_ZTv0_n12_N9GG23311133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23311133barEv,_ZTv0_n16_N9GG23311133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2331113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23311133fooEv,_ZTv0_n20_N9GG23311133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2331113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23311133fooEv,_ZTv0_n12_N9GG23311133fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2331113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23311133fooEv,_ZTv0_n12_N9GG23311133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2331113[];
+extern void _ZN5EE2333fooEv();
+extern void _ZN5EE2333barEv();
+static VTBL_ENTRY _tg__ZTV5EE233__9GG2331113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&_ZN5EE2333fooEv,
+ (VTBL_ENTRY)&_ZN5EE2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv)();
+extern void ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE233__9GG2331113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv)();
+extern void ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE233__9GG2331113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv),
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG2331113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG2331113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG2331113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG2331113[] = {
+ {&(_ZTV9GG2331113[8]), 8,42},
+ {&(_ZTV9GG2331113[16]), 16,42},
+ {&(_ZTV9GG2331113[21]), 21,42},
+ {&(_ZTV9GG2331113[26]), 26,42},
+ {&(_ZTV9GG2331113[33]), 33,42},
+ {&(_ZTV9GG2331113[37]), 37,42},
+ {&(_ZTV9GG2331113[41]), 41,42},
+ {&(_tg__ZTV5EE233__9GG2331113[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE233__9GG2331113[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE233__9GG2331113[4]), 4,6},
+ {&(_tg__ZTV5FF111__9GG2331113[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG2331113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG2331113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2331113[];
+extern VTBL_ENTRY _ZTV9GG2331113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2331113[];
+static VTBL_ENTRY alt_thunk_names726[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23311133barEv,_ZTv0_n16_N9GG23311133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23311133barEv,_ZThn24_N9GG23311133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23311133fooEv,_ZTv0_n12_N9GG23311133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG23311133fooEv,_ZThn48_N9GG23311133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23311133fooEv,_ZThn40_N9GG23311133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23311133fooEv,_ZThn24_N9GG23311133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23311133barEv,_ZTv0_n12_N9GG23311133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23311133barEv,_ZThn16_N9GG23311133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG23311133barEv,_ZTv0_n24_N9GG23311133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23311133barEv,_ZThn8_N9GG23311133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23311133fooEv,_ZTv0_n20_N9GG23311133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23311133fooEv,_ZThn32_N9GG23311133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23311133fooEv,_ZThn8_N9GG23311133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2331113 = { "GG2331113", // class name
+ bases_GG2331113, 6,
+ &(vtc_GG2331113[0]), // expected_vtbl_contents
+ &(vtt_GG2331113[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2331113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2331113),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2331113),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names726,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2331123 : virtual EE233 , virtual FF112 {
+ int pg;
+ virtual void foo(); // _ZN9GG23311233fooEv
+ virtual void bar(); // _ZN9GG23311233barEv
+ ~GG2331123(); // tgen
+ GG2331123(); // tgen
+};
+//SIG(1 GG2331123) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2331123 ::foo(){vfunc_called(this, "_ZN9GG23311233fooEv");}
+void GG2331123 ::bar(){vfunc_called(this, "_ZN9GG23311233barEv");}
+GG2331123 ::~GG2331123(){ note_dtor("GG2331123", this);} // tgen
+GG2331123 ::GG2331123(){ note_ctor("GG2331123", this);} // tgen
+
+static void Test_GG2331123()
+{
+ extern Class_Descriptor cd_GG2331123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2331123, buf);
+ GG2331123 *dp, &lv = *(dp=new (buf) GG2331123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2331123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2331123)");
+ check_base_class_offset(lv, (AA2*)(EE233*), ABISELECT(32,16), "GG2331123");
+ check_base_class_offset(lv, (BB3*)(EE233*), ABISELECT(48,24), "GG2331123");
+ check_base_class_offset(lv, (EE233*), ABISELECT(16,8), "GG2331123");
+ check_base_class_offset(lv, (AA1*)(FF112*), ABISELECT(80,40), "GG2331123");
+ check_base_class_offset(lv, (BB1*)(FF112*), ABISELECT(96,48), "GG2331123");
+ check_base_class_offset(lv, (FF112*), ABISELECT(64,32), "GG2331123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2331123.pg");
+ test_class_info(&lv, &cd_GG2331123);
+ dp->~GG2331123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2331123(Test_GG2331123, "GG2331123", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2331123C1Ev();
+extern void _ZN9GG2331123D1Ev();
+Name_Map name_map_GG2331123[] = {
+ NSPAIR(_ZN9GG2331123C1Ev),
+ NSPAIR(_ZN9GG2331123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE233;
+extern VTBL_ENTRY _ZTI5EE233[];
+extern VTBL_ENTRY _ZTV5EE233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE233[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF112;
+extern VTBL_ENTRY _ZTI5FF112[];
+extern VTBL_ENTRY _ZTV5FF112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF112[];
+static Base_Class bases_GG2331123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE233, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF112, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2331123[];
+extern void _ZN9GG23311233fooEv();
+extern void _ZN9GG23311233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23311233fooEv,_ZTv0_n20_N9GG23311233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23311233fooEv,_ZThn8_N9GG23311233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23311233barEv,_ZTv0_n24_N9GG23311233barEv)();
+extern void ABISELECT(_ZThn16_N9GG23311233barEv,_ZThn8_N9GG23311233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23311233barEv,_ZTv0_n12_N9GG23311233barEv)();
+extern void ABISELECT(_ZThn32_N9GG23311233barEv,_ZThn16_N9GG23311233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23311233fooEv,_ZTv0_n12_N9GG23311233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23311233fooEv,_ZThn24_N9GG23311233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23311233barEv,_ZTv0_n16_N9GG23311233barEv)();
+extern void ABISELECT(_ZThn48_N9GG23311233barEv,_ZThn24_N9GG23311233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23311233barEv,_ZTv0_n20_N9GG23311233barEv)();
+extern void ABISELECT(_ZThn64_N9GG23311233barEv,_ZThn32_N9GG23311233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23311233fooEv,_ZTv0_n12_N9GG23311233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23311233fooEv,_ZThn40_N9GG23311233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23311233fooEv,_ZTv0_n12_N9GG23311233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG23311233fooEv,_ZThn48_N9GG23311233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2331123[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2331123[0]),
+ (VTBL_ENTRY)&_ZN9GG23311233fooEv,
+ (VTBL_ENTRY)&_ZN9GG23311233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2331123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23311233fooEv,_ZTv0_n20_N9GG23311233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23311233barEv,_ZTv0_n24_N9GG23311233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2331123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23311233barEv,_ZTv0_n12_N9GG23311233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2331123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23311233fooEv,_ZTv0_n12_N9GG23311233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23311233barEv,_ZTv0_n16_N9GG23311233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2331123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23311233barEv,_ZTv0_n20_N9GG23311233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2331123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23311233fooEv,_ZTv0_n12_N9GG23311233fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2331123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23311233fooEv,_ZTv0_n12_N9GG23311233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2331123[];
+extern void _ZN5EE2333fooEv();
+extern void _ZN5EE2333barEv();
+static VTBL_ENTRY _tg__ZTV5EE233__9GG2331123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&_ZN5EE2333fooEv,
+ (VTBL_ENTRY)&_ZN5EE2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv)();
+extern void ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE233__9GG2331123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv)();
+extern void ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE233__9GG2331123[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv),
+};
+extern void _ZN5FF1123barEv();
+static VTBL_ENTRY _tg__ZTV5FF112__9GG2331123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN5FF1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF112__9GG2331123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF112__9GG2331123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG2331123[] = {
+ {&(_ZTV9GG2331123[8]), 8,42},
+ {&(_ZTV9GG2331123[16]), 16,42},
+ {&(_ZTV9GG2331123[21]), 21,42},
+ {&(_ZTV9GG2331123[26]), 26,42},
+ {&(_ZTV9GG2331123[33]), 33,42},
+ {&(_ZTV9GG2331123[37]), 37,42},
+ {&(_ZTV9GG2331123[41]), 41,42},
+ {&(_tg__ZTV5EE233__9GG2331123[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE233__9GG2331123[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE233__9GG2331123[4]), 4,6},
+ {&(_tg__ZTV5FF112__9GG2331123[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF112__9GG2331123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF112__9GG2331123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2331123[];
+extern VTBL_ENTRY _ZTV9GG2331123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2331123[];
+static VTBL_ENTRY alt_thunk_names727[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23311233barEv,_ZTv0_n20_N9GG23311233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23311233barEv,_ZThn32_N9GG23311233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23311233barEv,_ZTv0_n16_N9GG23311233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23311233barEv,_ZThn24_N9GG23311233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23311233fooEv,_ZTv0_n12_N9GG23311233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG23311233fooEv,_ZThn48_N9GG23311233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23311233fooEv,_ZThn40_N9GG23311233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23311233fooEv,_ZThn24_N9GG23311233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23311233barEv,_ZTv0_n12_N9GG23311233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23311233barEv,_ZThn16_N9GG23311233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG23311233barEv,_ZTv0_n24_N9GG23311233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23311233barEv,_ZThn8_N9GG23311233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23311233fooEv,_ZTv0_n20_N9GG23311233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23311233fooEv,_ZThn8_N9GG23311233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2331123 = { "GG2331123", // class name
+ bases_GG2331123, 6,
+ &(vtc_GG2331123[0]), // expected_vtbl_contents
+ &(vtt_GG2331123[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2331123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2331123),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2331123),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names727,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2331133 : virtual EE233 , virtual FF113 {
+ int pg;
+ virtual void foo(); // _ZN9GG23311333fooEv
+ virtual void bar(); // _ZN9GG23311333barEv
+ ~GG2331133(); // tgen
+ GG2331133(); // tgen
+};
+//SIG(1 GG2331133) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2331133 ::foo(){vfunc_called(this, "_ZN9GG23311333fooEv");}
+void GG2331133 ::bar(){vfunc_called(this, "_ZN9GG23311333barEv");}
+GG2331133 ::~GG2331133(){ note_dtor("GG2331133", this);} // tgen
+GG2331133 ::GG2331133(){ note_ctor("GG2331133", this);} // tgen
+
+static void Test_GG2331133()
+{
+ extern Class_Descriptor cd_GG2331133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2331133, buf);
+ GG2331133 *dp, &lv = *(dp=new (buf) GG2331133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2331133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2331133)");
+ check_base_class_offset(lv, (AA2*)(EE233*), ABISELECT(32,16), "GG2331133");
+ check_base_class_offset(lv, (BB3*)(EE233*), ABISELECT(48,24), "GG2331133");
+ check_base_class_offset(lv, (EE233*), ABISELECT(16,8), "GG2331133");
+ check_base_class_offset(lv, (AA1*)(FF113*), ABISELECT(80,40), "GG2331133");
+ check_base_class_offset(lv, (BB1*)(FF113*), ABISELECT(96,48), "GG2331133");
+ check_base_class_offset(lv, (FF113*), ABISELECT(64,32), "GG2331133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2331133.pg");
+ test_class_info(&lv, &cd_GG2331133);
+ dp->~GG2331133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2331133(Test_GG2331133, "GG2331133", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2331133C1Ev();
+extern void _ZN9GG2331133D1Ev();
+Name_Map name_map_GG2331133[] = {
+ NSPAIR(_ZN9GG2331133C1Ev),
+ NSPAIR(_ZN9GG2331133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE233;
+extern VTBL_ENTRY _ZTI5EE233[];
+extern VTBL_ENTRY _ZTV5EE233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE233[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF113;
+extern VTBL_ENTRY _ZTI5FF113[];
+extern VTBL_ENTRY _ZTV5FF113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF113[];
+static Base_Class bases_GG2331133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE233, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 40, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF113, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2331133[];
+extern void _ZN9GG23311333fooEv();
+extern void _ZN9GG23311333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23311333fooEv,_ZTv0_n20_N9GG23311333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23311333fooEv,_ZThn8_N9GG23311333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23311333barEv,_ZTv0_n24_N9GG23311333barEv)();
+extern void ABISELECT(_ZThn16_N9GG23311333barEv,_ZThn8_N9GG23311333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23311333barEv,_ZTv0_n12_N9GG23311333barEv)();
+extern void ABISELECT(_ZThn32_N9GG23311333barEv,_ZThn16_N9GG23311333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23311333fooEv,_ZTv0_n12_N9GG23311333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23311333fooEv,_ZThn24_N9GG23311333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23311333barEv,_ZTv0_n16_N9GG23311333barEv)();
+extern void ABISELECT(_ZThn48_N9GG23311333barEv,_ZThn24_N9GG23311333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23311333fooEv,_ZTv0_n20_N9GG23311333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23311333fooEv,_ZThn32_N9GG23311333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23311333barEv,_ZTv0_n24_N9GG23311333barEv)();
+extern void ABISELECT(_ZThn64_N9GG23311333barEv,_ZThn32_N9GG23311333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23311333fooEv,_ZTv0_n12_N9GG23311333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23311333fooEv,_ZThn40_N9GG23311333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23311333fooEv,_ZTv0_n12_N9GG23311333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG23311333fooEv,_ZThn48_N9GG23311333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2331133[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2331133[0]),
+ (VTBL_ENTRY)&_ZN9GG23311333fooEv,
+ (VTBL_ENTRY)&_ZN9GG23311333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2331133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23311333fooEv,_ZTv0_n20_N9GG23311333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23311333barEv,_ZTv0_n24_N9GG23311333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2331133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23311333barEv,_ZTv0_n12_N9GG23311333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2331133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23311333fooEv,_ZTv0_n12_N9GG23311333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23311333barEv,_ZTv0_n16_N9GG23311333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2331133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23311333fooEv,_ZTv0_n20_N9GG23311333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23311333barEv,_ZTv0_n24_N9GG23311333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2331133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23311333fooEv,_ZTv0_n12_N9GG23311333fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2331133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23311333fooEv,_ZTv0_n12_N9GG23311333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2331133[];
+extern void _ZN5EE2333fooEv();
+extern void _ZN5EE2333barEv();
+static VTBL_ENTRY _tg__ZTV5EE233__9GG2331133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&_ZN5EE2333fooEv,
+ (VTBL_ENTRY)&_ZN5EE2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv)();
+extern void ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE233__9GG2331133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv)();
+extern void ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE233__9GG2331133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv),
+};
+extern void _ZN5FF1133fooEv();
+extern void _ZN5FF1133barEv();
+static VTBL_ENTRY _tg__ZTV5FF113__9GG2331133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&_ZN5FF1133fooEv,
+ (VTBL_ENTRY)&_ZN5FF1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF113__9GG2331133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1133fooEv,_ZThn16_N5FF1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF113__9GG2331133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+static VTT_ENTRY vtt_GG2331133[] = {
+ {&(_ZTV9GG2331133[8]), 8,44},
+ {&(_ZTV9GG2331133[16]), 16,44},
+ {&(_ZTV9GG2331133[21]), 21,44},
+ {&(_ZTV9GG2331133[26]), 26,44},
+ {&(_ZTV9GG2331133[34]), 34,44},
+ {&(_ZTV9GG2331133[39]), 39,44},
+ {&(_ZTV9GG2331133[43]), 43,44},
+ {&(_tg__ZTV5EE233__9GG2331133[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE233__9GG2331133[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE233__9GG2331133[4]), 4,6},
+ {&(_tg__ZTV5FF113__9GG2331133[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF113__9GG2331133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF113__9GG2331133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2331133[];
+extern VTBL_ENTRY _ZTV9GG2331133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2331133[];
+static VTBL_ENTRY alt_thunk_names728[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1133fooEv,_ZThn16_N5FF1133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23311333barEv,_ZTv0_n16_N9GG23311333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23311333barEv,_ZThn24_N9GG23311333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23311333fooEv,_ZTv0_n12_N9GG23311333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG23311333fooEv,_ZThn48_N9GG23311333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23311333fooEv,_ZThn40_N9GG23311333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23311333fooEv,_ZThn24_N9GG23311333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23311333barEv,_ZTv0_n12_N9GG23311333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23311333barEv,_ZThn16_N9GG23311333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG23311333barEv,_ZTv0_n24_N9GG23311333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23311333barEv,_ZThn32_N9GG23311333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23311333barEv,_ZThn8_N9GG23311333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23311333fooEv,_ZTv0_n20_N9GG23311333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23311333fooEv,_ZThn32_N9GG23311333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23311333fooEv,_ZThn8_N9GG23311333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2331133 = { "GG2331133", // class name
+ bases_GG2331133, 6,
+ &(vtc_GG2331133[0]), // expected_vtbl_contents
+ &(vtt_GG2331133[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2331133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2331133),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2331133),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names728,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2331213 : virtual EE233 , virtual FF121 {
+ int pg;
+ virtual void foo(); // _ZN9GG23312133fooEv
+ virtual void bar(); // _ZN9GG23312133barEv
+ ~GG2331213(); // tgen
+ GG2331213(); // tgen
+};
+//SIG(1 GG2331213) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2331213 ::foo(){vfunc_called(this, "_ZN9GG23312133fooEv");}
+void GG2331213 ::bar(){vfunc_called(this, "_ZN9GG23312133barEv");}
+GG2331213 ::~GG2331213(){ note_dtor("GG2331213", this);} // tgen
+GG2331213 ::GG2331213(){ note_ctor("GG2331213", this);} // tgen
+
+static void Test_GG2331213()
+{
+ extern Class_Descriptor cd_GG2331213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2331213, buf);
+ GG2331213 *dp, &lv = *(dp=new (buf) GG2331213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2331213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2331213)");
+ check_base_class_offset(lv, (AA2*)(EE233*), ABISELECT(32,16), "GG2331213");
+ check_base_class_offset(lv, (BB3*)(EE233*), ABISELECT(48,24), "GG2331213");
+ check_base_class_offset(lv, (EE233*), ABISELECT(16,8), "GG2331213");
+ check_base_class_offset(lv, (AA1*)(FF121*), ABISELECT(80,40), "GG2331213");
+ check_base_class_offset(lv, (BB2*)(FF121*), ABISELECT(96,48), "GG2331213");
+ check_base_class_offset(lv, (FF121*), ABISELECT(64,32), "GG2331213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2331213.pg");
+ test_class_info(&lv, &cd_GG2331213);
+ dp->~GG2331213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2331213(Test_GG2331213, "GG2331213", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2331213C1Ev();
+extern void _ZN9GG2331213D1Ev();
+Name_Map name_map_GG2331213[] = {
+ NSPAIR(_ZN9GG2331213C1Ev),
+ NSPAIR(_ZN9GG2331213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE233;
+extern VTBL_ENTRY _ZTI5EE233[];
+extern VTBL_ENTRY _ZTV5EE233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE233[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF121;
+extern VTBL_ENTRY _ZTI5FF121[];
+extern VTBL_ENTRY _ZTV5FF121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF121[];
+static Base_Class bases_GG2331213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE233, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF121, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2331213[];
+extern void _ZN9GG23312133fooEv();
+extern void _ZN9GG23312133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23312133fooEv,_ZTv0_n20_N9GG23312133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23312133fooEv,_ZThn8_N9GG23312133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23312133barEv,_ZTv0_n24_N9GG23312133barEv)();
+extern void ABISELECT(_ZThn16_N9GG23312133barEv,_ZThn8_N9GG23312133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23312133barEv,_ZTv0_n12_N9GG23312133barEv)();
+extern void ABISELECT(_ZThn32_N9GG23312133barEv,_ZThn16_N9GG23312133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23312133fooEv,_ZTv0_n12_N9GG23312133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23312133fooEv,_ZThn24_N9GG23312133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23312133barEv,_ZTv0_n16_N9GG23312133barEv)();
+extern void ABISELECT(_ZThn48_N9GG23312133barEv,_ZThn24_N9GG23312133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23312133fooEv,_ZTv0_n20_N9GG23312133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23312133fooEv,_ZThn32_N9GG23312133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23312133fooEv,_ZTv0_n12_N9GG23312133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23312133fooEv,_ZThn40_N9GG23312133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23312133barEv,_ZTv0_n12_N9GG23312133barEv)();
+extern void ABISELECT(_ZThn96_N9GG23312133barEv,_ZThn48_N9GG23312133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2331213[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2331213[0]),
+ (VTBL_ENTRY)&_ZN9GG23312133fooEv,
+ (VTBL_ENTRY)&_ZN9GG23312133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2331213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23312133fooEv,_ZTv0_n20_N9GG23312133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23312133barEv,_ZTv0_n24_N9GG23312133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2331213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23312133barEv,_ZTv0_n12_N9GG23312133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2331213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23312133fooEv,_ZTv0_n12_N9GG23312133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23312133barEv,_ZTv0_n16_N9GG23312133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2331213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23312133fooEv,_ZTv0_n20_N9GG23312133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2331213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23312133fooEv,_ZTv0_n12_N9GG23312133fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2331213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23312133barEv,_ZTv0_n12_N9GG23312133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2331213[];
+extern void _ZN5EE2333fooEv();
+extern void _ZN5EE2333barEv();
+static VTBL_ENTRY _tg__ZTV5EE233__9GG2331213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&_ZN5EE2333fooEv,
+ (VTBL_ENTRY)&_ZN5EE2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv)();
+extern void ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE233__9GG2331213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv)();
+extern void ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE233__9GG2331213[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv),
+};
+extern void _ZN5FF1213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF121__9GG2331213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN5FF1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1213fooEv,_ZThn8_N5FF1213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF121__9GG2331213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF121__9GG2331213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG2331213[] = {
+ {&(_ZTV9GG2331213[8]), 8,42},
+ {&(_ZTV9GG2331213[16]), 16,42},
+ {&(_ZTV9GG2331213[21]), 21,42},
+ {&(_ZTV9GG2331213[26]), 26,42},
+ {&(_ZTV9GG2331213[33]), 33,42},
+ {&(_ZTV9GG2331213[37]), 37,42},
+ {&(_ZTV9GG2331213[41]), 41,42},
+ {&(_tg__ZTV5EE233__9GG2331213[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE233__9GG2331213[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE233__9GG2331213[4]), 4,6},
+ {&(_tg__ZTV5FF121__9GG2331213[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF121__9GG2331213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF121__9GG2331213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2331213[];
+extern VTBL_ENTRY _ZTV9GG2331213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2331213[];
+static VTBL_ENTRY alt_thunk_names729[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1213fooEv,_ZThn8_N5FF1213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23312133barEv,_ZTv0_n16_N9GG23312133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23312133barEv,_ZThn24_N9GG23312133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23312133fooEv,_ZTv0_n12_N9GG23312133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23312133fooEv,_ZThn40_N9GG23312133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23312133fooEv,_ZThn24_N9GG23312133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23312133barEv,_ZTv0_n12_N9GG23312133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG23312133barEv,_ZThn48_N9GG23312133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23312133barEv,_ZThn16_N9GG23312133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG23312133barEv,_ZTv0_n24_N9GG23312133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23312133barEv,_ZThn8_N9GG23312133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23312133fooEv,_ZTv0_n20_N9GG23312133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23312133fooEv,_ZThn32_N9GG23312133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23312133fooEv,_ZThn8_N9GG23312133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2331213 = { "GG2331213", // class name
+ bases_GG2331213, 6,
+ &(vtc_GG2331213[0]), // expected_vtbl_contents
+ &(vtt_GG2331213[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2331213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2331213),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2331213),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names729,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2331223 : virtual EE233 , virtual FF122 {
+ int pg;
+ virtual void foo(); // _ZN9GG23312233fooEv
+ virtual void bar(); // _ZN9GG23312233barEv
+ ~GG2331223(); // tgen
+ GG2331223(); // tgen
+};
+//SIG(1 GG2331223) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2331223 ::foo(){vfunc_called(this, "_ZN9GG23312233fooEv");}
+void GG2331223 ::bar(){vfunc_called(this, "_ZN9GG23312233barEv");}
+GG2331223 ::~GG2331223(){ note_dtor("GG2331223", this);} // tgen
+GG2331223 ::GG2331223(){ note_ctor("GG2331223", this);} // tgen
+
+static void Test_GG2331223()
+{
+ extern Class_Descriptor cd_GG2331223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2331223, buf);
+ GG2331223 *dp, &lv = *(dp=new (buf) GG2331223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2331223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2331223)");
+ check_base_class_offset(lv, (AA2*)(EE233*), ABISELECT(32,16), "GG2331223");
+ check_base_class_offset(lv, (BB3*)(EE233*), ABISELECT(48,24), "GG2331223");
+ check_base_class_offset(lv, (EE233*), ABISELECT(16,8), "GG2331223");
+ check_base_class_offset(lv, (AA1*)(FF122*), ABISELECT(80,40), "GG2331223");
+ check_base_class_offset(lv, (BB2*)(FF122*), ABISELECT(96,48), "GG2331223");
+ check_base_class_offset(lv, (FF122*), ABISELECT(64,32), "GG2331223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2331223.pg");
+ test_class_info(&lv, &cd_GG2331223);
+ dp->~GG2331223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2331223(Test_GG2331223, "GG2331223", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2331223C1Ev();
+extern void _ZN9GG2331223D1Ev();
+Name_Map name_map_GG2331223[] = {
+ NSPAIR(_ZN9GG2331223C1Ev),
+ NSPAIR(_ZN9GG2331223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE233;
+extern VTBL_ENTRY _ZTI5EE233[];
+extern VTBL_ENTRY _ZTV5EE233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE233[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF122;
+extern VTBL_ENTRY _ZTI5FF122[];
+extern VTBL_ENTRY _ZTV5FF122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF122[];
+static Base_Class bases_GG2331223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE233, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF122, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2331223[];
+extern void _ZN9GG23312233fooEv();
+extern void _ZN9GG23312233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23312233fooEv,_ZTv0_n20_N9GG23312233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23312233fooEv,_ZThn8_N9GG23312233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23312233barEv,_ZTv0_n24_N9GG23312233barEv)();
+extern void ABISELECT(_ZThn16_N9GG23312233barEv,_ZThn8_N9GG23312233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23312233barEv,_ZTv0_n12_N9GG23312233barEv)();
+extern void ABISELECT(_ZThn32_N9GG23312233barEv,_ZThn16_N9GG23312233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23312233fooEv,_ZTv0_n12_N9GG23312233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23312233fooEv,_ZThn24_N9GG23312233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23312233barEv,_ZTv0_n16_N9GG23312233barEv)();
+extern void ABISELECT(_ZThn48_N9GG23312233barEv,_ZThn24_N9GG23312233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23312233barEv,_ZTv0_n20_N9GG23312233barEv)();
+extern void ABISELECT(_ZThn64_N9GG23312233barEv,_ZThn32_N9GG23312233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23312233fooEv,_ZTv0_n12_N9GG23312233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23312233fooEv,_ZThn40_N9GG23312233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23312233barEv,_ZTv0_n12_N9GG23312233barEv)();
+extern void ABISELECT(_ZThn96_N9GG23312233barEv,_ZThn48_N9GG23312233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2331223[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2331223[0]),
+ (VTBL_ENTRY)&_ZN9GG23312233fooEv,
+ (VTBL_ENTRY)&_ZN9GG23312233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2331223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23312233fooEv,_ZTv0_n20_N9GG23312233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23312233barEv,_ZTv0_n24_N9GG23312233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2331223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23312233barEv,_ZTv0_n12_N9GG23312233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2331223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23312233fooEv,_ZTv0_n12_N9GG23312233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23312233barEv,_ZTv0_n16_N9GG23312233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2331223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23312233barEv,_ZTv0_n20_N9GG23312233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2331223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23312233fooEv,_ZTv0_n12_N9GG23312233fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2331223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23312233barEv,_ZTv0_n12_N9GG23312233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2331223[];
+extern void _ZN5EE2333fooEv();
+extern void _ZN5EE2333barEv();
+static VTBL_ENTRY _tg__ZTV5EE233__9GG2331223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&_ZN5EE2333fooEv,
+ (VTBL_ENTRY)&_ZN5EE2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv)();
+extern void ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE233__9GG2331223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv)();
+extern void ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE233__9GG2331223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv),
+};
+extern void _ZN5FF1223barEv();
+static VTBL_ENTRY _tg__ZTV5FF122__9GG2331223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN5FF1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF122__9GG2331223[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv)();
+extern void ABISELECT(_ZThn32_N5FF1223barEv,_ZThn16_N5FF1223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF122__9GG2331223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv),
+};
+static VTT_ENTRY vtt_GG2331223[] = {
+ {&(_ZTV9GG2331223[8]), 8,42},
+ {&(_ZTV9GG2331223[16]), 16,42},
+ {&(_ZTV9GG2331223[21]), 21,42},
+ {&(_ZTV9GG2331223[26]), 26,42},
+ {&(_ZTV9GG2331223[33]), 33,42},
+ {&(_ZTV9GG2331223[37]), 37,42},
+ {&(_ZTV9GG2331223[41]), 41,42},
+ {&(_tg__ZTV5EE233__9GG2331223[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE233__9GG2331223[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE233__9GG2331223[4]), 4,6},
+ {&(_tg__ZTV5FF122__9GG2331223[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF122__9GG2331223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF122__9GG2331223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2331223[];
+extern VTBL_ENTRY _ZTV9GG2331223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2331223[];
+static VTBL_ENTRY alt_thunk_names730[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1223barEv,_ZThn16_N5FF1223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23312233barEv,_ZTv0_n20_N9GG23312233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23312233barEv,_ZThn32_N9GG23312233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23312233barEv,_ZTv0_n16_N9GG23312233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23312233barEv,_ZThn24_N9GG23312233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23312233fooEv,_ZTv0_n12_N9GG23312233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23312233fooEv,_ZThn40_N9GG23312233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23312233fooEv,_ZThn24_N9GG23312233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23312233barEv,_ZTv0_n12_N9GG23312233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG23312233barEv,_ZThn48_N9GG23312233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23312233barEv,_ZThn16_N9GG23312233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG23312233barEv,_ZTv0_n24_N9GG23312233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23312233barEv,_ZThn8_N9GG23312233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23312233fooEv,_ZTv0_n20_N9GG23312233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23312233fooEv,_ZThn8_N9GG23312233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2331223 = { "GG2331223", // class name
+ bases_GG2331223, 6,
+ &(vtc_GG2331223[0]), // expected_vtbl_contents
+ &(vtt_GG2331223[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2331223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2331223),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2331223),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names730,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2331233 : virtual EE233 , virtual FF123 {
+ int pg;
+ virtual void foo(); // _ZN9GG23312333fooEv
+ virtual void bar(); // _ZN9GG23312333barEv
+ ~GG2331233(); // tgen
+ GG2331233(); // tgen
+};
+//SIG(1 GG2331233) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2331233 ::foo(){vfunc_called(this, "_ZN9GG23312333fooEv");}
+void GG2331233 ::bar(){vfunc_called(this, "_ZN9GG23312333barEv");}
+GG2331233 ::~GG2331233(){ note_dtor("GG2331233", this);} // tgen
+GG2331233 ::GG2331233(){ note_ctor("GG2331233", this);} // tgen
+
+static void Test_GG2331233()
+{
+ extern Class_Descriptor cd_GG2331233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2331233, buf);
+ GG2331233 *dp, &lv = *(dp=new (buf) GG2331233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2331233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2331233)");
+ check_base_class_offset(lv, (AA2*)(EE233*), ABISELECT(32,16), "GG2331233");
+ check_base_class_offset(lv, (BB3*)(EE233*), ABISELECT(48,24), "GG2331233");
+ check_base_class_offset(lv, (EE233*), ABISELECT(16,8), "GG2331233");
+ check_base_class_offset(lv, (AA1*)(FF123*), ABISELECT(80,40), "GG2331233");
+ check_base_class_offset(lv, (BB2*)(FF123*), ABISELECT(96,48), "GG2331233");
+ check_base_class_offset(lv, (FF123*), ABISELECT(64,32), "GG2331233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2331233.pg");
+ test_class_info(&lv, &cd_GG2331233);
+ dp->~GG2331233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2331233(Test_GG2331233, "GG2331233", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2331233C1Ev();
+extern void _ZN9GG2331233D1Ev();
+Name_Map name_map_GG2331233[] = {
+ NSPAIR(_ZN9GG2331233C1Ev),
+ NSPAIR(_ZN9GG2331233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE233;
+extern VTBL_ENTRY _ZTI5EE233[];
+extern VTBL_ENTRY _ZTV5EE233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE233[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF123;
+extern VTBL_ENTRY _ZTI5FF123[];
+extern VTBL_ENTRY _ZTV5FF123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF123[];
+static Base_Class bases_GG2331233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE233, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 40, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF123, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2331233[];
+extern void _ZN9GG23312333fooEv();
+extern void _ZN9GG23312333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23312333fooEv,_ZTv0_n20_N9GG23312333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23312333fooEv,_ZThn8_N9GG23312333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23312333barEv,_ZTv0_n24_N9GG23312333barEv)();
+extern void ABISELECT(_ZThn16_N9GG23312333barEv,_ZThn8_N9GG23312333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23312333barEv,_ZTv0_n12_N9GG23312333barEv)();
+extern void ABISELECT(_ZThn32_N9GG23312333barEv,_ZThn16_N9GG23312333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23312333fooEv,_ZTv0_n12_N9GG23312333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23312333fooEv,_ZThn24_N9GG23312333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23312333barEv,_ZTv0_n16_N9GG23312333barEv)();
+extern void ABISELECT(_ZThn48_N9GG23312333barEv,_ZThn24_N9GG23312333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23312333fooEv,_ZTv0_n20_N9GG23312333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23312333fooEv,_ZThn32_N9GG23312333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23312333barEv,_ZTv0_n24_N9GG23312333barEv)();
+extern void ABISELECT(_ZThn64_N9GG23312333barEv,_ZThn32_N9GG23312333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23312333fooEv,_ZTv0_n12_N9GG23312333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23312333fooEv,_ZThn40_N9GG23312333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23312333barEv,_ZTv0_n12_N9GG23312333barEv)();
+extern void ABISELECT(_ZThn96_N9GG23312333barEv,_ZThn48_N9GG23312333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2331233[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2331233[0]),
+ (VTBL_ENTRY)&_ZN9GG23312333fooEv,
+ (VTBL_ENTRY)&_ZN9GG23312333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2331233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23312333fooEv,_ZTv0_n20_N9GG23312333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23312333barEv,_ZTv0_n24_N9GG23312333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2331233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23312333barEv,_ZTv0_n12_N9GG23312333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2331233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23312333fooEv,_ZTv0_n12_N9GG23312333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23312333barEv,_ZTv0_n16_N9GG23312333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2331233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23312333fooEv,_ZTv0_n20_N9GG23312333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23312333barEv,_ZTv0_n24_N9GG23312333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2331233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23312333fooEv,_ZTv0_n12_N9GG23312333fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2331233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23312333barEv,_ZTv0_n12_N9GG23312333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2331233[];
+extern void _ZN5EE2333fooEv();
+extern void _ZN5EE2333barEv();
+static VTBL_ENTRY _tg__ZTV5EE233__9GG2331233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&_ZN5EE2333fooEv,
+ (VTBL_ENTRY)&_ZN5EE2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv)();
+extern void ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE233__9GG2331233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv)();
+extern void ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE233__9GG2331233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv),
+};
+extern void _ZN5FF1233fooEv();
+extern void _ZN5FF1233barEv();
+static VTBL_ENTRY _tg__ZTV5FF123__9GG2331233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&_ZN5FF1233fooEv,
+ (VTBL_ENTRY)&_ZN5FF1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1233fooEv,_ZThn8_N5FF1233fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF123__9GG2331233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv)();
+extern void ABISELECT(_ZThn32_N5FF1233barEv,_ZThn16_N5FF1233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF123__9GG2331233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv),
+};
+static VTT_ENTRY vtt_GG2331233[] = {
+ {&(_ZTV9GG2331233[8]), 8,44},
+ {&(_ZTV9GG2331233[16]), 16,44},
+ {&(_ZTV9GG2331233[21]), 21,44},
+ {&(_ZTV9GG2331233[26]), 26,44},
+ {&(_ZTV9GG2331233[34]), 34,44},
+ {&(_ZTV9GG2331233[39]), 39,44},
+ {&(_ZTV9GG2331233[43]), 43,44},
+ {&(_tg__ZTV5EE233__9GG2331233[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE233__9GG2331233[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE233__9GG2331233[4]), 4,6},
+ {&(_tg__ZTV5FF123__9GG2331233[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF123__9GG2331233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF123__9GG2331233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2331233[];
+extern VTBL_ENTRY _ZTV9GG2331233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2331233[];
+static VTBL_ENTRY alt_thunk_names731[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1233barEv,_ZThn16_N5FF1233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1233fooEv,_ZThn8_N5FF1233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23312333barEv,_ZTv0_n16_N9GG23312333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23312333barEv,_ZThn24_N9GG23312333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23312333fooEv,_ZTv0_n12_N9GG23312333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23312333fooEv,_ZThn40_N9GG23312333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23312333fooEv,_ZThn24_N9GG23312333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23312333barEv,_ZTv0_n12_N9GG23312333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG23312333barEv,_ZThn48_N9GG23312333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23312333barEv,_ZThn16_N9GG23312333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG23312333barEv,_ZTv0_n24_N9GG23312333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23312333barEv,_ZThn32_N9GG23312333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23312333barEv,_ZThn8_N9GG23312333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23312333fooEv,_ZTv0_n20_N9GG23312333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23312333fooEv,_ZThn32_N9GG23312333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23312333fooEv,_ZThn8_N9GG23312333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2331233 = { "GG2331233", // class name
+ bases_GG2331233, 6,
+ &(vtc_GG2331233[0]), // expected_vtbl_contents
+ &(vtt_GG2331233[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2331233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2331233),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2331233),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names731,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2331313 : virtual EE233 , virtual FF131 {
+ int pg;
+ virtual void foo(); // _ZN9GG23313133fooEv
+ virtual void bar(); // _ZN9GG23313133barEv
+ ~GG2331313(); // tgen
+ GG2331313(); // tgen
+};
+//SIG(1 GG2331313) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG2331313 ::foo(){vfunc_called(this, "_ZN9GG23313133fooEv");}
+void GG2331313 ::bar(){vfunc_called(this, "_ZN9GG23313133barEv");}
+GG2331313 ::~GG2331313(){ note_dtor("GG2331313", this);} // tgen
+GG2331313 ::GG2331313(){ note_ctor("GG2331313", this);} // tgen
+
+static void Test_GG2331313()
+{
+ extern Class_Descriptor cd_GG2331313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2331313, buf);
+ GG2331313 *dp, &lv = *(dp=new (buf) GG2331313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2331313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2331313)");
+ check_base_class_offset(lv, (AA2*)(EE233*), ABISELECT(32,16), "GG2331313");
+ check_base_class_offset(lv, (BB3*)(EE233*), ABISELECT(48,24), "GG2331313");
+ check_base_class_offset(lv, (BB3*)(FF131*), ABISELECT(48,24), "GG2331313");
+ check_base_class_offset(lv, (EE233*), ABISELECT(16,8), "GG2331313");
+ check_base_class_offset(lv, (AA1*)(FF131*), ABISELECT(80,40), "GG2331313");
+ check_base_class_offset(lv, (FF131*), ABISELECT(64,32), "GG2331313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2331313.pg");
+ test_class_info(&lv, &cd_GG2331313);
+ dp->~GG2331313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2331313(Test_GG2331313, "GG2331313", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2331313C1Ev();
+extern void _ZN9GG2331313D1Ev();
+Name_Map name_map_GG2331313[] = {
+ NSPAIR(_ZN9GG2331313C1Ev),
+ NSPAIR(_ZN9GG2331313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE233;
+extern VTBL_ENTRY _ZTI5EE233[];
+extern VTBL_ENTRY _ZTV5EE233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE233[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF131;
+extern VTBL_ENTRY _ZTI5FF131[];
+extern VTBL_ENTRY _ZTV5FF131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF131[];
+static Base_Class bases_GG2331313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE233, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF131, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2331313[];
+extern void _ZN9GG23313133fooEv();
+extern void _ZN9GG23313133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23313133fooEv,_ZTv0_n20_N9GG23313133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23313133fooEv,_ZThn8_N9GG23313133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23313133barEv,_ZTv0_n24_N9GG23313133barEv)();
+extern void ABISELECT(_ZThn16_N9GG23313133barEv,_ZThn8_N9GG23313133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23313133barEv,_ZTv0_n12_N9GG23313133barEv)();
+extern void ABISELECT(_ZThn32_N9GG23313133barEv,_ZThn16_N9GG23313133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23313133fooEv,_ZTv0_n12_N9GG23313133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23313133fooEv,_ZThn24_N9GG23313133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23313133barEv,_ZTv0_n16_N9GG23313133barEv)();
+extern void ABISELECT(_ZThn48_N9GG23313133barEv,_ZThn24_N9GG23313133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23313133fooEv,_ZTv0_n20_N9GG23313133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23313133fooEv,_ZThn32_N9GG23313133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23313133fooEv,_ZTv0_n12_N9GG23313133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23313133fooEv,_ZThn40_N9GG23313133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2331313[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2331313[0]),
+ (VTBL_ENTRY)&_ZN9GG23313133fooEv,
+ (VTBL_ENTRY)&_ZN9GG23313133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2331313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23313133fooEv,_ZTv0_n20_N9GG23313133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23313133barEv,_ZTv0_n24_N9GG23313133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2331313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23313133barEv,_ZTv0_n12_N9GG23313133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2331313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23313133fooEv,_ZTv0_n12_N9GG23313133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23313133barEv,_ZTv0_n16_N9GG23313133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2331313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23313133fooEv,_ZTv0_n20_N9GG23313133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2331313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23313133fooEv,_ZTv0_n12_N9GG23313133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2331313[];
+extern void _ZN5EE2333fooEv();
+extern void _ZN5EE2333barEv();
+static VTBL_ENTRY _tg__ZTV5EE233__9GG2331313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&_ZN5EE2333fooEv,
+ (VTBL_ENTRY)&_ZN5EE2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv)();
+extern void ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE233__9GG2331313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv)();
+extern void ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE233__9GG2331313[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv),
+};
+extern void _ZN5FF1313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF131__9GG2331313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&_ZN5FF1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF131__9GG2331313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF131__9GG2331313[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG2331313[] = {
+ {&(_ZTV9GG2331313[7]), 7,37},
+ {&(_ZTV9GG2331313[15]), 15,37},
+ {&(_ZTV9GG2331313[20]), 20,37},
+ {&(_ZTV9GG2331313[25]), 25,37},
+ {&(_ZTV9GG2331313[32]), 32,37},
+ {&(_ZTV9GG2331313[36]), 36,37},
+ {&(_tg__ZTV5EE233__9GG2331313[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE233__9GG2331313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE233__9GG2331313[4]), 4,6},
+ {&(_tg__ZTV5FF131__9GG2331313[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF131__9GG2331313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF131__9GG2331313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2331313[];
+extern VTBL_ENTRY _ZTV9GG2331313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2331313[];
+static VTBL_ENTRY alt_thunk_names732[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23313133barEv,_ZTv0_n16_N9GG23313133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23313133barEv,_ZThn24_N9GG23313133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23313133fooEv,_ZTv0_n12_N9GG23313133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23313133fooEv,_ZThn40_N9GG23313133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23313133fooEv,_ZThn24_N9GG23313133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23313133barEv,_ZTv0_n12_N9GG23313133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23313133barEv,_ZThn16_N9GG23313133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG23313133barEv,_ZTv0_n24_N9GG23313133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23313133barEv,_ZThn8_N9GG23313133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23313133fooEv,_ZTv0_n20_N9GG23313133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23313133fooEv,_ZThn32_N9GG23313133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23313133fooEv,_ZThn8_N9GG23313133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2331313 = { "GG2331313", // class name
+ bases_GG2331313, 5,
+ &(vtc_GG2331313[0]), // expected_vtbl_contents
+ &(vtt_GG2331313[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2331313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2331313),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2331313),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names732,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2331323 : virtual EE233 , virtual FF132 {
+ int pg;
+ virtual void foo(); // _ZN9GG23313233fooEv
+ virtual void bar(); // _ZN9GG23313233barEv
+ ~GG2331323(); // tgen
+ GG2331323(); // tgen
+};
+//SIG(1 GG2331323) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG2331323 ::foo(){vfunc_called(this, "_ZN9GG23313233fooEv");}
+void GG2331323 ::bar(){vfunc_called(this, "_ZN9GG23313233barEv");}
+GG2331323 ::~GG2331323(){ note_dtor("GG2331323", this);} // tgen
+GG2331323 ::GG2331323(){ note_ctor("GG2331323", this);} // tgen
+
+static void Test_GG2331323()
+{
+ extern Class_Descriptor cd_GG2331323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2331323, buf);
+ GG2331323 *dp, &lv = *(dp=new (buf) GG2331323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2331323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2331323)");
+ check_base_class_offset(lv, (AA2*)(EE233*), ABISELECT(32,16), "GG2331323");
+ check_base_class_offset(lv, (BB3*)(EE233*), ABISELECT(48,24), "GG2331323");
+ check_base_class_offset(lv, (BB3*)(FF132*), ABISELECT(48,24), "GG2331323");
+ check_base_class_offset(lv, (EE233*), ABISELECT(16,8), "GG2331323");
+ check_base_class_offset(lv, (AA1*)(FF132*), ABISELECT(80,40), "GG2331323");
+ check_base_class_offset(lv, (FF132*), ABISELECT(64,32), "GG2331323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2331323.pg");
+ test_class_info(&lv, &cd_GG2331323);
+ dp->~GG2331323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2331323(Test_GG2331323, "GG2331323", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2331323C1Ev();
+extern void _ZN9GG2331323D1Ev();
+Name_Map name_map_GG2331323[] = {
+ NSPAIR(_ZN9GG2331323C1Ev),
+ NSPAIR(_ZN9GG2331323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE233;
+extern VTBL_ENTRY _ZTI5EE233[];
+extern VTBL_ENTRY _ZTV5EE233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE233[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF132;
+extern VTBL_ENTRY _ZTI5FF132[];
+extern VTBL_ENTRY _ZTV5FF132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF132[];
+static Base_Class bases_GG2331323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE233, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF132, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2331323[];
+extern void _ZN9GG23313233fooEv();
+extern void _ZN9GG23313233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23313233fooEv,_ZTv0_n20_N9GG23313233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23313233fooEv,_ZThn8_N9GG23313233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23313233barEv,_ZTv0_n24_N9GG23313233barEv)();
+extern void ABISELECT(_ZThn16_N9GG23313233barEv,_ZThn8_N9GG23313233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23313233barEv,_ZTv0_n12_N9GG23313233barEv)();
+extern void ABISELECT(_ZThn32_N9GG23313233barEv,_ZThn16_N9GG23313233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23313233fooEv,_ZTv0_n12_N9GG23313233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23313233fooEv,_ZThn24_N9GG23313233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23313233barEv,_ZTv0_n16_N9GG23313233barEv)();
+extern void ABISELECT(_ZThn48_N9GG23313233barEv,_ZThn24_N9GG23313233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23313233barEv,_ZTv0_n20_N9GG23313233barEv)();
+extern void ABISELECT(_ZThn64_N9GG23313233barEv,_ZThn32_N9GG23313233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23313233fooEv,_ZTv0_n12_N9GG23313233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23313233fooEv,_ZThn40_N9GG23313233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2331323[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2331323[0]),
+ (VTBL_ENTRY)&_ZN9GG23313233fooEv,
+ (VTBL_ENTRY)&_ZN9GG23313233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2331323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23313233fooEv,_ZTv0_n20_N9GG23313233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23313233barEv,_ZTv0_n24_N9GG23313233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2331323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23313233barEv,_ZTv0_n12_N9GG23313233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2331323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23313233fooEv,_ZTv0_n12_N9GG23313233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23313233barEv,_ZTv0_n16_N9GG23313233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2331323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23313233barEv,_ZTv0_n20_N9GG23313233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2331323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23313233fooEv,_ZTv0_n12_N9GG23313233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2331323[];
+extern void _ZN5EE2333fooEv();
+extern void _ZN5EE2333barEv();
+static VTBL_ENTRY _tg__ZTV5EE233__9GG2331323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&_ZN5EE2333fooEv,
+ (VTBL_ENTRY)&_ZN5EE2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv)();
+extern void ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE233__9GG2331323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv)();
+extern void ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE233__9GG2331323[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv),
+};
+extern void _ZN5FF1323barEv();
+static VTBL_ENTRY _tg__ZTV5FF132__9GG2331323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN5FF1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF132__9GG2331323[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF132__9GG2331323[] = {
+ ABISELECT(16,8),
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv),
+};
+static VTT_ENTRY vtt_GG2331323[] = {
+ {&(_ZTV9GG2331323[7]), 7,37},
+ {&(_ZTV9GG2331323[15]), 15,37},
+ {&(_ZTV9GG2331323[20]), 20,37},
+ {&(_ZTV9GG2331323[25]), 25,37},
+ {&(_ZTV9GG2331323[32]), 32,37},
+ {&(_ZTV9GG2331323[36]), 36,37},
+ {&(_tg__ZTV5EE233__9GG2331323[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE233__9GG2331323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE233__9GG2331323[4]), 4,6},
+ {&(_tg__ZTV5FF132__9GG2331323[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF132__9GG2331323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF132__9GG2331323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2331323[];
+extern VTBL_ENTRY _ZTV9GG2331323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2331323[];
+static VTBL_ENTRY alt_thunk_names733[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23313233barEv,_ZTv0_n20_N9GG23313233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23313233barEv,_ZThn32_N9GG23313233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23313233barEv,_ZTv0_n16_N9GG23313233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23313233barEv,_ZThn24_N9GG23313233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23313233fooEv,_ZTv0_n12_N9GG23313233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23313233fooEv,_ZThn40_N9GG23313233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23313233fooEv,_ZThn24_N9GG23313233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23313233barEv,_ZTv0_n12_N9GG23313233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23313233barEv,_ZThn16_N9GG23313233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG23313233barEv,_ZTv0_n24_N9GG23313233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23313233barEv,_ZThn8_N9GG23313233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23313233fooEv,_ZTv0_n20_N9GG23313233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23313233fooEv,_ZThn8_N9GG23313233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2331323 = { "GG2331323", // class name
+ bases_GG2331323, 5,
+ &(vtc_GG2331323[0]), // expected_vtbl_contents
+ &(vtt_GG2331323[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2331323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2331323),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2331323),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names733,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2331333 : virtual EE233 , virtual FF133 {
+ int pg;
+ virtual void foo(); // _ZN9GG23313333fooEv
+ virtual void bar(); // _ZN9GG23313333barEv
+ ~GG2331333(); // tgen
+ GG2331333(); // tgen
+};
+//SIG(1 GG2331333) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2331333 ::foo(){vfunc_called(this, "_ZN9GG23313333fooEv");}
+void GG2331333 ::bar(){vfunc_called(this, "_ZN9GG23313333barEv");}
+GG2331333 ::~GG2331333(){ note_dtor("GG2331333", this);} // tgen
+GG2331333 ::GG2331333(){ note_ctor("GG2331333", this);} // tgen
+
+static void Test_GG2331333()
+{
+ extern Class_Descriptor cd_GG2331333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2331333, buf);
+ GG2331333 *dp, &lv = *(dp=new (buf) GG2331333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2331333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2331333)");
+ check_base_class_offset(lv, (AA2*)(EE233*), ABISELECT(32,16), "GG2331333");
+ check_base_class_offset(lv, (BB3*)(EE233*), ABISELECT(48,24), "GG2331333");
+ check_base_class_offset(lv, (BB3*)(FF133*), ABISELECT(48,24), "GG2331333");
+ check_base_class_offset(lv, (EE233*), ABISELECT(16,8), "GG2331333");
+ check_base_class_offset(lv, (AA1*)(FF133*), ABISELECT(80,40), "GG2331333");
+ check_base_class_offset(lv, (FF133*), ABISELECT(64,32), "GG2331333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2331333.pg");
+ test_class_info(&lv, &cd_GG2331333);
+ dp->~GG2331333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2331333(Test_GG2331333, "GG2331333", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2331333C1Ev();
+extern void _ZN9GG2331333D1Ev();
+Name_Map name_map_GG2331333[] = {
+ NSPAIR(_ZN9GG2331333C1Ev),
+ NSPAIR(_ZN9GG2331333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE233;
+extern VTBL_ENTRY _ZTI5EE233[];
+extern VTBL_ENTRY _ZTV5EE233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE233[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF133;
+extern VTBL_ENTRY _ZTI5FF133[];
+extern VTBL_ENTRY _ZTV5FF133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF133[];
+static Base_Class bases_GG2331333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE233, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF133, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2331333[];
+extern void _ZN9GG23313333fooEv();
+extern void _ZN9GG23313333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23313333fooEv,_ZTv0_n20_N9GG23313333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23313333fooEv,_ZThn8_N9GG23313333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23313333barEv,_ZTv0_n24_N9GG23313333barEv)();
+extern void ABISELECT(_ZThn16_N9GG23313333barEv,_ZThn8_N9GG23313333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23313333barEv,_ZTv0_n12_N9GG23313333barEv)();
+extern void ABISELECT(_ZThn32_N9GG23313333barEv,_ZThn16_N9GG23313333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23313333fooEv,_ZTv0_n12_N9GG23313333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23313333fooEv,_ZThn24_N9GG23313333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23313333barEv,_ZTv0_n16_N9GG23313333barEv)();
+extern void ABISELECT(_ZThn48_N9GG23313333barEv,_ZThn24_N9GG23313333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23313333fooEv,_ZTv0_n20_N9GG23313333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23313333fooEv,_ZThn32_N9GG23313333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23313333barEv,_ZTv0_n24_N9GG23313333barEv)();
+extern void ABISELECT(_ZThn64_N9GG23313333barEv,_ZThn32_N9GG23313333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23313333fooEv,_ZTv0_n12_N9GG23313333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23313333fooEv,_ZThn40_N9GG23313333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2331333[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2331333[0]),
+ (VTBL_ENTRY)&_ZN9GG23313333fooEv,
+ (VTBL_ENTRY)&_ZN9GG23313333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2331333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23313333fooEv,_ZTv0_n20_N9GG23313333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23313333barEv,_ZTv0_n24_N9GG23313333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2331333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23313333barEv,_ZTv0_n12_N9GG23313333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2331333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23313333fooEv,_ZTv0_n12_N9GG23313333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23313333barEv,_ZTv0_n16_N9GG23313333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2331333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23313333fooEv,_ZTv0_n20_N9GG23313333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23313333barEv,_ZTv0_n24_N9GG23313333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2331333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23313333fooEv,_ZTv0_n12_N9GG23313333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2331333[];
+extern void _ZN5EE2333fooEv();
+extern void _ZN5EE2333barEv();
+static VTBL_ENTRY _tg__ZTV5EE233__9GG2331333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&_ZN5EE2333fooEv,
+ (VTBL_ENTRY)&_ZN5EE2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv)();
+extern void ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE233__9GG2331333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv)();
+extern void ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE233__9GG2331333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv),
+};
+extern void _ZN5FF1333fooEv();
+extern void _ZN5FF1333barEv();
+static VTBL_ENTRY _tg__ZTV5FF133__9GG2331333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&_ZN5FF1333fooEv,
+ (VTBL_ENTRY)&_ZN5FF1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF133__9GG2331333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF133__9GG2331333[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv),
+};
+static VTT_ENTRY vtt_GG2331333[] = {
+ {&(_ZTV9GG2331333[7]), 7,39},
+ {&(_ZTV9GG2331333[15]), 15,39},
+ {&(_ZTV9GG2331333[20]), 20,39},
+ {&(_ZTV9GG2331333[25]), 25,39},
+ {&(_ZTV9GG2331333[33]), 33,39},
+ {&(_ZTV9GG2331333[38]), 38,39},
+ {&(_tg__ZTV5EE233__9GG2331333[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE233__9GG2331333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE233__9GG2331333[4]), 4,6},
+ {&(_tg__ZTV5FF133__9GG2331333[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF133__9GG2331333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF133__9GG2331333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2331333[];
+extern VTBL_ENTRY _ZTV9GG2331333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2331333[];
+static VTBL_ENTRY alt_thunk_names734[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23313333barEv,_ZTv0_n16_N9GG23313333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23313333barEv,_ZThn24_N9GG23313333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23313333fooEv,_ZTv0_n12_N9GG23313333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23313333fooEv,_ZThn40_N9GG23313333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23313333fooEv,_ZThn24_N9GG23313333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23313333barEv,_ZTv0_n12_N9GG23313333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23313333barEv,_ZThn16_N9GG23313333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG23313333barEv,_ZTv0_n24_N9GG23313333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23313333barEv,_ZThn32_N9GG23313333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23313333barEv,_ZThn8_N9GG23313333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23313333fooEv,_ZTv0_n20_N9GG23313333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23313333fooEv,_ZThn32_N9GG23313333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23313333fooEv,_ZThn8_N9GG23313333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2331333 = { "GG2331333", // class name
+ bases_GG2331333, 5,
+ &(vtc_GG2331333[0]), // expected_vtbl_contents
+ &(vtt_GG2331333[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2331333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2331333),39, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2331333),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names734,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2332113 : virtual EE233 , virtual FF211 {
+ int pg;
+ virtual void foo(); // _ZN9GG23321133fooEv
+ virtual void bar(); // _ZN9GG23321133barEv
+ ~GG2332113(); // tgen
+ GG2332113(); // tgen
+};
+//SIG(1 GG2332113) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2332113 ::foo(){vfunc_called(this, "_ZN9GG23321133fooEv");}
+void GG2332113 ::bar(){vfunc_called(this, "_ZN9GG23321133barEv");}
+GG2332113 ::~GG2332113(){ note_dtor("GG2332113", this);} // tgen
+GG2332113 ::GG2332113(){ note_ctor("GG2332113", this);} // tgen
+
+static void Test_GG2332113()
+{
+ extern Class_Descriptor cd_GG2332113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2332113, buf);
+ GG2332113 *dp, &lv = *(dp=new (buf) GG2332113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2332113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2332113)");
+ check_base_class_offset(lv, (AA2*)(EE233*), ABISELECT(32,16), "GG2332113");
+ check_base_class_offset(lv, (AA2*)(FF211*), ABISELECT(32,16), "GG2332113");
+ check_base_class_offset(lv, (BB3*)(EE233*), ABISELECT(48,24), "GG2332113");
+ check_base_class_offset(lv, (EE233*), ABISELECT(16,8), "GG2332113");
+ check_base_class_offset(lv, (BB1*)(FF211*), ABISELECT(80,40), "GG2332113");
+ check_base_class_offset(lv, (FF211*), ABISELECT(64,32), "GG2332113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2332113.pg");
+ test_class_info(&lv, &cd_GG2332113);
+ dp->~GG2332113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2332113(Test_GG2332113, "GG2332113", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2332113C1Ev();
+extern void _ZN9GG2332113D1Ev();
+Name_Map name_map_GG2332113[] = {
+ NSPAIR(_ZN9GG2332113C1Ev),
+ NSPAIR(_ZN9GG2332113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE233;
+extern VTBL_ENTRY _ZTI5EE233[];
+extern VTBL_ENTRY _ZTV5EE233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE233[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF211;
+extern VTBL_ENTRY _ZTI5FF211[];
+extern VTBL_ENTRY _ZTV5FF211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF211[];
+static Base_Class bases_GG2332113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE233, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF211, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2332113[];
+extern void _ZN9GG23321133fooEv();
+extern void _ZN9GG23321133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23321133fooEv,_ZTv0_n20_N9GG23321133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23321133fooEv,_ZThn8_N9GG23321133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23321133barEv,_ZTv0_n24_N9GG23321133barEv)();
+extern void ABISELECT(_ZThn16_N9GG23321133barEv,_ZThn8_N9GG23321133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23321133barEv,_ZTv0_n12_N9GG23321133barEv)();
+extern void ABISELECT(_ZThn32_N9GG23321133barEv,_ZThn16_N9GG23321133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23321133fooEv,_ZTv0_n12_N9GG23321133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23321133fooEv,_ZThn24_N9GG23321133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23321133barEv,_ZTv0_n16_N9GG23321133barEv)();
+extern void ABISELECT(_ZThn48_N9GG23321133barEv,_ZThn24_N9GG23321133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23321133fooEv,_ZTv0_n20_N9GG23321133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23321133fooEv,_ZThn32_N9GG23321133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23321133fooEv,_ZTv0_n12_N9GG23321133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23321133fooEv,_ZThn40_N9GG23321133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2332113[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2332113[0]),
+ (VTBL_ENTRY)&_ZN9GG23321133fooEv,
+ (VTBL_ENTRY)&_ZN9GG23321133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2332113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23321133fooEv,_ZTv0_n20_N9GG23321133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23321133barEv,_ZTv0_n24_N9GG23321133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2332113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23321133barEv,_ZTv0_n12_N9GG23321133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2332113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23321133fooEv,_ZTv0_n12_N9GG23321133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23321133barEv,_ZTv0_n16_N9GG23321133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2332113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23321133fooEv,_ZTv0_n20_N9GG23321133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2332113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23321133fooEv,_ZTv0_n12_N9GG23321133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2332113[];
+extern void _ZN5EE2333fooEv();
+extern void _ZN5EE2333barEv();
+static VTBL_ENTRY _tg__ZTV5EE233__9GG2332113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&_ZN5EE2333fooEv,
+ (VTBL_ENTRY)&_ZN5EE2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv)();
+extern void ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE233__9GG2332113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv)();
+extern void ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE233__9GG2332113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv),
+};
+extern void _ZN5FF2113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF211__9GG2332113[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN5FF2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF211__9GG2332113[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF2113fooEv,_ZThn8_N5FF2113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF211__9GG2332113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv),
+};
+static VTT_ENTRY vtt_GG2332113[] = {
+ {&(_ZTV9GG2332113[7]), 7,37},
+ {&(_ZTV9GG2332113[15]), 15,37},
+ {&(_ZTV9GG2332113[20]), 20,37},
+ {&(_ZTV9GG2332113[25]), 25,37},
+ {&(_ZTV9GG2332113[32]), 32,37},
+ {&(_ZTV9GG2332113[36]), 36,37},
+ {&(_tg__ZTV5EE233__9GG2332113[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE233__9GG2332113[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE233__9GG2332113[4]), 4,6},
+ {&(_tg__ZTV5FF211__9GG2332113[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF211__9GG2332113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF211__9GG2332113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2332113[];
+extern VTBL_ENTRY _ZTV9GG2332113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2332113[];
+static VTBL_ENTRY alt_thunk_names735[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2113fooEv,_ZThn8_N5FF2113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23321133barEv,_ZTv0_n16_N9GG23321133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23321133barEv,_ZThn24_N9GG23321133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23321133fooEv,_ZTv0_n12_N9GG23321133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23321133fooEv,_ZThn40_N9GG23321133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23321133fooEv,_ZThn24_N9GG23321133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23321133barEv,_ZTv0_n12_N9GG23321133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23321133barEv,_ZThn16_N9GG23321133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG23321133barEv,_ZTv0_n24_N9GG23321133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23321133barEv,_ZThn8_N9GG23321133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23321133fooEv,_ZTv0_n20_N9GG23321133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23321133fooEv,_ZThn32_N9GG23321133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23321133fooEv,_ZThn8_N9GG23321133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2332113 = { "GG2332113", // class name
+ bases_GG2332113, 5,
+ &(vtc_GG2332113[0]), // expected_vtbl_contents
+ &(vtt_GG2332113[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2332113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2332113),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2332113),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names735,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2332123 : virtual EE233 , virtual FF212 {
+ int pg;
+ virtual void foo(); // _ZN9GG23321233fooEv
+ virtual void bar(); // _ZN9GG23321233barEv
+ ~GG2332123(); // tgen
+ GG2332123(); // tgen
+};
+//SIG(1 GG2332123) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2332123 ::foo(){vfunc_called(this, "_ZN9GG23321233fooEv");}
+void GG2332123 ::bar(){vfunc_called(this, "_ZN9GG23321233barEv");}
+GG2332123 ::~GG2332123(){ note_dtor("GG2332123", this);} // tgen
+GG2332123 ::GG2332123(){ note_ctor("GG2332123", this);} // tgen
+
+static void Test_GG2332123()
+{
+ extern Class_Descriptor cd_GG2332123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2332123, buf);
+ GG2332123 *dp, &lv = *(dp=new (buf) GG2332123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2332123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2332123)");
+ check_base_class_offset(lv, (AA2*)(EE233*), ABISELECT(32,16), "GG2332123");
+ check_base_class_offset(lv, (AA2*)(FF212*), ABISELECT(32,16), "GG2332123");
+ check_base_class_offset(lv, (BB3*)(EE233*), ABISELECT(48,24), "GG2332123");
+ check_base_class_offset(lv, (EE233*), ABISELECT(16,8), "GG2332123");
+ check_base_class_offset(lv, (BB1*)(FF212*), ABISELECT(80,40), "GG2332123");
+ check_base_class_offset(lv, (FF212*), ABISELECT(64,32), "GG2332123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2332123.pg");
+ test_class_info(&lv, &cd_GG2332123);
+ dp->~GG2332123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2332123(Test_GG2332123, "GG2332123", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2332123C1Ev();
+extern void _ZN9GG2332123D1Ev();
+Name_Map name_map_GG2332123[] = {
+ NSPAIR(_ZN9GG2332123C1Ev),
+ NSPAIR(_ZN9GG2332123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE233;
+extern VTBL_ENTRY _ZTI5EE233[];
+extern VTBL_ENTRY _ZTV5EE233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE233[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF212;
+extern VTBL_ENTRY _ZTI5FF212[];
+extern VTBL_ENTRY _ZTV5FF212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF212[];
+static Base_Class bases_GG2332123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE233, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF212, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2332123[];
+extern void _ZN9GG23321233fooEv();
+extern void _ZN9GG23321233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23321233fooEv,_ZTv0_n20_N9GG23321233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23321233fooEv,_ZThn8_N9GG23321233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23321233barEv,_ZTv0_n24_N9GG23321233barEv)();
+extern void ABISELECT(_ZThn16_N9GG23321233barEv,_ZThn8_N9GG23321233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23321233barEv,_ZTv0_n12_N9GG23321233barEv)();
+extern void ABISELECT(_ZThn32_N9GG23321233barEv,_ZThn16_N9GG23321233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23321233fooEv,_ZTv0_n12_N9GG23321233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23321233fooEv,_ZThn24_N9GG23321233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23321233barEv,_ZTv0_n16_N9GG23321233barEv)();
+extern void ABISELECT(_ZThn48_N9GG23321233barEv,_ZThn24_N9GG23321233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23321233barEv,_ZTv0_n20_N9GG23321233barEv)();
+extern void ABISELECT(_ZThn64_N9GG23321233barEv,_ZThn32_N9GG23321233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23321233fooEv,_ZTv0_n12_N9GG23321233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23321233fooEv,_ZThn40_N9GG23321233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2332123[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2332123[0]),
+ (VTBL_ENTRY)&_ZN9GG23321233fooEv,
+ (VTBL_ENTRY)&_ZN9GG23321233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2332123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23321233fooEv,_ZTv0_n20_N9GG23321233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23321233barEv,_ZTv0_n24_N9GG23321233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2332123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23321233barEv,_ZTv0_n12_N9GG23321233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2332123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23321233fooEv,_ZTv0_n12_N9GG23321233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23321233barEv,_ZTv0_n16_N9GG23321233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2332123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23321233barEv,_ZTv0_n20_N9GG23321233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2332123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23321233fooEv,_ZTv0_n12_N9GG23321233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2332123[];
+extern void _ZN5EE2333fooEv();
+extern void _ZN5EE2333barEv();
+static VTBL_ENTRY _tg__ZTV5EE233__9GG2332123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&_ZN5EE2333fooEv,
+ (VTBL_ENTRY)&_ZN5EE2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv)();
+extern void ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE233__9GG2332123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv)();
+extern void ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE233__9GG2332123[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv),
+};
+extern void _ZN5FF2123barEv();
+static VTBL_ENTRY _tg__ZTV5FF212__9GG2332123[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN5FF2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF212__9GG2332123[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF212__9GG2332123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG2332123[] = {
+ {&(_ZTV9GG2332123[7]), 7,37},
+ {&(_ZTV9GG2332123[15]), 15,37},
+ {&(_ZTV9GG2332123[20]), 20,37},
+ {&(_ZTV9GG2332123[25]), 25,37},
+ {&(_ZTV9GG2332123[32]), 32,37},
+ {&(_ZTV9GG2332123[36]), 36,37},
+ {&(_tg__ZTV5EE233__9GG2332123[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE233__9GG2332123[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE233__9GG2332123[4]), 4,6},
+ {&(_tg__ZTV5FF212__9GG2332123[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF212__9GG2332123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF212__9GG2332123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2332123[];
+extern VTBL_ENTRY _ZTV9GG2332123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2332123[];
+static VTBL_ENTRY alt_thunk_names736[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23321233barEv,_ZTv0_n20_N9GG23321233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23321233barEv,_ZThn32_N9GG23321233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23321233barEv,_ZTv0_n16_N9GG23321233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23321233barEv,_ZThn24_N9GG23321233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23321233fooEv,_ZTv0_n12_N9GG23321233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23321233fooEv,_ZThn40_N9GG23321233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23321233fooEv,_ZThn24_N9GG23321233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23321233barEv,_ZTv0_n12_N9GG23321233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23321233barEv,_ZThn16_N9GG23321233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG23321233barEv,_ZTv0_n24_N9GG23321233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23321233barEv,_ZThn8_N9GG23321233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23321233fooEv,_ZTv0_n20_N9GG23321233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23321233fooEv,_ZThn8_N9GG23321233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2332123 = { "GG2332123", // class name
+ bases_GG2332123, 5,
+ &(vtc_GG2332123[0]), // expected_vtbl_contents
+ &(vtt_GG2332123[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2332123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2332123),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2332123),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names736,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2332133 : virtual EE233 , virtual FF213 {
+ int pg;
+ virtual void foo(); // _ZN9GG23321333fooEv
+ virtual void bar(); // _ZN9GG23321333barEv
+ ~GG2332133(); // tgen
+ GG2332133(); // tgen
+};
+//SIG(1 GG2332133) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2332133 ::foo(){vfunc_called(this, "_ZN9GG23321333fooEv");}
+void GG2332133 ::bar(){vfunc_called(this, "_ZN9GG23321333barEv");}
+GG2332133 ::~GG2332133(){ note_dtor("GG2332133", this);} // tgen
+GG2332133 ::GG2332133(){ note_ctor("GG2332133", this);} // tgen
+
+static void Test_GG2332133()
+{
+ extern Class_Descriptor cd_GG2332133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2332133, buf);
+ GG2332133 *dp, &lv = *(dp=new (buf) GG2332133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2332133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2332133)");
+ check_base_class_offset(lv, (AA2*)(EE233*), ABISELECT(32,16), "GG2332133");
+ check_base_class_offset(lv, (AA2*)(FF213*), ABISELECT(32,16), "GG2332133");
+ check_base_class_offset(lv, (BB3*)(EE233*), ABISELECT(48,24), "GG2332133");
+ check_base_class_offset(lv, (EE233*), ABISELECT(16,8), "GG2332133");
+ check_base_class_offset(lv, (BB1*)(FF213*), ABISELECT(80,40), "GG2332133");
+ check_base_class_offset(lv, (FF213*), ABISELECT(64,32), "GG2332133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2332133.pg");
+ test_class_info(&lv, &cd_GG2332133);
+ dp->~GG2332133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2332133(Test_GG2332133, "GG2332133", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2332133C1Ev();
+extern void _ZN9GG2332133D1Ev();
+Name_Map name_map_GG2332133[] = {
+ NSPAIR(_ZN9GG2332133C1Ev),
+ NSPAIR(_ZN9GG2332133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE233;
+extern VTBL_ENTRY _ZTI5EE233[];
+extern VTBL_ENTRY _ZTV5EE233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE233[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF213;
+extern VTBL_ENTRY _ZTI5FF213[];
+extern VTBL_ENTRY _ZTV5FF213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF213[];
+static Base_Class bases_GG2332133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE233, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF213, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2332133[];
+extern void _ZN9GG23321333fooEv();
+extern void _ZN9GG23321333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23321333fooEv,_ZTv0_n20_N9GG23321333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23321333fooEv,_ZThn8_N9GG23321333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23321333barEv,_ZTv0_n24_N9GG23321333barEv)();
+extern void ABISELECT(_ZThn16_N9GG23321333barEv,_ZThn8_N9GG23321333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23321333barEv,_ZTv0_n12_N9GG23321333barEv)();
+extern void ABISELECT(_ZThn32_N9GG23321333barEv,_ZThn16_N9GG23321333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23321333fooEv,_ZTv0_n12_N9GG23321333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23321333fooEv,_ZThn24_N9GG23321333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23321333barEv,_ZTv0_n16_N9GG23321333barEv)();
+extern void ABISELECT(_ZThn48_N9GG23321333barEv,_ZThn24_N9GG23321333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23321333fooEv,_ZTv0_n20_N9GG23321333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23321333fooEv,_ZThn32_N9GG23321333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23321333barEv,_ZTv0_n24_N9GG23321333barEv)();
+extern void ABISELECT(_ZThn64_N9GG23321333barEv,_ZThn32_N9GG23321333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23321333fooEv,_ZTv0_n12_N9GG23321333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23321333fooEv,_ZThn40_N9GG23321333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2332133[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2332133[0]),
+ (VTBL_ENTRY)&_ZN9GG23321333fooEv,
+ (VTBL_ENTRY)&_ZN9GG23321333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2332133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23321333fooEv,_ZTv0_n20_N9GG23321333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23321333barEv,_ZTv0_n24_N9GG23321333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2332133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23321333barEv,_ZTv0_n12_N9GG23321333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2332133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23321333fooEv,_ZTv0_n12_N9GG23321333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23321333barEv,_ZTv0_n16_N9GG23321333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2332133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23321333fooEv,_ZTv0_n20_N9GG23321333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23321333barEv,_ZTv0_n24_N9GG23321333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2332133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23321333fooEv,_ZTv0_n12_N9GG23321333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2332133[];
+extern void _ZN5EE2333fooEv();
+extern void _ZN5EE2333barEv();
+static VTBL_ENTRY _tg__ZTV5EE233__9GG2332133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&_ZN5EE2333fooEv,
+ (VTBL_ENTRY)&_ZN5EE2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv)();
+extern void ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE233__9GG2332133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv)();
+extern void ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE233__9GG2332133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv),
+};
+extern void _ZN5FF2133fooEv();
+extern void _ZN5FF2133barEv();
+static VTBL_ENTRY _tg__ZTV5FF213__9GG2332133[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&_ZN5FF2133fooEv,
+ (VTBL_ENTRY)&_ZN5FF2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF213__9GG2332133[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF2133fooEv,_ZThn8_N5FF2133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF213__9GG2332133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv),
+};
+static VTT_ENTRY vtt_GG2332133[] = {
+ {&(_ZTV9GG2332133[7]), 7,39},
+ {&(_ZTV9GG2332133[15]), 15,39},
+ {&(_ZTV9GG2332133[20]), 20,39},
+ {&(_ZTV9GG2332133[25]), 25,39},
+ {&(_ZTV9GG2332133[33]), 33,39},
+ {&(_ZTV9GG2332133[38]), 38,39},
+ {&(_tg__ZTV5EE233__9GG2332133[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE233__9GG2332133[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE233__9GG2332133[4]), 4,6},
+ {&(_tg__ZTV5FF213__9GG2332133[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF213__9GG2332133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF213__9GG2332133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2332133[];
+extern VTBL_ENTRY _ZTV9GG2332133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2332133[];
+static VTBL_ENTRY alt_thunk_names737[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2133fooEv,_ZThn8_N5FF2133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23321333barEv,_ZTv0_n16_N9GG23321333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23321333barEv,_ZThn24_N9GG23321333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23321333fooEv,_ZTv0_n12_N9GG23321333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23321333fooEv,_ZThn40_N9GG23321333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23321333fooEv,_ZThn24_N9GG23321333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23321333barEv,_ZTv0_n12_N9GG23321333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23321333barEv,_ZThn16_N9GG23321333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG23321333barEv,_ZTv0_n24_N9GG23321333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23321333barEv,_ZThn32_N9GG23321333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23321333barEv,_ZThn8_N9GG23321333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23321333fooEv,_ZTv0_n20_N9GG23321333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23321333fooEv,_ZThn32_N9GG23321333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23321333fooEv,_ZThn8_N9GG23321333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2332133 = { "GG2332133", // class name
+ bases_GG2332133, 5,
+ &(vtc_GG2332133[0]), // expected_vtbl_contents
+ &(vtt_GG2332133[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2332133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2332133),39, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2332133),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names737,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2332213 : virtual EE233 , virtual FF221 {
+ int pg;
+ virtual void foo(); // _ZN9GG23322133fooEv
+ virtual void bar(); // _ZN9GG23322133barEv
+ ~GG2332213(); // tgen
+ GG2332213(); // tgen
+};
+//SIG(1 GG2332213) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2332213 ::foo(){vfunc_called(this, "_ZN9GG23322133fooEv");}
+void GG2332213 ::bar(){vfunc_called(this, "_ZN9GG23322133barEv");}
+GG2332213 ::~GG2332213(){ note_dtor("GG2332213", this);} // tgen
+GG2332213 ::GG2332213(){ note_ctor("GG2332213", this);} // tgen
+
+static void Test_GG2332213()
+{
+ extern Class_Descriptor cd_GG2332213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2332213, buf);
+ GG2332213 *dp, &lv = *(dp=new (buf) GG2332213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2332213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2332213)");
+ check_base_class_offset(lv, (AA2*)(EE233*), ABISELECT(32,16), "GG2332213");
+ check_base_class_offset(lv, (AA2*)(FF221*), ABISELECT(32,16), "GG2332213");
+ check_base_class_offset(lv, (BB3*)(EE233*), ABISELECT(48,24), "GG2332213");
+ check_base_class_offset(lv, (EE233*), ABISELECT(16,8), "GG2332213");
+ check_base_class_offset(lv, (BB2*)(FF221*), ABISELECT(80,40), "GG2332213");
+ check_base_class_offset(lv, (FF221*), ABISELECT(64,32), "GG2332213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2332213.pg");
+ test_class_info(&lv, &cd_GG2332213);
+ dp->~GG2332213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2332213(Test_GG2332213, "GG2332213", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2332213C1Ev();
+extern void _ZN9GG2332213D1Ev();
+Name_Map name_map_GG2332213[] = {
+ NSPAIR(_ZN9GG2332213C1Ev),
+ NSPAIR(_ZN9GG2332213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE233;
+extern VTBL_ENTRY _ZTI5EE233[];
+extern VTBL_ENTRY _ZTV5EE233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE233[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF221;
+extern VTBL_ENTRY _ZTI5FF221[];
+extern VTBL_ENTRY _ZTV5FF221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF221[];
+static Base_Class bases_GG2332213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE233, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF221, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2332213[];
+extern void _ZN9GG23322133fooEv();
+extern void _ZN9GG23322133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23322133fooEv,_ZTv0_n20_N9GG23322133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23322133fooEv,_ZThn8_N9GG23322133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23322133barEv,_ZTv0_n24_N9GG23322133barEv)();
+extern void ABISELECT(_ZThn16_N9GG23322133barEv,_ZThn8_N9GG23322133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23322133barEv,_ZTv0_n12_N9GG23322133barEv)();
+extern void ABISELECT(_ZThn32_N9GG23322133barEv,_ZThn16_N9GG23322133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23322133fooEv,_ZTv0_n12_N9GG23322133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23322133fooEv,_ZThn24_N9GG23322133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23322133barEv,_ZTv0_n16_N9GG23322133barEv)();
+extern void ABISELECT(_ZThn48_N9GG23322133barEv,_ZThn24_N9GG23322133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23322133fooEv,_ZTv0_n20_N9GG23322133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23322133fooEv,_ZThn32_N9GG23322133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23322133barEv,_ZTv0_n12_N9GG23322133barEv)();
+extern void ABISELECT(_ZThn80_N9GG23322133barEv,_ZThn40_N9GG23322133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2332213[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2332213[0]),
+ (VTBL_ENTRY)&_ZN9GG23322133fooEv,
+ (VTBL_ENTRY)&_ZN9GG23322133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2332213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23322133fooEv,_ZTv0_n20_N9GG23322133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23322133barEv,_ZTv0_n24_N9GG23322133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2332213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23322133barEv,_ZTv0_n12_N9GG23322133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2332213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23322133fooEv,_ZTv0_n12_N9GG23322133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23322133barEv,_ZTv0_n16_N9GG23322133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2332213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23322133fooEv,_ZTv0_n20_N9GG23322133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2332213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23322133barEv,_ZTv0_n12_N9GG23322133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2332213[];
+extern void _ZN5EE2333fooEv();
+extern void _ZN5EE2333barEv();
+static VTBL_ENTRY _tg__ZTV5EE233__9GG2332213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&_ZN5EE2333fooEv,
+ (VTBL_ENTRY)&_ZN5EE2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv)();
+extern void ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE233__9GG2332213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv)();
+extern void ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE233__9GG2332213[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv),
+};
+extern void _ZN5FF2213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF221__9GG2332213[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN5FF2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF221__9GG2332213[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF221__9GG2332213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG2332213[] = {
+ {&(_ZTV9GG2332213[7]), 7,37},
+ {&(_ZTV9GG2332213[15]), 15,37},
+ {&(_ZTV9GG2332213[20]), 20,37},
+ {&(_ZTV9GG2332213[25]), 25,37},
+ {&(_ZTV9GG2332213[32]), 32,37},
+ {&(_ZTV9GG2332213[36]), 36,37},
+ {&(_tg__ZTV5EE233__9GG2332213[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE233__9GG2332213[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE233__9GG2332213[4]), 4,6},
+ {&(_tg__ZTV5FF221__9GG2332213[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF221__9GG2332213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF221__9GG2332213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2332213[];
+extern VTBL_ENTRY _ZTV9GG2332213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2332213[];
+static VTBL_ENTRY alt_thunk_names738[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23322133barEv,_ZTv0_n16_N9GG23322133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23322133barEv,_ZThn24_N9GG23322133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23322133fooEv,_ZTv0_n12_N9GG23322133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23322133fooEv,_ZThn24_N9GG23322133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23322133barEv,_ZTv0_n12_N9GG23322133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23322133barEv,_ZThn40_N9GG23322133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23322133barEv,_ZThn16_N9GG23322133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG23322133barEv,_ZTv0_n24_N9GG23322133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23322133barEv,_ZThn8_N9GG23322133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23322133fooEv,_ZTv0_n20_N9GG23322133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23322133fooEv,_ZThn32_N9GG23322133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23322133fooEv,_ZThn8_N9GG23322133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2332213 = { "GG2332213", // class name
+ bases_GG2332213, 5,
+ &(vtc_GG2332213[0]), // expected_vtbl_contents
+ &(vtt_GG2332213[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2332213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2332213),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2332213),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names738,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2332222 : virtual EE233 , virtual FF222 {
+ int pg;
+ virtual void bar(); // _ZN9GG23322223barEv
+ ~GG2332222(); // tgen
+ GG2332222(); // tgen
+};
+//SIG(1 GG2332222) C1{ VBC2{ VBC3{ v1 Fi} VBC4{ v2 v1 Fi} v2 v1 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v1 Fi} v1 Fi}
+
+
+void GG2332222 ::bar(){vfunc_called(this, "_ZN9GG23322223barEv");}
+GG2332222 ::~GG2332222(){ note_dtor("GG2332222", this);} // tgen
+GG2332222 ::GG2332222(){ note_ctor("GG2332222", this);} // tgen
+
+static void Test_GG2332222()
+{
+ extern Class_Descriptor cd_GG2332222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2332222, buf);
+ GG2332222 *dp, &lv = *(dp=new (buf) GG2332222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2332222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2332222)");
+ check_base_class_offset(lv, (AA2*)(EE233*), ABISELECT(32,16), "GG2332222");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(32,16), "GG2332222");
+ check_base_class_offset(lv, (BB3*)(EE233*), ABISELECT(48,24), "GG2332222");
+ check_base_class_offset(lv, (EE233*), ABISELECT(16,8), "GG2332222");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(80,40), "GG2332222");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG2332222");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2332222.pg");
+ test_class_info(&lv, &cd_GG2332222);
+ dp->~GG2332222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2332222(Test_GG2332222, "GG2332222", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2332222C1Ev();
+extern void _ZN9GG2332222D1Ev();
+Name_Map name_map_GG2332222[] = {
+ NSPAIR(_ZN9GG2332222C1Ev),
+ NSPAIR(_ZN9GG2332222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE233;
+extern VTBL_ENTRY _ZTI5EE233[];
+extern VTBL_ENTRY _ZTV5EE233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE233[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG2332222[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE233, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2332222[];
+extern void _ZN9GG23322223barEv();
+extern void _ZN5EE2333fooEv();
+extern void ABISELECT(_ZTv0_n48_N9GG23322223barEv,_ZTv0_n24_N9GG23322223barEv)();
+extern void ABISELECT(_ZThn16_N9GG23322223barEv,_ZThn8_N9GG23322223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23322223barEv,_ZTv0_n12_N9GG23322223barEv)();
+extern void ABISELECT(_ZThn32_N9GG23322223barEv,_ZThn16_N9GG23322223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23322223barEv,_ZTv0_n16_N9GG23322223barEv)();
+extern void ABISELECT(_ZThn48_N9GG23322223barEv,_ZThn24_N9GG23322223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23322223barEv,_ZTv0_n20_N9GG23322223barEv)();
+extern void ABISELECT(_ZThn64_N9GG23322223barEv,_ZThn32_N9GG23322223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23322223barEv,_ZTv0_n12_N9GG23322223barEv)();
+extern void ABISELECT(_ZThn80_N9GG23322223barEv,_ZThn40_N9GG23322223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2332222[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2332222[0]),
+ (VTBL_ENTRY)&_ZN9GG23322223barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2332222[0]),
+ (VTBL_ENTRY)&_ZN5EE2333fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23322223barEv,_ZTv0_n24_N9GG23322223barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2332222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23322223barEv,_ZTv0_n12_N9GG23322223barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2332222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23322223barEv,_ZTv0_n16_N9GG23322223barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2332222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23322223barEv,_ZTv0_n20_N9GG23322223barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2332222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23322223barEv,_ZTv0_n12_N9GG23322223barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2332222[];
+extern void _ZN5EE2333fooEv();
+extern void _ZN5EE2333barEv();
+static VTBL_ENTRY _tg__ZTV5EE233__9GG2332222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&_ZN5EE2333fooEv,
+ (VTBL_ENTRY)&_ZN5EE2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv)();
+extern void ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE233__9GG2332222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv)();
+extern void ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE233__9GG2332222[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv),
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG2332222[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG2332222[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG2332222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG2332222[] = {
+ {&(_ZTV9GG2332222[7]), 7,36},
+ {&(_ZTV9GG2332222[14]), 14,36},
+ {&(_ZTV9GG2332222[19]), 19,36},
+ {&(_ZTV9GG2332222[24]), 24,36},
+ {&(_ZTV9GG2332222[31]), 31,36},
+ {&(_ZTV9GG2332222[35]), 35,36},
+ {&(_tg__ZTV5EE233__9GG2332222[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE233__9GG2332222[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE233__9GG2332222[4]), 4,6},
+ {&(_tg__ZTV5FF222__9GG2332222[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG2332222[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG2332222[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2332222[];
+extern VTBL_ENTRY _ZTV9GG2332222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2332222[];
+static VTBL_ENTRY alt_thunk_names739[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23322223barEv,_ZTv0_n20_N9GG23322223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23322223barEv,_ZThn32_N9GG23322223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23322223barEv,_ZTv0_n16_N9GG23322223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23322223barEv,_ZThn24_N9GG23322223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23322223barEv,_ZTv0_n12_N9GG23322223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23322223barEv,_ZThn40_N9GG23322223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23322223barEv,_ZThn16_N9GG23322223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG23322223barEv,_ZTv0_n24_N9GG23322223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23322223barEv,_ZThn8_N9GG23322223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2332222 = { "GG2332222", // class name
+ bases_GG2332222, 5,
+ &(vtc_GG2332222[0]), // expected_vtbl_contents
+ &(vtt_GG2332222[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2332222),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2332222),36, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2332222),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names739,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2332223 : virtual EE233 , virtual FF222 {
+ int pg;
+ virtual void foo(); // _ZN9GG23322233fooEv
+ virtual void bar(); // _ZN9GG23322233barEv
+ ~GG2332223(); // tgen
+ GG2332223(); // tgen
+};
+//SIG(1 GG2332223) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2332223 ::foo(){vfunc_called(this, "_ZN9GG23322233fooEv");}
+void GG2332223 ::bar(){vfunc_called(this, "_ZN9GG23322233barEv");}
+GG2332223 ::~GG2332223(){ note_dtor("GG2332223", this);} // tgen
+GG2332223 ::GG2332223(){ note_ctor("GG2332223", this);} // tgen
+
+static void Test_GG2332223()
+{
+ extern Class_Descriptor cd_GG2332223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2332223, buf);
+ GG2332223 *dp, &lv = *(dp=new (buf) GG2332223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2332223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2332223)");
+ check_base_class_offset(lv, (AA2*)(EE233*), ABISELECT(32,16), "GG2332223");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(32,16), "GG2332223");
+ check_base_class_offset(lv, (BB3*)(EE233*), ABISELECT(48,24), "GG2332223");
+ check_base_class_offset(lv, (EE233*), ABISELECT(16,8), "GG2332223");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(80,40), "GG2332223");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG2332223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2332223.pg");
+ test_class_info(&lv, &cd_GG2332223);
+ dp->~GG2332223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2332223(Test_GG2332223, "GG2332223", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2332223C1Ev();
+extern void _ZN9GG2332223D1Ev();
+Name_Map name_map_GG2332223[] = {
+ NSPAIR(_ZN9GG2332223C1Ev),
+ NSPAIR(_ZN9GG2332223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE233;
+extern VTBL_ENTRY _ZTI5EE233[];
+extern VTBL_ENTRY _ZTV5EE233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE233[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG2332223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE233, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2332223[];
+extern void _ZN9GG23322233fooEv();
+extern void _ZN9GG23322233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23322233fooEv,_ZTv0_n20_N9GG23322233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23322233fooEv,_ZThn8_N9GG23322233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23322233barEv,_ZTv0_n24_N9GG23322233barEv)();
+extern void ABISELECT(_ZThn16_N9GG23322233barEv,_ZThn8_N9GG23322233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23322233barEv,_ZTv0_n12_N9GG23322233barEv)();
+extern void ABISELECT(_ZThn32_N9GG23322233barEv,_ZThn16_N9GG23322233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23322233fooEv,_ZTv0_n12_N9GG23322233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23322233fooEv,_ZThn24_N9GG23322233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23322233barEv,_ZTv0_n16_N9GG23322233barEv)();
+extern void ABISELECT(_ZThn48_N9GG23322233barEv,_ZThn24_N9GG23322233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23322233barEv,_ZTv0_n20_N9GG23322233barEv)();
+extern void ABISELECT(_ZThn64_N9GG23322233barEv,_ZThn32_N9GG23322233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23322233barEv,_ZTv0_n12_N9GG23322233barEv)();
+extern void ABISELECT(_ZThn80_N9GG23322233barEv,_ZThn40_N9GG23322233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2332223[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2332223[0]),
+ (VTBL_ENTRY)&_ZN9GG23322233fooEv,
+ (VTBL_ENTRY)&_ZN9GG23322233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2332223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23322233fooEv,_ZTv0_n20_N9GG23322233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23322233barEv,_ZTv0_n24_N9GG23322233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2332223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23322233barEv,_ZTv0_n12_N9GG23322233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2332223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23322233fooEv,_ZTv0_n12_N9GG23322233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23322233barEv,_ZTv0_n16_N9GG23322233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2332223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23322233barEv,_ZTv0_n20_N9GG23322233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2332223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23322233barEv,_ZTv0_n12_N9GG23322233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2332223[];
+extern void _ZN5EE2333fooEv();
+extern void _ZN5EE2333barEv();
+static VTBL_ENTRY _tg__ZTV5EE233__9GG2332223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&_ZN5EE2333fooEv,
+ (VTBL_ENTRY)&_ZN5EE2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv)();
+extern void ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE233__9GG2332223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv)();
+extern void ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE233__9GG2332223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv),
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG2332223[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG2332223[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG2332223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG2332223[] = {
+ {&(_ZTV9GG2332223[7]), 7,37},
+ {&(_ZTV9GG2332223[15]), 15,37},
+ {&(_ZTV9GG2332223[20]), 20,37},
+ {&(_ZTV9GG2332223[25]), 25,37},
+ {&(_ZTV9GG2332223[32]), 32,37},
+ {&(_ZTV9GG2332223[36]), 36,37},
+ {&(_tg__ZTV5EE233__9GG2332223[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE233__9GG2332223[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE233__9GG2332223[4]), 4,6},
+ {&(_tg__ZTV5FF222__9GG2332223[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG2332223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG2332223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2332223[];
+extern VTBL_ENTRY _ZTV9GG2332223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2332223[];
+static VTBL_ENTRY alt_thunk_names740[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23322233barEv,_ZTv0_n20_N9GG23322233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23322233barEv,_ZThn32_N9GG23322233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23322233barEv,_ZTv0_n16_N9GG23322233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23322233barEv,_ZThn24_N9GG23322233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23322233fooEv,_ZTv0_n12_N9GG23322233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23322233fooEv,_ZThn24_N9GG23322233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23322233barEv,_ZTv0_n12_N9GG23322233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23322233barEv,_ZThn40_N9GG23322233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23322233barEv,_ZThn16_N9GG23322233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG23322233barEv,_ZTv0_n24_N9GG23322233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23322233barEv,_ZThn8_N9GG23322233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23322233fooEv,_ZTv0_n20_N9GG23322233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23322233fooEv,_ZThn8_N9GG23322233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2332223 = { "GG2332223", // class name
+ bases_GG2332223, 5,
+ &(vtc_GG2332223[0]), // expected_vtbl_contents
+ &(vtt_GG2332223[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2332223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2332223),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2332223),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names740,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2332233 : virtual EE233 , virtual FF223 {
+ int pg;
+ virtual void foo(); // _ZN9GG23322333fooEv
+ virtual void bar(); // _ZN9GG23322333barEv
+ ~GG2332233(); // tgen
+ GG2332233(); // tgen
+};
+//SIG(1 GG2332233) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2332233 ::foo(){vfunc_called(this, "_ZN9GG23322333fooEv");}
+void GG2332233 ::bar(){vfunc_called(this, "_ZN9GG23322333barEv");}
+GG2332233 ::~GG2332233(){ note_dtor("GG2332233", this);} // tgen
+GG2332233 ::GG2332233(){ note_ctor("GG2332233", this);} // tgen
+
+static void Test_GG2332233()
+{
+ extern Class_Descriptor cd_GG2332233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2332233, buf);
+ GG2332233 *dp, &lv = *(dp=new (buf) GG2332233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2332233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2332233)");
+ check_base_class_offset(lv, (AA2*)(EE233*), ABISELECT(32,16), "GG2332233");
+ check_base_class_offset(lv, (AA2*)(FF223*), ABISELECT(32,16), "GG2332233");
+ check_base_class_offset(lv, (BB3*)(EE233*), ABISELECT(48,24), "GG2332233");
+ check_base_class_offset(lv, (EE233*), ABISELECT(16,8), "GG2332233");
+ check_base_class_offset(lv, (BB2*)(FF223*), ABISELECT(80,40), "GG2332233");
+ check_base_class_offset(lv, (FF223*), ABISELECT(64,32), "GG2332233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2332233.pg");
+ test_class_info(&lv, &cd_GG2332233);
+ dp->~GG2332233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2332233(Test_GG2332233, "GG2332233", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2332233C1Ev();
+extern void _ZN9GG2332233D1Ev();
+Name_Map name_map_GG2332233[] = {
+ NSPAIR(_ZN9GG2332233C1Ev),
+ NSPAIR(_ZN9GG2332233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE233;
+extern VTBL_ENTRY _ZTI5EE233[];
+extern VTBL_ENTRY _ZTV5EE233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE233[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF223;
+extern VTBL_ENTRY _ZTI5FF223[];
+extern VTBL_ENTRY _ZTV5FF223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF223[];
+static Base_Class bases_GG2332233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE233, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF223, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2332233[];
+extern void _ZN9GG23322333fooEv();
+extern void _ZN9GG23322333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23322333fooEv,_ZTv0_n20_N9GG23322333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23322333fooEv,_ZThn8_N9GG23322333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23322333barEv,_ZTv0_n24_N9GG23322333barEv)();
+extern void ABISELECT(_ZThn16_N9GG23322333barEv,_ZThn8_N9GG23322333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23322333barEv,_ZTv0_n12_N9GG23322333barEv)();
+extern void ABISELECT(_ZThn32_N9GG23322333barEv,_ZThn16_N9GG23322333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23322333fooEv,_ZTv0_n12_N9GG23322333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23322333fooEv,_ZThn24_N9GG23322333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23322333barEv,_ZTv0_n16_N9GG23322333barEv)();
+extern void ABISELECT(_ZThn48_N9GG23322333barEv,_ZThn24_N9GG23322333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23322333fooEv,_ZTv0_n20_N9GG23322333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23322333fooEv,_ZThn32_N9GG23322333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23322333barEv,_ZTv0_n24_N9GG23322333barEv)();
+extern void ABISELECT(_ZThn64_N9GG23322333barEv,_ZThn32_N9GG23322333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23322333barEv,_ZTv0_n12_N9GG23322333barEv)();
+extern void ABISELECT(_ZThn80_N9GG23322333barEv,_ZThn40_N9GG23322333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2332233[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2332233[0]),
+ (VTBL_ENTRY)&_ZN9GG23322333fooEv,
+ (VTBL_ENTRY)&_ZN9GG23322333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2332233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23322333fooEv,_ZTv0_n20_N9GG23322333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23322333barEv,_ZTv0_n24_N9GG23322333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2332233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23322333barEv,_ZTv0_n12_N9GG23322333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2332233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23322333fooEv,_ZTv0_n12_N9GG23322333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23322333barEv,_ZTv0_n16_N9GG23322333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2332233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23322333fooEv,_ZTv0_n20_N9GG23322333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23322333barEv,_ZTv0_n24_N9GG23322333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2332233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23322333barEv,_ZTv0_n12_N9GG23322333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2332233[];
+extern void _ZN5EE2333fooEv();
+extern void _ZN5EE2333barEv();
+static VTBL_ENTRY _tg__ZTV5EE233__9GG2332233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&_ZN5EE2333fooEv,
+ (VTBL_ENTRY)&_ZN5EE2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv)();
+extern void ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE233__9GG2332233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv)();
+extern void ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE233__9GG2332233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv),
+};
+extern void _ZN5FF2233fooEv();
+extern void _ZN5FF2233barEv();
+static VTBL_ENTRY _tg__ZTV5FF223__9GG2332233[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&_ZN5FF2233fooEv,
+ (VTBL_ENTRY)&_ZN5FF2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF223__9GG2332233[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+extern void ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF223__9GG2332233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+static VTT_ENTRY vtt_GG2332233[] = {
+ {&(_ZTV9GG2332233[7]), 7,39},
+ {&(_ZTV9GG2332233[15]), 15,39},
+ {&(_ZTV9GG2332233[20]), 20,39},
+ {&(_ZTV9GG2332233[25]), 25,39},
+ {&(_ZTV9GG2332233[33]), 33,39},
+ {&(_ZTV9GG2332233[38]), 38,39},
+ {&(_tg__ZTV5EE233__9GG2332233[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE233__9GG2332233[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE233__9GG2332233[4]), 4,6},
+ {&(_tg__ZTV5FF223__9GG2332233[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF223__9GG2332233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF223__9GG2332233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2332233[];
+extern VTBL_ENTRY _ZTV9GG2332233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2332233[];
+static VTBL_ENTRY alt_thunk_names741[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23322333barEv,_ZTv0_n16_N9GG23322333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23322333barEv,_ZThn24_N9GG23322333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23322333fooEv,_ZTv0_n12_N9GG23322333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23322333fooEv,_ZThn24_N9GG23322333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23322333barEv,_ZTv0_n12_N9GG23322333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23322333barEv,_ZThn40_N9GG23322333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23322333barEv,_ZThn16_N9GG23322333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG23322333barEv,_ZTv0_n24_N9GG23322333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23322333barEv,_ZThn32_N9GG23322333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23322333barEv,_ZThn8_N9GG23322333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23322333fooEv,_ZTv0_n20_N9GG23322333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23322333fooEv,_ZThn32_N9GG23322333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23322333fooEv,_ZThn8_N9GG23322333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2332233 = { "GG2332233", // class name
+ bases_GG2332233, 5,
+ &(vtc_GG2332233[0]), // expected_vtbl_contents
+ &(vtt_GG2332233[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2332233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2332233),39, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2332233),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names741,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2332313 : virtual EE233 , virtual FF231 {
+ int pg;
+ virtual void foo(); // _ZN9GG23323133fooEv
+ virtual void bar(); // _ZN9GG23323133barEv
+ ~GG2332313(); // tgen
+ GG2332313(); // tgen
+};
+//SIG(1 GG2332313) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG2332313 ::foo(){vfunc_called(this, "_ZN9GG23323133fooEv");}
+void GG2332313 ::bar(){vfunc_called(this, "_ZN9GG23323133barEv");}
+GG2332313 ::~GG2332313(){ note_dtor("GG2332313", this);} // tgen
+GG2332313 ::GG2332313(){ note_ctor("GG2332313", this);} // tgen
+
+static void Test_GG2332313()
+{
+ extern Class_Descriptor cd_GG2332313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG2332313, buf);
+ GG2332313 *dp, &lv = *(dp=new (buf) GG2332313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG2332313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2332313)");
+ check_base_class_offset(lv, (AA2*)(EE233*), ABISELECT(32,16), "GG2332313");
+ check_base_class_offset(lv, (AA2*)(FF231*), ABISELECT(32,16), "GG2332313");
+ check_base_class_offset(lv, (BB3*)(EE233*), ABISELECT(48,24), "GG2332313");
+ check_base_class_offset(lv, (BB3*)(FF231*), ABISELECT(48,24), "GG2332313");
+ check_base_class_offset(lv, (EE233*), ABISELECT(16,8), "GG2332313");
+ check_base_class_offset(lv, (FF231*), ABISELECT(64,32), "GG2332313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2332313.pg");
+ test_class_info(&lv, &cd_GG2332313);
+ dp->~GG2332313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2332313(Test_GG2332313, "GG2332313", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG2332313C1Ev();
+extern void _ZN9GG2332313D1Ev();
+Name_Map name_map_GG2332313[] = {
+ NSPAIR(_ZN9GG2332313C1Ev),
+ NSPAIR(_ZN9GG2332313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE233;
+extern VTBL_ENTRY _ZTI5EE233[];
+extern VTBL_ENTRY _ZTV5EE233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE233[];
+extern Class_Descriptor cd_FF231;
+extern VTBL_ENTRY _ZTI5FF231[];
+extern VTBL_ENTRY _ZTV5FF231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF231[];
+static Base_Class bases_GG2332313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE233, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF231, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2332313[];
+extern void _ZN9GG23323133fooEv();
+extern void _ZN9GG23323133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23323133fooEv,_ZTv0_n20_N9GG23323133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23323133fooEv,_ZThn8_N9GG23323133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23323133barEv,_ZTv0_n24_N9GG23323133barEv)();
+extern void ABISELECT(_ZThn16_N9GG23323133barEv,_ZThn8_N9GG23323133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23323133barEv,_ZTv0_n12_N9GG23323133barEv)();
+extern void ABISELECT(_ZThn32_N9GG23323133barEv,_ZThn16_N9GG23323133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23323133fooEv,_ZTv0_n12_N9GG23323133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23323133fooEv,_ZThn24_N9GG23323133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23323133barEv,_ZTv0_n16_N9GG23323133barEv)();
+extern void ABISELECT(_ZThn48_N9GG23323133barEv,_ZThn24_N9GG23323133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23323133fooEv,_ZTv0_n20_N9GG23323133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23323133fooEv,_ZThn32_N9GG23323133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2332313[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2332313[0]),
+ (VTBL_ENTRY)&_ZN9GG23323133fooEv,
+ (VTBL_ENTRY)&_ZN9GG23323133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2332313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23323133fooEv,_ZTv0_n20_N9GG23323133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23323133barEv,_ZTv0_n24_N9GG23323133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2332313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23323133barEv,_ZTv0_n12_N9GG23323133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2332313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23323133fooEv,_ZTv0_n12_N9GG23323133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23323133barEv,_ZTv0_n16_N9GG23323133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2332313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23323133fooEv,_ZTv0_n20_N9GG23323133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2332313[];
+extern void _ZN5EE2333fooEv();
+extern void _ZN5EE2333barEv();
+static VTBL_ENTRY _tg__ZTV5EE233__9GG2332313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&_ZN5EE2333fooEv,
+ (VTBL_ENTRY)&_ZN5EE2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv)();
+extern void ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE233__9GG2332313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv)();
+extern void ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE233__9GG2332313[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv),
+};
+extern void _ZN5FF2313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF231__9GG2332313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN5FF2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF231__9GG2332313[] = {
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv)();
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF231__9GG2332313[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG2332313[] = {
+ {&(_ZTV9GG2332313[6]), 6,32},
+ {&(_ZTV9GG2332313[14]), 14,32},
+ {&(_ZTV9GG2332313[19]), 19,32},
+ {&(_ZTV9GG2332313[24]), 24,32},
+ {&(_ZTV9GG2332313[31]), 31,32},
+ {&(_tg__ZTV5EE233__9GG2332313[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE233__9GG2332313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE233__9GG2332313[4]), 4,6},
+ {&(_tg__ZTV5FF231__9GG2332313[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF231__9GG2332313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF231__9GG2332313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2332313[];
+extern VTBL_ENTRY _ZTV9GG2332313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2332313[];
+static VTBL_ENTRY alt_thunk_names742[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23323133barEv,_ZTv0_n16_N9GG23323133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23323133barEv,_ZThn24_N9GG23323133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23323133fooEv,_ZTv0_n12_N9GG23323133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23323133fooEv,_ZThn24_N9GG23323133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23323133barEv,_ZTv0_n12_N9GG23323133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23323133barEv,_ZThn16_N9GG23323133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG23323133barEv,_ZTv0_n24_N9GG23323133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23323133barEv,_ZThn8_N9GG23323133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23323133fooEv,_ZTv0_n20_N9GG23323133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23323133fooEv,_ZThn32_N9GG23323133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23323133fooEv,_ZThn8_N9GG23323133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2332313 = { "GG2332313", // class name
+ bases_GG2332313, 4,
+ &(vtc_GG2332313[0]), // expected_vtbl_contents
+ &(vtt_GG2332313[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG2332313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2332313),32, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2332313),11, //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 GG2332323 : virtual EE233 , virtual FF232 {
+ int pg;
+ virtual void foo(); // _ZN9GG23323233fooEv
+ virtual void bar(); // _ZN9GG23323233barEv
+ ~GG2332323(); // tgen
+ GG2332323(); // tgen
+};
+//SIG(1 GG2332323) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG2332323 ::foo(){vfunc_called(this, "_ZN9GG23323233fooEv");}
+void GG2332323 ::bar(){vfunc_called(this, "_ZN9GG23323233barEv");}
+GG2332323 ::~GG2332323(){ note_dtor("GG2332323", this);} // tgen
+GG2332323 ::GG2332323(){ note_ctor("GG2332323", this);} // tgen
+
+static void Test_GG2332323()
+{
+ extern Class_Descriptor cd_GG2332323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG2332323, buf);
+ GG2332323 *dp, &lv = *(dp=new (buf) GG2332323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG2332323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2332323)");
+ check_base_class_offset(lv, (AA2*)(EE233*), ABISELECT(32,16), "GG2332323");
+ check_base_class_offset(lv, (AA2*)(FF232*), ABISELECT(32,16), "GG2332323");
+ check_base_class_offset(lv, (BB3*)(EE233*), ABISELECT(48,24), "GG2332323");
+ check_base_class_offset(lv, (BB3*)(FF232*), ABISELECT(48,24), "GG2332323");
+ check_base_class_offset(lv, (EE233*), ABISELECT(16,8), "GG2332323");
+ check_base_class_offset(lv, (FF232*), ABISELECT(64,32), "GG2332323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2332323.pg");
+ test_class_info(&lv, &cd_GG2332323);
+ dp->~GG2332323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2332323(Test_GG2332323, "GG2332323", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG2332323C1Ev();
+extern void _ZN9GG2332323D1Ev();
+Name_Map name_map_GG2332323[] = {
+ NSPAIR(_ZN9GG2332323C1Ev),
+ NSPAIR(_ZN9GG2332323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE233;
+extern VTBL_ENTRY _ZTI5EE233[];
+extern VTBL_ENTRY _ZTV5EE233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE233[];
+extern Class_Descriptor cd_FF232;
+extern VTBL_ENTRY _ZTI5FF232[];
+extern VTBL_ENTRY _ZTV5FF232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF232[];
+static Base_Class bases_GG2332323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE233, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF232, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2332323[];
+extern void _ZN9GG23323233fooEv();
+extern void _ZN9GG23323233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23323233fooEv,_ZTv0_n20_N9GG23323233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23323233fooEv,_ZThn8_N9GG23323233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23323233barEv,_ZTv0_n24_N9GG23323233barEv)();
+extern void ABISELECT(_ZThn16_N9GG23323233barEv,_ZThn8_N9GG23323233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23323233barEv,_ZTv0_n12_N9GG23323233barEv)();
+extern void ABISELECT(_ZThn32_N9GG23323233barEv,_ZThn16_N9GG23323233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23323233fooEv,_ZTv0_n12_N9GG23323233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23323233fooEv,_ZThn24_N9GG23323233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23323233barEv,_ZTv0_n16_N9GG23323233barEv)();
+extern void ABISELECT(_ZThn48_N9GG23323233barEv,_ZThn24_N9GG23323233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23323233barEv,_ZTv0_n20_N9GG23323233barEv)();
+extern void ABISELECT(_ZThn64_N9GG23323233barEv,_ZThn32_N9GG23323233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2332323[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2332323[0]),
+ (VTBL_ENTRY)&_ZN9GG23323233fooEv,
+ (VTBL_ENTRY)&_ZN9GG23323233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2332323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23323233fooEv,_ZTv0_n20_N9GG23323233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23323233barEv,_ZTv0_n24_N9GG23323233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2332323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23323233barEv,_ZTv0_n12_N9GG23323233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2332323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23323233fooEv,_ZTv0_n12_N9GG23323233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23323233barEv,_ZTv0_n16_N9GG23323233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2332323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23323233barEv,_ZTv0_n20_N9GG23323233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2332323[];
+extern void _ZN5EE2333fooEv();
+extern void _ZN5EE2333barEv();
+static VTBL_ENTRY _tg__ZTV5EE233__9GG2332323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&_ZN5EE2333fooEv,
+ (VTBL_ENTRY)&_ZN5EE2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv)();
+extern void ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE233__9GG2332323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv)();
+extern void ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE233__9GG2332323[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv),
+};
+extern void _ZN5FF2323barEv();
+static VTBL_ENTRY _tg__ZTV5FF232__9GG2332323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN5FF2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF232__9GG2332323[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF232__9GG2332323[] = {
+ ABISELECT(16,8),
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv),
+};
+static VTT_ENTRY vtt_GG2332323[] = {
+ {&(_ZTV9GG2332323[6]), 6,32},
+ {&(_ZTV9GG2332323[14]), 14,32},
+ {&(_ZTV9GG2332323[19]), 19,32},
+ {&(_ZTV9GG2332323[24]), 24,32},
+ {&(_ZTV9GG2332323[31]), 31,32},
+ {&(_tg__ZTV5EE233__9GG2332323[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE233__9GG2332323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE233__9GG2332323[4]), 4,6},
+ {&(_tg__ZTV5FF232__9GG2332323[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF232__9GG2332323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF232__9GG2332323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2332323[];
+extern VTBL_ENTRY _ZTV9GG2332323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2332323[];
+static VTBL_ENTRY alt_thunk_names743[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23323233barEv,_ZTv0_n20_N9GG23323233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23323233barEv,_ZThn32_N9GG23323233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23323233barEv,_ZTv0_n16_N9GG23323233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23323233barEv,_ZThn24_N9GG23323233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23323233fooEv,_ZTv0_n12_N9GG23323233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23323233fooEv,_ZThn24_N9GG23323233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23323233barEv,_ZTv0_n12_N9GG23323233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23323233barEv,_ZThn16_N9GG23323233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG23323233barEv,_ZTv0_n24_N9GG23323233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23323233barEv,_ZThn8_N9GG23323233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23323233fooEv,_ZTv0_n20_N9GG23323233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23323233fooEv,_ZThn8_N9GG23323233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2332323 = { "GG2332323", // class name
+ bases_GG2332323, 4,
+ &(vtc_GG2332323[0]), // expected_vtbl_contents
+ &(vtt_GG2332323[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG2332323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2332323),32, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2332323),11, //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 GG2332333 : virtual EE233 , virtual FF233 {
+ int pg;
+ virtual void foo(); // _ZN9GG23323333fooEv
+ virtual void bar(); // _ZN9GG23323333barEv
+ ~GG2332333(); // tgen
+ GG2332333(); // tgen
+};
+//SIG(1 GG2332333) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2332333 ::foo(){vfunc_called(this, "_ZN9GG23323333fooEv");}
+void GG2332333 ::bar(){vfunc_called(this, "_ZN9GG23323333barEv");}
+GG2332333 ::~GG2332333(){ note_dtor("GG2332333", this);} // tgen
+GG2332333 ::GG2332333(){ note_ctor("GG2332333", this);} // tgen
+
+static void Test_GG2332333()
+{
+ extern Class_Descriptor cd_GG2332333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG2332333, buf);
+ GG2332333 *dp, &lv = *(dp=new (buf) GG2332333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG2332333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2332333)");
+ check_base_class_offset(lv, (AA2*)(EE233*), ABISELECT(32,16), "GG2332333");
+ check_base_class_offset(lv, (AA2*)(FF233*), ABISELECT(32,16), "GG2332333");
+ check_base_class_offset(lv, (BB3*)(EE233*), ABISELECT(48,24), "GG2332333");
+ check_base_class_offset(lv, (BB3*)(FF233*), ABISELECT(48,24), "GG2332333");
+ check_base_class_offset(lv, (EE233*), ABISELECT(16,8), "GG2332333");
+ check_base_class_offset(lv, (FF233*), ABISELECT(64,32), "GG2332333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2332333.pg");
+ test_class_info(&lv, &cd_GG2332333);
+ dp->~GG2332333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2332333(Test_GG2332333, "GG2332333", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG2332333C1Ev();
+extern void _ZN9GG2332333D1Ev();
+Name_Map name_map_GG2332333[] = {
+ NSPAIR(_ZN9GG2332333C1Ev),
+ NSPAIR(_ZN9GG2332333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE233;
+extern VTBL_ENTRY _ZTI5EE233[];
+extern VTBL_ENTRY _ZTV5EE233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE233[];
+extern Class_Descriptor cd_FF233;
+extern VTBL_ENTRY _ZTI5FF233[];
+extern VTBL_ENTRY _ZTV5FF233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF233[];
+static Base_Class bases_GG2332333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE233, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF233, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2332333[];
+extern void _ZN9GG23323333fooEv();
+extern void _ZN9GG23323333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23323333fooEv,_ZTv0_n20_N9GG23323333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23323333fooEv,_ZThn8_N9GG23323333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23323333barEv,_ZTv0_n24_N9GG23323333barEv)();
+extern void ABISELECT(_ZThn16_N9GG23323333barEv,_ZThn8_N9GG23323333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23323333barEv,_ZTv0_n12_N9GG23323333barEv)();
+extern void ABISELECT(_ZThn32_N9GG23323333barEv,_ZThn16_N9GG23323333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23323333fooEv,_ZTv0_n12_N9GG23323333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23323333fooEv,_ZThn24_N9GG23323333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23323333barEv,_ZTv0_n16_N9GG23323333barEv)();
+extern void ABISELECT(_ZThn48_N9GG23323333barEv,_ZThn24_N9GG23323333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23323333fooEv,_ZTv0_n20_N9GG23323333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23323333fooEv,_ZThn32_N9GG23323333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23323333barEv,_ZTv0_n24_N9GG23323333barEv)();
+extern void ABISELECT(_ZThn64_N9GG23323333barEv,_ZThn32_N9GG23323333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2332333[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2332333[0]),
+ (VTBL_ENTRY)&_ZN9GG23323333fooEv,
+ (VTBL_ENTRY)&_ZN9GG23323333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2332333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23323333fooEv,_ZTv0_n20_N9GG23323333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23323333barEv,_ZTv0_n24_N9GG23323333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2332333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23323333barEv,_ZTv0_n12_N9GG23323333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2332333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23323333fooEv,_ZTv0_n12_N9GG23323333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23323333barEv,_ZTv0_n16_N9GG23323333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2332333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23323333fooEv,_ZTv0_n20_N9GG23323333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23323333barEv,_ZTv0_n24_N9GG23323333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2332333[];
+extern void _ZN5EE2333fooEv();
+extern void _ZN5EE2333barEv();
+static VTBL_ENTRY _tg__ZTV5EE233__9GG2332333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&_ZN5EE2333fooEv,
+ (VTBL_ENTRY)&_ZN5EE2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv)();
+extern void ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE233__9GG2332333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv)();
+extern void ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE233__9GG2332333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv),
+};
+extern void _ZN5FF2333fooEv();
+extern void _ZN5FF2333barEv();
+static VTBL_ENTRY _tg__ZTV5FF233__9GG2332333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&_ZN5FF2333fooEv,
+ (VTBL_ENTRY)&_ZN5FF2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv)();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF233__9GG2332333[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF233__9GG2332333[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv),
+};
+static VTT_ENTRY vtt_GG2332333[] = {
+ {&(_ZTV9GG2332333[6]), 6,34},
+ {&(_ZTV9GG2332333[14]), 14,34},
+ {&(_ZTV9GG2332333[19]), 19,34},
+ {&(_ZTV9GG2332333[24]), 24,34},
+ {&(_ZTV9GG2332333[32]), 32,34},
+ {&(_tg__ZTV5EE233__9GG2332333[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE233__9GG2332333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE233__9GG2332333[4]), 4,6},
+ {&(_tg__ZTV5FF233__9GG2332333[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF233__9GG2332333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF233__9GG2332333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2332333[];
+extern VTBL_ENTRY _ZTV9GG2332333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2332333[];
+static VTBL_ENTRY alt_thunk_names744[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23323333barEv,_ZTv0_n16_N9GG23323333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23323333barEv,_ZThn24_N9GG23323333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23323333fooEv,_ZTv0_n12_N9GG23323333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23323333fooEv,_ZThn24_N9GG23323333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23323333barEv,_ZTv0_n12_N9GG23323333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23323333barEv,_ZThn16_N9GG23323333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG23323333barEv,_ZTv0_n24_N9GG23323333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23323333barEv,_ZThn32_N9GG23323333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23323333barEv,_ZThn8_N9GG23323333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23323333fooEv,_ZTv0_n20_N9GG23323333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23323333fooEv,_ZThn32_N9GG23323333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23323333fooEv,_ZThn8_N9GG23323333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2332333 = { "GG2332333", // class name
+ bases_GG2332333, 4,
+ &(vtc_GG2332333[0]), // expected_vtbl_contents
+ &(vtt_GG2332333[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG2332333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2332333),34, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2332333),11, //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 GG2333113 : virtual EE233 , virtual FF311 {
+ int pg;
+ virtual void foo(); // _ZN9GG23331133fooEv
+ virtual void bar(); // _ZN9GG23331133barEv
+ ~GG2333113(); // tgen
+ GG2333113(); // tgen
+};
+//SIG(1 GG2333113) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2333113 ::foo(){vfunc_called(this, "_ZN9GG23331133fooEv");}
+void GG2333113 ::bar(){vfunc_called(this, "_ZN9GG23331133barEv");}
+GG2333113 ::~GG2333113(){ note_dtor("GG2333113", this);} // tgen
+GG2333113 ::GG2333113(){ note_ctor("GG2333113", this);} // tgen
+
+static void Test_GG2333113()
+{
+ extern Class_Descriptor cd_GG2333113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2333113, buf);
+ GG2333113 *dp, &lv = *(dp=new (buf) GG2333113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2333113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2333113)");
+ check_base_class_offset(lv, (AA2*)(EE233*), ABISELECT(32,16), "GG2333113");
+ check_base_class_offset(lv, (BB3*)(EE233*), ABISELECT(48,24), "GG2333113");
+ check_base_class_offset(lv, (EE233*), ABISELECT(16,8), "GG2333113");
+ check_base_class_offset(lv, (AA3*)(FF311*), ABISELECT(80,40), "GG2333113");
+ check_base_class_offset(lv, (BB1*)(FF311*), ABISELECT(96,48), "GG2333113");
+ check_base_class_offset(lv, (FF311*), ABISELECT(64,32), "GG2333113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2333113.pg");
+ test_class_info(&lv, &cd_GG2333113);
+ dp->~GG2333113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2333113(Test_GG2333113, "GG2333113", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2333113C1Ev();
+extern void _ZN9GG2333113D1Ev();
+Name_Map name_map_GG2333113[] = {
+ NSPAIR(_ZN9GG2333113C1Ev),
+ NSPAIR(_ZN9GG2333113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE233;
+extern VTBL_ENTRY _ZTI5EE233[];
+extern VTBL_ENTRY _ZTV5EE233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE233[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF311;
+extern VTBL_ENTRY _ZTI5FF311[];
+extern VTBL_ENTRY _ZTV5FF311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF311[];
+static Base_Class bases_GG2333113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE233, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 40, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF311, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2333113[];
+extern void _ZN9GG23331133fooEv();
+extern void _ZN9GG23331133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23331133fooEv,_ZTv0_n20_N9GG23331133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23331133fooEv,_ZThn8_N9GG23331133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23331133barEv,_ZTv0_n24_N9GG23331133barEv)();
+extern void ABISELECT(_ZThn16_N9GG23331133barEv,_ZThn8_N9GG23331133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23331133barEv,_ZTv0_n12_N9GG23331133barEv)();
+extern void ABISELECT(_ZThn32_N9GG23331133barEv,_ZThn16_N9GG23331133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23331133fooEv,_ZTv0_n12_N9GG23331133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23331133fooEv,_ZThn24_N9GG23331133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23331133barEv,_ZTv0_n16_N9GG23331133barEv)();
+extern void ABISELECT(_ZThn48_N9GG23331133barEv,_ZThn24_N9GG23331133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23331133fooEv,_ZTv0_n20_N9GG23331133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23331133fooEv,_ZThn32_N9GG23331133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23331133fooEv,_ZTv0_n12_N9GG23331133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23331133fooEv,_ZThn40_N9GG23331133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23331133barEv,_ZTv0_n16_N9GG23331133barEv)();
+extern void ABISELECT(_ZThn80_N9GG23331133barEv,_ZThn40_N9GG23331133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23331133fooEv,_ZTv0_n12_N9GG23331133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG23331133fooEv,_ZThn48_N9GG23331133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2333113[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2333113[0]),
+ (VTBL_ENTRY)&_ZN9GG23331133fooEv,
+ (VTBL_ENTRY)&_ZN9GG23331133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2333113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23331133fooEv,_ZTv0_n20_N9GG23331133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23331133barEv,_ZTv0_n24_N9GG23331133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2333113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23331133barEv,_ZTv0_n12_N9GG23331133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2333113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23331133fooEv,_ZTv0_n12_N9GG23331133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23331133barEv,_ZTv0_n16_N9GG23331133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2333113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23331133fooEv,_ZTv0_n20_N9GG23331133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2333113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23331133fooEv,_ZTv0_n12_N9GG23331133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23331133barEv,_ZTv0_n16_N9GG23331133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2333113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23331133fooEv,_ZTv0_n12_N9GG23331133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2333113[];
+extern void _ZN5EE2333fooEv();
+extern void _ZN5EE2333barEv();
+static VTBL_ENTRY _tg__ZTV5EE233__9GG2333113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&_ZN5EE2333fooEv,
+ (VTBL_ENTRY)&_ZN5EE2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv)();
+extern void ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE233__9GG2333113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv)();
+extern void ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE233__9GG2333113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv),
+};
+extern void _ZN5FF3113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF311__9GG2333113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&_ZN5FF3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF311__9GG2333113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3113fooEv,_ZThn16_N5FF3113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF311__9GG2333113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+};
+static VTT_ENTRY vtt_GG2333113[] = {
+ {&(_ZTV9GG2333113[8]), 8,44},
+ {&(_ZTV9GG2333113[16]), 16,44},
+ {&(_ZTV9GG2333113[21]), 21,44},
+ {&(_ZTV9GG2333113[26]), 26,44},
+ {&(_ZTV9GG2333113[33]), 33,44},
+ {&(_ZTV9GG2333113[38]), 38,44},
+ {&(_ZTV9GG2333113[43]), 43,44},
+ {&(_tg__ZTV5EE233__9GG2333113[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE233__9GG2333113[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE233__9GG2333113[4]), 4,6},
+ {&(_tg__ZTV5FF311__9GG2333113[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF311__9GG2333113[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF311__9GG2333113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2333113[];
+extern VTBL_ENTRY _ZTV9GG2333113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2333113[];
+static VTBL_ENTRY alt_thunk_names745[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3113fooEv,_ZThn16_N5FF3113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23331133barEv,_ZTv0_n16_N9GG23331133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23331133barEv,_ZThn40_N9GG23331133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23331133barEv,_ZThn24_N9GG23331133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23331133fooEv,_ZTv0_n12_N9GG23331133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG23331133fooEv,_ZThn48_N9GG23331133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23331133fooEv,_ZThn40_N9GG23331133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23331133fooEv,_ZThn24_N9GG23331133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23331133barEv,_ZTv0_n12_N9GG23331133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23331133barEv,_ZThn16_N9GG23331133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG23331133barEv,_ZTv0_n24_N9GG23331133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23331133barEv,_ZThn8_N9GG23331133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23331133fooEv,_ZTv0_n20_N9GG23331133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23331133fooEv,_ZThn32_N9GG23331133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23331133fooEv,_ZThn8_N9GG23331133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2333113 = { "GG2333113", // class name
+ bases_GG2333113, 6,
+ &(vtc_GG2333113[0]), // expected_vtbl_contents
+ &(vtt_GG2333113[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2333113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2333113),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2333113),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names745,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2333123 : virtual EE233 , virtual FF312 {
+ int pg;
+ virtual void foo(); // _ZN9GG23331233fooEv
+ virtual void bar(); // _ZN9GG23331233barEv
+ ~GG2333123(); // tgen
+ GG2333123(); // tgen
+};
+//SIG(1 GG2333123) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2333123 ::foo(){vfunc_called(this, "_ZN9GG23331233fooEv");}
+void GG2333123 ::bar(){vfunc_called(this, "_ZN9GG23331233barEv");}
+GG2333123 ::~GG2333123(){ note_dtor("GG2333123", this);} // tgen
+GG2333123 ::GG2333123(){ note_ctor("GG2333123", this);} // tgen
+
+static void Test_GG2333123()
+{
+ extern Class_Descriptor cd_GG2333123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2333123, buf);
+ GG2333123 *dp, &lv = *(dp=new (buf) GG2333123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2333123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2333123)");
+ check_base_class_offset(lv, (AA2*)(EE233*), ABISELECT(32,16), "GG2333123");
+ check_base_class_offset(lv, (BB3*)(EE233*), ABISELECT(48,24), "GG2333123");
+ check_base_class_offset(lv, (EE233*), ABISELECT(16,8), "GG2333123");
+ check_base_class_offset(lv, (AA3*)(FF312*), ABISELECT(80,40), "GG2333123");
+ check_base_class_offset(lv, (BB1*)(FF312*), ABISELECT(96,48), "GG2333123");
+ check_base_class_offset(lv, (FF312*), ABISELECT(64,32), "GG2333123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2333123.pg");
+ test_class_info(&lv, &cd_GG2333123);
+ dp->~GG2333123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2333123(Test_GG2333123, "GG2333123", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2333123C1Ev();
+extern void _ZN9GG2333123D1Ev();
+Name_Map name_map_GG2333123[] = {
+ NSPAIR(_ZN9GG2333123C1Ev),
+ NSPAIR(_ZN9GG2333123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE233;
+extern VTBL_ENTRY _ZTI5EE233[];
+extern VTBL_ENTRY _ZTV5EE233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE233[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF312;
+extern VTBL_ENTRY _ZTI5FF312[];
+extern VTBL_ENTRY _ZTV5FF312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF312[];
+static Base_Class bases_GG2333123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE233, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 40, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF312, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2333123[];
+extern void _ZN9GG23331233fooEv();
+extern void _ZN9GG23331233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23331233fooEv,_ZTv0_n20_N9GG23331233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23331233fooEv,_ZThn8_N9GG23331233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23331233barEv,_ZTv0_n24_N9GG23331233barEv)();
+extern void ABISELECT(_ZThn16_N9GG23331233barEv,_ZThn8_N9GG23331233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23331233barEv,_ZTv0_n12_N9GG23331233barEv)();
+extern void ABISELECT(_ZThn32_N9GG23331233barEv,_ZThn16_N9GG23331233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23331233fooEv,_ZTv0_n12_N9GG23331233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23331233fooEv,_ZThn24_N9GG23331233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23331233barEv,_ZTv0_n16_N9GG23331233barEv)();
+extern void ABISELECT(_ZThn48_N9GG23331233barEv,_ZThn24_N9GG23331233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23331233barEv,_ZTv0_n20_N9GG23331233barEv)();
+extern void ABISELECT(_ZThn64_N9GG23331233barEv,_ZThn32_N9GG23331233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23331233fooEv,_ZTv0_n12_N9GG23331233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23331233fooEv,_ZThn40_N9GG23331233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23331233barEv,_ZTv0_n16_N9GG23331233barEv)();
+extern void ABISELECT(_ZThn80_N9GG23331233barEv,_ZThn40_N9GG23331233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23331233fooEv,_ZTv0_n12_N9GG23331233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG23331233fooEv,_ZThn48_N9GG23331233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2333123[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2333123[0]),
+ (VTBL_ENTRY)&_ZN9GG23331233fooEv,
+ (VTBL_ENTRY)&_ZN9GG23331233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2333123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23331233fooEv,_ZTv0_n20_N9GG23331233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23331233barEv,_ZTv0_n24_N9GG23331233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2333123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23331233barEv,_ZTv0_n12_N9GG23331233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2333123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23331233fooEv,_ZTv0_n12_N9GG23331233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23331233barEv,_ZTv0_n16_N9GG23331233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2333123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23331233barEv,_ZTv0_n20_N9GG23331233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2333123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23331233fooEv,_ZTv0_n12_N9GG23331233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23331233barEv,_ZTv0_n16_N9GG23331233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2333123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23331233fooEv,_ZTv0_n12_N9GG23331233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2333123[];
+extern void _ZN5EE2333fooEv();
+extern void _ZN5EE2333barEv();
+static VTBL_ENTRY _tg__ZTV5EE233__9GG2333123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&_ZN5EE2333fooEv,
+ (VTBL_ENTRY)&_ZN5EE2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv)();
+extern void ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE233__9GG2333123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv)();
+extern void ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE233__9GG2333123[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv),
+};
+extern void _ZN5FF3123barEv();
+static VTBL_ENTRY _tg__ZTV5FF312__9GG2333123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN5FF3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv)();
+extern void ABISELECT(_ZThn16_N5FF3123barEv,_ZThn8_N5FF3123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF312__9GG2333123[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF312__9GG2333123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG2333123[] = {
+ {&(_ZTV9GG2333123[8]), 8,44},
+ {&(_ZTV9GG2333123[16]), 16,44},
+ {&(_ZTV9GG2333123[21]), 21,44},
+ {&(_ZTV9GG2333123[26]), 26,44},
+ {&(_ZTV9GG2333123[33]), 33,44},
+ {&(_ZTV9GG2333123[38]), 38,44},
+ {&(_ZTV9GG2333123[43]), 43,44},
+ {&(_tg__ZTV5EE233__9GG2333123[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE233__9GG2333123[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE233__9GG2333123[4]), 4,6},
+ {&(_tg__ZTV5FF312__9GG2333123[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF312__9GG2333123[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF312__9GG2333123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2333123[];
+extern VTBL_ENTRY _ZTV9GG2333123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2333123[];
+static VTBL_ENTRY alt_thunk_names746[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3123barEv,_ZThn8_N5FF3123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23331233barEv,_ZTv0_n20_N9GG23331233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23331233barEv,_ZThn32_N9GG23331233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23331233barEv,_ZTv0_n16_N9GG23331233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23331233barEv,_ZThn40_N9GG23331233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23331233barEv,_ZThn24_N9GG23331233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23331233fooEv,_ZTv0_n12_N9GG23331233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG23331233fooEv,_ZThn48_N9GG23331233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23331233fooEv,_ZThn40_N9GG23331233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23331233fooEv,_ZThn24_N9GG23331233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23331233barEv,_ZTv0_n12_N9GG23331233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23331233barEv,_ZThn16_N9GG23331233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG23331233barEv,_ZTv0_n24_N9GG23331233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23331233barEv,_ZThn8_N9GG23331233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23331233fooEv,_ZTv0_n20_N9GG23331233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23331233fooEv,_ZThn8_N9GG23331233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2333123 = { "GG2333123", // class name
+ bases_GG2333123, 6,
+ &(vtc_GG2333123[0]), // expected_vtbl_contents
+ &(vtt_GG2333123[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2333123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2333123),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2333123),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names746,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2333133 : virtual EE233 , virtual FF313 {
+ int pg;
+ virtual void foo(); // _ZN9GG23331333fooEv
+ virtual void bar(); // _ZN9GG23331333barEv
+ ~GG2333133(); // tgen
+ GG2333133(); // tgen
+};
+//SIG(1 GG2333133) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2333133 ::foo(){vfunc_called(this, "_ZN9GG23331333fooEv");}
+void GG2333133 ::bar(){vfunc_called(this, "_ZN9GG23331333barEv");}
+GG2333133 ::~GG2333133(){ note_dtor("GG2333133", this);} // tgen
+GG2333133 ::GG2333133(){ note_ctor("GG2333133", this);} // tgen
+
+static void Test_GG2333133()
+{
+ extern Class_Descriptor cd_GG2333133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2333133, buf);
+ GG2333133 *dp, &lv = *(dp=new (buf) GG2333133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2333133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2333133)");
+ check_base_class_offset(lv, (AA2*)(EE233*), ABISELECT(32,16), "GG2333133");
+ check_base_class_offset(lv, (BB3*)(EE233*), ABISELECT(48,24), "GG2333133");
+ check_base_class_offset(lv, (EE233*), ABISELECT(16,8), "GG2333133");
+ check_base_class_offset(lv, (AA3*)(FF313*), ABISELECT(80,40), "GG2333133");
+ check_base_class_offset(lv, (BB1*)(FF313*), ABISELECT(96,48), "GG2333133");
+ check_base_class_offset(lv, (FF313*), ABISELECT(64,32), "GG2333133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2333133.pg");
+ test_class_info(&lv, &cd_GG2333133);
+ dp->~GG2333133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2333133(Test_GG2333133, "GG2333133", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2333133C1Ev();
+extern void _ZN9GG2333133D1Ev();
+Name_Map name_map_GG2333133[] = {
+ NSPAIR(_ZN9GG2333133C1Ev),
+ NSPAIR(_ZN9GG2333133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE233;
+extern VTBL_ENTRY _ZTI5EE233[];
+extern VTBL_ENTRY _ZTV5EE233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE233[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF313;
+extern VTBL_ENTRY _ZTI5FF313[];
+extern VTBL_ENTRY _ZTV5FF313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF313[];
+static Base_Class bases_GG2333133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE233, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 42, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF313, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2333133[];
+extern void _ZN9GG23331333fooEv();
+extern void _ZN9GG23331333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23331333fooEv,_ZTv0_n20_N9GG23331333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23331333fooEv,_ZThn8_N9GG23331333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23331333barEv,_ZTv0_n24_N9GG23331333barEv)();
+extern void ABISELECT(_ZThn16_N9GG23331333barEv,_ZThn8_N9GG23331333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23331333barEv,_ZTv0_n12_N9GG23331333barEv)();
+extern void ABISELECT(_ZThn32_N9GG23331333barEv,_ZThn16_N9GG23331333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23331333fooEv,_ZTv0_n12_N9GG23331333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23331333fooEv,_ZThn24_N9GG23331333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23331333barEv,_ZTv0_n16_N9GG23331333barEv)();
+extern void ABISELECT(_ZThn48_N9GG23331333barEv,_ZThn24_N9GG23331333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23331333fooEv,_ZTv0_n20_N9GG23331333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23331333fooEv,_ZThn32_N9GG23331333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23331333barEv,_ZTv0_n24_N9GG23331333barEv)();
+extern void ABISELECT(_ZThn64_N9GG23331333barEv,_ZThn32_N9GG23331333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23331333fooEv,_ZTv0_n12_N9GG23331333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23331333fooEv,_ZThn40_N9GG23331333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23331333barEv,_ZTv0_n16_N9GG23331333barEv)();
+extern void ABISELECT(_ZThn80_N9GG23331333barEv,_ZThn40_N9GG23331333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23331333fooEv,_ZTv0_n12_N9GG23331333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG23331333fooEv,_ZThn48_N9GG23331333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2333133[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2333133[0]),
+ (VTBL_ENTRY)&_ZN9GG23331333fooEv,
+ (VTBL_ENTRY)&_ZN9GG23331333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2333133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23331333fooEv,_ZTv0_n20_N9GG23331333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23331333barEv,_ZTv0_n24_N9GG23331333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2333133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23331333barEv,_ZTv0_n12_N9GG23331333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2333133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23331333fooEv,_ZTv0_n12_N9GG23331333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23331333barEv,_ZTv0_n16_N9GG23331333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2333133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23331333fooEv,_ZTv0_n20_N9GG23331333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23331333barEv,_ZTv0_n24_N9GG23331333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2333133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23331333fooEv,_ZTv0_n12_N9GG23331333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23331333barEv,_ZTv0_n16_N9GG23331333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2333133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23331333fooEv,_ZTv0_n12_N9GG23331333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG2333133[];
+extern void _ZN5EE2333fooEv();
+extern void _ZN5EE2333barEv();
+static VTBL_ENTRY _tg__ZTV5EE233__9GG2333133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&_ZN5EE2333fooEv,
+ (VTBL_ENTRY)&_ZN5EE2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv)();
+extern void ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE233__9GG2333133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv)();
+extern void ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE233__9GG2333133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv),
+};
+extern void _ZN5FF3133fooEv();
+extern void _ZN5FF3133barEv();
+static VTBL_ENTRY _tg__ZTV5FF313__9GG2333133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&_ZN5FF3133fooEv,
+ (VTBL_ENTRY)&_ZN5FF3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv)();
+extern void ABISELECT(_ZThn16_N5FF3133barEv,_ZThn8_N5FF3133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF313__9GG2333133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+extern void ABISELECT(_ZThn32_N5FF3133fooEv,_ZThn16_N5FF3133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF313__9GG2333133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+};
+static VTT_ENTRY vtt_GG2333133[] = {
+ {&(_ZTV9GG2333133[8]), 8,46},
+ {&(_ZTV9GG2333133[16]), 16,46},
+ {&(_ZTV9GG2333133[21]), 21,46},
+ {&(_ZTV9GG2333133[26]), 26,46},
+ {&(_ZTV9GG2333133[34]), 34,46},
+ {&(_ZTV9GG2333133[40]), 40,46},
+ {&(_ZTV9GG2333133[45]), 45,46},
+ {&(_tg__ZTV5EE233__9GG2333133[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE233__9GG2333133[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE233__9GG2333133[4]), 4,6},
+ {&(_tg__ZTV5FF313__9GG2333133[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF313__9GG2333133[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF313__9GG2333133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2333133[];
+extern VTBL_ENTRY _ZTV9GG2333133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2333133[];
+static VTBL_ENTRY alt_thunk_names747[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3133barEv,_ZThn8_N5FF3133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3133fooEv,_ZThn16_N5FF3133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23331333barEv,_ZTv0_n16_N9GG23331333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23331333barEv,_ZThn40_N9GG23331333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23331333barEv,_ZThn24_N9GG23331333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23331333fooEv,_ZTv0_n12_N9GG23331333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG23331333fooEv,_ZThn48_N9GG23331333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23331333fooEv,_ZThn40_N9GG23331333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23331333fooEv,_ZThn24_N9GG23331333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23331333barEv,_ZTv0_n12_N9GG23331333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23331333barEv,_ZThn16_N9GG23331333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG23331333barEv,_ZTv0_n24_N9GG23331333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23331333barEv,_ZThn32_N9GG23331333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23331333barEv,_ZThn8_N9GG23331333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23331333fooEv,_ZTv0_n20_N9GG23331333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23331333fooEv,_ZThn32_N9GG23331333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23331333fooEv,_ZThn8_N9GG23331333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2333133 = { "GG2333133", // class name
+ bases_GG2333133, 6,
+ &(vtc_GG2333133[0]), // expected_vtbl_contents
+ &(vtt_GG2333133[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2333133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2333133),46, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2333133),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names747,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2333213 : virtual EE233 , virtual FF321 {
+ int pg;
+ virtual void foo(); // _ZN9GG23332133fooEv
+ virtual void bar(); // _ZN9GG23332133barEv
+ ~GG2333213(); // tgen
+ GG2333213(); // tgen
+};
+//SIG(1 GG2333213) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG2333213 ::foo(){vfunc_called(this, "_ZN9GG23332133fooEv");}
+void GG2333213 ::bar(){vfunc_called(this, "_ZN9GG23332133barEv");}
+GG2333213 ::~GG2333213(){ note_dtor("GG2333213", this);} // tgen
+GG2333213 ::GG2333213(){ note_ctor("GG2333213", this);} // tgen
+
+static void Test_GG2333213()
+{
+ extern Class_Descriptor cd_GG2333213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2333213, buf);
+ GG2333213 *dp, &lv = *(dp=new (buf) GG2333213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2333213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2333213)");
+ check_base_class_offset(lv, (AA2*)(EE233*), ABISELECT(32,16), "GG2333213");
+ check_base_class_offset(lv, (BB3*)(EE233*), ABISELECT(48,24), "GG2333213");
+ check_base_class_offset(lv, (EE233*), ABISELECT(16,8), "GG2333213");
+ check_base_class_offset(lv, (AA3*)(FF321*), ABISELECT(80,40), "GG2333213");
+ check_base_class_offset(lv, (BB2*)(FF321*), ABISELECT(96,48), "GG2333213");
+ check_base_class_offset(lv, (FF321*), ABISELECT(64,32), "GG2333213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2333213.pg");
+ test_class_info(&lv, &cd_GG2333213);
+ dp->~GG2333213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2333213(Test_GG2333213, "GG2333213", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2333213C1Ev();
+extern void _ZN9GG2333213D1Ev();
+Name_Map name_map_GG2333213[] = {
+ NSPAIR(_ZN9GG2333213C1Ev),
+ NSPAIR(_ZN9GG2333213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE233;
+extern VTBL_ENTRY _ZTI5EE233[];
+extern VTBL_ENTRY _ZTV5EE233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE233[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF321;
+extern VTBL_ENTRY _ZTI5FF321[];
+extern VTBL_ENTRY _ZTV5FF321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF321[];
+static Base_Class bases_GG2333213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE233, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 40, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF321, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2333213[];
+extern void _ZN9GG23332133fooEv();
+extern void _ZN9GG23332133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23332133fooEv,_ZTv0_n20_N9GG23332133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23332133fooEv,_ZThn8_N9GG23332133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23332133barEv,_ZTv0_n24_N9GG23332133barEv)();
+extern void ABISELECT(_ZThn16_N9GG23332133barEv,_ZThn8_N9GG23332133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23332133barEv,_ZTv0_n12_N9GG23332133barEv)();
+extern void ABISELECT(_ZThn32_N9GG23332133barEv,_ZThn16_N9GG23332133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23332133fooEv,_ZTv0_n12_N9GG23332133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23332133fooEv,_ZThn24_N9GG23332133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23332133barEv,_ZTv0_n16_N9GG23332133barEv)();
+extern void ABISELECT(_ZThn48_N9GG23332133barEv,_ZThn24_N9GG23332133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23332133fooEv,_ZTv0_n20_N9GG23332133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23332133fooEv,_ZThn32_N9GG23332133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23332133fooEv,_ZTv0_n12_N9GG23332133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23332133fooEv,_ZThn40_N9GG23332133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23332133barEv,_ZTv0_n16_N9GG23332133barEv)();
+extern void ABISELECT(_ZThn80_N9GG23332133barEv,_ZThn40_N9GG23332133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23332133barEv,_ZTv0_n12_N9GG23332133barEv)();
+extern void ABISELECT(_ZThn96_N9GG23332133barEv,_ZThn48_N9GG23332133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2333213[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2333213[0]),
+ (VTBL_ENTRY)&_ZN9GG23332133fooEv,
+ (VTBL_ENTRY)&_ZN9GG23332133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2333213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23332133fooEv,_ZTv0_n20_N9GG23332133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23332133barEv,_ZTv0_n24_N9GG23332133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2333213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23332133barEv,_ZTv0_n12_N9GG23332133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2333213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23332133fooEv,_ZTv0_n12_N9GG23332133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23332133barEv,_ZTv0_n16_N9GG23332133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2333213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23332133fooEv,_ZTv0_n20_N9GG23332133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2333213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23332133fooEv,_ZTv0_n12_N9GG23332133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23332133barEv,_ZTv0_n16_N9GG23332133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2333213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23332133barEv,_ZTv0_n12_N9GG23332133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2333213[];
+extern void _ZN5EE2333fooEv();
+extern void _ZN5EE2333barEv();
+static VTBL_ENTRY _tg__ZTV5EE233__9GG2333213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&_ZN5EE2333fooEv,
+ (VTBL_ENTRY)&_ZN5EE2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv)();
+extern void ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE233__9GG2333213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv)();
+extern void ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE233__9GG2333213[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv),
+};
+extern void _ZN5FF3213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF321__9GG2333213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN5FF3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3213fooEv,_ZThn8_N5FF3213fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF321__9GG2333213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF321__9GG2333213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG2333213[] = {
+ {&(_ZTV9GG2333213[8]), 8,44},
+ {&(_ZTV9GG2333213[16]), 16,44},
+ {&(_ZTV9GG2333213[21]), 21,44},
+ {&(_ZTV9GG2333213[26]), 26,44},
+ {&(_ZTV9GG2333213[33]), 33,44},
+ {&(_ZTV9GG2333213[38]), 38,44},
+ {&(_ZTV9GG2333213[43]), 43,44},
+ {&(_tg__ZTV5EE233__9GG2333213[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE233__9GG2333213[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE233__9GG2333213[4]), 4,6},
+ {&(_tg__ZTV5FF321__9GG2333213[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF321__9GG2333213[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF321__9GG2333213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2333213[];
+extern VTBL_ENTRY _ZTV9GG2333213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2333213[];
+static VTBL_ENTRY alt_thunk_names748[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3213fooEv,_ZThn8_N5FF3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23332133barEv,_ZTv0_n16_N9GG23332133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23332133barEv,_ZThn40_N9GG23332133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23332133barEv,_ZThn24_N9GG23332133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23332133fooEv,_ZTv0_n12_N9GG23332133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23332133fooEv,_ZThn40_N9GG23332133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23332133fooEv,_ZThn24_N9GG23332133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23332133barEv,_ZTv0_n12_N9GG23332133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG23332133barEv,_ZThn48_N9GG23332133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23332133barEv,_ZThn16_N9GG23332133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG23332133barEv,_ZTv0_n24_N9GG23332133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23332133barEv,_ZThn8_N9GG23332133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23332133fooEv,_ZTv0_n20_N9GG23332133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23332133fooEv,_ZThn32_N9GG23332133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23332133fooEv,_ZThn8_N9GG23332133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2333213 = { "GG2333213", // class name
+ bases_GG2333213, 6,
+ &(vtc_GG2333213[0]), // expected_vtbl_contents
+ &(vtt_GG2333213[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2333213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2333213),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2333213),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names748,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2333223 : virtual EE233 , virtual FF322 {
+ int pg;
+ virtual void foo(); // _ZN9GG23332233fooEv
+ virtual void bar(); // _ZN9GG23332233barEv
+ ~GG2333223(); // tgen
+ GG2333223(); // tgen
+};
+//SIG(1 GG2333223) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG2333223 ::foo(){vfunc_called(this, "_ZN9GG23332233fooEv");}
+void GG2333223 ::bar(){vfunc_called(this, "_ZN9GG23332233barEv");}
+GG2333223 ::~GG2333223(){ note_dtor("GG2333223", this);} // tgen
+GG2333223 ::GG2333223(){ note_ctor("GG2333223", this);} // tgen
+
+static void Test_GG2333223()
+{
+ extern Class_Descriptor cd_GG2333223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2333223, buf);
+ GG2333223 *dp, &lv = *(dp=new (buf) GG2333223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2333223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2333223)");
+ check_base_class_offset(lv, (AA2*)(EE233*), ABISELECT(32,16), "GG2333223");
+ check_base_class_offset(lv, (BB3*)(EE233*), ABISELECT(48,24), "GG2333223");
+ check_base_class_offset(lv, (EE233*), ABISELECT(16,8), "GG2333223");
+ check_base_class_offset(lv, (AA3*)(FF322*), ABISELECT(80,40), "GG2333223");
+ check_base_class_offset(lv, (BB2*)(FF322*), ABISELECT(96,48), "GG2333223");
+ check_base_class_offset(lv, (FF322*), ABISELECT(64,32), "GG2333223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2333223.pg");
+ test_class_info(&lv, &cd_GG2333223);
+ dp->~GG2333223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2333223(Test_GG2333223, "GG2333223", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2333223C1Ev();
+extern void _ZN9GG2333223D1Ev();
+Name_Map name_map_GG2333223[] = {
+ NSPAIR(_ZN9GG2333223C1Ev),
+ NSPAIR(_ZN9GG2333223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE233;
+extern VTBL_ENTRY _ZTI5EE233[];
+extern VTBL_ENTRY _ZTV5EE233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE233[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF322;
+extern VTBL_ENTRY _ZTI5FF322[];
+extern VTBL_ENTRY _ZTV5FF322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF322[];
+static Base_Class bases_GG2333223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE233, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 40, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF322, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2333223[];
+extern void _ZN9GG23332233fooEv();
+extern void _ZN9GG23332233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23332233fooEv,_ZTv0_n20_N9GG23332233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23332233fooEv,_ZThn8_N9GG23332233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23332233barEv,_ZTv0_n24_N9GG23332233barEv)();
+extern void ABISELECT(_ZThn16_N9GG23332233barEv,_ZThn8_N9GG23332233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23332233barEv,_ZTv0_n12_N9GG23332233barEv)();
+extern void ABISELECT(_ZThn32_N9GG23332233barEv,_ZThn16_N9GG23332233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23332233fooEv,_ZTv0_n12_N9GG23332233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23332233fooEv,_ZThn24_N9GG23332233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23332233barEv,_ZTv0_n16_N9GG23332233barEv)();
+extern void ABISELECT(_ZThn48_N9GG23332233barEv,_ZThn24_N9GG23332233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23332233barEv,_ZTv0_n20_N9GG23332233barEv)();
+extern void ABISELECT(_ZThn64_N9GG23332233barEv,_ZThn32_N9GG23332233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23332233fooEv,_ZTv0_n12_N9GG23332233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23332233fooEv,_ZThn40_N9GG23332233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23332233barEv,_ZTv0_n16_N9GG23332233barEv)();
+extern void ABISELECT(_ZThn80_N9GG23332233barEv,_ZThn40_N9GG23332233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23332233barEv,_ZTv0_n12_N9GG23332233barEv)();
+extern void ABISELECT(_ZThn96_N9GG23332233barEv,_ZThn48_N9GG23332233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2333223[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2333223[0]),
+ (VTBL_ENTRY)&_ZN9GG23332233fooEv,
+ (VTBL_ENTRY)&_ZN9GG23332233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2333223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23332233fooEv,_ZTv0_n20_N9GG23332233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23332233barEv,_ZTv0_n24_N9GG23332233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2333223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23332233barEv,_ZTv0_n12_N9GG23332233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2333223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23332233fooEv,_ZTv0_n12_N9GG23332233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23332233barEv,_ZTv0_n16_N9GG23332233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2333223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23332233barEv,_ZTv0_n20_N9GG23332233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2333223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23332233fooEv,_ZTv0_n12_N9GG23332233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23332233barEv,_ZTv0_n16_N9GG23332233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2333223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23332233barEv,_ZTv0_n12_N9GG23332233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2333223[];
+extern void _ZN5EE2333fooEv();
+extern void _ZN5EE2333barEv();
+static VTBL_ENTRY _tg__ZTV5EE233__9GG2333223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&_ZN5EE2333fooEv,
+ (VTBL_ENTRY)&_ZN5EE2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv)();
+extern void ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE233__9GG2333223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv)();
+extern void ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE233__9GG2333223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv),
+};
+extern void _ZN5FF3223barEv();
+static VTBL_ENTRY _tg__ZTV5FF322__9GG2333223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN5FF3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv)();
+extern void ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF322__9GG2333223[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv)();
+extern void ABISELECT(_ZThn32_N5FF3223barEv,_ZThn16_N5FF3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF322__9GG2333223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv),
+};
+static VTT_ENTRY vtt_GG2333223[] = {
+ {&(_ZTV9GG2333223[8]), 8,44},
+ {&(_ZTV9GG2333223[16]), 16,44},
+ {&(_ZTV9GG2333223[21]), 21,44},
+ {&(_ZTV9GG2333223[26]), 26,44},
+ {&(_ZTV9GG2333223[33]), 33,44},
+ {&(_ZTV9GG2333223[38]), 38,44},
+ {&(_ZTV9GG2333223[43]), 43,44},
+ {&(_tg__ZTV5EE233__9GG2333223[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE233__9GG2333223[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE233__9GG2333223[4]), 4,6},
+ {&(_tg__ZTV5FF322__9GG2333223[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF322__9GG2333223[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF322__9GG2333223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2333223[];
+extern VTBL_ENTRY _ZTV9GG2333223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2333223[];
+static VTBL_ENTRY alt_thunk_names749[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3223barEv,_ZThn16_N5FF3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23332233barEv,_ZTv0_n20_N9GG23332233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23332233barEv,_ZThn32_N9GG23332233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23332233barEv,_ZTv0_n16_N9GG23332233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23332233barEv,_ZThn40_N9GG23332233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23332233barEv,_ZThn24_N9GG23332233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23332233fooEv,_ZTv0_n12_N9GG23332233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23332233fooEv,_ZThn40_N9GG23332233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23332233fooEv,_ZThn24_N9GG23332233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23332233barEv,_ZTv0_n12_N9GG23332233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG23332233barEv,_ZThn48_N9GG23332233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23332233barEv,_ZThn16_N9GG23332233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG23332233barEv,_ZTv0_n24_N9GG23332233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23332233barEv,_ZThn8_N9GG23332233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23332233fooEv,_ZTv0_n20_N9GG23332233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23332233fooEv,_ZThn8_N9GG23332233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2333223 = { "GG2333223", // class name
+ bases_GG2333223, 6,
+ &(vtc_GG2333223[0]), // expected_vtbl_contents
+ &(vtt_GG2333223[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2333223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2333223),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2333223),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names749,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2333233 : virtual EE233 , virtual FF323 {
+ int pg;
+ virtual void foo(); // _ZN9GG23332333fooEv
+ virtual void bar(); // _ZN9GG23332333barEv
+ ~GG2333233(); // tgen
+ GG2333233(); // tgen
+};
+//SIG(1 GG2333233) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC7{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2333233 ::foo(){vfunc_called(this, "_ZN9GG23332333fooEv");}
+void GG2333233 ::bar(){vfunc_called(this, "_ZN9GG23332333barEv");}
+GG2333233 ::~GG2333233(){ note_dtor("GG2333233", this);} // tgen
+GG2333233 ::GG2333233(){ note_ctor("GG2333233", this);} // tgen
+
+static void Test_GG2333233()
+{
+ extern Class_Descriptor cd_GG2333233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG2333233, buf);
+ GG2333233 *dp, &lv = *(dp=new (buf) GG2333233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG2333233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2333233)");
+ check_base_class_offset(lv, (AA2*)(EE233*), ABISELECT(32,16), "GG2333233");
+ check_base_class_offset(lv, (BB3*)(EE233*), ABISELECT(48,24), "GG2333233");
+ check_base_class_offset(lv, (EE233*), ABISELECT(16,8), "GG2333233");
+ check_base_class_offset(lv, (AA3*)(FF323*), ABISELECT(80,40), "GG2333233");
+ check_base_class_offset(lv, (BB2*)(FF323*), ABISELECT(96,48), "GG2333233");
+ check_base_class_offset(lv, (FF323*), ABISELECT(64,32), "GG2333233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2333233.pg");
+ test_class_info(&lv, &cd_GG2333233);
+ dp->~GG2333233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2333233(Test_GG2333233, "GG2333233", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG2333233C1Ev();
+extern void _ZN9GG2333233D1Ev();
+Name_Map name_map_GG2333233[] = {
+ NSPAIR(_ZN9GG2333233C1Ev),
+ NSPAIR(_ZN9GG2333233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE233;
+extern VTBL_ENTRY _ZTI5EE233[];
+extern VTBL_ENTRY _ZTV5EE233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE233[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF323;
+extern VTBL_ENTRY _ZTI5FF323[];
+extern VTBL_ENTRY _ZTV5FF323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF323[];
+static Base_Class bases_GG2333233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE233, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 42, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF323, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2333233[];
+extern void _ZN9GG23332333fooEv();
+extern void _ZN9GG23332333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23332333fooEv,_ZTv0_n20_N9GG23332333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23332333fooEv,_ZThn8_N9GG23332333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23332333barEv,_ZTv0_n24_N9GG23332333barEv)();
+extern void ABISELECT(_ZThn16_N9GG23332333barEv,_ZThn8_N9GG23332333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23332333barEv,_ZTv0_n12_N9GG23332333barEv)();
+extern void ABISELECT(_ZThn32_N9GG23332333barEv,_ZThn16_N9GG23332333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23332333fooEv,_ZTv0_n12_N9GG23332333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23332333fooEv,_ZThn24_N9GG23332333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23332333barEv,_ZTv0_n16_N9GG23332333barEv)();
+extern void ABISELECT(_ZThn48_N9GG23332333barEv,_ZThn24_N9GG23332333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23332333fooEv,_ZTv0_n20_N9GG23332333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23332333fooEv,_ZThn32_N9GG23332333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23332333barEv,_ZTv0_n24_N9GG23332333barEv)();
+extern void ABISELECT(_ZThn64_N9GG23332333barEv,_ZThn32_N9GG23332333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23332333fooEv,_ZTv0_n12_N9GG23332333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23332333fooEv,_ZThn40_N9GG23332333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23332333barEv,_ZTv0_n16_N9GG23332333barEv)();
+extern void ABISELECT(_ZThn80_N9GG23332333barEv,_ZThn40_N9GG23332333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23332333barEv,_ZTv0_n12_N9GG23332333barEv)();
+extern void ABISELECT(_ZThn96_N9GG23332333barEv,_ZThn48_N9GG23332333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2333233[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2333233[0]),
+ (VTBL_ENTRY)&_ZN9GG23332333fooEv,
+ (VTBL_ENTRY)&_ZN9GG23332333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2333233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23332333fooEv,_ZTv0_n20_N9GG23332333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23332333barEv,_ZTv0_n24_N9GG23332333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2333233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23332333barEv,_ZTv0_n12_N9GG23332333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2333233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23332333fooEv,_ZTv0_n12_N9GG23332333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23332333barEv,_ZTv0_n16_N9GG23332333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2333233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23332333fooEv,_ZTv0_n20_N9GG23332333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23332333barEv,_ZTv0_n24_N9GG23332333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2333233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23332333fooEv,_ZTv0_n12_N9GG23332333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23332333barEv,_ZTv0_n16_N9GG23332333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG2333233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23332333barEv,_ZTv0_n12_N9GG23332333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2333233[];
+extern void _ZN5EE2333fooEv();
+extern void _ZN5EE2333barEv();
+static VTBL_ENTRY _tg__ZTV5EE233__9GG2333233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&_ZN5EE2333fooEv,
+ (VTBL_ENTRY)&_ZN5EE2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv)();
+extern void ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE233__9GG2333233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv)();
+extern void ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE233__9GG2333233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv),
+};
+extern void _ZN5FF3233fooEv();
+extern void _ZN5FF3233barEv();
+static VTBL_ENTRY _tg__ZTV5FF323__9GG2333233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&_ZN5FF3233fooEv,
+ (VTBL_ENTRY)&_ZN5FF3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3233fooEv,_ZThn8_N5FF3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv)();
+extern void ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF323__9GG2333233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv)();
+extern void ABISELECT(_ZThn32_N5FF3233barEv,_ZThn16_N5FF3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF323__9GG2333233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv),
+};
+static VTT_ENTRY vtt_GG2333233[] = {
+ {&(_ZTV9GG2333233[8]), 8,46},
+ {&(_ZTV9GG2333233[16]), 16,46},
+ {&(_ZTV9GG2333233[21]), 21,46},
+ {&(_ZTV9GG2333233[26]), 26,46},
+ {&(_ZTV9GG2333233[34]), 34,46},
+ {&(_ZTV9GG2333233[40]), 40,46},
+ {&(_ZTV9GG2333233[45]), 45,46},
+ {&(_tg__ZTV5EE233__9GG2333233[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE233__9GG2333233[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE233__9GG2333233[4]), 4,6},
+ {&(_tg__ZTV5FF323__9GG2333233[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF323__9GG2333233[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF323__9GG2333233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG2333233[];
+extern VTBL_ENTRY _ZTV9GG2333233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2333233[];
+static VTBL_ENTRY alt_thunk_names750[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF3233barEv,_ZThn16_N5FF3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3233fooEv,_ZThn8_N5FF3233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23332333barEv,_ZTv0_n16_N9GG23332333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23332333barEv,_ZThn40_N9GG23332333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23332333barEv,_ZThn24_N9GG23332333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23332333fooEv,_ZTv0_n12_N9GG23332333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23332333fooEv,_ZThn40_N9GG23332333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23332333fooEv,_ZThn24_N9GG23332333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23332333barEv,_ZTv0_n12_N9GG23332333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG23332333barEv,_ZThn48_N9GG23332333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23332333barEv,_ZThn16_N9GG23332333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG23332333barEv,_ZTv0_n24_N9GG23332333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23332333barEv,_ZThn32_N9GG23332333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23332333barEv,_ZThn8_N9GG23332333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23332333fooEv,_ZTv0_n20_N9GG23332333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23332333fooEv,_ZThn32_N9GG23332333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23332333fooEv,_ZThn8_N9GG23332333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2333233 = { "GG2333233", // class name
+ bases_GG2333233, 6,
+ &(vtc_GG2333233[0]), // expected_vtbl_contents
+ &(vtt_GG2333233[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG2333233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2333233),46, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2333233),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names750,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2333313 : virtual EE233 , virtual FF331 {
+ int pg;
+ virtual void foo(); // _ZN9GG23333133fooEv
+ virtual void bar(); // _ZN9GG23333133barEv
+ ~GG2333313(); // tgen
+ GG2333313(); // tgen
+};
+//SIG(1 GG2333313) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG2333313 ::foo(){vfunc_called(this, "_ZN9GG23333133fooEv");}
+void GG2333313 ::bar(){vfunc_called(this, "_ZN9GG23333133barEv");}
+GG2333313 ::~GG2333313(){ note_dtor("GG2333313", this);} // tgen
+GG2333313 ::GG2333313(){ note_ctor("GG2333313", this);} // tgen
+
+static void Test_GG2333313()
+{
+ extern Class_Descriptor cd_GG2333313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2333313, buf);
+ GG2333313 *dp, &lv = *(dp=new (buf) GG2333313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2333313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2333313)");
+ check_base_class_offset(lv, (AA2*)(EE233*), ABISELECT(32,16), "GG2333313");
+ check_base_class_offset(lv, (BB3*)(EE233*), ABISELECT(48,24), "GG2333313");
+ check_base_class_offset(lv, (BB3*)(FF331*), ABISELECT(48,24), "GG2333313");
+ check_base_class_offset(lv, (EE233*), ABISELECT(16,8), "GG2333313");
+ check_base_class_offset(lv, (AA3*)(FF331*), ABISELECT(80,40), "GG2333313");
+ check_base_class_offset(lv, (FF331*), ABISELECT(64,32), "GG2333313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2333313.pg");
+ test_class_info(&lv, &cd_GG2333313);
+ dp->~GG2333313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2333313(Test_GG2333313, "GG2333313", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2333313C1Ev();
+extern void _ZN9GG2333313D1Ev();
+Name_Map name_map_GG2333313[] = {
+ NSPAIR(_ZN9GG2333313C1Ev),
+ NSPAIR(_ZN9GG2333313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE233;
+extern VTBL_ENTRY _ZTI5EE233[];
+extern VTBL_ENTRY _ZTV5EE233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE233[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF331;
+extern VTBL_ENTRY _ZTI5FF331[];
+extern VTBL_ENTRY _ZTV5FF331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF331[];
+static Base_Class bases_GG2333313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE233, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF331, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2333313[];
+extern void _ZN9GG23333133fooEv();
+extern void _ZN9GG23333133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23333133fooEv,_ZTv0_n20_N9GG23333133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23333133fooEv,_ZThn8_N9GG23333133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23333133barEv,_ZTv0_n24_N9GG23333133barEv)();
+extern void ABISELECT(_ZThn16_N9GG23333133barEv,_ZThn8_N9GG23333133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23333133barEv,_ZTv0_n12_N9GG23333133barEv)();
+extern void ABISELECT(_ZThn32_N9GG23333133barEv,_ZThn16_N9GG23333133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23333133fooEv,_ZTv0_n12_N9GG23333133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23333133fooEv,_ZThn24_N9GG23333133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23333133barEv,_ZTv0_n16_N9GG23333133barEv)();
+extern void ABISELECT(_ZThn48_N9GG23333133barEv,_ZThn24_N9GG23333133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23333133fooEv,_ZTv0_n20_N9GG23333133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23333133fooEv,_ZThn32_N9GG23333133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23333133fooEv,_ZTv0_n12_N9GG23333133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23333133fooEv,_ZThn40_N9GG23333133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23333133barEv,_ZTv0_n16_N9GG23333133barEv)();
+extern void ABISELECT(_ZThn80_N9GG23333133barEv,_ZThn40_N9GG23333133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2333313[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2333313[0]),
+ (VTBL_ENTRY)&_ZN9GG23333133fooEv,
+ (VTBL_ENTRY)&_ZN9GG23333133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2333313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23333133fooEv,_ZTv0_n20_N9GG23333133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23333133barEv,_ZTv0_n24_N9GG23333133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2333313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23333133barEv,_ZTv0_n12_N9GG23333133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2333313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23333133fooEv,_ZTv0_n12_N9GG23333133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23333133barEv,_ZTv0_n16_N9GG23333133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2333313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23333133fooEv,_ZTv0_n20_N9GG23333133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2333313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23333133fooEv,_ZTv0_n12_N9GG23333133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23333133barEv,_ZTv0_n16_N9GG23333133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2333313[];
+extern void _ZN5EE2333fooEv();
+extern void _ZN5EE2333barEv();
+static VTBL_ENTRY _tg__ZTV5EE233__9GG2333313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&_ZN5EE2333fooEv,
+ (VTBL_ENTRY)&_ZN5EE2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv)();
+extern void ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE233__9GG2333313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv)();
+extern void ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE233__9GG2333313[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv),
+};
+extern void _ZN5FF3313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF331__9GG2333313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&_ZN5FF3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF331__9GG2333313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF331__9GG2333313[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG2333313[] = {
+ {&(_ZTV9GG2333313[7]), 7,39},
+ {&(_ZTV9GG2333313[15]), 15,39},
+ {&(_ZTV9GG2333313[20]), 20,39},
+ {&(_ZTV9GG2333313[25]), 25,39},
+ {&(_ZTV9GG2333313[32]), 32,39},
+ {&(_ZTV9GG2333313[37]), 37,39},
+ {&(_tg__ZTV5EE233__9GG2333313[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE233__9GG2333313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE233__9GG2333313[4]), 4,6},
+ {&(_tg__ZTV5FF331__9GG2333313[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF331__9GG2333313[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF331__9GG2333313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2333313[];
+extern VTBL_ENTRY _ZTV9GG2333313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2333313[];
+static VTBL_ENTRY alt_thunk_names751[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23333133barEv,_ZTv0_n16_N9GG23333133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23333133barEv,_ZThn40_N9GG23333133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23333133barEv,_ZThn24_N9GG23333133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23333133fooEv,_ZTv0_n12_N9GG23333133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23333133fooEv,_ZThn40_N9GG23333133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23333133fooEv,_ZThn24_N9GG23333133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23333133barEv,_ZTv0_n12_N9GG23333133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23333133barEv,_ZThn16_N9GG23333133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG23333133barEv,_ZTv0_n24_N9GG23333133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23333133barEv,_ZThn8_N9GG23333133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23333133fooEv,_ZTv0_n20_N9GG23333133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23333133fooEv,_ZThn32_N9GG23333133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23333133fooEv,_ZThn8_N9GG23333133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2333313 = { "GG2333313", // class name
+ bases_GG2333313, 5,
+ &(vtc_GG2333313[0]), // expected_vtbl_contents
+ &(vtt_GG2333313[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2333313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2333313),39, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2333313),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names751,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2333323 : virtual EE233 , virtual FF332 {
+ int pg;
+ virtual void foo(); // _ZN9GG23333233fooEv
+ virtual void bar(); // _ZN9GG23333233barEv
+ ~GG2333323(); // tgen
+ GG2333323(); // tgen
+};
+//SIG(1 GG2333323) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG2333323 ::foo(){vfunc_called(this, "_ZN9GG23333233fooEv");}
+void GG2333323 ::bar(){vfunc_called(this, "_ZN9GG23333233barEv");}
+GG2333323 ::~GG2333323(){ note_dtor("GG2333323", this);} // tgen
+GG2333323 ::GG2333323(){ note_ctor("GG2333323", this);} // tgen
+
+static void Test_GG2333323()
+{
+ extern Class_Descriptor cd_GG2333323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2333323, buf);
+ GG2333323 *dp, &lv = *(dp=new (buf) GG2333323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2333323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2333323)");
+ check_base_class_offset(lv, (AA2*)(EE233*), ABISELECT(32,16), "GG2333323");
+ check_base_class_offset(lv, (BB3*)(EE233*), ABISELECT(48,24), "GG2333323");
+ check_base_class_offset(lv, (BB3*)(FF332*), ABISELECT(48,24), "GG2333323");
+ check_base_class_offset(lv, (EE233*), ABISELECT(16,8), "GG2333323");
+ check_base_class_offset(lv, (AA3*)(FF332*), ABISELECT(80,40), "GG2333323");
+ check_base_class_offset(lv, (FF332*), ABISELECT(64,32), "GG2333323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2333323.pg");
+ test_class_info(&lv, &cd_GG2333323);
+ dp->~GG2333323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2333323(Test_GG2333323, "GG2333323", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2333323C1Ev();
+extern void _ZN9GG2333323D1Ev();
+Name_Map name_map_GG2333323[] = {
+ NSPAIR(_ZN9GG2333323C1Ev),
+ NSPAIR(_ZN9GG2333323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE233;
+extern VTBL_ENTRY _ZTI5EE233[];
+extern VTBL_ENTRY _ZTV5EE233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE233[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF332;
+extern VTBL_ENTRY _ZTI5FF332[];
+extern VTBL_ENTRY _ZTV5FF332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF332[];
+static Base_Class bases_GG2333323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE233, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF332, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2333323[];
+extern void _ZN9GG23333233fooEv();
+extern void _ZN9GG23333233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23333233fooEv,_ZTv0_n20_N9GG23333233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23333233fooEv,_ZThn8_N9GG23333233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23333233barEv,_ZTv0_n24_N9GG23333233barEv)();
+extern void ABISELECT(_ZThn16_N9GG23333233barEv,_ZThn8_N9GG23333233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23333233barEv,_ZTv0_n12_N9GG23333233barEv)();
+extern void ABISELECT(_ZThn32_N9GG23333233barEv,_ZThn16_N9GG23333233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23333233fooEv,_ZTv0_n12_N9GG23333233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23333233fooEv,_ZThn24_N9GG23333233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23333233barEv,_ZTv0_n16_N9GG23333233barEv)();
+extern void ABISELECT(_ZThn48_N9GG23333233barEv,_ZThn24_N9GG23333233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23333233barEv,_ZTv0_n20_N9GG23333233barEv)();
+extern void ABISELECT(_ZThn64_N9GG23333233barEv,_ZThn32_N9GG23333233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23333233fooEv,_ZTv0_n12_N9GG23333233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23333233fooEv,_ZThn40_N9GG23333233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23333233barEv,_ZTv0_n16_N9GG23333233barEv)();
+extern void ABISELECT(_ZThn80_N9GG23333233barEv,_ZThn40_N9GG23333233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2333323[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2333323[0]),
+ (VTBL_ENTRY)&_ZN9GG23333233fooEv,
+ (VTBL_ENTRY)&_ZN9GG23333233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2333323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23333233fooEv,_ZTv0_n20_N9GG23333233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23333233barEv,_ZTv0_n24_N9GG23333233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2333323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23333233barEv,_ZTv0_n12_N9GG23333233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2333323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23333233fooEv,_ZTv0_n12_N9GG23333233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23333233barEv,_ZTv0_n16_N9GG23333233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2333323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23333233barEv,_ZTv0_n20_N9GG23333233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2333323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23333233fooEv,_ZTv0_n12_N9GG23333233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23333233barEv,_ZTv0_n16_N9GG23333233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2333323[];
+extern void _ZN5EE2333fooEv();
+extern void _ZN5EE2333barEv();
+static VTBL_ENTRY _tg__ZTV5EE233__9GG2333323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&_ZN5EE2333fooEv,
+ (VTBL_ENTRY)&_ZN5EE2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv)();
+extern void ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE233__9GG2333323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv)();
+extern void ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE233__9GG2333323[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv),
+};
+extern void _ZN5FF3323barEv();
+static VTBL_ENTRY _tg__ZTV5FF332__9GG2333323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN5FF3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+extern void ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF332__9GG2333323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF332__9GG2333323[] = {
+ ABISELECT(16,8),
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+static VTT_ENTRY vtt_GG2333323[] = {
+ {&(_ZTV9GG2333323[7]), 7,39},
+ {&(_ZTV9GG2333323[15]), 15,39},
+ {&(_ZTV9GG2333323[20]), 20,39},
+ {&(_ZTV9GG2333323[25]), 25,39},
+ {&(_ZTV9GG2333323[32]), 32,39},
+ {&(_ZTV9GG2333323[37]), 37,39},
+ {&(_tg__ZTV5EE233__9GG2333323[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE233__9GG2333323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE233__9GG2333323[4]), 4,6},
+ {&(_tg__ZTV5FF332__9GG2333323[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF332__9GG2333323[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF332__9GG2333323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2333323[];
+extern VTBL_ENTRY _ZTV9GG2333323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2333323[];
+static VTBL_ENTRY alt_thunk_names752[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23333233barEv,_ZTv0_n20_N9GG23333233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23333233barEv,_ZThn32_N9GG23333233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23333233barEv,_ZTv0_n16_N9GG23333233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23333233barEv,_ZThn40_N9GG23333233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23333233barEv,_ZThn24_N9GG23333233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23333233fooEv,_ZTv0_n12_N9GG23333233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23333233fooEv,_ZThn40_N9GG23333233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23333233fooEv,_ZThn24_N9GG23333233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23333233barEv,_ZTv0_n12_N9GG23333233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23333233barEv,_ZThn16_N9GG23333233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG23333233barEv,_ZTv0_n24_N9GG23333233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23333233barEv,_ZThn8_N9GG23333233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23333233fooEv,_ZTv0_n20_N9GG23333233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23333233fooEv,_ZThn8_N9GG23333233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2333323 = { "GG2333323", // class name
+ bases_GG2333323, 5,
+ &(vtc_GG2333323[0]), // expected_vtbl_contents
+ &(vtt_GG2333323[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2333323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2333323),39, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2333323),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names752,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG2333333 : virtual EE233 , virtual FF333 {
+ int pg;
+ virtual void foo(); // _ZN9GG23333333fooEv
+ virtual void bar(); // _ZN9GG23333333barEv
+ ~GG2333333(); // tgen
+ GG2333333(); // tgen
+};
+//SIG(1 GG2333333) C1{ VBC2{ VBC3{ v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 v2 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG2333333 ::foo(){vfunc_called(this, "_ZN9GG23333333fooEv");}
+void GG2333333 ::bar(){vfunc_called(this, "_ZN9GG23333333barEv");}
+GG2333333 ::~GG2333333(){ note_dtor("GG2333333", this);} // tgen
+GG2333333 ::GG2333333(){ note_ctor("GG2333333", this);} // tgen
+
+static void Test_GG2333333()
+{
+ extern Class_Descriptor cd_GG2333333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG2333333, buf);
+ GG2333333 *dp, &lv = *(dp=new (buf) GG2333333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG2333333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG2333333)");
+ check_base_class_offset(lv, (AA2*)(EE233*), ABISELECT(32,16), "GG2333333");
+ check_base_class_offset(lv, (BB3*)(EE233*), ABISELECT(48,24), "GG2333333");
+ check_base_class_offset(lv, (BB3*)(FF333*), ABISELECT(48,24), "GG2333333");
+ check_base_class_offset(lv, (EE233*), ABISELECT(16,8), "GG2333333");
+ check_base_class_offset(lv, (AA3*)(FF333*), ABISELECT(80,40), "GG2333333");
+ check_base_class_offset(lv, (FF333*), ABISELECT(64,32), "GG2333333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG2333333.pg");
+ test_class_info(&lv, &cd_GG2333333);
+ dp->~GG2333333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG2333333(Test_GG2333333, "GG2333333", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG2333333C1Ev();
+extern void _ZN9GG2333333D1Ev();
+Name_Map name_map_GG2333333[] = {
+ NSPAIR(_ZN9GG2333333C1Ev),
+ NSPAIR(_ZN9GG2333333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE233;
+extern VTBL_ENTRY _ZTI5EE233[];
+extern VTBL_ENTRY _ZTV5EE233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE233[];
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_FF333;
+extern VTBL_ENTRY _ZTI5FF333[];
+extern VTBL_ENTRY _ZTV5FF333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF333[];
+static Base_Class bases_GG2333333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA2, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE233, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA3, ABISELECT(80,40), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF333, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG2333333[];
+extern void _ZN9GG23333333fooEv();
+extern void _ZN9GG23333333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG23333333fooEv,_ZTv0_n20_N9GG23333333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG23333333fooEv,_ZThn8_N9GG23333333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23333333barEv,_ZTv0_n24_N9GG23333333barEv)();
+extern void ABISELECT(_ZThn16_N9GG23333333barEv,_ZThn8_N9GG23333333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23333333barEv,_ZTv0_n12_N9GG23333333barEv)();
+extern void ABISELECT(_ZThn32_N9GG23333333barEv,_ZThn16_N9GG23333333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23333333fooEv,_ZTv0_n12_N9GG23333333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG23333333fooEv,_ZThn24_N9GG23333333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23333333barEv,_ZTv0_n16_N9GG23333333barEv)();
+extern void ABISELECT(_ZThn48_N9GG23333333barEv,_ZThn24_N9GG23333333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG23333333fooEv,_ZTv0_n20_N9GG23333333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG23333333fooEv,_ZThn32_N9GG23333333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG23333333barEv,_ZTv0_n24_N9GG23333333barEv)();
+extern void ABISELECT(_ZThn64_N9GG23333333barEv,_ZThn32_N9GG23333333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG23333333fooEv,_ZTv0_n12_N9GG23333333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG23333333fooEv,_ZThn40_N9GG23333333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG23333333barEv,_ZTv0_n16_N9GG23333333barEv)();
+extern void ABISELECT(_ZThn80_N9GG23333333barEv,_ZThn40_N9GG23333333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG2333333[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG2333333[0]),
+ (VTBL_ENTRY)&_ZN9GG23333333fooEv,
+ (VTBL_ENTRY)&_ZN9GG23333333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG2333333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23333333fooEv,_ZTv0_n20_N9GG23333333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23333333barEv,_ZTv0_n24_N9GG23333333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG2333333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23333333barEv,_ZTv0_n12_N9GG23333333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG2333333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23333333fooEv,_ZTv0_n12_N9GG23333333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23333333barEv,_ZTv0_n16_N9GG23333333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG2333333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG23333333fooEv,_ZTv0_n20_N9GG23333333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG23333333barEv,_ZTv0_n24_N9GG23333333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG2333333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG23333333fooEv,_ZTv0_n12_N9GG23333333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG23333333barEv,_ZTv0_n16_N9GG23333333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG2333333[];
+extern void _ZN5EE2333fooEv();
+extern void _ZN5EE2333barEv();
+static VTBL_ENTRY _tg__ZTV5EE233__9GG2333333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&_ZN5EE2333fooEv,
+ (VTBL_ENTRY)&_ZN5EE2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv)();
+extern void ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5EE233__9GG2333333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv)();
+extern void ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE233__9GG2333333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv),
+};
+extern void _ZN5FF3333fooEv();
+extern void _ZN5FF3333barEv();
+static VTBL_ENTRY _tg__ZTV5FF333__9GG2333333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&_ZN5FF3333fooEv,
+ (VTBL_ENTRY)&_ZN5FF3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+extern void ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5FF333__9GG2333333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF333__9GG2333333[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+static VTT_ENTRY vtt_GG2333333[] = {
+ {&(_ZTV9GG2333333[7]), 7,41},
+ {&(_ZTV9GG2333333[15]), 15,41},
+ {&(_ZTV9GG2333333[20]), 20,41},
+ {&(_ZTV9GG2333333[25]), 25,41},
+ {&(_ZTV9GG2333333[33]), 33,41},
+ {&(_ZTV9GG2333333[39]), 39,41},
+ {&(_tg__ZTV5EE233__9GG2333333[4]), 4,6},
+ {&(_tg__ZTV3AA2__5EE233__9GG2333333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5EE233__9GG2333333[4]), 4,6},
+ {&(_tg__ZTV5FF333__9GG2333333[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF333__9GG2333333[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF333__9GG2333333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG2333333[];
+extern VTBL_ENTRY _ZTV9GG2333333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG2333333[];
+static VTBL_ENTRY alt_thunk_names753[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE2333barEv,_ZTv0_n16_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333barEv,_ZThn16_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333fooEv,_ZTv0_n12_N5EE2333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE2333fooEv,_ZThn16_N5EE2333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE2333barEv,_ZTv0_n12_N5EE2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE2333barEv,_ZThn8_N5EE2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG23333333barEv,_ZTv0_n16_N9GG23333333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23333333barEv,_ZThn40_N9GG23333333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23333333barEv,_ZThn24_N9GG23333333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23333333fooEv,_ZTv0_n12_N9GG23333333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG23333333fooEv,_ZThn40_N9GG23333333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG23333333fooEv,_ZThn24_N9GG23333333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG23333333barEv,_ZTv0_n12_N9GG23333333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG23333333barEv,_ZThn16_N9GG23333333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG23333333barEv,_ZTv0_n24_N9GG23333333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23333333barEv,_ZThn32_N9GG23333333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23333333barEv,_ZThn8_N9GG23333333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG23333333fooEv,_ZTv0_n20_N9GG23333333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG23333333fooEv,_ZThn32_N9GG23333333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG23333333fooEv,_ZThn8_N9GG23333333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG2333333 = { "GG2333333", // class name
+ bases_GG2333333, 5,
+ &(vtc_GG2333333[0]), // expected_vtbl_contents
+ &(vtt_GG2333333[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG2333333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG2333333),41, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG2333333),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names753,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3111111 : virtual EE311 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG31111113fooEv
+ ~GG3111111(); // tgen
+ GG3111111(); // tgen
+};
+//SIG(1 GG3111111) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v1 Fi} v1 Fi}
+
+
+void GG3111111 ::foo(){vfunc_called(this, "_ZN9GG31111113fooEv");}
+GG3111111 ::~GG3111111(){ note_dtor("GG3111111", this);} // tgen
+GG3111111 ::GG3111111(){ note_ctor("GG3111111", this);} // tgen
+
+static void Test_GG3111111()
+{
+ extern Class_Descriptor cd_GG3111111;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3111111, buf);
+ GG3111111 *dp, &lv = *(dp=new (buf) GG3111111());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3111111)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3111111)");
+ check_base_class_offset(lv, (AA3*)(EE311*), ABISELECT(32,16), "GG3111111");
+ check_base_class_offset(lv, (BB1*)(EE311*), ABISELECT(48,24), "GG3111111");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(48,24), "GG3111111");
+ check_base_class_offset(lv, (EE311*), ABISELECT(16,8), "GG3111111");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(80,40), "GG3111111");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG3111111");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3111111.pg");
+ test_class_info(&lv, &cd_GG3111111);
+ dp->~GG3111111();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3111111(Test_GG3111111, "GG3111111", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3111111C1Ev();
+extern void _ZN9GG3111111D1Ev();
+Name_Map name_map_GG3111111[] = {
+ NSPAIR(_ZN9GG3111111C1Ev),
+ NSPAIR(_ZN9GG3111111D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE311;
+extern VTBL_ENTRY _ZTI5EE311[];
+extern VTBL_ENTRY _ZTV5EE311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE311[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG3111111[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE311, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3111111[];
+extern void _ZN9GG31111113fooEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31111113fooEv,_ZTv0_n20_N9GG31111113fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31111113fooEv,_ZThn8_N9GG31111113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31111113fooEv,_ZTv0_n12_N9GG31111113fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31111113fooEv,_ZThn16_N9GG31111113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+extern void ABISELECT(_ZTv0_n24_N9GG31111113fooEv,_ZTv0_n12_N9GG31111113fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31111113fooEv,_ZThn24_N9GG31111113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31111113fooEv,_ZTv0_n20_N9GG31111113fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31111113fooEv,_ZThn32_N9GG31111113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31111113fooEv,_ZTv0_n12_N9GG31111113fooEv)();
+extern void ABISELECT(_ZThn80_N9GG31111113fooEv,_ZThn40_N9GG31111113fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3111111[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3111111[0]),
+ (VTBL_ENTRY)&_ZN9GG31111113fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3111111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31111113fooEv,_ZTv0_n20_N9GG31111113fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3111111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31111113fooEv,_ZTv0_n12_N9GG31111113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3111111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31111113fooEv,_ZTv0_n12_N9GG31111113fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3111111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31111113fooEv,_ZTv0_n20_N9GG31111113fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3111111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31111113fooEv,_ZTv0_n12_N9GG31111113fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3111111[];
+extern void _ZN5EE3113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE311__9GG3111111[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&_ZN5EE3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE311__9GG3111111[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE311__9GG3111111[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG3111111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG3111111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG3111111[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG3111111[] = {
+ {&(_ZTV9GG3111111[7]), 7,34},
+ {&(_ZTV9GG3111111[13]), 13,34},
+ {&(_ZTV9GG3111111[18]), 18,34},
+ {&(_ZTV9GG3111111[23]), 23,34},
+ {&(_ZTV9GG3111111[29]), 29,34},
+ {&(_ZTV9GG3111111[33]), 33,34},
+ {&(_tg__ZTV5EE311__9GG3111111[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE311__9GG3111111[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE311__9GG3111111[3]), 3,4},
+ {&(_tg__ZTV5FF111__9GG3111111[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG3111111[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG3111111[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3111111[];
+extern VTBL_ENTRY _ZTV9GG3111111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3111111[];
+static VTBL_ENTRY alt_thunk_names754[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31111113fooEv,_ZTv0_n12_N9GG31111113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31111113fooEv,_ZThn40_N9GG31111113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31111113fooEv,_ZThn24_N9GG31111113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31111113fooEv,_ZThn16_N9GG31111113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31111113fooEv,_ZTv0_n20_N9GG31111113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31111113fooEv,_ZThn32_N9GG31111113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31111113fooEv,_ZThn8_N9GG31111113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3111111 = { "GG3111111", // class name
+ bases_GG3111111, 5,
+ &(vtc_GG3111111[0]), // expected_vtbl_contents
+ &(vtt_GG3111111[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3111111),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3111111),34, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3111111),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names754,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3111113 : virtual EE311 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG31111133fooEv
+ virtual void bar(); // _ZN9GG31111133barEv
+ ~GG3111113(); // tgen
+ GG3111113(); // tgen
+};
+//SIG(1 GG3111113) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG3111113 ::foo(){vfunc_called(this, "_ZN9GG31111133fooEv");}
+void GG3111113 ::bar(){vfunc_called(this, "_ZN9GG31111133barEv");}
+GG3111113 ::~GG3111113(){ note_dtor("GG3111113", this);} // tgen
+GG3111113 ::GG3111113(){ note_ctor("GG3111113", this);} // tgen
+
+static void Test_GG3111113()
+{
+ extern Class_Descriptor cd_GG3111113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3111113, buf);
+ GG3111113 *dp, &lv = *(dp=new (buf) GG3111113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3111113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3111113)");
+ check_base_class_offset(lv, (AA3*)(EE311*), ABISELECT(32,16), "GG3111113");
+ check_base_class_offset(lv, (BB1*)(EE311*), ABISELECT(48,24), "GG3111113");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(48,24), "GG3111113");
+ check_base_class_offset(lv, (EE311*), ABISELECT(16,8), "GG3111113");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(80,40), "GG3111113");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG3111113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3111113.pg");
+ test_class_info(&lv, &cd_GG3111113);
+ dp->~GG3111113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3111113(Test_GG3111113, "GG3111113", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3111113C1Ev();
+extern void _ZN9GG3111113D1Ev();
+Name_Map name_map_GG3111113[] = {
+ NSPAIR(_ZN9GG3111113C1Ev),
+ NSPAIR(_ZN9GG3111113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE311;
+extern VTBL_ENTRY _ZTI5EE311[];
+extern VTBL_ENTRY _ZTV5EE311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE311[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG3111113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE311, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3111113[];
+extern void _ZN9GG31111133fooEv();
+extern void _ZN9GG31111133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31111133fooEv,_ZTv0_n20_N9GG31111133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31111133fooEv,_ZThn8_N9GG31111133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31111133fooEv,_ZTv0_n12_N9GG31111133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31111133fooEv,_ZThn16_N9GG31111133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31111133barEv,_ZTv0_n16_N9GG31111133barEv)();
+extern void ABISELECT(_ZThn32_N9GG31111133barEv,_ZThn16_N9GG31111133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31111133fooEv,_ZTv0_n12_N9GG31111133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31111133fooEv,_ZThn24_N9GG31111133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31111133fooEv,_ZTv0_n20_N9GG31111133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31111133fooEv,_ZThn32_N9GG31111133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31111133fooEv,_ZTv0_n12_N9GG31111133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG31111133fooEv,_ZThn40_N9GG31111133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3111113[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3111113[0]),
+ (VTBL_ENTRY)&_ZN9GG31111133fooEv,
+ (VTBL_ENTRY)&_ZN9GG31111133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3111113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31111133fooEv,_ZTv0_n20_N9GG31111133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3111113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31111133fooEv,_ZTv0_n12_N9GG31111133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31111133barEv,_ZTv0_n16_N9GG31111133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3111113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31111133fooEv,_ZTv0_n12_N9GG31111133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3111113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31111133fooEv,_ZTv0_n20_N9GG31111133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3111113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31111133fooEv,_ZTv0_n12_N9GG31111133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3111113[];
+extern void _ZN5EE3113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE311__9GG3111113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&_ZN5EE3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE311__9GG3111113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE311__9GG3111113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG3111113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG3111113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG3111113[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG3111113[] = {
+ {&(_ZTV9GG3111113[7]), 7,35},
+ {&(_ZTV9GG3111113[14]), 14,35},
+ {&(_ZTV9GG3111113[19]), 19,35},
+ {&(_ZTV9GG3111113[24]), 24,35},
+ {&(_ZTV9GG3111113[30]), 30,35},
+ {&(_ZTV9GG3111113[34]), 34,35},
+ {&(_tg__ZTV5EE311__9GG3111113[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE311__9GG3111113[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE311__9GG3111113[3]), 3,4},
+ {&(_tg__ZTV5FF111__9GG3111113[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG3111113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG3111113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3111113[];
+extern VTBL_ENTRY _ZTV9GG3111113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3111113[];
+static VTBL_ENTRY alt_thunk_names755[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31111133barEv,_ZTv0_n16_N9GG31111133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31111133barEv,_ZThn16_N9GG31111133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31111133fooEv,_ZTv0_n12_N9GG31111133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31111133fooEv,_ZThn40_N9GG31111133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31111133fooEv,_ZThn24_N9GG31111133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31111133fooEv,_ZThn16_N9GG31111133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31111133fooEv,_ZTv0_n20_N9GG31111133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31111133fooEv,_ZThn32_N9GG31111133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31111133fooEv,_ZThn8_N9GG31111133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3111113 = { "GG3111113", // class name
+ bases_GG3111113, 5,
+ &(vtc_GG3111113[0]), // expected_vtbl_contents
+ &(vtt_GG3111113[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3111113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3111113),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3111113),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names755,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3111123 : virtual EE311 , virtual FF112 {
+ int pg;
+ virtual void foo(); // _ZN9GG31111233fooEv
+ virtual void bar(); // _ZN9GG31111233barEv
+ ~GG3111123(); // tgen
+ GG3111123(); // tgen
+};
+//SIG(1 GG3111123) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG3111123 ::foo(){vfunc_called(this, "_ZN9GG31111233fooEv");}
+void GG3111123 ::bar(){vfunc_called(this, "_ZN9GG31111233barEv");}
+GG3111123 ::~GG3111123(){ note_dtor("GG3111123", this);} // tgen
+GG3111123 ::GG3111123(){ note_ctor("GG3111123", this);} // tgen
+
+static void Test_GG3111123()
+{
+ extern Class_Descriptor cd_GG3111123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3111123, buf);
+ GG3111123 *dp, &lv = *(dp=new (buf) GG3111123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3111123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3111123)");
+ check_base_class_offset(lv, (AA3*)(EE311*), ABISELECT(32,16), "GG3111123");
+ check_base_class_offset(lv, (BB1*)(EE311*), ABISELECT(48,24), "GG3111123");
+ check_base_class_offset(lv, (BB1*)(FF112*), ABISELECT(48,24), "GG3111123");
+ check_base_class_offset(lv, (EE311*), ABISELECT(16,8), "GG3111123");
+ check_base_class_offset(lv, (AA1*)(FF112*), ABISELECT(80,40), "GG3111123");
+ check_base_class_offset(lv, (FF112*), ABISELECT(64,32), "GG3111123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3111123.pg");
+ test_class_info(&lv, &cd_GG3111123);
+ dp->~GG3111123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3111123(Test_GG3111123, "GG3111123", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3111123C1Ev();
+extern void _ZN9GG3111123D1Ev();
+Name_Map name_map_GG3111123[] = {
+ NSPAIR(_ZN9GG3111123C1Ev),
+ NSPAIR(_ZN9GG3111123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE311;
+extern VTBL_ENTRY _ZTI5EE311[];
+extern VTBL_ENTRY _ZTV5EE311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE311[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF112;
+extern VTBL_ENTRY _ZTI5FF112[];
+extern VTBL_ENTRY _ZTV5FF112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF112[];
+static Base_Class bases_GG3111123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE311, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF112, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3111123[];
+extern void _ZN9GG31111233fooEv();
+extern void _ZN9GG31111233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31111233fooEv,_ZTv0_n20_N9GG31111233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31111233fooEv,_ZThn8_N9GG31111233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31111233fooEv,_ZTv0_n12_N9GG31111233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31111233fooEv,_ZThn16_N9GG31111233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31111233barEv,_ZTv0_n16_N9GG31111233barEv)();
+extern void ABISELECT(_ZThn32_N9GG31111233barEv,_ZThn16_N9GG31111233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31111233fooEv,_ZTv0_n12_N9GG31111233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31111233fooEv,_ZThn24_N9GG31111233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31111233barEv,_ZTv0_n20_N9GG31111233barEv)();
+extern void ABISELECT(_ZThn64_N9GG31111233barEv,_ZThn32_N9GG31111233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31111233fooEv,_ZTv0_n12_N9GG31111233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG31111233fooEv,_ZThn40_N9GG31111233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3111123[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3111123[0]),
+ (VTBL_ENTRY)&_ZN9GG31111233fooEv,
+ (VTBL_ENTRY)&_ZN9GG31111233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3111123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31111233fooEv,_ZTv0_n20_N9GG31111233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3111123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31111233fooEv,_ZTv0_n12_N9GG31111233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31111233barEv,_ZTv0_n16_N9GG31111233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3111123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31111233fooEv,_ZTv0_n12_N9GG31111233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3111123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31111233barEv,_ZTv0_n20_N9GG31111233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3111123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31111233fooEv,_ZTv0_n12_N9GG31111233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3111123[];
+extern void _ZN5EE3113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE311__9GG3111123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&_ZN5EE3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE311__9GG3111123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE311__9GG3111123[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+};
+extern void _ZN5FF1123barEv();
+static VTBL_ENTRY _tg__ZTV5FF112__9GG3111123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN5FF1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF112__9GG3111123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF112__9GG3111123[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG3111123[] = {
+ {&(_ZTV9GG3111123[7]), 7,35},
+ {&(_ZTV9GG3111123[14]), 14,35},
+ {&(_ZTV9GG3111123[19]), 19,35},
+ {&(_ZTV9GG3111123[24]), 24,35},
+ {&(_ZTV9GG3111123[30]), 30,35},
+ {&(_ZTV9GG3111123[34]), 34,35},
+ {&(_tg__ZTV5EE311__9GG3111123[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE311__9GG3111123[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE311__9GG3111123[3]), 3,4},
+ {&(_tg__ZTV5FF112__9GG3111123[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF112__9GG3111123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF112__9GG3111123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3111123[];
+extern VTBL_ENTRY _ZTV9GG3111123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3111123[];
+static VTBL_ENTRY alt_thunk_names756[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31111233barEv,_ZTv0_n20_N9GG31111233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31111233barEv,_ZThn32_N9GG31111233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31111233barEv,_ZTv0_n16_N9GG31111233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31111233barEv,_ZThn16_N9GG31111233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31111233fooEv,_ZTv0_n12_N9GG31111233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31111233fooEv,_ZThn40_N9GG31111233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31111233fooEv,_ZThn24_N9GG31111233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31111233fooEv,_ZThn16_N9GG31111233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31111233fooEv,_ZTv0_n20_N9GG31111233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31111233fooEv,_ZThn8_N9GG31111233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3111123 = { "GG3111123", // class name
+ bases_GG3111123, 5,
+ &(vtc_GG3111123[0]), // expected_vtbl_contents
+ &(vtt_GG3111123[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3111123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3111123),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3111123),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names756,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3111133 : virtual EE311 , virtual FF113 {
+ int pg;
+ virtual void foo(); // _ZN9GG31111333fooEv
+ virtual void bar(); // _ZN9GG31111333barEv
+ ~GG3111133(); // tgen
+ GG3111133(); // tgen
+};
+//SIG(1 GG3111133) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3111133 ::foo(){vfunc_called(this, "_ZN9GG31111333fooEv");}
+void GG3111133 ::bar(){vfunc_called(this, "_ZN9GG31111333barEv");}
+GG3111133 ::~GG3111133(){ note_dtor("GG3111133", this);} // tgen
+GG3111133 ::GG3111133(){ note_ctor("GG3111133", this);} // tgen
+
+static void Test_GG3111133()
+{
+ extern Class_Descriptor cd_GG3111133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3111133, buf);
+ GG3111133 *dp, &lv = *(dp=new (buf) GG3111133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3111133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3111133)");
+ check_base_class_offset(lv, (AA3*)(EE311*), ABISELECT(32,16), "GG3111133");
+ check_base_class_offset(lv, (BB1*)(EE311*), ABISELECT(48,24), "GG3111133");
+ check_base_class_offset(lv, (BB1*)(FF113*), ABISELECT(48,24), "GG3111133");
+ check_base_class_offset(lv, (EE311*), ABISELECT(16,8), "GG3111133");
+ check_base_class_offset(lv, (AA1*)(FF113*), ABISELECT(80,40), "GG3111133");
+ check_base_class_offset(lv, (FF113*), ABISELECT(64,32), "GG3111133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3111133.pg");
+ test_class_info(&lv, &cd_GG3111133);
+ dp->~GG3111133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3111133(Test_GG3111133, "GG3111133", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3111133C1Ev();
+extern void _ZN9GG3111133D1Ev();
+Name_Map name_map_GG3111133[] = {
+ NSPAIR(_ZN9GG3111133C1Ev),
+ NSPAIR(_ZN9GG3111133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE311;
+extern VTBL_ENTRY _ZTI5EE311[];
+extern VTBL_ENTRY _ZTV5EE311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE311[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF113;
+extern VTBL_ENTRY _ZTI5FF113[];
+extern VTBL_ENTRY _ZTV5FF113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF113[];
+static Base_Class bases_GG3111133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE311, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF113, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3111133[];
+extern void _ZN9GG31111333fooEv();
+extern void _ZN9GG31111333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31111333fooEv,_ZTv0_n20_N9GG31111333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31111333fooEv,_ZThn8_N9GG31111333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31111333fooEv,_ZTv0_n12_N9GG31111333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31111333fooEv,_ZThn16_N9GG31111333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31111333barEv,_ZTv0_n16_N9GG31111333barEv)();
+extern void ABISELECT(_ZThn32_N9GG31111333barEv,_ZThn16_N9GG31111333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31111333fooEv,_ZTv0_n12_N9GG31111333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31111333fooEv,_ZThn24_N9GG31111333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31111333fooEv,_ZTv0_n20_N9GG31111333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31111333fooEv,_ZThn32_N9GG31111333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31111333barEv,_ZTv0_n24_N9GG31111333barEv)();
+extern void ABISELECT(_ZThn64_N9GG31111333barEv,_ZThn32_N9GG31111333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31111333fooEv,_ZTv0_n12_N9GG31111333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG31111333fooEv,_ZThn40_N9GG31111333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3111133[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3111133[0]),
+ (VTBL_ENTRY)&_ZN9GG31111333fooEv,
+ (VTBL_ENTRY)&_ZN9GG31111333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3111133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31111333fooEv,_ZTv0_n20_N9GG31111333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3111133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31111333fooEv,_ZTv0_n12_N9GG31111333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31111333barEv,_ZTv0_n16_N9GG31111333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3111133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31111333fooEv,_ZTv0_n12_N9GG31111333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3111133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31111333fooEv,_ZTv0_n20_N9GG31111333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31111333barEv,_ZTv0_n24_N9GG31111333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3111133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31111333fooEv,_ZTv0_n12_N9GG31111333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3111133[];
+extern void _ZN5EE3113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE311__9GG3111133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&_ZN5EE3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE311__9GG3111133[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE311__9GG3111133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+};
+extern void _ZN5FF1133fooEv();
+extern void _ZN5FF1133barEv();
+static VTBL_ENTRY _tg__ZTV5FF113__9GG3111133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&_ZN5FF1133fooEv,
+ (VTBL_ENTRY)&_ZN5FF1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF113__9GG3111133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF113__9GG3111133[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+static VTT_ENTRY vtt_GG3111133[] = {
+ {&(_ZTV9GG3111133[7]), 7,37},
+ {&(_ZTV9GG3111133[14]), 14,37},
+ {&(_ZTV9GG3111133[19]), 19,37},
+ {&(_ZTV9GG3111133[24]), 24,37},
+ {&(_ZTV9GG3111133[31]), 31,37},
+ {&(_ZTV9GG3111133[36]), 36,37},
+ {&(_tg__ZTV5EE311__9GG3111133[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE311__9GG3111133[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE311__9GG3111133[3]), 3,4},
+ {&(_tg__ZTV5FF113__9GG3111133[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF113__9GG3111133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF113__9GG3111133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3111133[];
+extern VTBL_ENTRY _ZTV9GG3111133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3111133[];
+static VTBL_ENTRY alt_thunk_names757[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG31111333barEv,_ZTv0_n24_N9GG31111333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31111333barEv,_ZThn32_N9GG31111333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31111333barEv,_ZTv0_n16_N9GG31111333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31111333barEv,_ZThn16_N9GG31111333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31111333fooEv,_ZTv0_n12_N9GG31111333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31111333fooEv,_ZThn40_N9GG31111333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31111333fooEv,_ZThn24_N9GG31111333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31111333fooEv,_ZThn16_N9GG31111333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31111333fooEv,_ZTv0_n20_N9GG31111333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31111333fooEv,_ZThn32_N9GG31111333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31111333fooEv,_ZThn8_N9GG31111333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3111133 = { "GG3111133", // class name
+ bases_GG3111133, 5,
+ &(vtc_GG3111133[0]), // expected_vtbl_contents
+ &(vtt_GG3111133[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3111133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3111133),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3111133),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names757,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3111213 : virtual EE311 , virtual FF121 {
+ int pg;
+ virtual void foo(); // _ZN9GG31112133fooEv
+ virtual void bar(); // _ZN9GG31112133barEv
+ ~GG3111213(); // tgen
+ GG3111213(); // tgen
+};
+//SIG(1 GG3111213) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3111213 ::foo(){vfunc_called(this, "_ZN9GG31112133fooEv");}
+void GG3111213 ::bar(){vfunc_called(this, "_ZN9GG31112133barEv");}
+GG3111213 ::~GG3111213(){ note_dtor("GG3111213", this);} // tgen
+GG3111213 ::GG3111213(){ note_ctor("GG3111213", this);} // tgen
+
+static void Test_GG3111213()
+{
+ extern Class_Descriptor cd_GG3111213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3111213, buf);
+ GG3111213 *dp, &lv = *(dp=new (buf) GG3111213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3111213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3111213)");
+ check_base_class_offset(lv, (AA3*)(EE311*), ABISELECT(32,16), "GG3111213");
+ check_base_class_offset(lv, (BB1*)(EE311*), ABISELECT(48,24), "GG3111213");
+ check_base_class_offset(lv, (EE311*), ABISELECT(16,8), "GG3111213");
+ check_base_class_offset(lv, (AA1*)(FF121*), ABISELECT(80,40), "GG3111213");
+ check_base_class_offset(lv, (BB2*)(FF121*), ABISELECT(96,48), "GG3111213");
+ check_base_class_offset(lv, (FF121*), ABISELECT(64,32), "GG3111213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3111213.pg");
+ test_class_info(&lv, &cd_GG3111213);
+ dp->~GG3111213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3111213(Test_GG3111213, "GG3111213", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3111213C1Ev();
+extern void _ZN9GG3111213D1Ev();
+Name_Map name_map_GG3111213[] = {
+ NSPAIR(_ZN9GG3111213C1Ev),
+ NSPAIR(_ZN9GG3111213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE311;
+extern VTBL_ENTRY _ZTI5EE311[];
+extern VTBL_ENTRY _ZTV5EE311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE311[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF121;
+extern VTBL_ENTRY _ZTI5FF121[];
+extern VTBL_ENTRY _ZTV5FF121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF121[];
+static Base_Class bases_GG3111213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE311, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF121, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3111213[];
+extern void _ZN9GG31112133fooEv();
+extern void _ZN9GG31112133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31112133fooEv,_ZTv0_n20_N9GG31112133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31112133fooEv,_ZThn8_N9GG31112133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31112133fooEv,_ZTv0_n12_N9GG31112133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31112133fooEv,_ZThn16_N9GG31112133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31112133barEv,_ZTv0_n16_N9GG31112133barEv)();
+extern void ABISELECT(_ZThn32_N9GG31112133barEv,_ZThn16_N9GG31112133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31112133fooEv,_ZTv0_n12_N9GG31112133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31112133fooEv,_ZThn24_N9GG31112133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31112133fooEv,_ZTv0_n20_N9GG31112133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31112133fooEv,_ZThn32_N9GG31112133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31112133fooEv,_ZTv0_n12_N9GG31112133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG31112133fooEv,_ZThn40_N9GG31112133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31112133barEv,_ZTv0_n12_N9GG31112133barEv)();
+extern void ABISELECT(_ZThn96_N9GG31112133barEv,_ZThn48_N9GG31112133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3111213[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3111213[0]),
+ (VTBL_ENTRY)&_ZN9GG31112133fooEv,
+ (VTBL_ENTRY)&_ZN9GG31112133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3111213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31112133fooEv,_ZTv0_n20_N9GG31112133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3111213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31112133fooEv,_ZTv0_n12_N9GG31112133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31112133barEv,_ZTv0_n16_N9GG31112133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3111213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31112133fooEv,_ZTv0_n12_N9GG31112133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3111213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31112133fooEv,_ZTv0_n20_N9GG31112133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3111213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31112133fooEv,_ZTv0_n12_N9GG31112133fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3111213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31112133barEv,_ZTv0_n12_N9GG31112133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3111213[];
+extern void _ZN5EE3113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE311__9GG3111213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&_ZN5EE3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE311__9GG3111213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE311__9GG3111213[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+};
+extern void _ZN5FF1213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF121__9GG3111213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN5FF1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1213fooEv,_ZThn8_N5FF1213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF121__9GG3111213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF121__9GG3111213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG3111213[] = {
+ {&(_ZTV9GG3111213[8]), 8,40},
+ {&(_ZTV9GG3111213[15]), 15,40},
+ {&(_ZTV9GG3111213[20]), 20,40},
+ {&(_ZTV9GG3111213[25]), 25,40},
+ {&(_ZTV9GG3111213[31]), 31,40},
+ {&(_ZTV9GG3111213[35]), 35,40},
+ {&(_ZTV9GG3111213[39]), 39,40},
+ {&(_tg__ZTV5EE311__9GG3111213[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE311__9GG3111213[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE311__9GG3111213[3]), 3,4},
+ {&(_tg__ZTV5FF121__9GG3111213[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF121__9GG3111213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF121__9GG3111213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3111213[];
+extern VTBL_ENTRY _ZTV9GG3111213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3111213[];
+static VTBL_ENTRY alt_thunk_names758[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1213fooEv,_ZThn8_N5FF1213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31112133barEv,_ZTv0_n12_N9GG31112133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31112133barEv,_ZThn48_N9GG31112133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31112133barEv,_ZTv0_n16_N9GG31112133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31112133barEv,_ZThn16_N9GG31112133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31112133fooEv,_ZTv0_n12_N9GG31112133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31112133fooEv,_ZThn40_N9GG31112133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31112133fooEv,_ZThn24_N9GG31112133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31112133fooEv,_ZThn16_N9GG31112133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31112133fooEv,_ZTv0_n20_N9GG31112133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31112133fooEv,_ZThn32_N9GG31112133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31112133fooEv,_ZThn8_N9GG31112133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3111213 = { "GG3111213", // class name
+ bases_GG3111213, 6,
+ &(vtc_GG3111213[0]), // expected_vtbl_contents
+ &(vtt_GG3111213[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3111213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3111213),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3111213),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names758,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3111223 : virtual EE311 , virtual FF122 {
+ int pg;
+ virtual void foo(); // _ZN9GG31112233fooEv
+ virtual void bar(); // _ZN9GG31112233barEv
+ ~GG3111223(); // tgen
+ GG3111223(); // tgen
+};
+//SIG(1 GG3111223) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3111223 ::foo(){vfunc_called(this, "_ZN9GG31112233fooEv");}
+void GG3111223 ::bar(){vfunc_called(this, "_ZN9GG31112233barEv");}
+GG3111223 ::~GG3111223(){ note_dtor("GG3111223", this);} // tgen
+GG3111223 ::GG3111223(){ note_ctor("GG3111223", this);} // tgen
+
+static void Test_GG3111223()
+{
+ extern Class_Descriptor cd_GG3111223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3111223, buf);
+ GG3111223 *dp, &lv = *(dp=new (buf) GG3111223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3111223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3111223)");
+ check_base_class_offset(lv, (AA3*)(EE311*), ABISELECT(32,16), "GG3111223");
+ check_base_class_offset(lv, (BB1*)(EE311*), ABISELECT(48,24), "GG3111223");
+ check_base_class_offset(lv, (EE311*), ABISELECT(16,8), "GG3111223");
+ check_base_class_offset(lv, (AA1*)(FF122*), ABISELECT(80,40), "GG3111223");
+ check_base_class_offset(lv, (BB2*)(FF122*), ABISELECT(96,48), "GG3111223");
+ check_base_class_offset(lv, (FF122*), ABISELECT(64,32), "GG3111223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3111223.pg");
+ test_class_info(&lv, &cd_GG3111223);
+ dp->~GG3111223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3111223(Test_GG3111223, "GG3111223", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3111223C1Ev();
+extern void _ZN9GG3111223D1Ev();
+Name_Map name_map_GG3111223[] = {
+ NSPAIR(_ZN9GG3111223C1Ev),
+ NSPAIR(_ZN9GG3111223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE311;
+extern VTBL_ENTRY _ZTI5EE311[];
+extern VTBL_ENTRY _ZTV5EE311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE311[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF122;
+extern VTBL_ENTRY _ZTI5FF122[];
+extern VTBL_ENTRY _ZTV5FF122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF122[];
+static Base_Class bases_GG3111223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE311, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF122, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3111223[];
+extern void _ZN9GG31112233fooEv();
+extern void _ZN9GG31112233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31112233fooEv,_ZTv0_n20_N9GG31112233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31112233fooEv,_ZThn8_N9GG31112233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31112233fooEv,_ZTv0_n12_N9GG31112233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31112233fooEv,_ZThn16_N9GG31112233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31112233barEv,_ZTv0_n16_N9GG31112233barEv)();
+extern void ABISELECT(_ZThn32_N9GG31112233barEv,_ZThn16_N9GG31112233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31112233fooEv,_ZTv0_n12_N9GG31112233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31112233fooEv,_ZThn24_N9GG31112233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31112233barEv,_ZTv0_n20_N9GG31112233barEv)();
+extern void ABISELECT(_ZThn64_N9GG31112233barEv,_ZThn32_N9GG31112233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31112233fooEv,_ZTv0_n12_N9GG31112233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG31112233fooEv,_ZThn40_N9GG31112233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31112233barEv,_ZTv0_n12_N9GG31112233barEv)();
+extern void ABISELECT(_ZThn96_N9GG31112233barEv,_ZThn48_N9GG31112233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3111223[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3111223[0]),
+ (VTBL_ENTRY)&_ZN9GG31112233fooEv,
+ (VTBL_ENTRY)&_ZN9GG31112233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3111223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31112233fooEv,_ZTv0_n20_N9GG31112233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3111223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31112233fooEv,_ZTv0_n12_N9GG31112233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31112233barEv,_ZTv0_n16_N9GG31112233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3111223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31112233fooEv,_ZTv0_n12_N9GG31112233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3111223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31112233barEv,_ZTv0_n20_N9GG31112233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3111223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31112233fooEv,_ZTv0_n12_N9GG31112233fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3111223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31112233barEv,_ZTv0_n12_N9GG31112233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3111223[];
+extern void _ZN5EE3113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE311__9GG3111223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&_ZN5EE3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE311__9GG3111223[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE311__9GG3111223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+};
+extern void _ZN5FF1223barEv();
+static VTBL_ENTRY _tg__ZTV5FF122__9GG3111223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN5FF1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF122__9GG3111223[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv)();
+extern void ABISELECT(_ZThn32_N5FF1223barEv,_ZThn16_N5FF1223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF122__9GG3111223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv),
+};
+static VTT_ENTRY vtt_GG3111223[] = {
+ {&(_ZTV9GG3111223[8]), 8,40},
+ {&(_ZTV9GG3111223[15]), 15,40},
+ {&(_ZTV9GG3111223[20]), 20,40},
+ {&(_ZTV9GG3111223[25]), 25,40},
+ {&(_ZTV9GG3111223[31]), 31,40},
+ {&(_ZTV9GG3111223[35]), 35,40},
+ {&(_ZTV9GG3111223[39]), 39,40},
+ {&(_tg__ZTV5EE311__9GG3111223[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE311__9GG3111223[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE311__9GG3111223[3]), 3,4},
+ {&(_tg__ZTV5FF122__9GG3111223[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF122__9GG3111223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF122__9GG3111223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3111223[];
+extern VTBL_ENTRY _ZTV9GG3111223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3111223[];
+static VTBL_ENTRY alt_thunk_names759[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1223barEv,_ZThn16_N5FF1223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31112233barEv,_ZTv0_n12_N9GG31112233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31112233barEv,_ZThn48_N9GG31112233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31112233barEv,_ZTv0_n20_N9GG31112233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31112233barEv,_ZThn32_N9GG31112233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31112233barEv,_ZTv0_n16_N9GG31112233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31112233barEv,_ZThn16_N9GG31112233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31112233fooEv,_ZTv0_n12_N9GG31112233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31112233fooEv,_ZThn40_N9GG31112233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31112233fooEv,_ZThn24_N9GG31112233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31112233fooEv,_ZThn16_N9GG31112233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31112233fooEv,_ZTv0_n20_N9GG31112233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31112233fooEv,_ZThn8_N9GG31112233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3111223 = { "GG3111223", // class name
+ bases_GG3111223, 6,
+ &(vtc_GG3111223[0]), // expected_vtbl_contents
+ &(vtt_GG3111223[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3111223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3111223),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3111223),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names759,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3111233 : virtual EE311 , virtual FF123 {
+ int pg;
+ virtual void foo(); // _ZN9GG31112333fooEv
+ virtual void bar(); // _ZN9GG31112333barEv
+ ~GG3111233(); // tgen
+ GG3111233(); // tgen
+};
+//SIG(1 GG3111233) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3111233 ::foo(){vfunc_called(this, "_ZN9GG31112333fooEv");}
+void GG3111233 ::bar(){vfunc_called(this, "_ZN9GG31112333barEv");}
+GG3111233 ::~GG3111233(){ note_dtor("GG3111233", this);} // tgen
+GG3111233 ::GG3111233(){ note_ctor("GG3111233", this);} // tgen
+
+static void Test_GG3111233()
+{
+ extern Class_Descriptor cd_GG3111233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3111233, buf);
+ GG3111233 *dp, &lv = *(dp=new (buf) GG3111233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3111233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3111233)");
+ check_base_class_offset(lv, (AA3*)(EE311*), ABISELECT(32,16), "GG3111233");
+ check_base_class_offset(lv, (BB1*)(EE311*), ABISELECT(48,24), "GG3111233");
+ check_base_class_offset(lv, (EE311*), ABISELECT(16,8), "GG3111233");
+ check_base_class_offset(lv, (AA1*)(FF123*), ABISELECT(80,40), "GG3111233");
+ check_base_class_offset(lv, (BB2*)(FF123*), ABISELECT(96,48), "GG3111233");
+ check_base_class_offset(lv, (FF123*), ABISELECT(64,32), "GG3111233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3111233.pg");
+ test_class_info(&lv, &cd_GG3111233);
+ dp->~GG3111233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3111233(Test_GG3111233, "GG3111233", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3111233C1Ev();
+extern void _ZN9GG3111233D1Ev();
+Name_Map name_map_GG3111233[] = {
+ NSPAIR(_ZN9GG3111233C1Ev),
+ NSPAIR(_ZN9GG3111233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE311;
+extern VTBL_ENTRY _ZTI5EE311[];
+extern VTBL_ENTRY _ZTV5EE311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE311[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF123;
+extern VTBL_ENTRY _ZTI5FF123[];
+extern VTBL_ENTRY _ZTV5FF123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF123[];
+static Base_Class bases_GG3111233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE311, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF123, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3111233[];
+extern void _ZN9GG31112333fooEv();
+extern void _ZN9GG31112333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31112333fooEv,_ZTv0_n20_N9GG31112333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31112333fooEv,_ZThn8_N9GG31112333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31112333fooEv,_ZTv0_n12_N9GG31112333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31112333fooEv,_ZThn16_N9GG31112333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31112333barEv,_ZTv0_n16_N9GG31112333barEv)();
+extern void ABISELECT(_ZThn32_N9GG31112333barEv,_ZThn16_N9GG31112333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31112333fooEv,_ZTv0_n12_N9GG31112333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31112333fooEv,_ZThn24_N9GG31112333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31112333fooEv,_ZTv0_n20_N9GG31112333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31112333fooEv,_ZThn32_N9GG31112333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31112333barEv,_ZTv0_n24_N9GG31112333barEv)();
+extern void ABISELECT(_ZThn64_N9GG31112333barEv,_ZThn32_N9GG31112333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31112333fooEv,_ZTv0_n12_N9GG31112333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG31112333fooEv,_ZThn40_N9GG31112333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31112333barEv,_ZTv0_n12_N9GG31112333barEv)();
+extern void ABISELECT(_ZThn96_N9GG31112333barEv,_ZThn48_N9GG31112333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3111233[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3111233[0]),
+ (VTBL_ENTRY)&_ZN9GG31112333fooEv,
+ (VTBL_ENTRY)&_ZN9GG31112333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3111233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31112333fooEv,_ZTv0_n20_N9GG31112333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3111233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31112333fooEv,_ZTv0_n12_N9GG31112333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31112333barEv,_ZTv0_n16_N9GG31112333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3111233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31112333fooEv,_ZTv0_n12_N9GG31112333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3111233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31112333fooEv,_ZTv0_n20_N9GG31112333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31112333barEv,_ZTv0_n24_N9GG31112333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3111233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31112333fooEv,_ZTv0_n12_N9GG31112333fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3111233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31112333barEv,_ZTv0_n12_N9GG31112333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3111233[];
+extern void _ZN5EE3113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE311__9GG3111233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&_ZN5EE3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE311__9GG3111233[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE311__9GG3111233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+};
+extern void _ZN5FF1233fooEv();
+extern void _ZN5FF1233barEv();
+static VTBL_ENTRY _tg__ZTV5FF123__9GG3111233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&_ZN5FF1233fooEv,
+ (VTBL_ENTRY)&_ZN5FF1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1233fooEv,_ZThn8_N5FF1233fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF123__9GG3111233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv)();
+extern void ABISELECT(_ZThn32_N5FF1233barEv,_ZThn16_N5FF1233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF123__9GG3111233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv),
+};
+static VTT_ENTRY vtt_GG3111233[] = {
+ {&(_ZTV9GG3111233[8]), 8,42},
+ {&(_ZTV9GG3111233[15]), 15,42},
+ {&(_ZTV9GG3111233[20]), 20,42},
+ {&(_ZTV9GG3111233[25]), 25,42},
+ {&(_ZTV9GG3111233[32]), 32,42},
+ {&(_ZTV9GG3111233[37]), 37,42},
+ {&(_ZTV9GG3111233[41]), 41,42},
+ {&(_tg__ZTV5EE311__9GG3111233[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE311__9GG3111233[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE311__9GG3111233[3]), 3,4},
+ {&(_tg__ZTV5FF123__9GG3111233[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF123__9GG3111233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF123__9GG3111233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3111233[];
+extern VTBL_ENTRY _ZTV9GG3111233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3111233[];
+static VTBL_ENTRY alt_thunk_names760[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1233barEv,_ZThn16_N5FF1233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1233fooEv,_ZThn8_N5FF1233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31112333barEv,_ZTv0_n12_N9GG31112333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31112333barEv,_ZThn48_N9GG31112333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG31112333barEv,_ZTv0_n24_N9GG31112333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31112333barEv,_ZThn32_N9GG31112333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31112333barEv,_ZTv0_n16_N9GG31112333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31112333barEv,_ZThn16_N9GG31112333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31112333fooEv,_ZTv0_n12_N9GG31112333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31112333fooEv,_ZThn40_N9GG31112333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31112333fooEv,_ZThn24_N9GG31112333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31112333fooEv,_ZThn16_N9GG31112333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31112333fooEv,_ZTv0_n20_N9GG31112333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31112333fooEv,_ZThn32_N9GG31112333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31112333fooEv,_ZThn8_N9GG31112333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3111233 = { "GG3111233", // class name
+ bases_GG3111233, 6,
+ &(vtc_GG3111233[0]), // expected_vtbl_contents
+ &(vtt_GG3111233[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3111233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3111233),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3111233),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names760,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3111313 : virtual EE311 , virtual FF131 {
+ int pg;
+ virtual void foo(); // _ZN9GG31113133fooEv
+ virtual void bar(); // _ZN9GG31113133barEv
+ ~GG3111313(); // tgen
+ GG3111313(); // tgen
+};
+//SIG(1 GG3111313) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3111313 ::foo(){vfunc_called(this, "_ZN9GG31113133fooEv");}
+void GG3111313 ::bar(){vfunc_called(this, "_ZN9GG31113133barEv");}
+GG3111313 ::~GG3111313(){ note_dtor("GG3111313", this);} // tgen
+GG3111313 ::GG3111313(){ note_ctor("GG3111313", this);} // tgen
+
+static void Test_GG3111313()
+{
+ extern Class_Descriptor cd_GG3111313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3111313, buf);
+ GG3111313 *dp, &lv = *(dp=new (buf) GG3111313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3111313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3111313)");
+ check_base_class_offset(lv, (AA3*)(EE311*), ABISELECT(32,16), "GG3111313");
+ check_base_class_offset(lv, (BB1*)(EE311*), ABISELECT(48,24), "GG3111313");
+ check_base_class_offset(lv, (EE311*), ABISELECT(16,8), "GG3111313");
+ check_base_class_offset(lv, (AA1*)(FF131*), ABISELECT(80,40), "GG3111313");
+ check_base_class_offset(lv, (BB3*)(FF131*), ABISELECT(96,48), "GG3111313");
+ check_base_class_offset(lv, (FF131*), ABISELECT(64,32), "GG3111313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3111313.pg");
+ test_class_info(&lv, &cd_GG3111313);
+ dp->~GG3111313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3111313(Test_GG3111313, "GG3111313", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3111313C1Ev();
+extern void _ZN9GG3111313D1Ev();
+Name_Map name_map_GG3111313[] = {
+ NSPAIR(_ZN9GG3111313C1Ev),
+ NSPAIR(_ZN9GG3111313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE311;
+extern VTBL_ENTRY _ZTI5EE311[];
+extern VTBL_ENTRY _ZTV5EE311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE311[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF131;
+extern VTBL_ENTRY _ZTI5FF131[];
+extern VTBL_ENTRY _ZTV5FF131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF131[];
+static Base_Class bases_GG3111313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE311, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF131, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3111313[];
+extern void _ZN9GG31113133fooEv();
+extern void _ZN9GG31113133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31113133fooEv,_ZTv0_n20_N9GG31113133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31113133fooEv,_ZThn8_N9GG31113133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31113133fooEv,_ZTv0_n12_N9GG31113133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31113133fooEv,_ZThn16_N9GG31113133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31113133barEv,_ZTv0_n16_N9GG31113133barEv)();
+extern void ABISELECT(_ZThn32_N9GG31113133barEv,_ZThn16_N9GG31113133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31113133fooEv,_ZTv0_n12_N9GG31113133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31113133fooEv,_ZThn24_N9GG31113133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31113133fooEv,_ZTv0_n20_N9GG31113133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31113133fooEv,_ZThn32_N9GG31113133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31113133fooEv,_ZTv0_n12_N9GG31113133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG31113133fooEv,_ZThn40_N9GG31113133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31113133fooEv,_ZTv0_n12_N9GG31113133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG31113133fooEv,_ZThn48_N9GG31113133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31113133barEv,_ZTv0_n16_N9GG31113133barEv)();
+extern void ABISELECT(_ZThn96_N9GG31113133barEv,_ZThn48_N9GG31113133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3111313[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3111313[0]),
+ (VTBL_ENTRY)&_ZN9GG31113133fooEv,
+ (VTBL_ENTRY)&_ZN9GG31113133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3111313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31113133fooEv,_ZTv0_n20_N9GG31113133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3111313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31113133fooEv,_ZTv0_n12_N9GG31113133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31113133barEv,_ZTv0_n16_N9GG31113133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3111313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31113133fooEv,_ZTv0_n12_N9GG31113133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3111313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31113133fooEv,_ZTv0_n20_N9GG31113133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3111313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31113133fooEv,_ZTv0_n12_N9GG31113133fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3111313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31113133fooEv,_ZTv0_n12_N9GG31113133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31113133barEv,_ZTv0_n16_N9GG31113133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3111313[];
+extern void _ZN5EE3113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE311__9GG3111313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&_ZN5EE3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE311__9GG3111313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE311__9GG3111313[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+};
+extern void _ZN5FF1313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF131__9GG3111313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&_ZN5FF1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF131__9GG3111313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1313fooEv,_ZThn16_N5FF1313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF131__9GG3111313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG3111313[] = {
+ {&(_ZTV9GG3111313[8]), 8,42},
+ {&(_ZTV9GG3111313[15]), 15,42},
+ {&(_ZTV9GG3111313[20]), 20,42},
+ {&(_ZTV9GG3111313[25]), 25,42},
+ {&(_ZTV9GG3111313[31]), 31,42},
+ {&(_ZTV9GG3111313[35]), 35,42},
+ {&(_ZTV9GG3111313[40]), 40,42},
+ {&(_tg__ZTV5EE311__9GG3111313[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE311__9GG3111313[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE311__9GG3111313[3]), 3,4},
+ {&(_tg__ZTV5FF131__9GG3111313[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF131__9GG3111313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF131__9GG3111313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3111313[];
+extern VTBL_ENTRY _ZTV9GG3111313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3111313[];
+static VTBL_ENTRY alt_thunk_names761[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1313fooEv,_ZThn16_N5FF1313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31113133barEv,_ZTv0_n16_N9GG31113133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31113133barEv,_ZThn48_N9GG31113133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31113133barEv,_ZThn16_N9GG31113133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31113133fooEv,_ZTv0_n12_N9GG31113133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31113133fooEv,_ZThn48_N9GG31113133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31113133fooEv,_ZThn40_N9GG31113133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31113133fooEv,_ZThn24_N9GG31113133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31113133fooEv,_ZThn16_N9GG31113133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31113133fooEv,_ZTv0_n20_N9GG31113133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31113133fooEv,_ZThn32_N9GG31113133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31113133fooEv,_ZThn8_N9GG31113133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3111313 = { "GG3111313", // class name
+ bases_GG3111313, 6,
+ &(vtc_GG3111313[0]), // expected_vtbl_contents
+ &(vtt_GG3111313[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3111313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3111313),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3111313),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names761,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3111323 : virtual EE311 , virtual FF132 {
+ int pg;
+ virtual void foo(); // _ZN9GG31113233fooEv
+ virtual void bar(); // _ZN9GG31113233barEv
+ ~GG3111323(); // tgen
+ GG3111323(); // tgen
+};
+//SIG(1 GG3111323) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3111323 ::foo(){vfunc_called(this, "_ZN9GG31113233fooEv");}
+void GG3111323 ::bar(){vfunc_called(this, "_ZN9GG31113233barEv");}
+GG3111323 ::~GG3111323(){ note_dtor("GG3111323", this);} // tgen
+GG3111323 ::GG3111323(){ note_ctor("GG3111323", this);} // tgen
+
+static void Test_GG3111323()
+{
+ extern Class_Descriptor cd_GG3111323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3111323, buf);
+ GG3111323 *dp, &lv = *(dp=new (buf) GG3111323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3111323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3111323)");
+ check_base_class_offset(lv, (AA3*)(EE311*), ABISELECT(32,16), "GG3111323");
+ check_base_class_offset(lv, (BB1*)(EE311*), ABISELECT(48,24), "GG3111323");
+ check_base_class_offset(lv, (EE311*), ABISELECT(16,8), "GG3111323");
+ check_base_class_offset(lv, (AA1*)(FF132*), ABISELECT(80,40), "GG3111323");
+ check_base_class_offset(lv, (BB3*)(FF132*), ABISELECT(96,48), "GG3111323");
+ check_base_class_offset(lv, (FF132*), ABISELECT(64,32), "GG3111323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3111323.pg");
+ test_class_info(&lv, &cd_GG3111323);
+ dp->~GG3111323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3111323(Test_GG3111323, "GG3111323", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3111323C1Ev();
+extern void _ZN9GG3111323D1Ev();
+Name_Map name_map_GG3111323[] = {
+ NSPAIR(_ZN9GG3111323C1Ev),
+ NSPAIR(_ZN9GG3111323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE311;
+extern VTBL_ENTRY _ZTI5EE311[];
+extern VTBL_ENTRY _ZTV5EE311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE311[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF132;
+extern VTBL_ENTRY _ZTI5FF132[];
+extern VTBL_ENTRY _ZTV5FF132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF132[];
+static Base_Class bases_GG3111323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE311, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF132, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3111323[];
+extern void _ZN9GG31113233fooEv();
+extern void _ZN9GG31113233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31113233fooEv,_ZTv0_n20_N9GG31113233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31113233fooEv,_ZThn8_N9GG31113233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31113233fooEv,_ZTv0_n12_N9GG31113233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31113233fooEv,_ZThn16_N9GG31113233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31113233barEv,_ZTv0_n16_N9GG31113233barEv)();
+extern void ABISELECT(_ZThn32_N9GG31113233barEv,_ZThn16_N9GG31113233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31113233fooEv,_ZTv0_n12_N9GG31113233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31113233fooEv,_ZThn24_N9GG31113233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31113233barEv,_ZTv0_n20_N9GG31113233barEv)();
+extern void ABISELECT(_ZThn64_N9GG31113233barEv,_ZThn32_N9GG31113233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31113233fooEv,_ZTv0_n12_N9GG31113233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG31113233fooEv,_ZThn40_N9GG31113233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31113233fooEv,_ZTv0_n12_N9GG31113233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG31113233fooEv,_ZThn48_N9GG31113233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31113233barEv,_ZTv0_n16_N9GG31113233barEv)();
+extern void ABISELECT(_ZThn96_N9GG31113233barEv,_ZThn48_N9GG31113233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3111323[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3111323[0]),
+ (VTBL_ENTRY)&_ZN9GG31113233fooEv,
+ (VTBL_ENTRY)&_ZN9GG31113233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3111323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31113233fooEv,_ZTv0_n20_N9GG31113233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3111323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31113233fooEv,_ZTv0_n12_N9GG31113233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31113233barEv,_ZTv0_n16_N9GG31113233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3111323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31113233fooEv,_ZTv0_n12_N9GG31113233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3111323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31113233barEv,_ZTv0_n20_N9GG31113233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3111323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31113233fooEv,_ZTv0_n12_N9GG31113233fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3111323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31113233fooEv,_ZTv0_n12_N9GG31113233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31113233barEv,_ZTv0_n16_N9GG31113233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3111323[];
+extern void _ZN5EE3113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE311__9GG3111323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&_ZN5EE3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE311__9GG3111323[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE311__9GG3111323[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+};
+extern void _ZN5FF1323barEv();
+static VTBL_ENTRY _tg__ZTV5FF132__9GG3111323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN5FF1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF132__9GG3111323[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv)();
+extern void ABISELECT(_ZThn32_N5FF1323barEv,_ZThn16_N5FF1323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF132__9GG3111323[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv),
+};
+static VTT_ENTRY vtt_GG3111323[] = {
+ {&(_ZTV9GG3111323[8]), 8,42},
+ {&(_ZTV9GG3111323[15]), 15,42},
+ {&(_ZTV9GG3111323[20]), 20,42},
+ {&(_ZTV9GG3111323[25]), 25,42},
+ {&(_ZTV9GG3111323[31]), 31,42},
+ {&(_ZTV9GG3111323[35]), 35,42},
+ {&(_ZTV9GG3111323[40]), 40,42},
+ {&(_tg__ZTV5EE311__9GG3111323[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE311__9GG3111323[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE311__9GG3111323[3]), 3,4},
+ {&(_tg__ZTV5FF132__9GG3111323[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF132__9GG3111323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF132__9GG3111323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3111323[];
+extern VTBL_ENTRY _ZTV9GG3111323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3111323[];
+static VTBL_ENTRY alt_thunk_names762[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1323barEv,_ZThn16_N5FF1323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31113233barEv,_ZTv0_n20_N9GG31113233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31113233barEv,_ZThn32_N9GG31113233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31113233barEv,_ZTv0_n16_N9GG31113233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31113233barEv,_ZThn48_N9GG31113233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31113233barEv,_ZThn16_N9GG31113233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31113233fooEv,_ZTv0_n12_N9GG31113233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31113233fooEv,_ZThn48_N9GG31113233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31113233fooEv,_ZThn40_N9GG31113233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31113233fooEv,_ZThn24_N9GG31113233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31113233fooEv,_ZThn16_N9GG31113233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31113233fooEv,_ZTv0_n20_N9GG31113233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31113233fooEv,_ZThn8_N9GG31113233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3111323 = { "GG3111323", // class name
+ bases_GG3111323, 6,
+ &(vtc_GG3111323[0]), // expected_vtbl_contents
+ &(vtt_GG3111323[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3111323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3111323),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3111323),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names762,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3111333 : virtual EE311 , virtual FF133 {
+ int pg;
+ virtual void foo(); // _ZN9GG31113333fooEv
+ virtual void bar(); // _ZN9GG31113333barEv
+ ~GG3111333(); // tgen
+ GG3111333(); // tgen
+};
+//SIG(1 GG3111333) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3111333 ::foo(){vfunc_called(this, "_ZN9GG31113333fooEv");}
+void GG3111333 ::bar(){vfunc_called(this, "_ZN9GG31113333barEv");}
+GG3111333 ::~GG3111333(){ note_dtor("GG3111333", this);} // tgen
+GG3111333 ::GG3111333(){ note_ctor("GG3111333", this);} // tgen
+
+static void Test_GG3111333()
+{
+ extern Class_Descriptor cd_GG3111333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3111333, buf);
+ GG3111333 *dp, &lv = *(dp=new (buf) GG3111333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3111333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3111333)");
+ check_base_class_offset(lv, (AA3*)(EE311*), ABISELECT(32,16), "GG3111333");
+ check_base_class_offset(lv, (BB1*)(EE311*), ABISELECT(48,24), "GG3111333");
+ check_base_class_offset(lv, (EE311*), ABISELECT(16,8), "GG3111333");
+ check_base_class_offset(lv, (AA1*)(FF133*), ABISELECT(80,40), "GG3111333");
+ check_base_class_offset(lv, (BB3*)(FF133*), ABISELECT(96,48), "GG3111333");
+ check_base_class_offset(lv, (FF133*), ABISELECT(64,32), "GG3111333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3111333.pg");
+ test_class_info(&lv, &cd_GG3111333);
+ dp->~GG3111333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3111333(Test_GG3111333, "GG3111333", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3111333C1Ev();
+extern void _ZN9GG3111333D1Ev();
+Name_Map name_map_GG3111333[] = {
+ NSPAIR(_ZN9GG3111333C1Ev),
+ NSPAIR(_ZN9GG3111333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE311;
+extern VTBL_ENTRY _ZTI5EE311[];
+extern VTBL_ENTRY _ZTV5EE311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE311[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF133;
+extern VTBL_ENTRY _ZTI5FF133[];
+extern VTBL_ENTRY _ZTV5FF133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF133[];
+static Base_Class bases_GG3111333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE311, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF133, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3111333[];
+extern void _ZN9GG31113333fooEv();
+extern void _ZN9GG31113333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31113333fooEv,_ZTv0_n20_N9GG31113333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31113333fooEv,_ZThn8_N9GG31113333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31113333fooEv,_ZTv0_n12_N9GG31113333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31113333fooEv,_ZThn16_N9GG31113333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31113333barEv,_ZTv0_n16_N9GG31113333barEv)();
+extern void ABISELECT(_ZThn32_N9GG31113333barEv,_ZThn16_N9GG31113333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31113333fooEv,_ZTv0_n12_N9GG31113333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31113333fooEv,_ZThn24_N9GG31113333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31113333fooEv,_ZTv0_n20_N9GG31113333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31113333fooEv,_ZThn32_N9GG31113333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31113333barEv,_ZTv0_n24_N9GG31113333barEv)();
+extern void ABISELECT(_ZThn64_N9GG31113333barEv,_ZThn32_N9GG31113333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31113333fooEv,_ZTv0_n12_N9GG31113333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG31113333fooEv,_ZThn40_N9GG31113333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31113333fooEv,_ZTv0_n12_N9GG31113333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG31113333fooEv,_ZThn48_N9GG31113333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31113333barEv,_ZTv0_n16_N9GG31113333barEv)();
+extern void ABISELECT(_ZThn96_N9GG31113333barEv,_ZThn48_N9GG31113333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3111333[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3111333[0]),
+ (VTBL_ENTRY)&_ZN9GG31113333fooEv,
+ (VTBL_ENTRY)&_ZN9GG31113333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3111333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31113333fooEv,_ZTv0_n20_N9GG31113333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3111333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31113333fooEv,_ZTv0_n12_N9GG31113333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31113333barEv,_ZTv0_n16_N9GG31113333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3111333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31113333fooEv,_ZTv0_n12_N9GG31113333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3111333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31113333fooEv,_ZTv0_n20_N9GG31113333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31113333barEv,_ZTv0_n24_N9GG31113333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3111333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31113333fooEv,_ZTv0_n12_N9GG31113333fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3111333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31113333fooEv,_ZTv0_n12_N9GG31113333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31113333barEv,_ZTv0_n16_N9GG31113333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3111333[];
+extern void _ZN5EE3113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE311__9GG3111333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&_ZN5EE3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE311__9GG3111333[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE311__9GG3111333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+};
+extern void _ZN5FF1333fooEv();
+extern void _ZN5FF1333barEv();
+static VTBL_ENTRY _tg__ZTV5FF133__9GG3111333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&_ZN5FF1333fooEv,
+ (VTBL_ENTRY)&_ZN5FF1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF133__9GG3111333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1333fooEv,_ZThn16_N5FF1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv)();
+extern void ABISELECT(_ZThn32_N5FF1333barEv,_ZThn16_N5FF1333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF133__9GG3111333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv),
+};
+static VTT_ENTRY vtt_GG3111333[] = {
+ {&(_ZTV9GG3111333[8]), 8,44},
+ {&(_ZTV9GG3111333[15]), 15,44},
+ {&(_ZTV9GG3111333[20]), 20,44},
+ {&(_ZTV9GG3111333[25]), 25,44},
+ {&(_ZTV9GG3111333[32]), 32,44},
+ {&(_ZTV9GG3111333[37]), 37,44},
+ {&(_ZTV9GG3111333[42]), 42,44},
+ {&(_tg__ZTV5EE311__9GG3111333[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE311__9GG3111333[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE311__9GG3111333[3]), 3,4},
+ {&(_tg__ZTV5FF133__9GG3111333[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF133__9GG3111333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF133__9GG3111333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3111333[];
+extern VTBL_ENTRY _ZTV9GG3111333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3111333[];
+static VTBL_ENTRY alt_thunk_names763[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1333barEv,_ZThn16_N5FF1333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1333fooEv,_ZThn16_N5FF1333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG31113333barEv,_ZTv0_n24_N9GG31113333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31113333barEv,_ZThn32_N9GG31113333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31113333barEv,_ZTv0_n16_N9GG31113333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31113333barEv,_ZThn48_N9GG31113333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31113333barEv,_ZThn16_N9GG31113333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31113333fooEv,_ZTv0_n12_N9GG31113333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31113333fooEv,_ZThn48_N9GG31113333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31113333fooEv,_ZThn40_N9GG31113333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31113333fooEv,_ZThn24_N9GG31113333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31113333fooEv,_ZThn16_N9GG31113333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31113333fooEv,_ZTv0_n20_N9GG31113333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31113333fooEv,_ZThn32_N9GG31113333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31113333fooEv,_ZThn8_N9GG31113333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3111333 = { "GG3111333", // class name
+ bases_GG3111333, 6,
+ &(vtc_GG3111333[0]), // expected_vtbl_contents
+ &(vtt_GG3111333[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3111333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3111333),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3111333),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names763,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3112113 : virtual EE311 , virtual FF211 {
+ int pg;
+ virtual void foo(); // _ZN9GG31121133fooEv
+ virtual void bar(); // _ZN9GG31121133barEv
+ ~GG3112113(); // tgen
+ GG3112113(); // tgen
+};
+//SIG(1 GG3112113) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG3112113 ::foo(){vfunc_called(this, "_ZN9GG31121133fooEv");}
+void GG3112113 ::bar(){vfunc_called(this, "_ZN9GG31121133barEv");}
+GG3112113 ::~GG3112113(){ note_dtor("GG3112113", this);} // tgen
+GG3112113 ::GG3112113(){ note_ctor("GG3112113", this);} // tgen
+
+static void Test_GG3112113()
+{
+ extern Class_Descriptor cd_GG3112113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3112113, buf);
+ GG3112113 *dp, &lv = *(dp=new (buf) GG3112113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3112113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3112113)");
+ check_base_class_offset(lv, (AA3*)(EE311*), ABISELECT(32,16), "GG3112113");
+ check_base_class_offset(lv, (BB1*)(EE311*), ABISELECT(48,24), "GG3112113");
+ check_base_class_offset(lv, (BB1*)(FF211*), ABISELECT(48,24), "GG3112113");
+ check_base_class_offset(lv, (EE311*), ABISELECT(16,8), "GG3112113");
+ check_base_class_offset(lv, (AA2*)(FF211*), ABISELECT(80,40), "GG3112113");
+ check_base_class_offset(lv, (FF211*), ABISELECT(64,32), "GG3112113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3112113.pg");
+ test_class_info(&lv, &cd_GG3112113);
+ dp->~GG3112113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3112113(Test_GG3112113, "GG3112113", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3112113C1Ev();
+extern void _ZN9GG3112113D1Ev();
+Name_Map name_map_GG3112113[] = {
+ NSPAIR(_ZN9GG3112113C1Ev),
+ NSPAIR(_ZN9GG3112113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE311;
+extern VTBL_ENTRY _ZTI5EE311[];
+extern VTBL_ENTRY _ZTV5EE311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE311[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF211;
+extern VTBL_ENTRY _ZTI5FF211[];
+extern VTBL_ENTRY _ZTV5FF211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF211[];
+static Base_Class bases_GG3112113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE311, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF211, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3112113[];
+extern void _ZN9GG31121133fooEv();
+extern void _ZN9GG31121133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31121133fooEv,_ZTv0_n20_N9GG31121133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31121133fooEv,_ZThn8_N9GG31121133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31121133fooEv,_ZTv0_n12_N9GG31121133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31121133fooEv,_ZThn16_N9GG31121133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31121133barEv,_ZTv0_n16_N9GG31121133barEv)();
+extern void ABISELECT(_ZThn32_N9GG31121133barEv,_ZThn16_N9GG31121133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31121133fooEv,_ZTv0_n12_N9GG31121133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31121133fooEv,_ZThn24_N9GG31121133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31121133fooEv,_ZTv0_n20_N9GG31121133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31121133fooEv,_ZThn32_N9GG31121133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31121133barEv,_ZTv0_n12_N9GG31121133barEv)();
+extern void ABISELECT(_ZThn80_N9GG31121133barEv,_ZThn40_N9GG31121133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3112113[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3112113[0]),
+ (VTBL_ENTRY)&_ZN9GG31121133fooEv,
+ (VTBL_ENTRY)&_ZN9GG31121133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3112113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31121133fooEv,_ZTv0_n20_N9GG31121133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3112113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31121133fooEv,_ZTv0_n12_N9GG31121133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31121133barEv,_ZTv0_n16_N9GG31121133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3112113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31121133fooEv,_ZTv0_n12_N9GG31121133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3112113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31121133fooEv,_ZTv0_n20_N9GG31121133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3112113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31121133barEv,_ZTv0_n12_N9GG31121133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3112113[];
+extern void _ZN5EE3113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE311__9GG3112113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&_ZN5EE3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE311__9GG3112113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE311__9GG3112113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+};
+extern void _ZN5FF2113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF211__9GG3112113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN5FF2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF211__9GG3112113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF211__9GG3112113[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv),
+};
+static VTT_ENTRY vtt_GG3112113[] = {
+ {&(_ZTV9GG3112113[7]), 7,35},
+ {&(_ZTV9GG3112113[14]), 14,35},
+ {&(_ZTV9GG3112113[19]), 19,35},
+ {&(_ZTV9GG3112113[24]), 24,35},
+ {&(_ZTV9GG3112113[30]), 30,35},
+ {&(_ZTV9GG3112113[34]), 34,35},
+ {&(_tg__ZTV5EE311__9GG3112113[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE311__9GG3112113[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE311__9GG3112113[3]), 3,4},
+ {&(_tg__ZTV5FF211__9GG3112113[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF211__9GG3112113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF211__9GG3112113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3112113[];
+extern VTBL_ENTRY _ZTV9GG3112113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3112113[];
+static VTBL_ENTRY alt_thunk_names764[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31121133barEv,_ZTv0_n12_N9GG31121133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31121133barEv,_ZThn40_N9GG31121133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31121133barEv,_ZTv0_n16_N9GG31121133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31121133barEv,_ZThn16_N9GG31121133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31121133fooEv,_ZTv0_n12_N9GG31121133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31121133fooEv,_ZThn24_N9GG31121133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31121133fooEv,_ZThn16_N9GG31121133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31121133fooEv,_ZTv0_n20_N9GG31121133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31121133fooEv,_ZThn32_N9GG31121133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31121133fooEv,_ZThn8_N9GG31121133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3112113 = { "GG3112113", // class name
+ bases_GG3112113, 5,
+ &(vtc_GG3112113[0]), // expected_vtbl_contents
+ &(vtt_GG3112113[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3112113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3112113),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3112113),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names764,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3112123 : virtual EE311 , virtual FF212 {
+ int pg;
+ virtual void foo(); // _ZN9GG31121233fooEv
+ virtual void bar(); // _ZN9GG31121233barEv
+ ~GG3112123(); // tgen
+ GG3112123(); // tgen
+};
+//SIG(1 GG3112123) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG3112123 ::foo(){vfunc_called(this, "_ZN9GG31121233fooEv");}
+void GG3112123 ::bar(){vfunc_called(this, "_ZN9GG31121233barEv");}
+GG3112123 ::~GG3112123(){ note_dtor("GG3112123", this);} // tgen
+GG3112123 ::GG3112123(){ note_ctor("GG3112123", this);} // tgen
+
+static void Test_GG3112123()
+{
+ extern Class_Descriptor cd_GG3112123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3112123, buf);
+ GG3112123 *dp, &lv = *(dp=new (buf) GG3112123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3112123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3112123)");
+ check_base_class_offset(lv, (AA3*)(EE311*), ABISELECT(32,16), "GG3112123");
+ check_base_class_offset(lv, (BB1*)(EE311*), ABISELECT(48,24), "GG3112123");
+ check_base_class_offset(lv, (BB1*)(FF212*), ABISELECT(48,24), "GG3112123");
+ check_base_class_offset(lv, (EE311*), ABISELECT(16,8), "GG3112123");
+ check_base_class_offset(lv, (AA2*)(FF212*), ABISELECT(80,40), "GG3112123");
+ check_base_class_offset(lv, (FF212*), ABISELECT(64,32), "GG3112123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3112123.pg");
+ test_class_info(&lv, &cd_GG3112123);
+ dp->~GG3112123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3112123(Test_GG3112123, "GG3112123", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3112123C1Ev();
+extern void _ZN9GG3112123D1Ev();
+Name_Map name_map_GG3112123[] = {
+ NSPAIR(_ZN9GG3112123C1Ev),
+ NSPAIR(_ZN9GG3112123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE311;
+extern VTBL_ENTRY _ZTI5EE311[];
+extern VTBL_ENTRY _ZTV5EE311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE311[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF212;
+extern VTBL_ENTRY _ZTI5FF212[];
+extern VTBL_ENTRY _ZTV5FF212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF212[];
+static Base_Class bases_GG3112123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE311, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF212, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3112123[];
+extern void _ZN9GG31121233fooEv();
+extern void _ZN9GG31121233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31121233fooEv,_ZTv0_n20_N9GG31121233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31121233fooEv,_ZThn8_N9GG31121233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31121233fooEv,_ZTv0_n12_N9GG31121233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31121233fooEv,_ZThn16_N9GG31121233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31121233barEv,_ZTv0_n16_N9GG31121233barEv)();
+extern void ABISELECT(_ZThn32_N9GG31121233barEv,_ZThn16_N9GG31121233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31121233fooEv,_ZTv0_n12_N9GG31121233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31121233fooEv,_ZThn24_N9GG31121233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31121233barEv,_ZTv0_n20_N9GG31121233barEv)();
+extern void ABISELECT(_ZThn64_N9GG31121233barEv,_ZThn32_N9GG31121233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31121233barEv,_ZTv0_n12_N9GG31121233barEv)();
+extern void ABISELECT(_ZThn80_N9GG31121233barEv,_ZThn40_N9GG31121233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3112123[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3112123[0]),
+ (VTBL_ENTRY)&_ZN9GG31121233fooEv,
+ (VTBL_ENTRY)&_ZN9GG31121233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3112123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31121233fooEv,_ZTv0_n20_N9GG31121233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3112123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31121233fooEv,_ZTv0_n12_N9GG31121233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31121233barEv,_ZTv0_n16_N9GG31121233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3112123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31121233fooEv,_ZTv0_n12_N9GG31121233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3112123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31121233barEv,_ZTv0_n20_N9GG31121233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3112123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31121233barEv,_ZTv0_n12_N9GG31121233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3112123[];
+extern void _ZN5EE3113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE311__9GG3112123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&_ZN5EE3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE311__9GG3112123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE311__9GG3112123[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+};
+extern void _ZN5FF2123barEv();
+static VTBL_ENTRY _tg__ZTV5FF212__9GG3112123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN5FF2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv)();
+extern void ABISELECT(_ZThn16_N5FF2123barEv,_ZThn8_N5FF2123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF212__9GG3112123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF212__9GG3112123[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG3112123[] = {
+ {&(_ZTV9GG3112123[7]), 7,35},
+ {&(_ZTV9GG3112123[14]), 14,35},
+ {&(_ZTV9GG3112123[19]), 19,35},
+ {&(_ZTV9GG3112123[24]), 24,35},
+ {&(_ZTV9GG3112123[30]), 30,35},
+ {&(_ZTV9GG3112123[34]), 34,35},
+ {&(_tg__ZTV5EE311__9GG3112123[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE311__9GG3112123[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE311__9GG3112123[3]), 3,4},
+ {&(_tg__ZTV5FF212__9GG3112123[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF212__9GG3112123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF212__9GG3112123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3112123[];
+extern VTBL_ENTRY _ZTV9GG3112123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3112123[];
+static VTBL_ENTRY alt_thunk_names765[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2123barEv,_ZThn8_N5FF2123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31121233barEv,_ZTv0_n12_N9GG31121233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31121233barEv,_ZThn40_N9GG31121233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31121233barEv,_ZTv0_n20_N9GG31121233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31121233barEv,_ZThn32_N9GG31121233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31121233barEv,_ZTv0_n16_N9GG31121233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31121233barEv,_ZThn16_N9GG31121233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31121233fooEv,_ZTv0_n12_N9GG31121233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31121233fooEv,_ZThn24_N9GG31121233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31121233fooEv,_ZThn16_N9GG31121233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31121233fooEv,_ZTv0_n20_N9GG31121233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31121233fooEv,_ZThn8_N9GG31121233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3112123 = { "GG3112123", // class name
+ bases_GG3112123, 5,
+ &(vtc_GG3112123[0]), // expected_vtbl_contents
+ &(vtt_GG3112123[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3112123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3112123),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3112123),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names765,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3112133 : virtual EE311 , virtual FF213 {
+ int pg;
+ virtual void foo(); // _ZN9GG31121333fooEv
+ virtual void bar(); // _ZN9GG31121333barEv
+ ~GG3112133(); // tgen
+ GG3112133(); // tgen
+};
+//SIG(1 GG3112133) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3112133 ::foo(){vfunc_called(this, "_ZN9GG31121333fooEv");}
+void GG3112133 ::bar(){vfunc_called(this, "_ZN9GG31121333barEv");}
+GG3112133 ::~GG3112133(){ note_dtor("GG3112133", this);} // tgen
+GG3112133 ::GG3112133(){ note_ctor("GG3112133", this);} // tgen
+
+static void Test_GG3112133()
+{
+ extern Class_Descriptor cd_GG3112133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3112133, buf);
+ GG3112133 *dp, &lv = *(dp=new (buf) GG3112133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3112133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3112133)");
+ check_base_class_offset(lv, (AA3*)(EE311*), ABISELECT(32,16), "GG3112133");
+ check_base_class_offset(lv, (BB1*)(EE311*), ABISELECT(48,24), "GG3112133");
+ check_base_class_offset(lv, (BB1*)(FF213*), ABISELECT(48,24), "GG3112133");
+ check_base_class_offset(lv, (EE311*), ABISELECT(16,8), "GG3112133");
+ check_base_class_offset(lv, (AA2*)(FF213*), ABISELECT(80,40), "GG3112133");
+ check_base_class_offset(lv, (FF213*), ABISELECT(64,32), "GG3112133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3112133.pg");
+ test_class_info(&lv, &cd_GG3112133);
+ dp->~GG3112133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3112133(Test_GG3112133, "GG3112133", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3112133C1Ev();
+extern void _ZN9GG3112133D1Ev();
+Name_Map name_map_GG3112133[] = {
+ NSPAIR(_ZN9GG3112133C1Ev),
+ NSPAIR(_ZN9GG3112133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE311;
+extern VTBL_ENTRY _ZTI5EE311[];
+extern VTBL_ENTRY _ZTV5EE311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE311[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF213;
+extern VTBL_ENTRY _ZTI5FF213[];
+extern VTBL_ENTRY _ZTV5FF213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF213[];
+static Base_Class bases_GG3112133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE311, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF213, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3112133[];
+extern void _ZN9GG31121333fooEv();
+extern void _ZN9GG31121333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31121333fooEv,_ZTv0_n20_N9GG31121333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31121333fooEv,_ZThn8_N9GG31121333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31121333fooEv,_ZTv0_n12_N9GG31121333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31121333fooEv,_ZThn16_N9GG31121333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31121333barEv,_ZTv0_n16_N9GG31121333barEv)();
+extern void ABISELECT(_ZThn32_N9GG31121333barEv,_ZThn16_N9GG31121333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31121333fooEv,_ZTv0_n12_N9GG31121333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31121333fooEv,_ZThn24_N9GG31121333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31121333fooEv,_ZTv0_n20_N9GG31121333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31121333fooEv,_ZThn32_N9GG31121333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31121333barEv,_ZTv0_n24_N9GG31121333barEv)();
+extern void ABISELECT(_ZThn64_N9GG31121333barEv,_ZThn32_N9GG31121333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31121333barEv,_ZTv0_n12_N9GG31121333barEv)();
+extern void ABISELECT(_ZThn80_N9GG31121333barEv,_ZThn40_N9GG31121333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3112133[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3112133[0]),
+ (VTBL_ENTRY)&_ZN9GG31121333fooEv,
+ (VTBL_ENTRY)&_ZN9GG31121333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3112133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31121333fooEv,_ZTv0_n20_N9GG31121333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3112133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31121333fooEv,_ZTv0_n12_N9GG31121333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31121333barEv,_ZTv0_n16_N9GG31121333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3112133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31121333fooEv,_ZTv0_n12_N9GG31121333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3112133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31121333fooEv,_ZTv0_n20_N9GG31121333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31121333barEv,_ZTv0_n24_N9GG31121333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3112133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31121333barEv,_ZTv0_n12_N9GG31121333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3112133[];
+extern void _ZN5EE3113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE311__9GG3112133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&_ZN5EE3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE311__9GG3112133[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE311__9GG3112133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+};
+extern void _ZN5FF2133fooEv();
+extern void _ZN5FF2133barEv();
+static VTBL_ENTRY _tg__ZTV5FF213__9GG3112133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&_ZN5FF2133fooEv,
+ (VTBL_ENTRY)&_ZN5FF2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv)();
+extern void ABISELECT(_ZThn16_N5FF2133barEv,_ZThn8_N5FF2133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF213__9GG3112133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF213__9GG3112133[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv),
+};
+static VTT_ENTRY vtt_GG3112133[] = {
+ {&(_ZTV9GG3112133[7]), 7,37},
+ {&(_ZTV9GG3112133[14]), 14,37},
+ {&(_ZTV9GG3112133[19]), 19,37},
+ {&(_ZTV9GG3112133[24]), 24,37},
+ {&(_ZTV9GG3112133[31]), 31,37},
+ {&(_ZTV9GG3112133[36]), 36,37},
+ {&(_tg__ZTV5EE311__9GG3112133[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE311__9GG3112133[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE311__9GG3112133[3]), 3,4},
+ {&(_tg__ZTV5FF213__9GG3112133[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF213__9GG3112133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF213__9GG3112133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3112133[];
+extern VTBL_ENTRY _ZTV9GG3112133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3112133[];
+static VTBL_ENTRY alt_thunk_names766[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2133barEv,_ZThn8_N5FF2133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31121333barEv,_ZTv0_n12_N9GG31121333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31121333barEv,_ZThn40_N9GG31121333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG31121333barEv,_ZTv0_n24_N9GG31121333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31121333barEv,_ZThn32_N9GG31121333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31121333barEv,_ZTv0_n16_N9GG31121333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31121333barEv,_ZThn16_N9GG31121333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31121333fooEv,_ZTv0_n12_N9GG31121333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31121333fooEv,_ZThn24_N9GG31121333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31121333fooEv,_ZThn16_N9GG31121333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31121333fooEv,_ZTv0_n20_N9GG31121333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31121333fooEv,_ZThn32_N9GG31121333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31121333fooEv,_ZThn8_N9GG31121333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3112133 = { "GG3112133", // class name
+ bases_GG3112133, 5,
+ &(vtc_GG3112133[0]), // expected_vtbl_contents
+ &(vtt_GG3112133[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3112133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3112133),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3112133),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names766,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3112213 : virtual EE311 , virtual FF221 {
+ int pg;
+ virtual void foo(); // _ZN9GG31122133fooEv
+ virtual void bar(); // _ZN9GG31122133barEv
+ ~GG3112213(); // tgen
+ GG3112213(); // tgen
+};
+//SIG(1 GG3112213) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3112213 ::foo(){vfunc_called(this, "_ZN9GG31122133fooEv");}
+void GG3112213 ::bar(){vfunc_called(this, "_ZN9GG31122133barEv");}
+GG3112213 ::~GG3112213(){ note_dtor("GG3112213", this);} // tgen
+GG3112213 ::GG3112213(){ note_ctor("GG3112213", this);} // tgen
+
+static void Test_GG3112213()
+{
+ extern Class_Descriptor cd_GG3112213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3112213, buf);
+ GG3112213 *dp, &lv = *(dp=new (buf) GG3112213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3112213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3112213)");
+ check_base_class_offset(lv, (AA3*)(EE311*), ABISELECT(32,16), "GG3112213");
+ check_base_class_offset(lv, (BB1*)(EE311*), ABISELECT(48,24), "GG3112213");
+ check_base_class_offset(lv, (EE311*), ABISELECT(16,8), "GG3112213");
+ check_base_class_offset(lv, (AA2*)(FF221*), ABISELECT(80,40), "GG3112213");
+ check_base_class_offset(lv, (BB2*)(FF221*), ABISELECT(96,48), "GG3112213");
+ check_base_class_offset(lv, (FF221*), ABISELECT(64,32), "GG3112213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3112213.pg");
+ test_class_info(&lv, &cd_GG3112213);
+ dp->~GG3112213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3112213(Test_GG3112213, "GG3112213", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3112213C1Ev();
+extern void _ZN9GG3112213D1Ev();
+Name_Map name_map_GG3112213[] = {
+ NSPAIR(_ZN9GG3112213C1Ev),
+ NSPAIR(_ZN9GG3112213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE311;
+extern VTBL_ENTRY _ZTI5EE311[];
+extern VTBL_ENTRY _ZTV5EE311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE311[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF221;
+extern VTBL_ENTRY _ZTI5FF221[];
+extern VTBL_ENTRY _ZTV5FF221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF221[];
+static Base_Class bases_GG3112213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE311, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF221, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3112213[];
+extern void _ZN9GG31122133fooEv();
+extern void _ZN9GG31122133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31122133fooEv,_ZTv0_n20_N9GG31122133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31122133fooEv,_ZThn8_N9GG31122133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31122133fooEv,_ZTv0_n12_N9GG31122133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31122133fooEv,_ZThn16_N9GG31122133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31122133barEv,_ZTv0_n16_N9GG31122133barEv)();
+extern void ABISELECT(_ZThn32_N9GG31122133barEv,_ZThn16_N9GG31122133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31122133fooEv,_ZTv0_n12_N9GG31122133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31122133fooEv,_ZThn24_N9GG31122133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31122133fooEv,_ZTv0_n20_N9GG31122133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31122133fooEv,_ZThn32_N9GG31122133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31122133barEv,_ZTv0_n12_N9GG31122133barEv)();
+extern void ABISELECT(_ZThn80_N9GG31122133barEv,_ZThn40_N9GG31122133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31122133barEv,_ZTv0_n12_N9GG31122133barEv)();
+extern void ABISELECT(_ZThn96_N9GG31122133barEv,_ZThn48_N9GG31122133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3112213[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3112213[0]),
+ (VTBL_ENTRY)&_ZN9GG31122133fooEv,
+ (VTBL_ENTRY)&_ZN9GG31122133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3112213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31122133fooEv,_ZTv0_n20_N9GG31122133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3112213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31122133fooEv,_ZTv0_n12_N9GG31122133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31122133barEv,_ZTv0_n16_N9GG31122133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3112213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31122133fooEv,_ZTv0_n12_N9GG31122133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3112213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31122133fooEv,_ZTv0_n20_N9GG31122133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3112213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31122133barEv,_ZTv0_n12_N9GG31122133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3112213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31122133barEv,_ZTv0_n12_N9GG31122133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3112213[];
+extern void _ZN5EE3113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE311__9GG3112213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&_ZN5EE3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE311__9GG3112213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE311__9GG3112213[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+};
+extern void _ZN5FF2213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF221__9GG3112213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN5FF2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF221__9GG3112213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF221__9GG3112213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG3112213[] = {
+ {&(_ZTV9GG3112213[8]), 8,40},
+ {&(_ZTV9GG3112213[15]), 15,40},
+ {&(_ZTV9GG3112213[20]), 20,40},
+ {&(_ZTV9GG3112213[25]), 25,40},
+ {&(_ZTV9GG3112213[31]), 31,40},
+ {&(_ZTV9GG3112213[35]), 35,40},
+ {&(_ZTV9GG3112213[39]), 39,40},
+ {&(_tg__ZTV5EE311__9GG3112213[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE311__9GG3112213[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE311__9GG3112213[3]), 3,4},
+ {&(_tg__ZTV5FF221__9GG3112213[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF221__9GG3112213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF221__9GG3112213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3112213[];
+extern VTBL_ENTRY _ZTV9GG3112213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3112213[];
+static VTBL_ENTRY alt_thunk_names767[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31122133barEv,_ZTv0_n12_N9GG31122133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31122133barEv,_ZThn48_N9GG31122133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31122133barEv,_ZThn40_N9GG31122133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31122133barEv,_ZTv0_n16_N9GG31122133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31122133barEv,_ZThn16_N9GG31122133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31122133fooEv,_ZTv0_n12_N9GG31122133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31122133fooEv,_ZThn24_N9GG31122133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31122133fooEv,_ZThn16_N9GG31122133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31122133fooEv,_ZTv0_n20_N9GG31122133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31122133fooEv,_ZThn32_N9GG31122133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31122133fooEv,_ZThn8_N9GG31122133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3112213 = { "GG3112213", // class name
+ bases_GG3112213, 6,
+ &(vtc_GG3112213[0]), // expected_vtbl_contents
+ &(vtt_GG3112213[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3112213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3112213),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3112213),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names767,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3112222 : virtual EE311 , virtual FF222 {
+ int pg;
+ virtual void bar(); // _ZN9GG31122223barEv
+ ~GG3112222(); // tgen
+ GG3112222(); // tgen
+};
+//SIG(1 GG3112222) C1{ VBC2{ VBC3{ v2 v1 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+void GG3112222 ::bar(){vfunc_called(this, "_ZN9GG31122223barEv");}
+GG3112222 ::~GG3112222(){ note_dtor("GG3112222", this);} // tgen
+GG3112222 ::GG3112222(){ note_ctor("GG3112222", this);} // tgen
+
+static void Test_GG3112222()
+{
+ extern Class_Descriptor cd_GG3112222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3112222, buf);
+ GG3112222 *dp, &lv = *(dp=new (buf) GG3112222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3112222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3112222)");
+ check_base_class_offset(lv, (AA3*)(EE311*), ABISELECT(32,16), "GG3112222");
+ check_base_class_offset(lv, (BB1*)(EE311*), ABISELECT(48,24), "GG3112222");
+ check_base_class_offset(lv, (EE311*), ABISELECT(16,8), "GG3112222");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(80,40), "GG3112222");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(96,48), "GG3112222");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG3112222");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3112222.pg");
+ test_class_info(&lv, &cd_GG3112222);
+ dp->~GG3112222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3112222(Test_GG3112222, "GG3112222", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3112222C1Ev();
+extern void _ZN9GG3112222D1Ev();
+Name_Map name_map_GG3112222[] = {
+ NSPAIR(_ZN9GG3112222C1Ev),
+ NSPAIR(_ZN9GG3112222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE311;
+extern VTBL_ENTRY _ZTI5EE311[];
+extern VTBL_ENTRY _ZTV5EE311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE311[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG3112222[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE311, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3112222[];
+extern void _ZN9GG31122223barEv();
+extern void _ZN5EE3113fooEv();
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31122223barEv,_ZTv0_n16_N9GG31122223barEv)();
+extern void ABISELECT(_ZThn32_N9GG31122223barEv,_ZThn16_N9GG31122223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31122223barEv,_ZTv0_n20_N9GG31122223barEv)();
+extern void ABISELECT(_ZThn64_N9GG31122223barEv,_ZThn32_N9GG31122223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31122223barEv,_ZTv0_n12_N9GG31122223barEv)();
+extern void ABISELECT(_ZThn80_N9GG31122223barEv,_ZThn40_N9GG31122223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31122223barEv,_ZTv0_n12_N9GG31122223barEv)();
+extern void ABISELECT(_ZThn96_N9GG31122223barEv,_ZThn48_N9GG31122223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3112222[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3112222[0]),
+ (VTBL_ENTRY)&_ZN9GG31122223barEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3112222[0]),
+ (VTBL_ENTRY)&_ZN5EE3113fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3112222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31122223barEv,_ZTv0_n16_N9GG31122223barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3112222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3112222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31122223barEv,_ZTv0_n20_N9GG31122223barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3112222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31122223barEv,_ZTv0_n12_N9GG31122223barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3112222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31122223barEv,_ZTv0_n12_N9GG31122223barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3112222[];
+extern void _ZN5EE3113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE311__9GG3112222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&_ZN5EE3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE311__9GG3112222[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE311__9GG3112222[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG3112222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG3112222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG3112222[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG3112222[] = {
+ {&(_ZTV9GG3112222[8]), 8,39},
+ {&(_ZTV9GG3112222[14]), 14,39},
+ {&(_ZTV9GG3112222[19]), 19,39},
+ {&(_ZTV9GG3112222[24]), 24,39},
+ {&(_ZTV9GG3112222[30]), 30,39},
+ {&(_ZTV9GG3112222[34]), 34,39},
+ {&(_ZTV9GG3112222[38]), 38,39},
+ {&(_tg__ZTV5EE311__9GG3112222[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE311__9GG3112222[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE311__9GG3112222[3]), 3,4},
+ {&(_tg__ZTV5FF222__9GG3112222[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG3112222[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG3112222[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3112222[];
+extern VTBL_ENTRY _ZTV9GG3112222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3112222[];
+static VTBL_ENTRY alt_thunk_names768[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31122223barEv,_ZTv0_n12_N9GG31122223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31122223barEv,_ZThn48_N9GG31122223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31122223barEv,_ZThn40_N9GG31122223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31122223barEv,_ZTv0_n20_N9GG31122223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31122223barEv,_ZThn32_N9GG31122223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31122223barEv,_ZTv0_n16_N9GG31122223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31122223barEv,_ZThn16_N9GG31122223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3112222 = { "GG3112222", // class name
+ bases_GG3112222, 6,
+ &(vtc_GG3112222[0]), // expected_vtbl_contents
+ &(vtt_GG3112222[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3112222),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3112222),39, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3112222),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names768,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3112223 : virtual EE311 , virtual FF222 {
+ int pg;
+ virtual void foo(); // _ZN9GG31122233fooEv
+ virtual void bar(); // _ZN9GG31122233barEv
+ ~GG3112223(); // tgen
+ GG3112223(); // tgen
+};
+//SIG(1 GG3112223) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3112223 ::foo(){vfunc_called(this, "_ZN9GG31122233fooEv");}
+void GG3112223 ::bar(){vfunc_called(this, "_ZN9GG31122233barEv");}
+GG3112223 ::~GG3112223(){ note_dtor("GG3112223", this);} // tgen
+GG3112223 ::GG3112223(){ note_ctor("GG3112223", this);} // tgen
+
+static void Test_GG3112223()
+{
+ extern Class_Descriptor cd_GG3112223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3112223, buf);
+ GG3112223 *dp, &lv = *(dp=new (buf) GG3112223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3112223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3112223)");
+ check_base_class_offset(lv, (AA3*)(EE311*), ABISELECT(32,16), "GG3112223");
+ check_base_class_offset(lv, (BB1*)(EE311*), ABISELECT(48,24), "GG3112223");
+ check_base_class_offset(lv, (EE311*), ABISELECT(16,8), "GG3112223");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(80,40), "GG3112223");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(96,48), "GG3112223");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG3112223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3112223.pg");
+ test_class_info(&lv, &cd_GG3112223);
+ dp->~GG3112223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3112223(Test_GG3112223, "GG3112223", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3112223C1Ev();
+extern void _ZN9GG3112223D1Ev();
+Name_Map name_map_GG3112223[] = {
+ NSPAIR(_ZN9GG3112223C1Ev),
+ NSPAIR(_ZN9GG3112223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE311;
+extern VTBL_ENTRY _ZTI5EE311[];
+extern VTBL_ENTRY _ZTV5EE311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE311[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG3112223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE311, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3112223[];
+extern void _ZN9GG31122233fooEv();
+extern void _ZN9GG31122233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31122233fooEv,_ZTv0_n20_N9GG31122233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31122233fooEv,_ZThn8_N9GG31122233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31122233fooEv,_ZTv0_n12_N9GG31122233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31122233fooEv,_ZThn16_N9GG31122233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31122233barEv,_ZTv0_n16_N9GG31122233barEv)();
+extern void ABISELECT(_ZThn32_N9GG31122233barEv,_ZThn16_N9GG31122233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31122233fooEv,_ZTv0_n12_N9GG31122233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31122233fooEv,_ZThn24_N9GG31122233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31122233barEv,_ZTv0_n20_N9GG31122233barEv)();
+extern void ABISELECT(_ZThn64_N9GG31122233barEv,_ZThn32_N9GG31122233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31122233barEv,_ZTv0_n12_N9GG31122233barEv)();
+extern void ABISELECT(_ZThn80_N9GG31122233barEv,_ZThn40_N9GG31122233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31122233barEv,_ZTv0_n12_N9GG31122233barEv)();
+extern void ABISELECT(_ZThn96_N9GG31122233barEv,_ZThn48_N9GG31122233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3112223[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3112223[0]),
+ (VTBL_ENTRY)&_ZN9GG31122233fooEv,
+ (VTBL_ENTRY)&_ZN9GG31122233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3112223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31122233fooEv,_ZTv0_n20_N9GG31122233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3112223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31122233fooEv,_ZTv0_n12_N9GG31122233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31122233barEv,_ZTv0_n16_N9GG31122233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3112223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31122233fooEv,_ZTv0_n12_N9GG31122233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3112223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31122233barEv,_ZTv0_n20_N9GG31122233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3112223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31122233barEv,_ZTv0_n12_N9GG31122233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3112223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31122233barEv,_ZTv0_n12_N9GG31122233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3112223[];
+extern void _ZN5EE3113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE311__9GG3112223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&_ZN5EE3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE311__9GG3112223[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE311__9GG3112223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG3112223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG3112223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG3112223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG3112223[] = {
+ {&(_ZTV9GG3112223[8]), 8,40},
+ {&(_ZTV9GG3112223[15]), 15,40},
+ {&(_ZTV9GG3112223[20]), 20,40},
+ {&(_ZTV9GG3112223[25]), 25,40},
+ {&(_ZTV9GG3112223[31]), 31,40},
+ {&(_ZTV9GG3112223[35]), 35,40},
+ {&(_ZTV9GG3112223[39]), 39,40},
+ {&(_tg__ZTV5EE311__9GG3112223[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE311__9GG3112223[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE311__9GG3112223[3]), 3,4},
+ {&(_tg__ZTV5FF222__9GG3112223[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG3112223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG3112223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3112223[];
+extern VTBL_ENTRY _ZTV9GG3112223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3112223[];
+static VTBL_ENTRY alt_thunk_names769[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31122233barEv,_ZTv0_n12_N9GG31122233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31122233barEv,_ZThn48_N9GG31122233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31122233barEv,_ZThn40_N9GG31122233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31122233barEv,_ZTv0_n20_N9GG31122233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31122233barEv,_ZThn32_N9GG31122233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31122233barEv,_ZTv0_n16_N9GG31122233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31122233barEv,_ZThn16_N9GG31122233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31122233fooEv,_ZTv0_n12_N9GG31122233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31122233fooEv,_ZThn24_N9GG31122233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31122233fooEv,_ZThn16_N9GG31122233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31122233fooEv,_ZTv0_n20_N9GG31122233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31122233fooEv,_ZThn8_N9GG31122233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3112223 = { "GG3112223", // class name
+ bases_GG3112223, 6,
+ &(vtc_GG3112223[0]), // expected_vtbl_contents
+ &(vtt_GG3112223[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3112223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3112223),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3112223),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names769,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3112233 : virtual EE311 , virtual FF223 {
+ int pg;
+ virtual void foo(); // _ZN9GG31122333fooEv
+ virtual void bar(); // _ZN9GG31122333barEv
+ ~GG3112233(); // tgen
+ GG3112233(); // tgen
+};
+//SIG(1 GG3112233) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3112233 ::foo(){vfunc_called(this, "_ZN9GG31122333fooEv");}
+void GG3112233 ::bar(){vfunc_called(this, "_ZN9GG31122333barEv");}
+GG3112233 ::~GG3112233(){ note_dtor("GG3112233", this);} // tgen
+GG3112233 ::GG3112233(){ note_ctor("GG3112233", this);} // tgen
+
+static void Test_GG3112233()
+{
+ extern Class_Descriptor cd_GG3112233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3112233, buf);
+ GG3112233 *dp, &lv = *(dp=new (buf) GG3112233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3112233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3112233)");
+ check_base_class_offset(lv, (AA3*)(EE311*), ABISELECT(32,16), "GG3112233");
+ check_base_class_offset(lv, (BB1*)(EE311*), ABISELECT(48,24), "GG3112233");
+ check_base_class_offset(lv, (EE311*), ABISELECT(16,8), "GG3112233");
+ check_base_class_offset(lv, (AA2*)(FF223*), ABISELECT(80,40), "GG3112233");
+ check_base_class_offset(lv, (BB2*)(FF223*), ABISELECT(96,48), "GG3112233");
+ check_base_class_offset(lv, (FF223*), ABISELECT(64,32), "GG3112233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3112233.pg");
+ test_class_info(&lv, &cd_GG3112233);
+ dp->~GG3112233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3112233(Test_GG3112233, "GG3112233", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3112233C1Ev();
+extern void _ZN9GG3112233D1Ev();
+Name_Map name_map_GG3112233[] = {
+ NSPAIR(_ZN9GG3112233C1Ev),
+ NSPAIR(_ZN9GG3112233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE311;
+extern VTBL_ENTRY _ZTI5EE311[];
+extern VTBL_ENTRY _ZTV5EE311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE311[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF223;
+extern VTBL_ENTRY _ZTI5FF223[];
+extern VTBL_ENTRY _ZTV5FF223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF223[];
+static Base_Class bases_GG3112233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE311, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF223, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3112233[];
+extern void _ZN9GG31122333fooEv();
+extern void _ZN9GG31122333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31122333fooEv,_ZTv0_n20_N9GG31122333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31122333fooEv,_ZThn8_N9GG31122333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31122333fooEv,_ZTv0_n12_N9GG31122333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31122333fooEv,_ZThn16_N9GG31122333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31122333barEv,_ZTv0_n16_N9GG31122333barEv)();
+extern void ABISELECT(_ZThn32_N9GG31122333barEv,_ZThn16_N9GG31122333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31122333fooEv,_ZTv0_n12_N9GG31122333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31122333fooEv,_ZThn24_N9GG31122333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31122333fooEv,_ZTv0_n20_N9GG31122333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31122333fooEv,_ZThn32_N9GG31122333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31122333barEv,_ZTv0_n24_N9GG31122333barEv)();
+extern void ABISELECT(_ZThn64_N9GG31122333barEv,_ZThn32_N9GG31122333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31122333barEv,_ZTv0_n12_N9GG31122333barEv)();
+extern void ABISELECT(_ZThn80_N9GG31122333barEv,_ZThn40_N9GG31122333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31122333barEv,_ZTv0_n12_N9GG31122333barEv)();
+extern void ABISELECT(_ZThn96_N9GG31122333barEv,_ZThn48_N9GG31122333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3112233[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3112233[0]),
+ (VTBL_ENTRY)&_ZN9GG31122333fooEv,
+ (VTBL_ENTRY)&_ZN9GG31122333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3112233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31122333fooEv,_ZTv0_n20_N9GG31122333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3112233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31122333fooEv,_ZTv0_n12_N9GG31122333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31122333barEv,_ZTv0_n16_N9GG31122333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3112233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31122333fooEv,_ZTv0_n12_N9GG31122333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3112233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31122333fooEv,_ZTv0_n20_N9GG31122333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31122333barEv,_ZTv0_n24_N9GG31122333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3112233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31122333barEv,_ZTv0_n12_N9GG31122333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3112233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31122333barEv,_ZTv0_n12_N9GG31122333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3112233[];
+extern void _ZN5EE3113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE311__9GG3112233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&_ZN5EE3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE311__9GG3112233[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE311__9GG3112233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+};
+extern void _ZN5FF2233fooEv();
+extern void _ZN5FF2233barEv();
+static VTBL_ENTRY _tg__ZTV5FF223__9GG3112233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&_ZN5FF2233fooEv,
+ (VTBL_ENTRY)&_ZN5FF2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+extern void ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF223__9GG3112233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+extern void ABISELECT(_ZThn32_N5FF2233barEv,_ZThn16_N5FF2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF223__9GG3112233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+static VTT_ENTRY vtt_GG3112233[] = {
+ {&(_ZTV9GG3112233[8]), 8,42},
+ {&(_ZTV9GG3112233[15]), 15,42},
+ {&(_ZTV9GG3112233[20]), 20,42},
+ {&(_ZTV9GG3112233[25]), 25,42},
+ {&(_ZTV9GG3112233[32]), 32,42},
+ {&(_ZTV9GG3112233[37]), 37,42},
+ {&(_ZTV9GG3112233[41]), 41,42},
+ {&(_tg__ZTV5EE311__9GG3112233[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE311__9GG3112233[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE311__9GG3112233[3]), 3,4},
+ {&(_tg__ZTV5FF223__9GG3112233[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF223__9GG3112233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF223__9GG3112233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3112233[];
+extern VTBL_ENTRY _ZTV9GG3112233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3112233[];
+static VTBL_ENTRY alt_thunk_names770[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2233barEv,_ZThn16_N5FF2233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31122333barEv,_ZTv0_n12_N9GG31122333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31122333barEv,_ZThn48_N9GG31122333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31122333barEv,_ZThn40_N9GG31122333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG31122333barEv,_ZTv0_n24_N9GG31122333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31122333barEv,_ZThn32_N9GG31122333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31122333barEv,_ZTv0_n16_N9GG31122333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31122333barEv,_ZThn16_N9GG31122333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31122333fooEv,_ZTv0_n12_N9GG31122333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31122333fooEv,_ZThn24_N9GG31122333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31122333fooEv,_ZThn16_N9GG31122333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31122333fooEv,_ZTv0_n20_N9GG31122333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31122333fooEv,_ZThn32_N9GG31122333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31122333fooEv,_ZThn8_N9GG31122333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3112233 = { "GG3112233", // class name
+ bases_GG3112233, 6,
+ &(vtc_GG3112233[0]), // expected_vtbl_contents
+ &(vtt_GG3112233[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3112233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3112233),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3112233),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names770,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3112313 : virtual EE311 , virtual FF231 {
+ int pg;
+ virtual void foo(); // _ZN9GG31123133fooEv
+ virtual void bar(); // _ZN9GG31123133barEv
+ ~GG3112313(); // tgen
+ GG3112313(); // tgen
+};
+//SIG(1 GG3112313) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3112313 ::foo(){vfunc_called(this, "_ZN9GG31123133fooEv");}
+void GG3112313 ::bar(){vfunc_called(this, "_ZN9GG31123133barEv");}
+GG3112313 ::~GG3112313(){ note_dtor("GG3112313", this);} // tgen
+GG3112313 ::GG3112313(){ note_ctor("GG3112313", this);} // tgen
+
+static void Test_GG3112313()
+{
+ extern Class_Descriptor cd_GG3112313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3112313, buf);
+ GG3112313 *dp, &lv = *(dp=new (buf) GG3112313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3112313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3112313)");
+ check_base_class_offset(lv, (AA3*)(EE311*), ABISELECT(32,16), "GG3112313");
+ check_base_class_offset(lv, (BB1*)(EE311*), ABISELECT(48,24), "GG3112313");
+ check_base_class_offset(lv, (EE311*), ABISELECT(16,8), "GG3112313");
+ check_base_class_offset(lv, (AA2*)(FF231*), ABISELECT(80,40), "GG3112313");
+ check_base_class_offset(lv, (BB3*)(FF231*), ABISELECT(96,48), "GG3112313");
+ check_base_class_offset(lv, (FF231*), ABISELECT(64,32), "GG3112313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3112313.pg");
+ test_class_info(&lv, &cd_GG3112313);
+ dp->~GG3112313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3112313(Test_GG3112313, "GG3112313", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3112313C1Ev();
+extern void _ZN9GG3112313D1Ev();
+Name_Map name_map_GG3112313[] = {
+ NSPAIR(_ZN9GG3112313C1Ev),
+ NSPAIR(_ZN9GG3112313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE311;
+extern VTBL_ENTRY _ZTI5EE311[];
+extern VTBL_ENTRY _ZTV5EE311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE311[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF231;
+extern VTBL_ENTRY _ZTI5FF231[];
+extern VTBL_ENTRY _ZTV5FF231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF231[];
+static Base_Class bases_GG3112313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE311, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF231, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3112313[];
+extern void _ZN9GG31123133fooEv();
+extern void _ZN9GG31123133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31123133fooEv,_ZTv0_n20_N9GG31123133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31123133fooEv,_ZThn8_N9GG31123133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31123133fooEv,_ZTv0_n12_N9GG31123133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31123133fooEv,_ZThn16_N9GG31123133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31123133barEv,_ZTv0_n16_N9GG31123133barEv)();
+extern void ABISELECT(_ZThn32_N9GG31123133barEv,_ZThn16_N9GG31123133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31123133fooEv,_ZTv0_n12_N9GG31123133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31123133fooEv,_ZThn24_N9GG31123133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31123133fooEv,_ZTv0_n20_N9GG31123133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31123133fooEv,_ZThn32_N9GG31123133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31123133barEv,_ZTv0_n12_N9GG31123133barEv)();
+extern void ABISELECT(_ZThn80_N9GG31123133barEv,_ZThn40_N9GG31123133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31123133fooEv,_ZTv0_n12_N9GG31123133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG31123133fooEv,_ZThn48_N9GG31123133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31123133barEv,_ZTv0_n16_N9GG31123133barEv)();
+extern void ABISELECT(_ZThn96_N9GG31123133barEv,_ZThn48_N9GG31123133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3112313[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3112313[0]),
+ (VTBL_ENTRY)&_ZN9GG31123133fooEv,
+ (VTBL_ENTRY)&_ZN9GG31123133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3112313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31123133fooEv,_ZTv0_n20_N9GG31123133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3112313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31123133fooEv,_ZTv0_n12_N9GG31123133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31123133barEv,_ZTv0_n16_N9GG31123133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3112313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31123133fooEv,_ZTv0_n12_N9GG31123133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3112313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31123133fooEv,_ZTv0_n20_N9GG31123133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3112313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31123133barEv,_ZTv0_n12_N9GG31123133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3112313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31123133fooEv,_ZTv0_n12_N9GG31123133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31123133barEv,_ZTv0_n16_N9GG31123133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3112313[];
+extern void _ZN5EE3113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE311__9GG3112313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&_ZN5EE3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE311__9GG3112313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE311__9GG3112313[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+};
+extern void _ZN5FF2313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF231__9GG3112313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN5FF2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF231__9GG3112313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2313fooEv,_ZThn16_N5FF2313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF231__9GG3112313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG3112313[] = {
+ {&(_ZTV9GG3112313[8]), 8,42},
+ {&(_ZTV9GG3112313[15]), 15,42},
+ {&(_ZTV9GG3112313[20]), 20,42},
+ {&(_ZTV9GG3112313[25]), 25,42},
+ {&(_ZTV9GG3112313[31]), 31,42},
+ {&(_ZTV9GG3112313[35]), 35,42},
+ {&(_ZTV9GG3112313[40]), 40,42},
+ {&(_tg__ZTV5EE311__9GG3112313[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE311__9GG3112313[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE311__9GG3112313[3]), 3,4},
+ {&(_tg__ZTV5FF231__9GG3112313[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF231__9GG3112313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF231__9GG3112313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3112313[];
+extern VTBL_ENTRY _ZTV9GG3112313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3112313[];
+static VTBL_ENTRY alt_thunk_names771[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2313fooEv,_ZThn16_N5FF2313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31123133barEv,_ZTv0_n12_N9GG31123133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31123133barEv,_ZThn40_N9GG31123133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31123133barEv,_ZTv0_n16_N9GG31123133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31123133barEv,_ZThn48_N9GG31123133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31123133barEv,_ZThn16_N9GG31123133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31123133fooEv,_ZTv0_n12_N9GG31123133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31123133fooEv,_ZThn48_N9GG31123133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31123133fooEv,_ZThn24_N9GG31123133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31123133fooEv,_ZThn16_N9GG31123133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31123133fooEv,_ZTv0_n20_N9GG31123133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31123133fooEv,_ZThn32_N9GG31123133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31123133fooEv,_ZThn8_N9GG31123133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3112313 = { "GG3112313", // class name
+ bases_GG3112313, 6,
+ &(vtc_GG3112313[0]), // expected_vtbl_contents
+ &(vtt_GG3112313[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3112313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3112313),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3112313),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names771,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3112323 : virtual EE311 , virtual FF232 {
+ int pg;
+ virtual void foo(); // _ZN9GG31123233fooEv
+ virtual void bar(); // _ZN9GG31123233barEv
+ ~GG3112323(); // tgen
+ GG3112323(); // tgen
+};
+//SIG(1 GG3112323) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3112323 ::foo(){vfunc_called(this, "_ZN9GG31123233fooEv");}
+void GG3112323 ::bar(){vfunc_called(this, "_ZN9GG31123233barEv");}
+GG3112323 ::~GG3112323(){ note_dtor("GG3112323", this);} // tgen
+GG3112323 ::GG3112323(){ note_ctor("GG3112323", this);} // tgen
+
+static void Test_GG3112323()
+{
+ extern Class_Descriptor cd_GG3112323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3112323, buf);
+ GG3112323 *dp, &lv = *(dp=new (buf) GG3112323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3112323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3112323)");
+ check_base_class_offset(lv, (AA3*)(EE311*), ABISELECT(32,16), "GG3112323");
+ check_base_class_offset(lv, (BB1*)(EE311*), ABISELECT(48,24), "GG3112323");
+ check_base_class_offset(lv, (EE311*), ABISELECT(16,8), "GG3112323");
+ check_base_class_offset(lv, (AA2*)(FF232*), ABISELECT(80,40), "GG3112323");
+ check_base_class_offset(lv, (BB3*)(FF232*), ABISELECT(96,48), "GG3112323");
+ check_base_class_offset(lv, (FF232*), ABISELECT(64,32), "GG3112323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3112323.pg");
+ test_class_info(&lv, &cd_GG3112323);
+ dp->~GG3112323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3112323(Test_GG3112323, "GG3112323", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3112323C1Ev();
+extern void _ZN9GG3112323D1Ev();
+Name_Map name_map_GG3112323[] = {
+ NSPAIR(_ZN9GG3112323C1Ev),
+ NSPAIR(_ZN9GG3112323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE311;
+extern VTBL_ENTRY _ZTI5EE311[];
+extern VTBL_ENTRY _ZTV5EE311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE311[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF232;
+extern VTBL_ENTRY _ZTI5FF232[];
+extern VTBL_ENTRY _ZTV5FF232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF232[];
+static Base_Class bases_GG3112323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE311, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF232, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3112323[];
+extern void _ZN9GG31123233fooEv();
+extern void _ZN9GG31123233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31123233fooEv,_ZTv0_n20_N9GG31123233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31123233fooEv,_ZThn8_N9GG31123233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31123233fooEv,_ZTv0_n12_N9GG31123233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31123233fooEv,_ZThn16_N9GG31123233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31123233barEv,_ZTv0_n16_N9GG31123233barEv)();
+extern void ABISELECT(_ZThn32_N9GG31123233barEv,_ZThn16_N9GG31123233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31123233fooEv,_ZTv0_n12_N9GG31123233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31123233fooEv,_ZThn24_N9GG31123233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31123233barEv,_ZTv0_n20_N9GG31123233barEv)();
+extern void ABISELECT(_ZThn64_N9GG31123233barEv,_ZThn32_N9GG31123233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31123233barEv,_ZTv0_n12_N9GG31123233barEv)();
+extern void ABISELECT(_ZThn80_N9GG31123233barEv,_ZThn40_N9GG31123233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31123233fooEv,_ZTv0_n12_N9GG31123233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG31123233fooEv,_ZThn48_N9GG31123233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31123233barEv,_ZTv0_n16_N9GG31123233barEv)();
+extern void ABISELECT(_ZThn96_N9GG31123233barEv,_ZThn48_N9GG31123233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3112323[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3112323[0]),
+ (VTBL_ENTRY)&_ZN9GG31123233fooEv,
+ (VTBL_ENTRY)&_ZN9GG31123233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3112323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31123233fooEv,_ZTv0_n20_N9GG31123233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3112323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31123233fooEv,_ZTv0_n12_N9GG31123233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31123233barEv,_ZTv0_n16_N9GG31123233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3112323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31123233fooEv,_ZTv0_n12_N9GG31123233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3112323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31123233barEv,_ZTv0_n20_N9GG31123233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3112323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31123233barEv,_ZTv0_n12_N9GG31123233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3112323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31123233fooEv,_ZTv0_n12_N9GG31123233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31123233barEv,_ZTv0_n16_N9GG31123233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3112323[];
+extern void _ZN5EE3113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE311__9GG3112323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&_ZN5EE3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE311__9GG3112323[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE311__9GG3112323[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+};
+extern void _ZN5FF2323barEv();
+static VTBL_ENTRY _tg__ZTV5FF232__9GG3112323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN5FF2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv)();
+extern void ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF232__9GG3112323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv)();
+extern void ABISELECT(_ZThn32_N5FF2323barEv,_ZThn16_N5FF2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF232__9GG3112323[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv),
+};
+static VTT_ENTRY vtt_GG3112323[] = {
+ {&(_ZTV9GG3112323[8]), 8,42},
+ {&(_ZTV9GG3112323[15]), 15,42},
+ {&(_ZTV9GG3112323[20]), 20,42},
+ {&(_ZTV9GG3112323[25]), 25,42},
+ {&(_ZTV9GG3112323[31]), 31,42},
+ {&(_ZTV9GG3112323[35]), 35,42},
+ {&(_ZTV9GG3112323[40]), 40,42},
+ {&(_tg__ZTV5EE311__9GG3112323[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE311__9GG3112323[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE311__9GG3112323[3]), 3,4},
+ {&(_tg__ZTV5FF232__9GG3112323[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF232__9GG3112323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF232__9GG3112323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3112323[];
+extern VTBL_ENTRY _ZTV9GG3112323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3112323[];
+static VTBL_ENTRY alt_thunk_names772[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2323barEv,_ZThn16_N5FF2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31123233barEv,_ZTv0_n12_N9GG31123233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31123233barEv,_ZThn40_N9GG31123233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31123233barEv,_ZTv0_n20_N9GG31123233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31123233barEv,_ZThn32_N9GG31123233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31123233barEv,_ZTv0_n16_N9GG31123233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31123233barEv,_ZThn48_N9GG31123233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31123233barEv,_ZThn16_N9GG31123233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31123233fooEv,_ZTv0_n12_N9GG31123233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31123233fooEv,_ZThn48_N9GG31123233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31123233fooEv,_ZThn24_N9GG31123233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31123233fooEv,_ZThn16_N9GG31123233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31123233fooEv,_ZTv0_n20_N9GG31123233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31123233fooEv,_ZThn8_N9GG31123233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3112323 = { "GG3112323", // class name
+ bases_GG3112323, 6,
+ &(vtc_GG3112323[0]), // expected_vtbl_contents
+ &(vtt_GG3112323[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3112323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3112323),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3112323),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names772,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3112333 : virtual EE311 , virtual FF233 {
+ int pg;
+ virtual void foo(); // _ZN9GG31123333fooEv
+ virtual void bar(); // _ZN9GG31123333barEv
+ ~GG3112333(); // tgen
+ GG3112333(); // tgen
+};
+//SIG(1 GG3112333) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3112333 ::foo(){vfunc_called(this, "_ZN9GG31123333fooEv");}
+void GG3112333 ::bar(){vfunc_called(this, "_ZN9GG31123333barEv");}
+GG3112333 ::~GG3112333(){ note_dtor("GG3112333", this);} // tgen
+GG3112333 ::GG3112333(){ note_ctor("GG3112333", this);} // tgen
+
+static void Test_GG3112333()
+{
+ extern Class_Descriptor cd_GG3112333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3112333, buf);
+ GG3112333 *dp, &lv = *(dp=new (buf) GG3112333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3112333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3112333)");
+ check_base_class_offset(lv, (AA3*)(EE311*), ABISELECT(32,16), "GG3112333");
+ check_base_class_offset(lv, (BB1*)(EE311*), ABISELECT(48,24), "GG3112333");
+ check_base_class_offset(lv, (EE311*), ABISELECT(16,8), "GG3112333");
+ check_base_class_offset(lv, (AA2*)(FF233*), ABISELECT(80,40), "GG3112333");
+ check_base_class_offset(lv, (BB3*)(FF233*), ABISELECT(96,48), "GG3112333");
+ check_base_class_offset(lv, (FF233*), ABISELECT(64,32), "GG3112333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3112333.pg");
+ test_class_info(&lv, &cd_GG3112333);
+ dp->~GG3112333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3112333(Test_GG3112333, "GG3112333", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3112333C1Ev();
+extern void _ZN9GG3112333D1Ev();
+Name_Map name_map_GG3112333[] = {
+ NSPAIR(_ZN9GG3112333C1Ev),
+ NSPAIR(_ZN9GG3112333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE311;
+extern VTBL_ENTRY _ZTI5EE311[];
+extern VTBL_ENTRY _ZTV5EE311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE311[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF233;
+extern VTBL_ENTRY _ZTI5FF233[];
+extern VTBL_ENTRY _ZTV5FF233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF233[];
+static Base_Class bases_GG3112333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE311, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF233, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3112333[];
+extern void _ZN9GG31123333fooEv();
+extern void _ZN9GG31123333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31123333fooEv,_ZTv0_n20_N9GG31123333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31123333fooEv,_ZThn8_N9GG31123333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31123333fooEv,_ZTv0_n12_N9GG31123333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31123333fooEv,_ZThn16_N9GG31123333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31123333barEv,_ZTv0_n16_N9GG31123333barEv)();
+extern void ABISELECT(_ZThn32_N9GG31123333barEv,_ZThn16_N9GG31123333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31123333fooEv,_ZTv0_n12_N9GG31123333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31123333fooEv,_ZThn24_N9GG31123333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31123333fooEv,_ZTv0_n20_N9GG31123333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31123333fooEv,_ZThn32_N9GG31123333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31123333barEv,_ZTv0_n24_N9GG31123333barEv)();
+extern void ABISELECT(_ZThn64_N9GG31123333barEv,_ZThn32_N9GG31123333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31123333barEv,_ZTv0_n12_N9GG31123333barEv)();
+extern void ABISELECT(_ZThn80_N9GG31123333barEv,_ZThn40_N9GG31123333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31123333fooEv,_ZTv0_n12_N9GG31123333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG31123333fooEv,_ZThn48_N9GG31123333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31123333barEv,_ZTv0_n16_N9GG31123333barEv)();
+extern void ABISELECT(_ZThn96_N9GG31123333barEv,_ZThn48_N9GG31123333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3112333[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3112333[0]),
+ (VTBL_ENTRY)&_ZN9GG31123333fooEv,
+ (VTBL_ENTRY)&_ZN9GG31123333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3112333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31123333fooEv,_ZTv0_n20_N9GG31123333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3112333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31123333fooEv,_ZTv0_n12_N9GG31123333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31123333barEv,_ZTv0_n16_N9GG31123333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3112333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31123333fooEv,_ZTv0_n12_N9GG31123333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3112333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31123333fooEv,_ZTv0_n20_N9GG31123333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31123333barEv,_ZTv0_n24_N9GG31123333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3112333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31123333barEv,_ZTv0_n12_N9GG31123333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3112333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31123333fooEv,_ZTv0_n12_N9GG31123333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31123333barEv,_ZTv0_n16_N9GG31123333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3112333[];
+extern void _ZN5EE3113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE311__9GG3112333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&_ZN5EE3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE311__9GG3112333[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE311__9GG3112333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+};
+extern void _ZN5FF2333fooEv();
+extern void _ZN5FF2333barEv();
+static VTBL_ENTRY _tg__ZTV5FF233__9GG3112333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&_ZN5FF2333fooEv,
+ (VTBL_ENTRY)&_ZN5FF2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv)();
+extern void ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF233__9GG3112333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2333fooEv,_ZThn16_N5FF2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv)();
+extern void ABISELECT(_ZThn32_N5FF2333barEv,_ZThn16_N5FF2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF233__9GG3112333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv),
+};
+static VTT_ENTRY vtt_GG3112333[] = {
+ {&(_ZTV9GG3112333[8]), 8,44},
+ {&(_ZTV9GG3112333[15]), 15,44},
+ {&(_ZTV9GG3112333[20]), 20,44},
+ {&(_ZTV9GG3112333[25]), 25,44},
+ {&(_ZTV9GG3112333[32]), 32,44},
+ {&(_ZTV9GG3112333[37]), 37,44},
+ {&(_ZTV9GG3112333[42]), 42,44},
+ {&(_tg__ZTV5EE311__9GG3112333[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE311__9GG3112333[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE311__9GG3112333[3]), 3,4},
+ {&(_tg__ZTV5FF233__9GG3112333[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF233__9GG3112333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF233__9GG3112333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3112333[];
+extern VTBL_ENTRY _ZTV9GG3112333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3112333[];
+static VTBL_ENTRY alt_thunk_names773[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2333barEv,_ZThn16_N5FF2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2333fooEv,_ZThn16_N5FF2333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31123333barEv,_ZTv0_n12_N9GG31123333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31123333barEv,_ZThn40_N9GG31123333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG31123333barEv,_ZTv0_n24_N9GG31123333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31123333barEv,_ZThn32_N9GG31123333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31123333barEv,_ZTv0_n16_N9GG31123333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31123333barEv,_ZThn48_N9GG31123333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31123333barEv,_ZThn16_N9GG31123333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31123333fooEv,_ZTv0_n12_N9GG31123333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31123333fooEv,_ZThn48_N9GG31123333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31123333fooEv,_ZThn24_N9GG31123333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31123333fooEv,_ZThn16_N9GG31123333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31123333fooEv,_ZTv0_n20_N9GG31123333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31123333fooEv,_ZThn32_N9GG31123333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31123333fooEv,_ZThn8_N9GG31123333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3112333 = { "GG3112333", // class name
+ bases_GG3112333, 6,
+ &(vtc_GG3112333[0]), // expected_vtbl_contents
+ &(vtt_GG3112333[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3112333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3112333),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3112333),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names773,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3113113 : virtual EE311 , virtual FF311 {
+ int pg;
+ virtual void foo(); // _ZN9GG31131133fooEv
+ virtual void bar(); // _ZN9GG31131133barEv
+ ~GG3113113(); // tgen
+ GG3113113(); // tgen
+};
+//SIG(1 GG3113113) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC3 VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG3113113 ::foo(){vfunc_called(this, "_ZN9GG31131133fooEv");}
+void GG3113113 ::bar(){vfunc_called(this, "_ZN9GG31131133barEv");}
+GG3113113 ::~GG3113113(){ note_dtor("GG3113113", this);} // tgen
+GG3113113 ::GG3113113(){ note_ctor("GG3113113", this);} // tgen
+
+static void Test_GG3113113()
+{
+ extern Class_Descriptor cd_GG3113113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG3113113, buf);
+ GG3113113 *dp, &lv = *(dp=new (buf) GG3113113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG3113113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3113113)");
+ check_base_class_offset(lv, (AA3*)(EE311*), ABISELECT(32,16), "GG3113113");
+ check_base_class_offset(lv, (AA3*)(FF311*), ABISELECT(32,16), "GG3113113");
+ check_base_class_offset(lv, (BB1*)(EE311*), ABISELECT(48,24), "GG3113113");
+ check_base_class_offset(lv, (BB1*)(FF311*), ABISELECT(48,24), "GG3113113");
+ check_base_class_offset(lv, (EE311*), ABISELECT(16,8), "GG3113113");
+ check_base_class_offset(lv, (FF311*), ABISELECT(64,32), "GG3113113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3113113.pg");
+ test_class_info(&lv, &cd_GG3113113);
+ dp->~GG3113113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3113113(Test_GG3113113, "GG3113113", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG3113113C1Ev();
+extern void _ZN9GG3113113D1Ev();
+Name_Map name_map_GG3113113[] = {
+ NSPAIR(_ZN9GG3113113C1Ev),
+ NSPAIR(_ZN9GG3113113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE311;
+extern VTBL_ENTRY _ZTI5EE311[];
+extern VTBL_ENTRY _ZTV5EE311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE311[];
+extern Class_Descriptor cd_FF311;
+extern VTBL_ENTRY _ZTI5FF311[];
+extern VTBL_ENTRY _ZTV5FF311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF311[];
+static Base_Class bases_GG3113113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE311, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF311, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3113113[];
+extern void _ZN9GG31131133fooEv();
+extern void _ZN9GG31131133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31131133fooEv,_ZTv0_n20_N9GG31131133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31131133fooEv,_ZThn8_N9GG31131133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31131133fooEv,_ZTv0_n12_N9GG31131133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31131133fooEv,_ZThn16_N9GG31131133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31131133barEv,_ZTv0_n16_N9GG31131133barEv)();
+extern void ABISELECT(_ZThn32_N9GG31131133barEv,_ZThn16_N9GG31131133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31131133fooEv,_ZTv0_n12_N9GG31131133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31131133fooEv,_ZThn24_N9GG31131133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31131133fooEv,_ZTv0_n20_N9GG31131133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31131133fooEv,_ZThn32_N9GG31131133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3113113[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3113113[0]),
+ (VTBL_ENTRY)&_ZN9GG31131133fooEv,
+ (VTBL_ENTRY)&_ZN9GG31131133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3113113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31131133fooEv,_ZTv0_n20_N9GG31131133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3113113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31131133fooEv,_ZTv0_n12_N9GG31131133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31131133barEv,_ZTv0_n16_N9GG31131133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3113113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31131133fooEv,_ZTv0_n12_N9GG31131133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3113113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31131133fooEv,_ZTv0_n20_N9GG31131133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3113113[];
+extern void _ZN5EE3113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE311__9GG3113113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&_ZN5EE3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE311__9GG3113113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE311__9GG3113113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+};
+extern void _ZN5FF3113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF311__9GG3113113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&_ZN5FF3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF311__9GG3113113[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF311__9GG3113113[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+};
+static VTT_ENTRY vtt_GG3113113[] = {
+ {&(_ZTV9GG3113113[6]), 6,30},
+ {&(_ZTV9GG3113113[13]), 13,30},
+ {&(_ZTV9GG3113113[18]), 18,30},
+ {&(_ZTV9GG3113113[23]), 23,30},
+ {&(_ZTV9GG3113113[29]), 29,30},
+ {&(_tg__ZTV5EE311__9GG3113113[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE311__9GG3113113[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE311__9GG3113113[3]), 3,4},
+ {&(_tg__ZTV5FF311__9GG3113113[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF311__9GG3113113[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF311__9GG3113113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3113113[];
+extern VTBL_ENTRY _ZTV9GG3113113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3113113[];
+static VTBL_ENTRY alt_thunk_names774[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31131133barEv,_ZTv0_n16_N9GG31131133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31131133barEv,_ZThn16_N9GG31131133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31131133fooEv,_ZTv0_n12_N9GG31131133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31131133fooEv,_ZThn24_N9GG31131133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31131133fooEv,_ZThn16_N9GG31131133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31131133fooEv,_ZTv0_n20_N9GG31131133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31131133fooEv,_ZThn32_N9GG31131133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31131133fooEv,_ZThn8_N9GG31131133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3113113 = { "GG3113113", // class name
+ bases_GG3113113, 4,
+ &(vtc_GG3113113[0]), // expected_vtbl_contents
+ &(vtt_GG3113113[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG3113113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3113113),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3113113),11, //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 GG3113123 : virtual EE311 , virtual FF312 {
+ int pg;
+ virtual void foo(); // _ZN9GG31131233fooEv
+ virtual void bar(); // _ZN9GG31131233barEv
+ ~GG3113123(); // tgen
+ GG3113123(); // tgen
+};
+//SIG(1 GG3113123) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC3 VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG3113123 ::foo(){vfunc_called(this, "_ZN9GG31131233fooEv");}
+void GG3113123 ::bar(){vfunc_called(this, "_ZN9GG31131233barEv");}
+GG3113123 ::~GG3113123(){ note_dtor("GG3113123", this);} // tgen
+GG3113123 ::GG3113123(){ note_ctor("GG3113123", this);} // tgen
+
+static void Test_GG3113123()
+{
+ extern Class_Descriptor cd_GG3113123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG3113123, buf);
+ GG3113123 *dp, &lv = *(dp=new (buf) GG3113123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG3113123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3113123)");
+ check_base_class_offset(lv, (AA3*)(EE311*), ABISELECT(32,16), "GG3113123");
+ check_base_class_offset(lv, (AA3*)(FF312*), ABISELECT(32,16), "GG3113123");
+ check_base_class_offset(lv, (BB1*)(EE311*), ABISELECT(48,24), "GG3113123");
+ check_base_class_offset(lv, (BB1*)(FF312*), ABISELECT(48,24), "GG3113123");
+ check_base_class_offset(lv, (EE311*), ABISELECT(16,8), "GG3113123");
+ check_base_class_offset(lv, (FF312*), ABISELECT(64,32), "GG3113123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3113123.pg");
+ test_class_info(&lv, &cd_GG3113123);
+ dp->~GG3113123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3113123(Test_GG3113123, "GG3113123", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG3113123C1Ev();
+extern void _ZN9GG3113123D1Ev();
+Name_Map name_map_GG3113123[] = {
+ NSPAIR(_ZN9GG3113123C1Ev),
+ NSPAIR(_ZN9GG3113123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE311;
+extern VTBL_ENTRY _ZTI5EE311[];
+extern VTBL_ENTRY _ZTV5EE311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE311[];
+extern Class_Descriptor cd_FF312;
+extern VTBL_ENTRY _ZTI5FF312[];
+extern VTBL_ENTRY _ZTV5FF312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF312[];
+static Base_Class bases_GG3113123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE311, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF312, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3113123[];
+extern void _ZN9GG31131233fooEv();
+extern void _ZN9GG31131233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31131233fooEv,_ZTv0_n20_N9GG31131233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31131233fooEv,_ZThn8_N9GG31131233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31131233fooEv,_ZTv0_n12_N9GG31131233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31131233fooEv,_ZThn16_N9GG31131233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31131233barEv,_ZTv0_n16_N9GG31131233barEv)();
+extern void ABISELECT(_ZThn32_N9GG31131233barEv,_ZThn16_N9GG31131233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31131233fooEv,_ZTv0_n12_N9GG31131233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31131233fooEv,_ZThn24_N9GG31131233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31131233barEv,_ZTv0_n20_N9GG31131233barEv)();
+extern void ABISELECT(_ZThn64_N9GG31131233barEv,_ZThn32_N9GG31131233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3113123[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3113123[0]),
+ (VTBL_ENTRY)&_ZN9GG31131233fooEv,
+ (VTBL_ENTRY)&_ZN9GG31131233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3113123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31131233fooEv,_ZTv0_n20_N9GG31131233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3113123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31131233fooEv,_ZTv0_n12_N9GG31131233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31131233barEv,_ZTv0_n16_N9GG31131233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3113123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31131233fooEv,_ZTv0_n12_N9GG31131233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3113123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31131233barEv,_ZTv0_n20_N9GG31131233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3113123[];
+extern void _ZN5EE3113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE311__9GG3113123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&_ZN5EE3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE311__9GG3113123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE311__9GG3113123[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+};
+extern void _ZN5FF3123barEv();
+static VTBL_ENTRY _tg__ZTV5FF312__9GG3113123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN5FF3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF312__9GG3113123[] = {
+ ABISELECT(32,16),
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF312__9GG3113123[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG3113123[] = {
+ {&(_ZTV9GG3113123[6]), 6,30},
+ {&(_ZTV9GG3113123[13]), 13,30},
+ {&(_ZTV9GG3113123[18]), 18,30},
+ {&(_ZTV9GG3113123[23]), 23,30},
+ {&(_ZTV9GG3113123[29]), 29,30},
+ {&(_tg__ZTV5EE311__9GG3113123[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE311__9GG3113123[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE311__9GG3113123[3]), 3,4},
+ {&(_tg__ZTV5FF312__9GG3113123[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF312__9GG3113123[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF312__9GG3113123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3113123[];
+extern VTBL_ENTRY _ZTV9GG3113123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3113123[];
+static VTBL_ENTRY alt_thunk_names775[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31131233barEv,_ZTv0_n20_N9GG31131233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31131233barEv,_ZThn32_N9GG31131233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31131233barEv,_ZTv0_n16_N9GG31131233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31131233barEv,_ZThn16_N9GG31131233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31131233fooEv,_ZTv0_n12_N9GG31131233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31131233fooEv,_ZThn24_N9GG31131233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31131233fooEv,_ZThn16_N9GG31131233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31131233fooEv,_ZTv0_n20_N9GG31131233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31131233fooEv,_ZThn8_N9GG31131233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3113123 = { "GG3113123", // class name
+ bases_GG3113123, 4,
+ &(vtc_GG3113123[0]), // expected_vtbl_contents
+ &(vtt_GG3113123[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG3113123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3113123),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3113123),11, //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 GG3113133 : virtual EE311 , virtual FF313 {
+ int pg;
+ virtual void foo(); // _ZN9GG31131333fooEv
+ virtual void bar(); // _ZN9GG31131333barEv
+ ~GG3113133(); // tgen
+ GG3113133(); // tgen
+};
+//SIG(1 GG3113133) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC3 VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3113133 ::foo(){vfunc_called(this, "_ZN9GG31131333fooEv");}
+void GG3113133 ::bar(){vfunc_called(this, "_ZN9GG31131333barEv");}
+GG3113133 ::~GG3113133(){ note_dtor("GG3113133", this);} // tgen
+GG3113133 ::GG3113133(){ note_ctor("GG3113133", this);} // tgen
+
+static void Test_GG3113133()
+{
+ extern Class_Descriptor cd_GG3113133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG3113133, buf);
+ GG3113133 *dp, &lv = *(dp=new (buf) GG3113133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG3113133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3113133)");
+ check_base_class_offset(lv, (AA3*)(EE311*), ABISELECT(32,16), "GG3113133");
+ check_base_class_offset(lv, (AA3*)(FF313*), ABISELECT(32,16), "GG3113133");
+ check_base_class_offset(lv, (BB1*)(EE311*), ABISELECT(48,24), "GG3113133");
+ check_base_class_offset(lv, (BB1*)(FF313*), ABISELECT(48,24), "GG3113133");
+ check_base_class_offset(lv, (EE311*), ABISELECT(16,8), "GG3113133");
+ check_base_class_offset(lv, (FF313*), ABISELECT(64,32), "GG3113133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3113133.pg");
+ test_class_info(&lv, &cd_GG3113133);
+ dp->~GG3113133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3113133(Test_GG3113133, "GG3113133", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG3113133C1Ev();
+extern void _ZN9GG3113133D1Ev();
+Name_Map name_map_GG3113133[] = {
+ NSPAIR(_ZN9GG3113133C1Ev),
+ NSPAIR(_ZN9GG3113133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE311;
+extern VTBL_ENTRY _ZTI5EE311[];
+extern VTBL_ENTRY _ZTV5EE311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE311[];
+extern Class_Descriptor cd_FF313;
+extern VTBL_ENTRY _ZTI5FF313[];
+extern VTBL_ENTRY _ZTV5FF313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF313[];
+static Base_Class bases_GG3113133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE311, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF313, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3113133[];
+extern void _ZN9GG31131333fooEv();
+extern void _ZN9GG31131333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31131333fooEv,_ZTv0_n20_N9GG31131333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31131333fooEv,_ZThn8_N9GG31131333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31131333fooEv,_ZTv0_n12_N9GG31131333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31131333fooEv,_ZThn16_N9GG31131333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31131333barEv,_ZTv0_n16_N9GG31131333barEv)();
+extern void ABISELECT(_ZThn32_N9GG31131333barEv,_ZThn16_N9GG31131333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31131333fooEv,_ZTv0_n12_N9GG31131333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31131333fooEv,_ZThn24_N9GG31131333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31131333fooEv,_ZTv0_n20_N9GG31131333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31131333fooEv,_ZThn32_N9GG31131333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31131333barEv,_ZTv0_n24_N9GG31131333barEv)();
+extern void ABISELECT(_ZThn64_N9GG31131333barEv,_ZThn32_N9GG31131333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3113133[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3113133[0]),
+ (VTBL_ENTRY)&_ZN9GG31131333fooEv,
+ (VTBL_ENTRY)&_ZN9GG31131333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3113133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31131333fooEv,_ZTv0_n20_N9GG31131333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3113133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31131333fooEv,_ZTv0_n12_N9GG31131333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31131333barEv,_ZTv0_n16_N9GG31131333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3113133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31131333fooEv,_ZTv0_n12_N9GG31131333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3113133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31131333fooEv,_ZTv0_n20_N9GG31131333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31131333barEv,_ZTv0_n24_N9GG31131333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3113133[];
+extern void _ZN5EE3113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE311__9GG3113133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&_ZN5EE3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE311__9GG3113133[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE311__9GG3113133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+};
+extern void _ZN5FF3133fooEv();
+extern void _ZN5FF3133barEv();
+static VTBL_ENTRY _tg__ZTV5FF313__9GG3113133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&_ZN5FF3133fooEv,
+ (VTBL_ENTRY)&_ZN5FF3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF313__9GG3113133[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF313__9GG3113133[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+};
+static VTT_ENTRY vtt_GG3113133[] = {
+ {&(_ZTV9GG3113133[6]), 6,32},
+ {&(_ZTV9GG3113133[13]), 13,32},
+ {&(_ZTV9GG3113133[18]), 18,32},
+ {&(_ZTV9GG3113133[23]), 23,32},
+ {&(_ZTV9GG3113133[30]), 30,32},
+ {&(_tg__ZTV5EE311__9GG3113133[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE311__9GG3113133[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE311__9GG3113133[3]), 3,4},
+ {&(_tg__ZTV5FF313__9GG3113133[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF313__9GG3113133[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF313__9GG3113133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3113133[];
+extern VTBL_ENTRY _ZTV9GG3113133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3113133[];
+static VTBL_ENTRY alt_thunk_names776[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG31131333barEv,_ZTv0_n24_N9GG31131333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31131333barEv,_ZThn32_N9GG31131333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31131333barEv,_ZTv0_n16_N9GG31131333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31131333barEv,_ZThn16_N9GG31131333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31131333fooEv,_ZTv0_n12_N9GG31131333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31131333fooEv,_ZThn24_N9GG31131333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31131333fooEv,_ZThn16_N9GG31131333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31131333fooEv,_ZTv0_n20_N9GG31131333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31131333fooEv,_ZThn32_N9GG31131333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31131333fooEv,_ZThn8_N9GG31131333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3113133 = { "GG3113133", // class name
+ bases_GG3113133, 4,
+ &(vtc_GG3113133[0]), // expected_vtbl_contents
+ &(vtt_GG3113133[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG3113133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3113133),32, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3113133),11, //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 GG3113213 : virtual EE311 , virtual FF321 {
+ int pg;
+ virtual void foo(); // _ZN9GG31132133fooEv
+ virtual void bar(); // _ZN9GG31132133barEv
+ ~GG3113213(); // tgen
+ GG3113213(); // tgen
+};
+//SIG(1 GG3113213) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3113213 ::foo(){vfunc_called(this, "_ZN9GG31132133fooEv");}
+void GG3113213 ::bar(){vfunc_called(this, "_ZN9GG31132133barEv");}
+GG3113213 ::~GG3113213(){ note_dtor("GG3113213", this);} // tgen
+GG3113213 ::GG3113213(){ note_ctor("GG3113213", this);} // tgen
+
+static void Test_GG3113213()
+{
+ extern Class_Descriptor cd_GG3113213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3113213, buf);
+ GG3113213 *dp, &lv = *(dp=new (buf) GG3113213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3113213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3113213)");
+ check_base_class_offset(lv, (AA3*)(EE311*), ABISELECT(32,16), "GG3113213");
+ check_base_class_offset(lv, (AA3*)(FF321*), ABISELECT(32,16), "GG3113213");
+ check_base_class_offset(lv, (BB1*)(EE311*), ABISELECT(48,24), "GG3113213");
+ check_base_class_offset(lv, (EE311*), ABISELECT(16,8), "GG3113213");
+ check_base_class_offset(lv, (BB2*)(FF321*), ABISELECT(80,40), "GG3113213");
+ check_base_class_offset(lv, (FF321*), ABISELECT(64,32), "GG3113213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3113213.pg");
+ test_class_info(&lv, &cd_GG3113213);
+ dp->~GG3113213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3113213(Test_GG3113213, "GG3113213", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3113213C1Ev();
+extern void _ZN9GG3113213D1Ev();
+Name_Map name_map_GG3113213[] = {
+ NSPAIR(_ZN9GG3113213C1Ev),
+ NSPAIR(_ZN9GG3113213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE311;
+extern VTBL_ENTRY _ZTI5EE311[];
+extern VTBL_ENTRY _ZTV5EE311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE311[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF321;
+extern VTBL_ENTRY _ZTI5FF321[];
+extern VTBL_ENTRY _ZTV5FF321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF321[];
+static Base_Class bases_GG3113213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE311, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF321, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3113213[];
+extern void _ZN9GG31132133fooEv();
+extern void _ZN9GG31132133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31132133fooEv,_ZTv0_n20_N9GG31132133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31132133fooEv,_ZThn8_N9GG31132133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31132133fooEv,_ZTv0_n12_N9GG31132133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31132133fooEv,_ZThn16_N9GG31132133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31132133barEv,_ZTv0_n16_N9GG31132133barEv)();
+extern void ABISELECT(_ZThn32_N9GG31132133barEv,_ZThn16_N9GG31132133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31132133fooEv,_ZTv0_n12_N9GG31132133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31132133fooEv,_ZThn24_N9GG31132133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31132133fooEv,_ZTv0_n20_N9GG31132133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31132133fooEv,_ZThn32_N9GG31132133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31132133barEv,_ZTv0_n12_N9GG31132133barEv)();
+extern void ABISELECT(_ZThn80_N9GG31132133barEv,_ZThn40_N9GG31132133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3113213[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3113213[0]),
+ (VTBL_ENTRY)&_ZN9GG31132133fooEv,
+ (VTBL_ENTRY)&_ZN9GG31132133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3113213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31132133fooEv,_ZTv0_n20_N9GG31132133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3113213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31132133fooEv,_ZTv0_n12_N9GG31132133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31132133barEv,_ZTv0_n16_N9GG31132133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3113213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31132133fooEv,_ZTv0_n12_N9GG31132133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3113213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31132133fooEv,_ZTv0_n20_N9GG31132133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3113213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31132133barEv,_ZTv0_n12_N9GG31132133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3113213[];
+extern void _ZN5EE3113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE311__9GG3113213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&_ZN5EE3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE311__9GG3113213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE311__9GG3113213[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+};
+extern void _ZN5FF3213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF321__9GG3113213[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN5FF3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv)();
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF321__9GG3113213[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF321__9GG3113213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG3113213[] = {
+ {&(_ZTV9GG3113213[7]), 7,35},
+ {&(_ZTV9GG3113213[14]), 14,35},
+ {&(_ZTV9GG3113213[19]), 19,35},
+ {&(_ZTV9GG3113213[24]), 24,35},
+ {&(_ZTV9GG3113213[30]), 30,35},
+ {&(_ZTV9GG3113213[34]), 34,35},
+ {&(_tg__ZTV5EE311__9GG3113213[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE311__9GG3113213[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE311__9GG3113213[3]), 3,4},
+ {&(_tg__ZTV5FF321__9GG3113213[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF321__9GG3113213[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF321__9GG3113213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3113213[];
+extern VTBL_ENTRY _ZTV9GG3113213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3113213[];
+static VTBL_ENTRY alt_thunk_names777[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31132133barEv,_ZTv0_n12_N9GG31132133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31132133barEv,_ZThn40_N9GG31132133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31132133barEv,_ZTv0_n16_N9GG31132133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31132133barEv,_ZThn16_N9GG31132133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31132133fooEv,_ZTv0_n12_N9GG31132133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31132133fooEv,_ZThn24_N9GG31132133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31132133fooEv,_ZThn16_N9GG31132133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31132133fooEv,_ZTv0_n20_N9GG31132133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31132133fooEv,_ZThn32_N9GG31132133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31132133fooEv,_ZThn8_N9GG31132133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3113213 = { "GG3113213", // class name
+ bases_GG3113213, 5,
+ &(vtc_GG3113213[0]), // expected_vtbl_contents
+ &(vtt_GG3113213[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3113213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3113213),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3113213),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names777,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3113223 : virtual EE311 , virtual FF322 {
+ int pg;
+ virtual void foo(); // _ZN9GG31132233fooEv
+ virtual void bar(); // _ZN9GG31132233barEv
+ ~GG3113223(); // tgen
+ GG3113223(); // tgen
+};
+//SIG(1 GG3113223) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3113223 ::foo(){vfunc_called(this, "_ZN9GG31132233fooEv");}
+void GG3113223 ::bar(){vfunc_called(this, "_ZN9GG31132233barEv");}
+GG3113223 ::~GG3113223(){ note_dtor("GG3113223", this);} // tgen
+GG3113223 ::GG3113223(){ note_ctor("GG3113223", this);} // tgen
+
+static void Test_GG3113223()
+{
+ extern Class_Descriptor cd_GG3113223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3113223, buf);
+ GG3113223 *dp, &lv = *(dp=new (buf) GG3113223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3113223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3113223)");
+ check_base_class_offset(lv, (AA3*)(EE311*), ABISELECT(32,16), "GG3113223");
+ check_base_class_offset(lv, (AA3*)(FF322*), ABISELECT(32,16), "GG3113223");
+ check_base_class_offset(lv, (BB1*)(EE311*), ABISELECT(48,24), "GG3113223");
+ check_base_class_offset(lv, (EE311*), ABISELECT(16,8), "GG3113223");
+ check_base_class_offset(lv, (BB2*)(FF322*), ABISELECT(80,40), "GG3113223");
+ check_base_class_offset(lv, (FF322*), ABISELECT(64,32), "GG3113223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3113223.pg");
+ test_class_info(&lv, &cd_GG3113223);
+ dp->~GG3113223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3113223(Test_GG3113223, "GG3113223", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3113223C1Ev();
+extern void _ZN9GG3113223D1Ev();
+Name_Map name_map_GG3113223[] = {
+ NSPAIR(_ZN9GG3113223C1Ev),
+ NSPAIR(_ZN9GG3113223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE311;
+extern VTBL_ENTRY _ZTI5EE311[];
+extern VTBL_ENTRY _ZTV5EE311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE311[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF322;
+extern VTBL_ENTRY _ZTI5FF322[];
+extern VTBL_ENTRY _ZTV5FF322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF322[];
+static Base_Class bases_GG3113223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE311, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF322, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3113223[];
+extern void _ZN9GG31132233fooEv();
+extern void _ZN9GG31132233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31132233fooEv,_ZTv0_n20_N9GG31132233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31132233fooEv,_ZThn8_N9GG31132233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31132233fooEv,_ZTv0_n12_N9GG31132233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31132233fooEv,_ZThn16_N9GG31132233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31132233barEv,_ZTv0_n16_N9GG31132233barEv)();
+extern void ABISELECT(_ZThn32_N9GG31132233barEv,_ZThn16_N9GG31132233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31132233fooEv,_ZTv0_n12_N9GG31132233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31132233fooEv,_ZThn24_N9GG31132233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31132233barEv,_ZTv0_n20_N9GG31132233barEv)();
+extern void ABISELECT(_ZThn64_N9GG31132233barEv,_ZThn32_N9GG31132233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31132233barEv,_ZTv0_n12_N9GG31132233barEv)();
+extern void ABISELECT(_ZThn80_N9GG31132233barEv,_ZThn40_N9GG31132233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3113223[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3113223[0]),
+ (VTBL_ENTRY)&_ZN9GG31132233fooEv,
+ (VTBL_ENTRY)&_ZN9GG31132233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3113223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31132233fooEv,_ZTv0_n20_N9GG31132233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3113223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31132233fooEv,_ZTv0_n12_N9GG31132233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31132233barEv,_ZTv0_n16_N9GG31132233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3113223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31132233fooEv,_ZTv0_n12_N9GG31132233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3113223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31132233barEv,_ZTv0_n20_N9GG31132233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3113223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31132233barEv,_ZTv0_n12_N9GG31132233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3113223[];
+extern void _ZN5EE3113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE311__9GG3113223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&_ZN5EE3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE311__9GG3113223[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE311__9GG3113223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+};
+extern void _ZN5FF3223barEv();
+static VTBL_ENTRY _tg__ZTV5FF322__9GG3113223[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN5FF3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF322__9GG3113223[] = {
+ ABISELECT(32,16),
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv)();
+extern void ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF322__9GG3113223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv),
+};
+static VTT_ENTRY vtt_GG3113223[] = {
+ {&(_ZTV9GG3113223[7]), 7,35},
+ {&(_ZTV9GG3113223[14]), 14,35},
+ {&(_ZTV9GG3113223[19]), 19,35},
+ {&(_ZTV9GG3113223[24]), 24,35},
+ {&(_ZTV9GG3113223[30]), 30,35},
+ {&(_ZTV9GG3113223[34]), 34,35},
+ {&(_tg__ZTV5EE311__9GG3113223[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE311__9GG3113223[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE311__9GG3113223[3]), 3,4},
+ {&(_tg__ZTV5FF322__9GG3113223[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF322__9GG3113223[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF322__9GG3113223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3113223[];
+extern VTBL_ENTRY _ZTV9GG3113223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3113223[];
+static VTBL_ENTRY alt_thunk_names778[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31132233barEv,_ZTv0_n12_N9GG31132233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31132233barEv,_ZThn40_N9GG31132233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31132233barEv,_ZTv0_n20_N9GG31132233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31132233barEv,_ZThn32_N9GG31132233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31132233barEv,_ZTv0_n16_N9GG31132233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31132233barEv,_ZThn16_N9GG31132233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31132233fooEv,_ZTv0_n12_N9GG31132233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31132233fooEv,_ZThn24_N9GG31132233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31132233fooEv,_ZThn16_N9GG31132233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31132233fooEv,_ZTv0_n20_N9GG31132233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31132233fooEv,_ZThn8_N9GG31132233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3113223 = { "GG3113223", // class name
+ bases_GG3113223, 5,
+ &(vtc_GG3113223[0]), // expected_vtbl_contents
+ &(vtt_GG3113223[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3113223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3113223),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3113223),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names778,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3113233 : virtual EE311 , virtual FF323 {
+ int pg;
+ virtual void foo(); // _ZN9GG31132333fooEv
+ virtual void bar(); // _ZN9GG31132333barEv
+ ~GG3113233(); // tgen
+ GG3113233(); // tgen
+};
+//SIG(1 GG3113233) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3113233 ::foo(){vfunc_called(this, "_ZN9GG31132333fooEv");}
+void GG3113233 ::bar(){vfunc_called(this, "_ZN9GG31132333barEv");}
+GG3113233 ::~GG3113233(){ note_dtor("GG3113233", this);} // tgen
+GG3113233 ::GG3113233(){ note_ctor("GG3113233", this);} // tgen
+
+static void Test_GG3113233()
+{
+ extern Class_Descriptor cd_GG3113233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3113233, buf);
+ GG3113233 *dp, &lv = *(dp=new (buf) GG3113233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3113233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3113233)");
+ check_base_class_offset(lv, (AA3*)(EE311*), ABISELECT(32,16), "GG3113233");
+ check_base_class_offset(lv, (AA3*)(FF323*), ABISELECT(32,16), "GG3113233");
+ check_base_class_offset(lv, (BB1*)(EE311*), ABISELECT(48,24), "GG3113233");
+ check_base_class_offset(lv, (EE311*), ABISELECT(16,8), "GG3113233");
+ check_base_class_offset(lv, (BB2*)(FF323*), ABISELECT(80,40), "GG3113233");
+ check_base_class_offset(lv, (FF323*), ABISELECT(64,32), "GG3113233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3113233.pg");
+ test_class_info(&lv, &cd_GG3113233);
+ dp->~GG3113233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3113233(Test_GG3113233, "GG3113233", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3113233C1Ev();
+extern void _ZN9GG3113233D1Ev();
+Name_Map name_map_GG3113233[] = {
+ NSPAIR(_ZN9GG3113233C1Ev),
+ NSPAIR(_ZN9GG3113233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE311;
+extern VTBL_ENTRY _ZTI5EE311[];
+extern VTBL_ENTRY _ZTV5EE311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE311[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF323;
+extern VTBL_ENTRY _ZTI5FF323[];
+extern VTBL_ENTRY _ZTV5FF323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF323[];
+static Base_Class bases_GG3113233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE311, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF323, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3113233[];
+extern void _ZN9GG31132333fooEv();
+extern void _ZN9GG31132333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31132333fooEv,_ZTv0_n20_N9GG31132333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31132333fooEv,_ZThn8_N9GG31132333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31132333fooEv,_ZTv0_n12_N9GG31132333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31132333fooEv,_ZThn16_N9GG31132333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31132333barEv,_ZTv0_n16_N9GG31132333barEv)();
+extern void ABISELECT(_ZThn32_N9GG31132333barEv,_ZThn16_N9GG31132333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31132333fooEv,_ZTv0_n12_N9GG31132333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31132333fooEv,_ZThn24_N9GG31132333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31132333fooEv,_ZTv0_n20_N9GG31132333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31132333fooEv,_ZThn32_N9GG31132333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31132333barEv,_ZTv0_n24_N9GG31132333barEv)();
+extern void ABISELECT(_ZThn64_N9GG31132333barEv,_ZThn32_N9GG31132333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31132333barEv,_ZTv0_n12_N9GG31132333barEv)();
+extern void ABISELECT(_ZThn80_N9GG31132333barEv,_ZThn40_N9GG31132333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3113233[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3113233[0]),
+ (VTBL_ENTRY)&_ZN9GG31132333fooEv,
+ (VTBL_ENTRY)&_ZN9GG31132333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3113233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31132333fooEv,_ZTv0_n20_N9GG31132333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3113233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31132333fooEv,_ZTv0_n12_N9GG31132333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31132333barEv,_ZTv0_n16_N9GG31132333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3113233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31132333fooEv,_ZTv0_n12_N9GG31132333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3113233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31132333fooEv,_ZTv0_n20_N9GG31132333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31132333barEv,_ZTv0_n24_N9GG31132333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3113233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31132333barEv,_ZTv0_n12_N9GG31132333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3113233[];
+extern void _ZN5EE3113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE311__9GG3113233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&_ZN5EE3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE311__9GG3113233[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE311__9GG3113233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+};
+extern void _ZN5FF3233fooEv();
+extern void _ZN5FF3233barEv();
+static VTBL_ENTRY _tg__ZTV5FF323__9GG3113233[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&_ZN5FF3233fooEv,
+ (VTBL_ENTRY)&_ZN5FF3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF323__9GG3113233[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv)();
+extern void ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF323__9GG3113233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv),
+};
+static VTT_ENTRY vtt_GG3113233[] = {
+ {&(_ZTV9GG3113233[7]), 7,37},
+ {&(_ZTV9GG3113233[14]), 14,37},
+ {&(_ZTV9GG3113233[19]), 19,37},
+ {&(_ZTV9GG3113233[24]), 24,37},
+ {&(_ZTV9GG3113233[31]), 31,37},
+ {&(_ZTV9GG3113233[36]), 36,37},
+ {&(_tg__ZTV5EE311__9GG3113233[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE311__9GG3113233[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE311__9GG3113233[3]), 3,4},
+ {&(_tg__ZTV5FF323__9GG3113233[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF323__9GG3113233[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF323__9GG3113233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3113233[];
+extern VTBL_ENTRY _ZTV9GG3113233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3113233[];
+static VTBL_ENTRY alt_thunk_names779[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31132333barEv,_ZTv0_n12_N9GG31132333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31132333barEv,_ZThn40_N9GG31132333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG31132333barEv,_ZTv0_n24_N9GG31132333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31132333barEv,_ZThn32_N9GG31132333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31132333barEv,_ZTv0_n16_N9GG31132333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31132333barEv,_ZThn16_N9GG31132333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31132333fooEv,_ZTv0_n12_N9GG31132333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31132333fooEv,_ZThn24_N9GG31132333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31132333fooEv,_ZThn16_N9GG31132333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31132333fooEv,_ZTv0_n20_N9GG31132333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31132333fooEv,_ZThn32_N9GG31132333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31132333fooEv,_ZThn8_N9GG31132333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3113233 = { "GG3113233", // class name
+ bases_GG3113233, 5,
+ &(vtc_GG3113233[0]), // expected_vtbl_contents
+ &(vtt_GG3113233[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3113233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3113233),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3113233),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names779,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3113313 : virtual EE311 , virtual FF331 {
+ int pg;
+ virtual void foo(); // _ZN9GG31133133fooEv
+ virtual void bar(); // _ZN9GG31133133barEv
+ ~GG3113313(); // tgen
+ GG3113313(); // tgen
+};
+//SIG(1 GG3113313) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3113313 ::foo(){vfunc_called(this, "_ZN9GG31133133fooEv");}
+void GG3113313 ::bar(){vfunc_called(this, "_ZN9GG31133133barEv");}
+GG3113313 ::~GG3113313(){ note_dtor("GG3113313", this);} // tgen
+GG3113313 ::GG3113313(){ note_ctor("GG3113313", this);} // tgen
+
+static void Test_GG3113313()
+{
+ extern Class_Descriptor cd_GG3113313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3113313, buf);
+ GG3113313 *dp, &lv = *(dp=new (buf) GG3113313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3113313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3113313)");
+ check_base_class_offset(lv, (AA3*)(EE311*), ABISELECT(32,16), "GG3113313");
+ check_base_class_offset(lv, (AA3*)(FF331*), ABISELECT(32,16), "GG3113313");
+ check_base_class_offset(lv, (BB1*)(EE311*), ABISELECT(48,24), "GG3113313");
+ check_base_class_offset(lv, (EE311*), ABISELECT(16,8), "GG3113313");
+ check_base_class_offset(lv, (BB3*)(FF331*), ABISELECT(80,40), "GG3113313");
+ check_base_class_offset(lv, (FF331*), ABISELECT(64,32), "GG3113313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3113313.pg");
+ test_class_info(&lv, &cd_GG3113313);
+ dp->~GG3113313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3113313(Test_GG3113313, "GG3113313", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3113313C1Ev();
+extern void _ZN9GG3113313D1Ev();
+Name_Map name_map_GG3113313[] = {
+ NSPAIR(_ZN9GG3113313C1Ev),
+ NSPAIR(_ZN9GG3113313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE311;
+extern VTBL_ENTRY _ZTI5EE311[];
+extern VTBL_ENTRY _ZTV5EE311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE311[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF331;
+extern VTBL_ENTRY _ZTI5FF331[];
+extern VTBL_ENTRY _ZTV5FF331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF331[];
+static Base_Class bases_GG3113313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE311, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF331, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3113313[];
+extern void _ZN9GG31133133fooEv();
+extern void _ZN9GG31133133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31133133fooEv,_ZTv0_n20_N9GG31133133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31133133fooEv,_ZThn8_N9GG31133133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31133133fooEv,_ZTv0_n12_N9GG31133133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31133133fooEv,_ZThn16_N9GG31133133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31133133barEv,_ZTv0_n16_N9GG31133133barEv)();
+extern void ABISELECT(_ZThn32_N9GG31133133barEv,_ZThn16_N9GG31133133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31133133fooEv,_ZTv0_n12_N9GG31133133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31133133fooEv,_ZThn24_N9GG31133133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31133133fooEv,_ZTv0_n20_N9GG31133133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31133133fooEv,_ZThn32_N9GG31133133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31133133fooEv,_ZTv0_n12_N9GG31133133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG31133133fooEv,_ZThn40_N9GG31133133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31133133barEv,_ZTv0_n16_N9GG31133133barEv)();
+extern void ABISELECT(_ZThn80_N9GG31133133barEv,_ZThn40_N9GG31133133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3113313[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3113313[0]),
+ (VTBL_ENTRY)&_ZN9GG31133133fooEv,
+ (VTBL_ENTRY)&_ZN9GG31133133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3113313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31133133fooEv,_ZTv0_n20_N9GG31133133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3113313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31133133fooEv,_ZTv0_n12_N9GG31133133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31133133barEv,_ZTv0_n16_N9GG31133133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3113313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31133133fooEv,_ZTv0_n12_N9GG31133133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3113313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31133133fooEv,_ZTv0_n20_N9GG31133133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3113313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31133133fooEv,_ZTv0_n12_N9GG31133133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31133133barEv,_ZTv0_n16_N9GG31133133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3113313[];
+extern void _ZN5EE3113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE311__9GG3113313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&_ZN5EE3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE311__9GG3113313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE311__9GG3113313[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+};
+extern void _ZN5FF3313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF331__9GG3113313[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&_ZN5FF3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF331__9GG3113313[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF331__9GG3113313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG3113313[] = {
+ {&(_ZTV9GG3113313[7]), 7,37},
+ {&(_ZTV9GG3113313[14]), 14,37},
+ {&(_ZTV9GG3113313[19]), 19,37},
+ {&(_ZTV9GG3113313[24]), 24,37},
+ {&(_ZTV9GG3113313[30]), 30,37},
+ {&(_ZTV9GG3113313[35]), 35,37},
+ {&(_tg__ZTV5EE311__9GG3113313[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE311__9GG3113313[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE311__9GG3113313[3]), 3,4},
+ {&(_tg__ZTV5FF331__9GG3113313[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF331__9GG3113313[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF331__9GG3113313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3113313[];
+extern VTBL_ENTRY _ZTV9GG3113313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3113313[];
+static VTBL_ENTRY alt_thunk_names780[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31133133barEv,_ZTv0_n16_N9GG31133133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31133133barEv,_ZThn40_N9GG31133133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31133133barEv,_ZThn16_N9GG31133133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31133133fooEv,_ZTv0_n12_N9GG31133133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31133133fooEv,_ZThn40_N9GG31133133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31133133fooEv,_ZThn24_N9GG31133133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31133133fooEv,_ZThn16_N9GG31133133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31133133fooEv,_ZTv0_n20_N9GG31133133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31133133fooEv,_ZThn32_N9GG31133133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31133133fooEv,_ZThn8_N9GG31133133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3113313 = { "GG3113313", // class name
+ bases_GG3113313, 5,
+ &(vtc_GG3113313[0]), // expected_vtbl_contents
+ &(vtt_GG3113313[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3113313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3113313),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3113313),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names780,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3113323 : virtual EE311 , virtual FF332 {
+ int pg;
+ virtual void foo(); // _ZN9GG31133233fooEv
+ virtual void bar(); // _ZN9GG31133233barEv
+ ~GG3113323(); // tgen
+ GG3113323(); // tgen
+};
+//SIG(1 GG3113323) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3113323 ::foo(){vfunc_called(this, "_ZN9GG31133233fooEv");}
+void GG3113323 ::bar(){vfunc_called(this, "_ZN9GG31133233barEv");}
+GG3113323 ::~GG3113323(){ note_dtor("GG3113323", this);} // tgen
+GG3113323 ::GG3113323(){ note_ctor("GG3113323", this);} // tgen
+
+static void Test_GG3113323()
+{
+ extern Class_Descriptor cd_GG3113323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3113323, buf);
+ GG3113323 *dp, &lv = *(dp=new (buf) GG3113323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3113323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3113323)");
+ check_base_class_offset(lv, (AA3*)(EE311*), ABISELECT(32,16), "GG3113323");
+ check_base_class_offset(lv, (AA3*)(FF332*), ABISELECT(32,16), "GG3113323");
+ check_base_class_offset(lv, (BB1*)(EE311*), ABISELECT(48,24), "GG3113323");
+ check_base_class_offset(lv, (EE311*), ABISELECT(16,8), "GG3113323");
+ check_base_class_offset(lv, (BB3*)(FF332*), ABISELECT(80,40), "GG3113323");
+ check_base_class_offset(lv, (FF332*), ABISELECT(64,32), "GG3113323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3113323.pg");
+ test_class_info(&lv, &cd_GG3113323);
+ dp->~GG3113323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3113323(Test_GG3113323, "GG3113323", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3113323C1Ev();
+extern void _ZN9GG3113323D1Ev();
+Name_Map name_map_GG3113323[] = {
+ NSPAIR(_ZN9GG3113323C1Ev),
+ NSPAIR(_ZN9GG3113323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE311;
+extern VTBL_ENTRY _ZTI5EE311[];
+extern VTBL_ENTRY _ZTV5EE311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE311[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF332;
+extern VTBL_ENTRY _ZTI5FF332[];
+extern VTBL_ENTRY _ZTV5FF332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF332[];
+static Base_Class bases_GG3113323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE311, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF332, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3113323[];
+extern void _ZN9GG31133233fooEv();
+extern void _ZN9GG31133233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31133233fooEv,_ZTv0_n20_N9GG31133233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31133233fooEv,_ZThn8_N9GG31133233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31133233fooEv,_ZTv0_n12_N9GG31133233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31133233fooEv,_ZThn16_N9GG31133233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31133233barEv,_ZTv0_n16_N9GG31133233barEv)();
+extern void ABISELECT(_ZThn32_N9GG31133233barEv,_ZThn16_N9GG31133233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31133233fooEv,_ZTv0_n12_N9GG31133233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31133233fooEv,_ZThn24_N9GG31133233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31133233barEv,_ZTv0_n20_N9GG31133233barEv)();
+extern void ABISELECT(_ZThn64_N9GG31133233barEv,_ZThn32_N9GG31133233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31133233fooEv,_ZTv0_n12_N9GG31133233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG31133233fooEv,_ZThn40_N9GG31133233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31133233barEv,_ZTv0_n16_N9GG31133233barEv)();
+extern void ABISELECT(_ZThn80_N9GG31133233barEv,_ZThn40_N9GG31133233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3113323[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3113323[0]),
+ (VTBL_ENTRY)&_ZN9GG31133233fooEv,
+ (VTBL_ENTRY)&_ZN9GG31133233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3113323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31133233fooEv,_ZTv0_n20_N9GG31133233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3113323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31133233fooEv,_ZTv0_n12_N9GG31133233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31133233barEv,_ZTv0_n16_N9GG31133233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3113323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31133233fooEv,_ZTv0_n12_N9GG31133233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3113323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31133233barEv,_ZTv0_n20_N9GG31133233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3113323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31133233fooEv,_ZTv0_n12_N9GG31133233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31133233barEv,_ZTv0_n16_N9GG31133233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3113323[];
+extern void _ZN5EE3113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE311__9GG3113323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&_ZN5EE3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE311__9GG3113323[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE311__9GG3113323[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+};
+extern void _ZN5FF3323barEv();
+static VTBL_ENTRY _tg__ZTV5FF332__9GG3113323[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN5FF3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF332__9GG3113323[] = {
+ ABISELECT(32,16),
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+extern void ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF332__9GG3113323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+static VTT_ENTRY vtt_GG3113323[] = {
+ {&(_ZTV9GG3113323[7]), 7,37},
+ {&(_ZTV9GG3113323[14]), 14,37},
+ {&(_ZTV9GG3113323[19]), 19,37},
+ {&(_ZTV9GG3113323[24]), 24,37},
+ {&(_ZTV9GG3113323[30]), 30,37},
+ {&(_ZTV9GG3113323[35]), 35,37},
+ {&(_tg__ZTV5EE311__9GG3113323[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE311__9GG3113323[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE311__9GG3113323[3]), 3,4},
+ {&(_tg__ZTV5FF332__9GG3113323[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF332__9GG3113323[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF332__9GG3113323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3113323[];
+extern VTBL_ENTRY _ZTV9GG3113323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3113323[];
+static VTBL_ENTRY alt_thunk_names781[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31133233barEv,_ZTv0_n20_N9GG31133233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31133233barEv,_ZThn32_N9GG31133233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31133233barEv,_ZTv0_n16_N9GG31133233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31133233barEv,_ZThn40_N9GG31133233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31133233barEv,_ZThn16_N9GG31133233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31133233fooEv,_ZTv0_n12_N9GG31133233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31133233fooEv,_ZThn40_N9GG31133233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31133233fooEv,_ZThn24_N9GG31133233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31133233fooEv,_ZThn16_N9GG31133233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31133233fooEv,_ZTv0_n20_N9GG31133233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31133233fooEv,_ZThn8_N9GG31133233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3113323 = { "GG3113323", // class name
+ bases_GG3113323, 5,
+ &(vtc_GG3113323[0]), // expected_vtbl_contents
+ &(vtt_GG3113323[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3113323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3113323),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3113323),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names781,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3113333 : virtual EE311 , virtual FF333 {
+ int pg;
+ virtual void foo(); // _ZN9GG31133333fooEv
+ virtual void bar(); // _ZN9GG31133333barEv
+ ~GG3113333(); // tgen
+ GG3113333(); // tgen
+};
+//SIG(1 GG3113333) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3113333 ::foo(){vfunc_called(this, "_ZN9GG31133333fooEv");}
+void GG3113333 ::bar(){vfunc_called(this, "_ZN9GG31133333barEv");}
+GG3113333 ::~GG3113333(){ note_dtor("GG3113333", this);} // tgen
+GG3113333 ::GG3113333(){ note_ctor("GG3113333", this);} // tgen
+
+static void Test_GG3113333()
+{
+ extern Class_Descriptor cd_GG3113333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3113333, buf);
+ GG3113333 *dp, &lv = *(dp=new (buf) GG3113333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3113333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3113333)");
+ check_base_class_offset(lv, (AA3*)(EE311*), ABISELECT(32,16), "GG3113333");
+ check_base_class_offset(lv, (AA3*)(FF333*), ABISELECT(32,16), "GG3113333");
+ check_base_class_offset(lv, (BB1*)(EE311*), ABISELECT(48,24), "GG3113333");
+ check_base_class_offset(lv, (EE311*), ABISELECT(16,8), "GG3113333");
+ check_base_class_offset(lv, (BB3*)(FF333*), ABISELECT(80,40), "GG3113333");
+ check_base_class_offset(lv, (FF333*), ABISELECT(64,32), "GG3113333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3113333.pg");
+ test_class_info(&lv, &cd_GG3113333);
+ dp->~GG3113333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3113333(Test_GG3113333, "GG3113333", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3113333C1Ev();
+extern void _ZN9GG3113333D1Ev();
+Name_Map name_map_GG3113333[] = {
+ NSPAIR(_ZN9GG3113333C1Ev),
+ NSPAIR(_ZN9GG3113333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE311;
+extern VTBL_ENTRY _ZTI5EE311[];
+extern VTBL_ENTRY _ZTV5EE311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE311[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF333;
+extern VTBL_ENTRY _ZTI5FF333[];
+extern VTBL_ENTRY _ZTV5FF333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF333[];
+static Base_Class bases_GG3113333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE311, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF333, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3113333[];
+extern void _ZN9GG31133333fooEv();
+extern void _ZN9GG31133333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31133333fooEv,_ZTv0_n20_N9GG31133333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31133333fooEv,_ZThn8_N9GG31133333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31133333fooEv,_ZTv0_n12_N9GG31133333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31133333fooEv,_ZThn16_N9GG31133333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31133333barEv,_ZTv0_n16_N9GG31133333barEv)();
+extern void ABISELECT(_ZThn32_N9GG31133333barEv,_ZThn16_N9GG31133333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31133333fooEv,_ZTv0_n12_N9GG31133333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31133333fooEv,_ZThn24_N9GG31133333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31133333fooEv,_ZTv0_n20_N9GG31133333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31133333fooEv,_ZThn32_N9GG31133333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31133333barEv,_ZTv0_n24_N9GG31133333barEv)();
+extern void ABISELECT(_ZThn64_N9GG31133333barEv,_ZThn32_N9GG31133333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31133333fooEv,_ZTv0_n12_N9GG31133333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG31133333fooEv,_ZThn40_N9GG31133333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31133333barEv,_ZTv0_n16_N9GG31133333barEv)();
+extern void ABISELECT(_ZThn80_N9GG31133333barEv,_ZThn40_N9GG31133333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3113333[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3113333[0]),
+ (VTBL_ENTRY)&_ZN9GG31133333fooEv,
+ (VTBL_ENTRY)&_ZN9GG31133333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3113333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31133333fooEv,_ZTv0_n20_N9GG31133333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3113333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31133333fooEv,_ZTv0_n12_N9GG31133333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31133333barEv,_ZTv0_n16_N9GG31133333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3113333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31133333fooEv,_ZTv0_n12_N9GG31133333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3113333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31133333fooEv,_ZTv0_n20_N9GG31133333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31133333barEv,_ZTv0_n24_N9GG31133333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3113333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31133333fooEv,_ZTv0_n12_N9GG31133333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31133333barEv,_ZTv0_n16_N9GG31133333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3113333[];
+extern void _ZN5EE3113fooEv();
+static VTBL_ENTRY _tg__ZTV5EE311__9GG3113333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&_ZN5EE3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE311__9GG3113333[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE311__9GG3113333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv),
+};
+extern void _ZN5FF3333fooEv();
+extern void _ZN5FF3333barEv();
+static VTBL_ENTRY _tg__ZTV5FF333__9GG3113333[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&_ZN5FF3333fooEv,
+ (VTBL_ENTRY)&_ZN5FF3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF333__9GG3113333[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+extern void ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF333__9GG3113333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+static VTT_ENTRY vtt_GG3113333[] = {
+ {&(_ZTV9GG3113333[7]), 7,39},
+ {&(_ZTV9GG3113333[14]), 14,39},
+ {&(_ZTV9GG3113333[19]), 19,39},
+ {&(_ZTV9GG3113333[24]), 24,39},
+ {&(_ZTV9GG3113333[31]), 31,39},
+ {&(_ZTV9GG3113333[37]), 37,39},
+ {&(_tg__ZTV5EE311__9GG3113333[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE311__9GG3113333[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE311__9GG3113333[3]), 3,4},
+ {&(_tg__ZTV5FF333__9GG3113333[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF333__9GG3113333[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF333__9GG3113333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3113333[];
+extern VTBL_ENTRY _ZTV9GG3113333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3113333[];
+static VTBL_ENTRY alt_thunk_names782[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3113fooEv,_ZTv0_n12_N5EE3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3113fooEv,_ZThn16_N5EE3113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3113fooEv,_ZThn8_N5EE3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG31133333barEv,_ZTv0_n24_N9GG31133333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31133333barEv,_ZThn32_N9GG31133333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31133333barEv,_ZTv0_n16_N9GG31133333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31133333barEv,_ZThn40_N9GG31133333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31133333barEv,_ZThn16_N9GG31133333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31133333fooEv,_ZTv0_n12_N9GG31133333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31133333fooEv,_ZThn40_N9GG31133333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31133333fooEv,_ZThn24_N9GG31133333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31133333fooEv,_ZThn16_N9GG31133333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31133333fooEv,_ZTv0_n20_N9GG31133333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31133333fooEv,_ZThn32_N9GG31133333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31133333fooEv,_ZThn8_N9GG31133333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3113333 = { "GG3113333", // class name
+ bases_GG3113333, 5,
+ &(vtc_GG3113333[0]), // expected_vtbl_contents
+ &(vtt_GG3113333[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3113333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3113333),39, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3113333),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names782,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3121111 : virtual EE312 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG31211113fooEv
+ ~GG3121111(); // tgen
+ GG3121111(); // tgen
+};
+//SIG(1 GG3121111) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v1 Fi} v1 Fi}
+
+
+void GG3121111 ::foo(){vfunc_called(this, "_ZN9GG31211113fooEv");}
+GG3121111 ::~GG3121111(){ note_dtor("GG3121111", this);} // tgen
+GG3121111 ::GG3121111(){ note_ctor("GG3121111", this);} // tgen
+
+static void Test_GG3121111()
+{
+ extern Class_Descriptor cd_GG3121111;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3121111, buf);
+ GG3121111 *dp, &lv = *(dp=new (buf) GG3121111());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3121111)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3121111)");
+ check_base_class_offset(lv, (AA3*)(EE312*), ABISELECT(32,16), "GG3121111");
+ check_base_class_offset(lv, (BB1*)(EE312*), ABISELECT(48,24), "GG3121111");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(48,24), "GG3121111");
+ check_base_class_offset(lv, (EE312*), ABISELECT(16,8), "GG3121111");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(80,40), "GG3121111");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG3121111");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3121111.pg");
+ test_class_info(&lv, &cd_GG3121111);
+ dp->~GG3121111();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3121111(Test_GG3121111, "GG3121111", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3121111C1Ev();
+extern void _ZN9GG3121111D1Ev();
+Name_Map name_map_GG3121111[] = {
+ NSPAIR(_ZN9GG3121111C1Ev),
+ NSPAIR(_ZN9GG3121111D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE312;
+extern VTBL_ENTRY _ZTI5EE312[];
+extern VTBL_ENTRY _ZTV5EE312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE312[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG3121111[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE312, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3121111[];
+extern void _ZN9GG31211113fooEv();
+extern void _ZN5EE3123barEv();
+extern void ABISELECT(_ZTv0_n24_N9GG31211113fooEv,_ZTv0_n12_N9GG31211113fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31211113fooEv,_ZThn16_N9GG31211113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv)();
+extern void ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31211113fooEv,_ZTv0_n12_N9GG31211113fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31211113fooEv,_ZThn24_N9GG31211113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31211113fooEv,_ZTv0_n20_N9GG31211113fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31211113fooEv,_ZThn32_N9GG31211113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31211113fooEv,_ZTv0_n12_N9GG31211113fooEv)();
+extern void ABISELECT(_ZThn80_N9GG31211113fooEv,_ZThn40_N9GG31211113fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3121111[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3121111[0]),
+ (VTBL_ENTRY)&_ZN9GG31211113fooEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3121111[0]),
+ (VTBL_ENTRY)&_ZN5EE3123barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3121111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31211113fooEv,_ZTv0_n12_N9GG31211113fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3121111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31211113fooEv,_ZTv0_n12_N9GG31211113fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3121111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31211113fooEv,_ZTv0_n20_N9GG31211113fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3121111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31211113fooEv,_ZTv0_n12_N9GG31211113fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3121111[];
+extern void _ZN5EE3123barEv();
+static VTBL_ENTRY _tg__ZTV5EE312__9GG3121111[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN5EE3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv)();
+extern void ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE312__9GG3121111[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE312__9GG3121111[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG3121111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG3121111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG3121111[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG3121111[] = {
+ {&(_ZTV9GG3121111[7]), 7,34},
+ {&(_ZTV9GG3121111[13]), 13,34},
+ {&(_ZTV9GG3121111[18]), 18,34},
+ {&(_ZTV9GG3121111[23]), 23,34},
+ {&(_ZTV9GG3121111[29]), 29,34},
+ {&(_ZTV9GG3121111[33]), 33,34},
+ {&(_tg__ZTV5EE312__9GG3121111[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE312__9GG3121111[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE312__9GG3121111[3]), 3,4},
+ {&(_tg__ZTV5FF111__9GG3121111[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG3121111[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG3121111[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3121111[];
+extern VTBL_ENTRY _ZTV9GG3121111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3121111[];
+static VTBL_ENTRY alt_thunk_names783[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31211113fooEv,_ZTv0_n20_N9GG31211113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31211113fooEv,_ZThn32_N9GG31211113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31211113fooEv,_ZTv0_n12_N9GG31211113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31211113fooEv,_ZThn40_N9GG31211113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31211113fooEv,_ZThn24_N9GG31211113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31211113fooEv,_ZThn16_N9GG31211113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3121111 = { "GG3121111", // class name
+ bases_GG3121111, 5,
+ &(vtc_GG3121111[0]), // expected_vtbl_contents
+ &(vtt_GG3121111[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3121111),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3121111),34, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3121111),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names783,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3121113 : virtual EE312 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG31211133fooEv
+ virtual void bar(); // _ZN9GG31211133barEv
+ ~GG3121113(); // tgen
+ GG3121113(); // tgen
+};
+//SIG(1 GG3121113) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG3121113 ::foo(){vfunc_called(this, "_ZN9GG31211133fooEv");}
+void GG3121113 ::bar(){vfunc_called(this, "_ZN9GG31211133barEv");}
+GG3121113 ::~GG3121113(){ note_dtor("GG3121113", this);} // tgen
+GG3121113 ::GG3121113(){ note_ctor("GG3121113", this);} // tgen
+
+static void Test_GG3121113()
+{
+ extern Class_Descriptor cd_GG3121113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3121113, buf);
+ GG3121113 *dp, &lv = *(dp=new (buf) GG3121113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3121113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3121113)");
+ check_base_class_offset(lv, (AA3*)(EE312*), ABISELECT(32,16), "GG3121113");
+ check_base_class_offset(lv, (BB1*)(EE312*), ABISELECT(48,24), "GG3121113");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(48,24), "GG3121113");
+ check_base_class_offset(lv, (EE312*), ABISELECT(16,8), "GG3121113");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(80,40), "GG3121113");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG3121113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3121113.pg");
+ test_class_info(&lv, &cd_GG3121113);
+ dp->~GG3121113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3121113(Test_GG3121113, "GG3121113", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3121113C1Ev();
+extern void _ZN9GG3121113D1Ev();
+Name_Map name_map_GG3121113[] = {
+ NSPAIR(_ZN9GG3121113C1Ev),
+ NSPAIR(_ZN9GG3121113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE312;
+extern VTBL_ENTRY _ZTI5EE312[];
+extern VTBL_ENTRY _ZTV5EE312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE312[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG3121113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE312, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3121113[];
+extern void _ZN9GG31211133fooEv();
+extern void _ZN9GG31211133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31211133barEv,_ZTv0_n20_N9GG31211133barEv)();
+extern void ABISELECT(_ZThn16_N9GG31211133barEv,_ZThn8_N9GG31211133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31211133fooEv,_ZTv0_n12_N9GG31211133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31211133fooEv,_ZThn16_N9GG31211133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31211133barEv,_ZTv0_n16_N9GG31211133barEv)();
+extern void ABISELECT(_ZThn32_N9GG31211133barEv,_ZThn16_N9GG31211133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31211133fooEv,_ZTv0_n12_N9GG31211133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31211133fooEv,_ZThn24_N9GG31211133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31211133fooEv,_ZTv0_n20_N9GG31211133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31211133fooEv,_ZThn32_N9GG31211133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31211133fooEv,_ZTv0_n12_N9GG31211133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG31211133fooEv,_ZThn40_N9GG31211133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3121113[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3121113[0]),
+ (VTBL_ENTRY)&_ZN9GG31211133fooEv,
+ (VTBL_ENTRY)&_ZN9GG31211133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3121113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31211133barEv,_ZTv0_n20_N9GG31211133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3121113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31211133fooEv,_ZTv0_n12_N9GG31211133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31211133barEv,_ZTv0_n16_N9GG31211133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3121113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31211133fooEv,_ZTv0_n12_N9GG31211133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3121113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31211133fooEv,_ZTv0_n20_N9GG31211133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3121113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31211133fooEv,_ZTv0_n12_N9GG31211133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3121113[];
+extern void _ZN5EE3123barEv();
+static VTBL_ENTRY _tg__ZTV5EE312__9GG3121113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN5EE3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv)();
+extern void ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE312__9GG3121113[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE312__9GG3121113[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG3121113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG3121113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG3121113[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG3121113[] = {
+ {&(_ZTV9GG3121113[7]), 7,35},
+ {&(_ZTV9GG3121113[14]), 14,35},
+ {&(_ZTV9GG3121113[19]), 19,35},
+ {&(_ZTV9GG3121113[24]), 24,35},
+ {&(_ZTV9GG3121113[30]), 30,35},
+ {&(_ZTV9GG3121113[34]), 34,35},
+ {&(_tg__ZTV5EE312__9GG3121113[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE312__9GG3121113[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE312__9GG3121113[3]), 3,4},
+ {&(_tg__ZTV5FF111__9GG3121113[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG3121113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG3121113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3121113[];
+extern VTBL_ENTRY _ZTV9GG3121113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3121113[];
+static VTBL_ENTRY alt_thunk_names784[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31211133fooEv,_ZTv0_n20_N9GG31211133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31211133fooEv,_ZThn32_N9GG31211133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31211133barEv,_ZTv0_n16_N9GG31211133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31211133barEv,_ZThn16_N9GG31211133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31211133fooEv,_ZTv0_n12_N9GG31211133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31211133fooEv,_ZThn40_N9GG31211133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31211133fooEv,_ZThn24_N9GG31211133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31211133fooEv,_ZThn16_N9GG31211133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31211133barEv,_ZTv0_n20_N9GG31211133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31211133barEv,_ZThn8_N9GG31211133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3121113 = { "GG3121113", // class name
+ bases_GG3121113, 5,
+ &(vtc_GG3121113[0]), // expected_vtbl_contents
+ &(vtt_GG3121113[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3121113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3121113),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3121113),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names784,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3121123 : virtual EE312 , virtual FF112 {
+ int pg;
+ virtual void foo(); // _ZN9GG31211233fooEv
+ virtual void bar(); // _ZN9GG31211233barEv
+ ~GG3121123(); // tgen
+ GG3121123(); // tgen
+};
+//SIG(1 GG3121123) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG3121123 ::foo(){vfunc_called(this, "_ZN9GG31211233fooEv");}
+void GG3121123 ::bar(){vfunc_called(this, "_ZN9GG31211233barEv");}
+GG3121123 ::~GG3121123(){ note_dtor("GG3121123", this);} // tgen
+GG3121123 ::GG3121123(){ note_ctor("GG3121123", this);} // tgen
+
+static void Test_GG3121123()
+{
+ extern Class_Descriptor cd_GG3121123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3121123, buf);
+ GG3121123 *dp, &lv = *(dp=new (buf) GG3121123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3121123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3121123)");
+ check_base_class_offset(lv, (AA3*)(EE312*), ABISELECT(32,16), "GG3121123");
+ check_base_class_offset(lv, (BB1*)(EE312*), ABISELECT(48,24), "GG3121123");
+ check_base_class_offset(lv, (BB1*)(FF112*), ABISELECT(48,24), "GG3121123");
+ check_base_class_offset(lv, (EE312*), ABISELECT(16,8), "GG3121123");
+ check_base_class_offset(lv, (AA1*)(FF112*), ABISELECT(80,40), "GG3121123");
+ check_base_class_offset(lv, (FF112*), ABISELECT(64,32), "GG3121123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3121123.pg");
+ test_class_info(&lv, &cd_GG3121123);
+ dp->~GG3121123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3121123(Test_GG3121123, "GG3121123", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3121123C1Ev();
+extern void _ZN9GG3121123D1Ev();
+Name_Map name_map_GG3121123[] = {
+ NSPAIR(_ZN9GG3121123C1Ev),
+ NSPAIR(_ZN9GG3121123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE312;
+extern VTBL_ENTRY _ZTI5EE312[];
+extern VTBL_ENTRY _ZTV5EE312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE312[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF112;
+extern VTBL_ENTRY _ZTI5FF112[];
+extern VTBL_ENTRY _ZTV5FF112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF112[];
+static Base_Class bases_GG3121123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE312, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF112, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3121123[];
+extern void _ZN9GG31211233fooEv();
+extern void _ZN9GG31211233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31211233barEv,_ZTv0_n20_N9GG31211233barEv)();
+extern void ABISELECT(_ZThn16_N9GG31211233barEv,_ZThn8_N9GG31211233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31211233fooEv,_ZTv0_n12_N9GG31211233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31211233fooEv,_ZThn16_N9GG31211233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31211233barEv,_ZTv0_n16_N9GG31211233barEv)();
+extern void ABISELECT(_ZThn32_N9GG31211233barEv,_ZThn16_N9GG31211233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31211233fooEv,_ZTv0_n12_N9GG31211233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31211233fooEv,_ZThn24_N9GG31211233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31211233barEv,_ZTv0_n20_N9GG31211233barEv)();
+extern void ABISELECT(_ZThn64_N9GG31211233barEv,_ZThn32_N9GG31211233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31211233fooEv,_ZTv0_n12_N9GG31211233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG31211233fooEv,_ZThn40_N9GG31211233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3121123[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3121123[0]),
+ (VTBL_ENTRY)&_ZN9GG31211233fooEv,
+ (VTBL_ENTRY)&_ZN9GG31211233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3121123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31211233barEv,_ZTv0_n20_N9GG31211233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3121123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31211233fooEv,_ZTv0_n12_N9GG31211233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31211233barEv,_ZTv0_n16_N9GG31211233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3121123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31211233fooEv,_ZTv0_n12_N9GG31211233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3121123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31211233barEv,_ZTv0_n20_N9GG31211233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3121123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31211233fooEv,_ZTv0_n12_N9GG31211233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3121123[];
+extern void _ZN5EE3123barEv();
+static VTBL_ENTRY _tg__ZTV5EE312__9GG3121123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN5EE3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv)();
+extern void ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE312__9GG3121123[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE312__9GG3121123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF1123barEv();
+static VTBL_ENTRY _tg__ZTV5FF112__9GG3121123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN5FF1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF112__9GG3121123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF112__9GG3121123[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG3121123[] = {
+ {&(_ZTV9GG3121123[7]), 7,35},
+ {&(_ZTV9GG3121123[14]), 14,35},
+ {&(_ZTV9GG3121123[19]), 19,35},
+ {&(_ZTV9GG3121123[24]), 24,35},
+ {&(_ZTV9GG3121123[30]), 30,35},
+ {&(_ZTV9GG3121123[34]), 34,35},
+ {&(_tg__ZTV5EE312__9GG3121123[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE312__9GG3121123[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE312__9GG3121123[3]), 3,4},
+ {&(_tg__ZTV5FF112__9GG3121123[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF112__9GG3121123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF112__9GG3121123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3121123[];
+extern VTBL_ENTRY _ZTV9GG3121123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3121123[];
+static VTBL_ENTRY alt_thunk_names785[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31211233barEv,_ZTv0_n16_N9GG31211233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31211233barEv,_ZThn16_N9GG31211233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31211233fooEv,_ZTv0_n12_N9GG31211233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31211233fooEv,_ZThn40_N9GG31211233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31211233fooEv,_ZThn24_N9GG31211233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31211233fooEv,_ZThn16_N9GG31211233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31211233barEv,_ZTv0_n20_N9GG31211233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31211233barEv,_ZThn32_N9GG31211233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31211233barEv,_ZThn8_N9GG31211233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3121123 = { "GG3121123", // class name
+ bases_GG3121123, 5,
+ &(vtc_GG3121123[0]), // expected_vtbl_contents
+ &(vtt_GG3121123[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3121123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3121123),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3121123),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names785,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3121133 : virtual EE312 , virtual FF113 {
+ int pg;
+ virtual void foo(); // _ZN9GG31211333fooEv
+ virtual void bar(); // _ZN9GG31211333barEv
+ ~GG3121133(); // tgen
+ GG3121133(); // tgen
+};
+//SIG(1 GG3121133) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3121133 ::foo(){vfunc_called(this, "_ZN9GG31211333fooEv");}
+void GG3121133 ::bar(){vfunc_called(this, "_ZN9GG31211333barEv");}
+GG3121133 ::~GG3121133(){ note_dtor("GG3121133", this);} // tgen
+GG3121133 ::GG3121133(){ note_ctor("GG3121133", this);} // tgen
+
+static void Test_GG3121133()
+{
+ extern Class_Descriptor cd_GG3121133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3121133, buf);
+ GG3121133 *dp, &lv = *(dp=new (buf) GG3121133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3121133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3121133)");
+ check_base_class_offset(lv, (AA3*)(EE312*), ABISELECT(32,16), "GG3121133");
+ check_base_class_offset(lv, (BB1*)(EE312*), ABISELECT(48,24), "GG3121133");
+ check_base_class_offset(lv, (BB1*)(FF113*), ABISELECT(48,24), "GG3121133");
+ check_base_class_offset(lv, (EE312*), ABISELECT(16,8), "GG3121133");
+ check_base_class_offset(lv, (AA1*)(FF113*), ABISELECT(80,40), "GG3121133");
+ check_base_class_offset(lv, (FF113*), ABISELECT(64,32), "GG3121133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3121133.pg");
+ test_class_info(&lv, &cd_GG3121133);
+ dp->~GG3121133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3121133(Test_GG3121133, "GG3121133", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3121133C1Ev();
+extern void _ZN9GG3121133D1Ev();
+Name_Map name_map_GG3121133[] = {
+ NSPAIR(_ZN9GG3121133C1Ev),
+ NSPAIR(_ZN9GG3121133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE312;
+extern VTBL_ENTRY _ZTI5EE312[];
+extern VTBL_ENTRY _ZTV5EE312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE312[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF113;
+extern VTBL_ENTRY _ZTI5FF113[];
+extern VTBL_ENTRY _ZTV5FF113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF113[];
+static Base_Class bases_GG3121133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE312, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF113, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3121133[];
+extern void _ZN9GG31211333fooEv();
+extern void _ZN9GG31211333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31211333barEv,_ZTv0_n20_N9GG31211333barEv)();
+extern void ABISELECT(_ZThn16_N9GG31211333barEv,_ZThn8_N9GG31211333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31211333fooEv,_ZTv0_n12_N9GG31211333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31211333fooEv,_ZThn16_N9GG31211333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31211333barEv,_ZTv0_n16_N9GG31211333barEv)();
+extern void ABISELECT(_ZThn32_N9GG31211333barEv,_ZThn16_N9GG31211333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31211333fooEv,_ZTv0_n12_N9GG31211333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31211333fooEv,_ZThn24_N9GG31211333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31211333fooEv,_ZTv0_n20_N9GG31211333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31211333fooEv,_ZThn32_N9GG31211333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31211333barEv,_ZTv0_n24_N9GG31211333barEv)();
+extern void ABISELECT(_ZThn64_N9GG31211333barEv,_ZThn32_N9GG31211333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31211333fooEv,_ZTv0_n12_N9GG31211333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG31211333fooEv,_ZThn40_N9GG31211333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3121133[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3121133[0]),
+ (VTBL_ENTRY)&_ZN9GG31211333fooEv,
+ (VTBL_ENTRY)&_ZN9GG31211333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3121133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31211333barEv,_ZTv0_n20_N9GG31211333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3121133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31211333fooEv,_ZTv0_n12_N9GG31211333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31211333barEv,_ZTv0_n16_N9GG31211333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3121133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31211333fooEv,_ZTv0_n12_N9GG31211333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3121133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31211333fooEv,_ZTv0_n20_N9GG31211333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31211333barEv,_ZTv0_n24_N9GG31211333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3121133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31211333fooEv,_ZTv0_n12_N9GG31211333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3121133[];
+extern void _ZN5EE3123barEv();
+static VTBL_ENTRY _tg__ZTV5EE312__9GG3121133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN5EE3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv)();
+extern void ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE312__9GG3121133[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE312__9GG3121133[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF1133fooEv();
+extern void _ZN5FF1133barEv();
+static VTBL_ENTRY _tg__ZTV5FF113__9GG3121133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&_ZN5FF1133fooEv,
+ (VTBL_ENTRY)&_ZN5FF1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF113__9GG3121133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF113__9GG3121133[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+static VTT_ENTRY vtt_GG3121133[] = {
+ {&(_ZTV9GG3121133[7]), 7,37},
+ {&(_ZTV9GG3121133[14]), 14,37},
+ {&(_ZTV9GG3121133[19]), 19,37},
+ {&(_ZTV9GG3121133[24]), 24,37},
+ {&(_ZTV9GG3121133[31]), 31,37},
+ {&(_ZTV9GG3121133[36]), 36,37},
+ {&(_tg__ZTV5EE312__9GG3121133[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE312__9GG3121133[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE312__9GG3121133[3]), 3,4},
+ {&(_tg__ZTV5FF113__9GG3121133[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF113__9GG3121133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF113__9GG3121133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3121133[];
+extern VTBL_ENTRY _ZTV9GG3121133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3121133[];
+static VTBL_ENTRY alt_thunk_names786[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG31211333barEv,_ZTv0_n24_N9GG31211333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31211333barEv,_ZThn32_N9GG31211333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31211333fooEv,_ZTv0_n20_N9GG31211333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31211333fooEv,_ZThn32_N9GG31211333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31211333barEv,_ZTv0_n16_N9GG31211333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31211333barEv,_ZThn16_N9GG31211333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31211333fooEv,_ZTv0_n12_N9GG31211333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31211333fooEv,_ZThn40_N9GG31211333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31211333fooEv,_ZThn24_N9GG31211333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31211333fooEv,_ZThn16_N9GG31211333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31211333barEv,_ZTv0_n20_N9GG31211333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31211333barEv,_ZThn8_N9GG31211333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3121133 = { "GG3121133", // class name
+ bases_GG3121133, 5,
+ &(vtc_GG3121133[0]), // expected_vtbl_contents
+ &(vtt_GG3121133[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3121133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3121133),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3121133),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names786,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3121213 : virtual EE312 , virtual FF121 {
+ int pg;
+ virtual void foo(); // _ZN9GG31212133fooEv
+ virtual void bar(); // _ZN9GG31212133barEv
+ ~GG3121213(); // tgen
+ GG3121213(); // tgen
+};
+//SIG(1 GG3121213) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3121213 ::foo(){vfunc_called(this, "_ZN9GG31212133fooEv");}
+void GG3121213 ::bar(){vfunc_called(this, "_ZN9GG31212133barEv");}
+GG3121213 ::~GG3121213(){ note_dtor("GG3121213", this);} // tgen
+GG3121213 ::GG3121213(){ note_ctor("GG3121213", this);} // tgen
+
+static void Test_GG3121213()
+{
+ extern Class_Descriptor cd_GG3121213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3121213, buf);
+ GG3121213 *dp, &lv = *(dp=new (buf) GG3121213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3121213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3121213)");
+ check_base_class_offset(lv, (AA3*)(EE312*), ABISELECT(32,16), "GG3121213");
+ check_base_class_offset(lv, (BB1*)(EE312*), ABISELECT(48,24), "GG3121213");
+ check_base_class_offset(lv, (EE312*), ABISELECT(16,8), "GG3121213");
+ check_base_class_offset(lv, (AA1*)(FF121*), ABISELECT(80,40), "GG3121213");
+ check_base_class_offset(lv, (BB2*)(FF121*), ABISELECT(96,48), "GG3121213");
+ check_base_class_offset(lv, (FF121*), ABISELECT(64,32), "GG3121213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3121213.pg");
+ test_class_info(&lv, &cd_GG3121213);
+ dp->~GG3121213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3121213(Test_GG3121213, "GG3121213", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3121213C1Ev();
+extern void _ZN9GG3121213D1Ev();
+Name_Map name_map_GG3121213[] = {
+ NSPAIR(_ZN9GG3121213C1Ev),
+ NSPAIR(_ZN9GG3121213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE312;
+extern VTBL_ENTRY _ZTI5EE312[];
+extern VTBL_ENTRY _ZTV5EE312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE312[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF121;
+extern VTBL_ENTRY _ZTI5FF121[];
+extern VTBL_ENTRY _ZTV5FF121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF121[];
+static Base_Class bases_GG3121213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE312, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF121, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3121213[];
+extern void _ZN9GG31212133fooEv();
+extern void _ZN9GG31212133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31212133barEv,_ZTv0_n20_N9GG31212133barEv)();
+extern void ABISELECT(_ZThn16_N9GG31212133barEv,_ZThn8_N9GG31212133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31212133fooEv,_ZTv0_n12_N9GG31212133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31212133fooEv,_ZThn16_N9GG31212133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31212133barEv,_ZTv0_n16_N9GG31212133barEv)();
+extern void ABISELECT(_ZThn32_N9GG31212133barEv,_ZThn16_N9GG31212133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31212133fooEv,_ZTv0_n12_N9GG31212133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31212133fooEv,_ZThn24_N9GG31212133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31212133fooEv,_ZTv0_n20_N9GG31212133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31212133fooEv,_ZThn32_N9GG31212133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31212133fooEv,_ZTv0_n12_N9GG31212133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG31212133fooEv,_ZThn40_N9GG31212133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31212133barEv,_ZTv0_n12_N9GG31212133barEv)();
+extern void ABISELECT(_ZThn96_N9GG31212133barEv,_ZThn48_N9GG31212133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3121213[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3121213[0]),
+ (VTBL_ENTRY)&_ZN9GG31212133fooEv,
+ (VTBL_ENTRY)&_ZN9GG31212133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3121213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31212133barEv,_ZTv0_n20_N9GG31212133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3121213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31212133fooEv,_ZTv0_n12_N9GG31212133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31212133barEv,_ZTv0_n16_N9GG31212133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3121213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31212133fooEv,_ZTv0_n12_N9GG31212133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3121213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31212133fooEv,_ZTv0_n20_N9GG31212133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3121213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31212133fooEv,_ZTv0_n12_N9GG31212133fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3121213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31212133barEv,_ZTv0_n12_N9GG31212133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3121213[];
+extern void _ZN5EE3123barEv();
+static VTBL_ENTRY _tg__ZTV5EE312__9GG3121213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN5EE3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv)();
+extern void ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE312__9GG3121213[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE312__9GG3121213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF1213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF121__9GG3121213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN5FF1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1213fooEv,_ZThn8_N5FF1213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF121__9GG3121213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF121__9GG3121213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG3121213[] = {
+ {&(_ZTV9GG3121213[8]), 8,40},
+ {&(_ZTV9GG3121213[15]), 15,40},
+ {&(_ZTV9GG3121213[20]), 20,40},
+ {&(_ZTV9GG3121213[25]), 25,40},
+ {&(_ZTV9GG3121213[31]), 31,40},
+ {&(_ZTV9GG3121213[35]), 35,40},
+ {&(_ZTV9GG3121213[39]), 39,40},
+ {&(_tg__ZTV5EE312__9GG3121213[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE312__9GG3121213[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE312__9GG3121213[3]), 3,4},
+ {&(_tg__ZTV5FF121__9GG3121213[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF121__9GG3121213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF121__9GG3121213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3121213[];
+extern VTBL_ENTRY _ZTV9GG3121213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3121213[];
+static VTBL_ENTRY alt_thunk_names787[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1213fooEv,_ZThn8_N5FF1213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31212133barEv,_ZTv0_n12_N9GG31212133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31212133barEv,_ZThn48_N9GG31212133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31212133fooEv,_ZTv0_n20_N9GG31212133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31212133fooEv,_ZThn32_N9GG31212133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31212133barEv,_ZTv0_n16_N9GG31212133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31212133barEv,_ZThn16_N9GG31212133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31212133fooEv,_ZTv0_n12_N9GG31212133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31212133fooEv,_ZThn40_N9GG31212133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31212133fooEv,_ZThn24_N9GG31212133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31212133fooEv,_ZThn16_N9GG31212133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31212133barEv,_ZTv0_n20_N9GG31212133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31212133barEv,_ZThn8_N9GG31212133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3121213 = { "GG3121213", // class name
+ bases_GG3121213, 6,
+ &(vtc_GG3121213[0]), // expected_vtbl_contents
+ &(vtt_GG3121213[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3121213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3121213),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3121213),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names787,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3121223 : virtual EE312 , virtual FF122 {
+ int pg;
+ virtual void foo(); // _ZN9GG31212233fooEv
+ virtual void bar(); // _ZN9GG31212233barEv
+ ~GG3121223(); // tgen
+ GG3121223(); // tgen
+};
+//SIG(1 GG3121223) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3121223 ::foo(){vfunc_called(this, "_ZN9GG31212233fooEv");}
+void GG3121223 ::bar(){vfunc_called(this, "_ZN9GG31212233barEv");}
+GG3121223 ::~GG3121223(){ note_dtor("GG3121223", this);} // tgen
+GG3121223 ::GG3121223(){ note_ctor("GG3121223", this);} // tgen
+
+static void Test_GG3121223()
+{
+ extern Class_Descriptor cd_GG3121223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3121223, buf);
+ GG3121223 *dp, &lv = *(dp=new (buf) GG3121223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3121223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3121223)");
+ check_base_class_offset(lv, (AA3*)(EE312*), ABISELECT(32,16), "GG3121223");
+ check_base_class_offset(lv, (BB1*)(EE312*), ABISELECT(48,24), "GG3121223");
+ check_base_class_offset(lv, (EE312*), ABISELECT(16,8), "GG3121223");
+ check_base_class_offset(lv, (AA1*)(FF122*), ABISELECT(80,40), "GG3121223");
+ check_base_class_offset(lv, (BB2*)(FF122*), ABISELECT(96,48), "GG3121223");
+ check_base_class_offset(lv, (FF122*), ABISELECT(64,32), "GG3121223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3121223.pg");
+ test_class_info(&lv, &cd_GG3121223);
+ dp->~GG3121223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3121223(Test_GG3121223, "GG3121223", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3121223C1Ev();
+extern void _ZN9GG3121223D1Ev();
+Name_Map name_map_GG3121223[] = {
+ NSPAIR(_ZN9GG3121223C1Ev),
+ NSPAIR(_ZN9GG3121223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE312;
+extern VTBL_ENTRY _ZTI5EE312[];
+extern VTBL_ENTRY _ZTV5EE312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE312[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF122;
+extern VTBL_ENTRY _ZTI5FF122[];
+extern VTBL_ENTRY _ZTV5FF122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF122[];
+static Base_Class bases_GG3121223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE312, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF122, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3121223[];
+extern void _ZN9GG31212233fooEv();
+extern void _ZN9GG31212233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31212233barEv,_ZTv0_n20_N9GG31212233barEv)();
+extern void ABISELECT(_ZThn16_N9GG31212233barEv,_ZThn8_N9GG31212233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31212233fooEv,_ZTv0_n12_N9GG31212233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31212233fooEv,_ZThn16_N9GG31212233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31212233barEv,_ZTv0_n16_N9GG31212233barEv)();
+extern void ABISELECT(_ZThn32_N9GG31212233barEv,_ZThn16_N9GG31212233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31212233fooEv,_ZTv0_n12_N9GG31212233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31212233fooEv,_ZThn24_N9GG31212233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31212233barEv,_ZTv0_n20_N9GG31212233barEv)();
+extern void ABISELECT(_ZThn64_N9GG31212233barEv,_ZThn32_N9GG31212233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31212233fooEv,_ZTv0_n12_N9GG31212233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG31212233fooEv,_ZThn40_N9GG31212233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31212233barEv,_ZTv0_n12_N9GG31212233barEv)();
+extern void ABISELECT(_ZThn96_N9GG31212233barEv,_ZThn48_N9GG31212233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3121223[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3121223[0]),
+ (VTBL_ENTRY)&_ZN9GG31212233fooEv,
+ (VTBL_ENTRY)&_ZN9GG31212233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3121223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31212233barEv,_ZTv0_n20_N9GG31212233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3121223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31212233fooEv,_ZTv0_n12_N9GG31212233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31212233barEv,_ZTv0_n16_N9GG31212233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3121223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31212233fooEv,_ZTv0_n12_N9GG31212233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3121223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31212233barEv,_ZTv0_n20_N9GG31212233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3121223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31212233fooEv,_ZTv0_n12_N9GG31212233fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3121223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31212233barEv,_ZTv0_n12_N9GG31212233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3121223[];
+extern void _ZN5EE3123barEv();
+static VTBL_ENTRY _tg__ZTV5EE312__9GG3121223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN5EE3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv)();
+extern void ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE312__9GG3121223[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE312__9GG3121223[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF1223barEv();
+static VTBL_ENTRY _tg__ZTV5FF122__9GG3121223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN5FF1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF122__9GG3121223[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv)();
+extern void ABISELECT(_ZThn32_N5FF1223barEv,_ZThn16_N5FF1223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF122__9GG3121223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv),
+};
+static VTT_ENTRY vtt_GG3121223[] = {
+ {&(_ZTV9GG3121223[8]), 8,40},
+ {&(_ZTV9GG3121223[15]), 15,40},
+ {&(_ZTV9GG3121223[20]), 20,40},
+ {&(_ZTV9GG3121223[25]), 25,40},
+ {&(_ZTV9GG3121223[31]), 31,40},
+ {&(_ZTV9GG3121223[35]), 35,40},
+ {&(_ZTV9GG3121223[39]), 39,40},
+ {&(_tg__ZTV5EE312__9GG3121223[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE312__9GG3121223[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE312__9GG3121223[3]), 3,4},
+ {&(_tg__ZTV5FF122__9GG3121223[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF122__9GG3121223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF122__9GG3121223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3121223[];
+extern VTBL_ENTRY _ZTV9GG3121223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3121223[];
+static VTBL_ENTRY alt_thunk_names788[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1223barEv,_ZThn16_N5FF1223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31212233barEv,_ZTv0_n12_N9GG31212233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31212233barEv,_ZThn48_N9GG31212233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31212233barEv,_ZTv0_n16_N9GG31212233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31212233barEv,_ZThn16_N9GG31212233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31212233fooEv,_ZTv0_n12_N9GG31212233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31212233fooEv,_ZThn40_N9GG31212233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31212233fooEv,_ZThn24_N9GG31212233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31212233fooEv,_ZThn16_N9GG31212233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31212233barEv,_ZTv0_n20_N9GG31212233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31212233barEv,_ZThn32_N9GG31212233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31212233barEv,_ZThn8_N9GG31212233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3121223 = { "GG3121223", // class name
+ bases_GG3121223, 6,
+ &(vtc_GG3121223[0]), // expected_vtbl_contents
+ &(vtt_GG3121223[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3121223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3121223),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3121223),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names788,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3121233 : virtual EE312 , virtual FF123 {
+ int pg;
+ virtual void foo(); // _ZN9GG31212333fooEv
+ virtual void bar(); // _ZN9GG31212333barEv
+ ~GG3121233(); // tgen
+ GG3121233(); // tgen
+};
+//SIG(1 GG3121233) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3121233 ::foo(){vfunc_called(this, "_ZN9GG31212333fooEv");}
+void GG3121233 ::bar(){vfunc_called(this, "_ZN9GG31212333barEv");}
+GG3121233 ::~GG3121233(){ note_dtor("GG3121233", this);} // tgen
+GG3121233 ::GG3121233(){ note_ctor("GG3121233", this);} // tgen
+
+static void Test_GG3121233()
+{
+ extern Class_Descriptor cd_GG3121233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3121233, buf);
+ GG3121233 *dp, &lv = *(dp=new (buf) GG3121233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3121233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3121233)");
+ check_base_class_offset(lv, (AA3*)(EE312*), ABISELECT(32,16), "GG3121233");
+ check_base_class_offset(lv, (BB1*)(EE312*), ABISELECT(48,24), "GG3121233");
+ check_base_class_offset(lv, (EE312*), ABISELECT(16,8), "GG3121233");
+ check_base_class_offset(lv, (AA1*)(FF123*), ABISELECT(80,40), "GG3121233");
+ check_base_class_offset(lv, (BB2*)(FF123*), ABISELECT(96,48), "GG3121233");
+ check_base_class_offset(lv, (FF123*), ABISELECT(64,32), "GG3121233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3121233.pg");
+ test_class_info(&lv, &cd_GG3121233);
+ dp->~GG3121233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3121233(Test_GG3121233, "GG3121233", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3121233C1Ev();
+extern void _ZN9GG3121233D1Ev();
+Name_Map name_map_GG3121233[] = {
+ NSPAIR(_ZN9GG3121233C1Ev),
+ NSPAIR(_ZN9GG3121233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE312;
+extern VTBL_ENTRY _ZTI5EE312[];
+extern VTBL_ENTRY _ZTV5EE312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE312[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF123;
+extern VTBL_ENTRY _ZTI5FF123[];
+extern VTBL_ENTRY _ZTV5FF123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF123[];
+static Base_Class bases_GG3121233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE312, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF123, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3121233[];
+extern void _ZN9GG31212333fooEv();
+extern void _ZN9GG31212333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31212333barEv,_ZTv0_n20_N9GG31212333barEv)();
+extern void ABISELECT(_ZThn16_N9GG31212333barEv,_ZThn8_N9GG31212333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31212333fooEv,_ZTv0_n12_N9GG31212333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31212333fooEv,_ZThn16_N9GG31212333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31212333barEv,_ZTv0_n16_N9GG31212333barEv)();
+extern void ABISELECT(_ZThn32_N9GG31212333barEv,_ZThn16_N9GG31212333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31212333fooEv,_ZTv0_n12_N9GG31212333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31212333fooEv,_ZThn24_N9GG31212333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31212333fooEv,_ZTv0_n20_N9GG31212333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31212333fooEv,_ZThn32_N9GG31212333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31212333barEv,_ZTv0_n24_N9GG31212333barEv)();
+extern void ABISELECT(_ZThn64_N9GG31212333barEv,_ZThn32_N9GG31212333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31212333fooEv,_ZTv0_n12_N9GG31212333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG31212333fooEv,_ZThn40_N9GG31212333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31212333barEv,_ZTv0_n12_N9GG31212333barEv)();
+extern void ABISELECT(_ZThn96_N9GG31212333barEv,_ZThn48_N9GG31212333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3121233[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3121233[0]),
+ (VTBL_ENTRY)&_ZN9GG31212333fooEv,
+ (VTBL_ENTRY)&_ZN9GG31212333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3121233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31212333barEv,_ZTv0_n20_N9GG31212333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3121233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31212333fooEv,_ZTv0_n12_N9GG31212333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31212333barEv,_ZTv0_n16_N9GG31212333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3121233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31212333fooEv,_ZTv0_n12_N9GG31212333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3121233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31212333fooEv,_ZTv0_n20_N9GG31212333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31212333barEv,_ZTv0_n24_N9GG31212333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3121233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31212333fooEv,_ZTv0_n12_N9GG31212333fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3121233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31212333barEv,_ZTv0_n12_N9GG31212333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3121233[];
+extern void _ZN5EE3123barEv();
+static VTBL_ENTRY _tg__ZTV5EE312__9GG3121233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN5EE3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv)();
+extern void ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE312__9GG3121233[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE312__9GG3121233[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF1233fooEv();
+extern void _ZN5FF1233barEv();
+static VTBL_ENTRY _tg__ZTV5FF123__9GG3121233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&_ZN5FF1233fooEv,
+ (VTBL_ENTRY)&_ZN5FF1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1233fooEv,_ZThn8_N5FF1233fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF123__9GG3121233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv)();
+extern void ABISELECT(_ZThn32_N5FF1233barEv,_ZThn16_N5FF1233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF123__9GG3121233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv),
+};
+static VTT_ENTRY vtt_GG3121233[] = {
+ {&(_ZTV9GG3121233[8]), 8,42},
+ {&(_ZTV9GG3121233[15]), 15,42},
+ {&(_ZTV9GG3121233[20]), 20,42},
+ {&(_ZTV9GG3121233[25]), 25,42},
+ {&(_ZTV9GG3121233[32]), 32,42},
+ {&(_ZTV9GG3121233[37]), 37,42},
+ {&(_ZTV9GG3121233[41]), 41,42},
+ {&(_tg__ZTV5EE312__9GG3121233[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE312__9GG3121233[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE312__9GG3121233[3]), 3,4},
+ {&(_tg__ZTV5FF123__9GG3121233[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF123__9GG3121233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF123__9GG3121233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3121233[];
+extern VTBL_ENTRY _ZTV9GG3121233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3121233[];
+static VTBL_ENTRY alt_thunk_names789[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1233barEv,_ZThn16_N5FF1233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1233fooEv,_ZThn8_N5FF1233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31212333barEv,_ZTv0_n12_N9GG31212333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31212333barEv,_ZThn48_N9GG31212333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG31212333barEv,_ZTv0_n24_N9GG31212333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31212333barEv,_ZThn32_N9GG31212333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31212333fooEv,_ZTv0_n20_N9GG31212333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31212333fooEv,_ZThn32_N9GG31212333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31212333barEv,_ZTv0_n16_N9GG31212333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31212333barEv,_ZThn16_N9GG31212333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31212333fooEv,_ZTv0_n12_N9GG31212333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31212333fooEv,_ZThn40_N9GG31212333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31212333fooEv,_ZThn24_N9GG31212333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31212333fooEv,_ZThn16_N9GG31212333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31212333barEv,_ZTv0_n20_N9GG31212333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31212333barEv,_ZThn8_N9GG31212333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3121233 = { "GG3121233", // class name
+ bases_GG3121233, 6,
+ &(vtc_GG3121233[0]), // expected_vtbl_contents
+ &(vtt_GG3121233[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3121233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3121233),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3121233),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names789,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3121313 : virtual EE312 , virtual FF131 {
+ int pg;
+ virtual void foo(); // _ZN9GG31213133fooEv
+ virtual void bar(); // _ZN9GG31213133barEv
+ ~GG3121313(); // tgen
+ GG3121313(); // tgen
+};
+//SIG(1 GG3121313) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3121313 ::foo(){vfunc_called(this, "_ZN9GG31213133fooEv");}
+void GG3121313 ::bar(){vfunc_called(this, "_ZN9GG31213133barEv");}
+GG3121313 ::~GG3121313(){ note_dtor("GG3121313", this);} // tgen
+GG3121313 ::GG3121313(){ note_ctor("GG3121313", this);} // tgen
+
+static void Test_GG3121313()
+{
+ extern Class_Descriptor cd_GG3121313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3121313, buf);
+ GG3121313 *dp, &lv = *(dp=new (buf) GG3121313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3121313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3121313)");
+ check_base_class_offset(lv, (AA3*)(EE312*), ABISELECT(32,16), "GG3121313");
+ check_base_class_offset(lv, (BB1*)(EE312*), ABISELECT(48,24), "GG3121313");
+ check_base_class_offset(lv, (EE312*), ABISELECT(16,8), "GG3121313");
+ check_base_class_offset(lv, (AA1*)(FF131*), ABISELECT(80,40), "GG3121313");
+ check_base_class_offset(lv, (BB3*)(FF131*), ABISELECT(96,48), "GG3121313");
+ check_base_class_offset(lv, (FF131*), ABISELECT(64,32), "GG3121313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3121313.pg");
+ test_class_info(&lv, &cd_GG3121313);
+ dp->~GG3121313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3121313(Test_GG3121313, "GG3121313", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3121313C1Ev();
+extern void _ZN9GG3121313D1Ev();
+Name_Map name_map_GG3121313[] = {
+ NSPAIR(_ZN9GG3121313C1Ev),
+ NSPAIR(_ZN9GG3121313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE312;
+extern VTBL_ENTRY _ZTI5EE312[];
+extern VTBL_ENTRY _ZTV5EE312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE312[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF131;
+extern VTBL_ENTRY _ZTI5FF131[];
+extern VTBL_ENTRY _ZTV5FF131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF131[];
+static Base_Class bases_GG3121313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE312, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF131, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3121313[];
+extern void _ZN9GG31213133fooEv();
+extern void _ZN9GG31213133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31213133barEv,_ZTv0_n20_N9GG31213133barEv)();
+extern void ABISELECT(_ZThn16_N9GG31213133barEv,_ZThn8_N9GG31213133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31213133fooEv,_ZTv0_n12_N9GG31213133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31213133fooEv,_ZThn16_N9GG31213133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31213133barEv,_ZTv0_n16_N9GG31213133barEv)();
+extern void ABISELECT(_ZThn32_N9GG31213133barEv,_ZThn16_N9GG31213133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31213133fooEv,_ZTv0_n12_N9GG31213133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31213133fooEv,_ZThn24_N9GG31213133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31213133fooEv,_ZTv0_n20_N9GG31213133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31213133fooEv,_ZThn32_N9GG31213133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31213133fooEv,_ZTv0_n12_N9GG31213133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG31213133fooEv,_ZThn40_N9GG31213133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31213133fooEv,_ZTv0_n12_N9GG31213133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG31213133fooEv,_ZThn48_N9GG31213133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31213133barEv,_ZTv0_n16_N9GG31213133barEv)();
+extern void ABISELECT(_ZThn96_N9GG31213133barEv,_ZThn48_N9GG31213133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3121313[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3121313[0]),
+ (VTBL_ENTRY)&_ZN9GG31213133fooEv,
+ (VTBL_ENTRY)&_ZN9GG31213133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3121313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31213133barEv,_ZTv0_n20_N9GG31213133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3121313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31213133fooEv,_ZTv0_n12_N9GG31213133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31213133barEv,_ZTv0_n16_N9GG31213133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3121313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31213133fooEv,_ZTv0_n12_N9GG31213133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3121313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31213133fooEv,_ZTv0_n20_N9GG31213133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3121313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31213133fooEv,_ZTv0_n12_N9GG31213133fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3121313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31213133fooEv,_ZTv0_n12_N9GG31213133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31213133barEv,_ZTv0_n16_N9GG31213133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3121313[];
+extern void _ZN5EE3123barEv();
+static VTBL_ENTRY _tg__ZTV5EE312__9GG3121313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN5EE3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv)();
+extern void ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE312__9GG3121313[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE312__9GG3121313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF1313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF131__9GG3121313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&_ZN5FF1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF131__9GG3121313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1313fooEv,_ZThn16_N5FF1313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF131__9GG3121313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG3121313[] = {
+ {&(_ZTV9GG3121313[8]), 8,42},
+ {&(_ZTV9GG3121313[15]), 15,42},
+ {&(_ZTV9GG3121313[20]), 20,42},
+ {&(_ZTV9GG3121313[25]), 25,42},
+ {&(_ZTV9GG3121313[31]), 31,42},
+ {&(_ZTV9GG3121313[35]), 35,42},
+ {&(_ZTV9GG3121313[40]), 40,42},
+ {&(_tg__ZTV5EE312__9GG3121313[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE312__9GG3121313[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE312__9GG3121313[3]), 3,4},
+ {&(_tg__ZTV5FF131__9GG3121313[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF131__9GG3121313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF131__9GG3121313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3121313[];
+extern VTBL_ENTRY _ZTV9GG3121313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3121313[];
+static VTBL_ENTRY alt_thunk_names790[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1313fooEv,_ZThn16_N5FF1313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31213133fooEv,_ZTv0_n20_N9GG31213133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31213133fooEv,_ZThn32_N9GG31213133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31213133barEv,_ZTv0_n16_N9GG31213133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31213133barEv,_ZThn48_N9GG31213133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31213133barEv,_ZThn16_N9GG31213133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31213133fooEv,_ZTv0_n12_N9GG31213133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31213133fooEv,_ZThn48_N9GG31213133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31213133fooEv,_ZThn40_N9GG31213133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31213133fooEv,_ZThn24_N9GG31213133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31213133fooEv,_ZThn16_N9GG31213133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31213133barEv,_ZTv0_n20_N9GG31213133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31213133barEv,_ZThn8_N9GG31213133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3121313 = { "GG3121313", // class name
+ bases_GG3121313, 6,
+ &(vtc_GG3121313[0]), // expected_vtbl_contents
+ &(vtt_GG3121313[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3121313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3121313),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3121313),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names790,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3121323 : virtual EE312 , virtual FF132 {
+ int pg;
+ virtual void foo(); // _ZN9GG31213233fooEv
+ virtual void bar(); // _ZN9GG31213233barEv
+ ~GG3121323(); // tgen
+ GG3121323(); // tgen
+};
+//SIG(1 GG3121323) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3121323 ::foo(){vfunc_called(this, "_ZN9GG31213233fooEv");}
+void GG3121323 ::bar(){vfunc_called(this, "_ZN9GG31213233barEv");}
+GG3121323 ::~GG3121323(){ note_dtor("GG3121323", this);} // tgen
+GG3121323 ::GG3121323(){ note_ctor("GG3121323", this);} // tgen
+
+static void Test_GG3121323()
+{
+ extern Class_Descriptor cd_GG3121323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3121323, buf);
+ GG3121323 *dp, &lv = *(dp=new (buf) GG3121323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3121323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3121323)");
+ check_base_class_offset(lv, (AA3*)(EE312*), ABISELECT(32,16), "GG3121323");
+ check_base_class_offset(lv, (BB1*)(EE312*), ABISELECT(48,24), "GG3121323");
+ check_base_class_offset(lv, (EE312*), ABISELECT(16,8), "GG3121323");
+ check_base_class_offset(lv, (AA1*)(FF132*), ABISELECT(80,40), "GG3121323");
+ check_base_class_offset(lv, (BB3*)(FF132*), ABISELECT(96,48), "GG3121323");
+ check_base_class_offset(lv, (FF132*), ABISELECT(64,32), "GG3121323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3121323.pg");
+ test_class_info(&lv, &cd_GG3121323);
+ dp->~GG3121323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3121323(Test_GG3121323, "GG3121323", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3121323C1Ev();
+extern void _ZN9GG3121323D1Ev();
+Name_Map name_map_GG3121323[] = {
+ NSPAIR(_ZN9GG3121323C1Ev),
+ NSPAIR(_ZN9GG3121323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE312;
+extern VTBL_ENTRY _ZTI5EE312[];
+extern VTBL_ENTRY _ZTV5EE312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE312[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF132;
+extern VTBL_ENTRY _ZTI5FF132[];
+extern VTBL_ENTRY _ZTV5FF132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF132[];
+static Base_Class bases_GG3121323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE312, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF132, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3121323[];
+extern void _ZN9GG31213233fooEv();
+extern void _ZN9GG31213233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31213233barEv,_ZTv0_n20_N9GG31213233barEv)();
+extern void ABISELECT(_ZThn16_N9GG31213233barEv,_ZThn8_N9GG31213233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31213233fooEv,_ZTv0_n12_N9GG31213233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31213233fooEv,_ZThn16_N9GG31213233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31213233barEv,_ZTv0_n16_N9GG31213233barEv)();
+extern void ABISELECT(_ZThn32_N9GG31213233barEv,_ZThn16_N9GG31213233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31213233fooEv,_ZTv0_n12_N9GG31213233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31213233fooEv,_ZThn24_N9GG31213233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31213233barEv,_ZTv0_n20_N9GG31213233barEv)();
+extern void ABISELECT(_ZThn64_N9GG31213233barEv,_ZThn32_N9GG31213233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31213233fooEv,_ZTv0_n12_N9GG31213233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG31213233fooEv,_ZThn40_N9GG31213233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31213233fooEv,_ZTv0_n12_N9GG31213233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG31213233fooEv,_ZThn48_N9GG31213233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31213233barEv,_ZTv0_n16_N9GG31213233barEv)();
+extern void ABISELECT(_ZThn96_N9GG31213233barEv,_ZThn48_N9GG31213233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3121323[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3121323[0]),
+ (VTBL_ENTRY)&_ZN9GG31213233fooEv,
+ (VTBL_ENTRY)&_ZN9GG31213233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3121323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31213233barEv,_ZTv0_n20_N9GG31213233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3121323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31213233fooEv,_ZTv0_n12_N9GG31213233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31213233barEv,_ZTv0_n16_N9GG31213233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3121323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31213233fooEv,_ZTv0_n12_N9GG31213233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3121323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31213233barEv,_ZTv0_n20_N9GG31213233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3121323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31213233fooEv,_ZTv0_n12_N9GG31213233fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3121323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31213233fooEv,_ZTv0_n12_N9GG31213233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31213233barEv,_ZTv0_n16_N9GG31213233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3121323[];
+extern void _ZN5EE3123barEv();
+static VTBL_ENTRY _tg__ZTV5EE312__9GG3121323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN5EE3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv)();
+extern void ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE312__9GG3121323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE312__9GG3121323[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF1323barEv();
+static VTBL_ENTRY _tg__ZTV5FF132__9GG3121323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN5FF1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF132__9GG3121323[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv)();
+extern void ABISELECT(_ZThn32_N5FF1323barEv,_ZThn16_N5FF1323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF132__9GG3121323[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv),
+};
+static VTT_ENTRY vtt_GG3121323[] = {
+ {&(_ZTV9GG3121323[8]), 8,42},
+ {&(_ZTV9GG3121323[15]), 15,42},
+ {&(_ZTV9GG3121323[20]), 20,42},
+ {&(_ZTV9GG3121323[25]), 25,42},
+ {&(_ZTV9GG3121323[31]), 31,42},
+ {&(_ZTV9GG3121323[35]), 35,42},
+ {&(_ZTV9GG3121323[40]), 40,42},
+ {&(_tg__ZTV5EE312__9GG3121323[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE312__9GG3121323[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE312__9GG3121323[3]), 3,4},
+ {&(_tg__ZTV5FF132__9GG3121323[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF132__9GG3121323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF132__9GG3121323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3121323[];
+extern VTBL_ENTRY _ZTV9GG3121323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3121323[];
+static VTBL_ENTRY alt_thunk_names791[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1323barEv,_ZThn16_N5FF1323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31213233barEv,_ZTv0_n16_N9GG31213233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31213233barEv,_ZThn48_N9GG31213233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31213233barEv,_ZThn16_N9GG31213233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31213233fooEv,_ZTv0_n12_N9GG31213233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31213233fooEv,_ZThn48_N9GG31213233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31213233fooEv,_ZThn40_N9GG31213233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31213233fooEv,_ZThn24_N9GG31213233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31213233fooEv,_ZThn16_N9GG31213233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31213233barEv,_ZTv0_n20_N9GG31213233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31213233barEv,_ZThn32_N9GG31213233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31213233barEv,_ZThn8_N9GG31213233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3121323 = { "GG3121323", // class name
+ bases_GG3121323, 6,
+ &(vtc_GG3121323[0]), // expected_vtbl_contents
+ &(vtt_GG3121323[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3121323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3121323),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3121323),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names791,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3121333 : virtual EE312 , virtual FF133 {
+ int pg;
+ virtual void foo(); // _ZN9GG31213333fooEv
+ virtual void bar(); // _ZN9GG31213333barEv
+ ~GG3121333(); // tgen
+ GG3121333(); // tgen
+};
+//SIG(1 GG3121333) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3121333 ::foo(){vfunc_called(this, "_ZN9GG31213333fooEv");}
+void GG3121333 ::bar(){vfunc_called(this, "_ZN9GG31213333barEv");}
+GG3121333 ::~GG3121333(){ note_dtor("GG3121333", this);} // tgen
+GG3121333 ::GG3121333(){ note_ctor("GG3121333", this);} // tgen
+
+static void Test_GG3121333()
+{
+ extern Class_Descriptor cd_GG3121333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3121333, buf);
+ GG3121333 *dp, &lv = *(dp=new (buf) GG3121333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3121333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3121333)");
+ check_base_class_offset(lv, (AA3*)(EE312*), ABISELECT(32,16), "GG3121333");
+ check_base_class_offset(lv, (BB1*)(EE312*), ABISELECT(48,24), "GG3121333");
+ check_base_class_offset(lv, (EE312*), ABISELECT(16,8), "GG3121333");
+ check_base_class_offset(lv, (AA1*)(FF133*), ABISELECT(80,40), "GG3121333");
+ check_base_class_offset(lv, (BB3*)(FF133*), ABISELECT(96,48), "GG3121333");
+ check_base_class_offset(lv, (FF133*), ABISELECT(64,32), "GG3121333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3121333.pg");
+ test_class_info(&lv, &cd_GG3121333);
+ dp->~GG3121333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3121333(Test_GG3121333, "GG3121333", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3121333C1Ev();
+extern void _ZN9GG3121333D1Ev();
+Name_Map name_map_GG3121333[] = {
+ NSPAIR(_ZN9GG3121333C1Ev),
+ NSPAIR(_ZN9GG3121333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE312;
+extern VTBL_ENTRY _ZTI5EE312[];
+extern VTBL_ENTRY _ZTV5EE312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE312[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF133;
+extern VTBL_ENTRY _ZTI5FF133[];
+extern VTBL_ENTRY _ZTV5FF133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF133[];
+static Base_Class bases_GG3121333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE312, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF133, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3121333[];
+extern void _ZN9GG31213333fooEv();
+extern void _ZN9GG31213333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31213333barEv,_ZTv0_n20_N9GG31213333barEv)();
+extern void ABISELECT(_ZThn16_N9GG31213333barEv,_ZThn8_N9GG31213333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31213333fooEv,_ZTv0_n12_N9GG31213333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31213333fooEv,_ZThn16_N9GG31213333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31213333barEv,_ZTv0_n16_N9GG31213333barEv)();
+extern void ABISELECT(_ZThn32_N9GG31213333barEv,_ZThn16_N9GG31213333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31213333fooEv,_ZTv0_n12_N9GG31213333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31213333fooEv,_ZThn24_N9GG31213333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31213333fooEv,_ZTv0_n20_N9GG31213333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31213333fooEv,_ZThn32_N9GG31213333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31213333barEv,_ZTv0_n24_N9GG31213333barEv)();
+extern void ABISELECT(_ZThn64_N9GG31213333barEv,_ZThn32_N9GG31213333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31213333fooEv,_ZTv0_n12_N9GG31213333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG31213333fooEv,_ZThn40_N9GG31213333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31213333fooEv,_ZTv0_n12_N9GG31213333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG31213333fooEv,_ZThn48_N9GG31213333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31213333barEv,_ZTv0_n16_N9GG31213333barEv)();
+extern void ABISELECT(_ZThn96_N9GG31213333barEv,_ZThn48_N9GG31213333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3121333[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3121333[0]),
+ (VTBL_ENTRY)&_ZN9GG31213333fooEv,
+ (VTBL_ENTRY)&_ZN9GG31213333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3121333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31213333barEv,_ZTv0_n20_N9GG31213333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3121333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31213333fooEv,_ZTv0_n12_N9GG31213333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31213333barEv,_ZTv0_n16_N9GG31213333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3121333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31213333fooEv,_ZTv0_n12_N9GG31213333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3121333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31213333fooEv,_ZTv0_n20_N9GG31213333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31213333barEv,_ZTv0_n24_N9GG31213333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3121333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31213333fooEv,_ZTv0_n12_N9GG31213333fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3121333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31213333fooEv,_ZTv0_n12_N9GG31213333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31213333barEv,_ZTv0_n16_N9GG31213333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3121333[];
+extern void _ZN5EE3123barEv();
+static VTBL_ENTRY _tg__ZTV5EE312__9GG3121333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN5EE3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv)();
+extern void ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE312__9GG3121333[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE312__9GG3121333[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF1333fooEv();
+extern void _ZN5FF1333barEv();
+static VTBL_ENTRY _tg__ZTV5FF133__9GG3121333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&_ZN5FF1333fooEv,
+ (VTBL_ENTRY)&_ZN5FF1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF133__9GG3121333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1333fooEv,_ZThn16_N5FF1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv)();
+extern void ABISELECT(_ZThn32_N5FF1333barEv,_ZThn16_N5FF1333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF133__9GG3121333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv),
+};
+static VTT_ENTRY vtt_GG3121333[] = {
+ {&(_ZTV9GG3121333[8]), 8,44},
+ {&(_ZTV9GG3121333[15]), 15,44},
+ {&(_ZTV9GG3121333[20]), 20,44},
+ {&(_ZTV9GG3121333[25]), 25,44},
+ {&(_ZTV9GG3121333[32]), 32,44},
+ {&(_ZTV9GG3121333[37]), 37,44},
+ {&(_ZTV9GG3121333[42]), 42,44},
+ {&(_tg__ZTV5EE312__9GG3121333[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE312__9GG3121333[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE312__9GG3121333[3]), 3,4},
+ {&(_tg__ZTV5FF133__9GG3121333[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF133__9GG3121333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF133__9GG3121333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3121333[];
+extern VTBL_ENTRY _ZTV9GG3121333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3121333[];
+static VTBL_ENTRY alt_thunk_names792[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1333barEv,_ZThn16_N5FF1333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1333fooEv,_ZThn16_N5FF1333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG31213333barEv,_ZTv0_n24_N9GG31213333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31213333barEv,_ZThn32_N9GG31213333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31213333fooEv,_ZTv0_n20_N9GG31213333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31213333fooEv,_ZThn32_N9GG31213333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31213333barEv,_ZTv0_n16_N9GG31213333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31213333barEv,_ZThn48_N9GG31213333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31213333barEv,_ZThn16_N9GG31213333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31213333fooEv,_ZTv0_n12_N9GG31213333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31213333fooEv,_ZThn48_N9GG31213333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31213333fooEv,_ZThn40_N9GG31213333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31213333fooEv,_ZThn24_N9GG31213333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31213333fooEv,_ZThn16_N9GG31213333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31213333barEv,_ZTv0_n20_N9GG31213333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31213333barEv,_ZThn8_N9GG31213333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3121333 = { "GG3121333", // class name
+ bases_GG3121333, 6,
+ &(vtc_GG3121333[0]), // expected_vtbl_contents
+ &(vtt_GG3121333[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3121333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3121333),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3121333),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names792,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3122113 : virtual EE312 , virtual FF211 {
+ int pg;
+ virtual void foo(); // _ZN9GG31221133fooEv
+ virtual void bar(); // _ZN9GG31221133barEv
+ ~GG3122113(); // tgen
+ GG3122113(); // tgen
+};
+//SIG(1 GG3122113) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG3122113 ::foo(){vfunc_called(this, "_ZN9GG31221133fooEv");}
+void GG3122113 ::bar(){vfunc_called(this, "_ZN9GG31221133barEv");}
+GG3122113 ::~GG3122113(){ note_dtor("GG3122113", this);} // tgen
+GG3122113 ::GG3122113(){ note_ctor("GG3122113", this);} // tgen
+
+static void Test_GG3122113()
+{
+ extern Class_Descriptor cd_GG3122113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3122113, buf);
+ GG3122113 *dp, &lv = *(dp=new (buf) GG3122113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3122113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3122113)");
+ check_base_class_offset(lv, (AA3*)(EE312*), ABISELECT(32,16), "GG3122113");
+ check_base_class_offset(lv, (BB1*)(EE312*), ABISELECT(48,24), "GG3122113");
+ check_base_class_offset(lv, (BB1*)(FF211*), ABISELECT(48,24), "GG3122113");
+ check_base_class_offset(lv, (EE312*), ABISELECT(16,8), "GG3122113");
+ check_base_class_offset(lv, (AA2*)(FF211*), ABISELECT(80,40), "GG3122113");
+ check_base_class_offset(lv, (FF211*), ABISELECT(64,32), "GG3122113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3122113.pg");
+ test_class_info(&lv, &cd_GG3122113);
+ dp->~GG3122113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3122113(Test_GG3122113, "GG3122113", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3122113C1Ev();
+extern void _ZN9GG3122113D1Ev();
+Name_Map name_map_GG3122113[] = {
+ NSPAIR(_ZN9GG3122113C1Ev),
+ NSPAIR(_ZN9GG3122113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE312;
+extern VTBL_ENTRY _ZTI5EE312[];
+extern VTBL_ENTRY _ZTV5EE312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE312[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF211;
+extern VTBL_ENTRY _ZTI5FF211[];
+extern VTBL_ENTRY _ZTV5FF211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF211[];
+static Base_Class bases_GG3122113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE312, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF211, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3122113[];
+extern void _ZN9GG31221133fooEv();
+extern void _ZN9GG31221133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31221133barEv,_ZTv0_n20_N9GG31221133barEv)();
+extern void ABISELECT(_ZThn16_N9GG31221133barEv,_ZThn8_N9GG31221133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31221133fooEv,_ZTv0_n12_N9GG31221133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31221133fooEv,_ZThn16_N9GG31221133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31221133barEv,_ZTv0_n16_N9GG31221133barEv)();
+extern void ABISELECT(_ZThn32_N9GG31221133barEv,_ZThn16_N9GG31221133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31221133fooEv,_ZTv0_n12_N9GG31221133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31221133fooEv,_ZThn24_N9GG31221133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31221133fooEv,_ZTv0_n20_N9GG31221133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31221133fooEv,_ZThn32_N9GG31221133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31221133barEv,_ZTv0_n12_N9GG31221133barEv)();
+extern void ABISELECT(_ZThn80_N9GG31221133barEv,_ZThn40_N9GG31221133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3122113[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3122113[0]),
+ (VTBL_ENTRY)&_ZN9GG31221133fooEv,
+ (VTBL_ENTRY)&_ZN9GG31221133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3122113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31221133barEv,_ZTv0_n20_N9GG31221133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3122113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31221133fooEv,_ZTv0_n12_N9GG31221133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31221133barEv,_ZTv0_n16_N9GG31221133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3122113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31221133fooEv,_ZTv0_n12_N9GG31221133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3122113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31221133fooEv,_ZTv0_n20_N9GG31221133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3122113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31221133barEv,_ZTv0_n12_N9GG31221133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3122113[];
+extern void _ZN5EE3123barEv();
+static VTBL_ENTRY _tg__ZTV5EE312__9GG3122113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN5EE3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv)();
+extern void ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE312__9GG3122113[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE312__9GG3122113[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF2113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF211__9GG3122113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN5FF2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF211__9GG3122113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF211__9GG3122113[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv),
+};
+static VTT_ENTRY vtt_GG3122113[] = {
+ {&(_ZTV9GG3122113[7]), 7,35},
+ {&(_ZTV9GG3122113[14]), 14,35},
+ {&(_ZTV9GG3122113[19]), 19,35},
+ {&(_ZTV9GG3122113[24]), 24,35},
+ {&(_ZTV9GG3122113[30]), 30,35},
+ {&(_ZTV9GG3122113[34]), 34,35},
+ {&(_tg__ZTV5EE312__9GG3122113[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE312__9GG3122113[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE312__9GG3122113[3]), 3,4},
+ {&(_tg__ZTV5FF211__9GG3122113[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF211__9GG3122113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF211__9GG3122113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3122113[];
+extern VTBL_ENTRY _ZTV9GG3122113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3122113[];
+static VTBL_ENTRY alt_thunk_names793[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31221133barEv,_ZTv0_n12_N9GG31221133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31221133barEv,_ZThn40_N9GG31221133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31221133fooEv,_ZTv0_n20_N9GG31221133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31221133fooEv,_ZThn32_N9GG31221133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31221133barEv,_ZTv0_n16_N9GG31221133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31221133barEv,_ZThn16_N9GG31221133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31221133fooEv,_ZTv0_n12_N9GG31221133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31221133fooEv,_ZThn24_N9GG31221133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31221133fooEv,_ZThn16_N9GG31221133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31221133barEv,_ZTv0_n20_N9GG31221133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31221133barEv,_ZThn8_N9GG31221133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3122113 = { "GG3122113", // class name
+ bases_GG3122113, 5,
+ &(vtc_GG3122113[0]), // expected_vtbl_contents
+ &(vtt_GG3122113[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3122113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3122113),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3122113),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names793,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3122123 : virtual EE312 , virtual FF212 {
+ int pg;
+ virtual void foo(); // _ZN9GG31221233fooEv
+ virtual void bar(); // _ZN9GG31221233barEv
+ ~GG3122123(); // tgen
+ GG3122123(); // tgen
+};
+//SIG(1 GG3122123) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG3122123 ::foo(){vfunc_called(this, "_ZN9GG31221233fooEv");}
+void GG3122123 ::bar(){vfunc_called(this, "_ZN9GG31221233barEv");}
+GG3122123 ::~GG3122123(){ note_dtor("GG3122123", this);} // tgen
+GG3122123 ::GG3122123(){ note_ctor("GG3122123", this);} // tgen
+
+static void Test_GG3122123()
+{
+ extern Class_Descriptor cd_GG3122123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3122123, buf);
+ GG3122123 *dp, &lv = *(dp=new (buf) GG3122123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3122123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3122123)");
+ check_base_class_offset(lv, (AA3*)(EE312*), ABISELECT(32,16), "GG3122123");
+ check_base_class_offset(lv, (BB1*)(EE312*), ABISELECT(48,24), "GG3122123");
+ check_base_class_offset(lv, (BB1*)(FF212*), ABISELECT(48,24), "GG3122123");
+ check_base_class_offset(lv, (EE312*), ABISELECT(16,8), "GG3122123");
+ check_base_class_offset(lv, (AA2*)(FF212*), ABISELECT(80,40), "GG3122123");
+ check_base_class_offset(lv, (FF212*), ABISELECT(64,32), "GG3122123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3122123.pg");
+ test_class_info(&lv, &cd_GG3122123);
+ dp->~GG3122123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3122123(Test_GG3122123, "GG3122123", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3122123C1Ev();
+extern void _ZN9GG3122123D1Ev();
+Name_Map name_map_GG3122123[] = {
+ NSPAIR(_ZN9GG3122123C1Ev),
+ NSPAIR(_ZN9GG3122123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE312;
+extern VTBL_ENTRY _ZTI5EE312[];
+extern VTBL_ENTRY _ZTV5EE312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE312[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF212;
+extern VTBL_ENTRY _ZTI5FF212[];
+extern VTBL_ENTRY _ZTV5FF212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF212[];
+static Base_Class bases_GG3122123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE312, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF212, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3122123[];
+extern void _ZN9GG31221233fooEv();
+extern void _ZN9GG31221233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31221233barEv,_ZTv0_n20_N9GG31221233barEv)();
+extern void ABISELECT(_ZThn16_N9GG31221233barEv,_ZThn8_N9GG31221233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31221233fooEv,_ZTv0_n12_N9GG31221233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31221233fooEv,_ZThn16_N9GG31221233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31221233barEv,_ZTv0_n16_N9GG31221233barEv)();
+extern void ABISELECT(_ZThn32_N9GG31221233barEv,_ZThn16_N9GG31221233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31221233fooEv,_ZTv0_n12_N9GG31221233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31221233fooEv,_ZThn24_N9GG31221233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31221233barEv,_ZTv0_n20_N9GG31221233barEv)();
+extern void ABISELECT(_ZThn64_N9GG31221233barEv,_ZThn32_N9GG31221233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31221233barEv,_ZTv0_n12_N9GG31221233barEv)();
+extern void ABISELECT(_ZThn80_N9GG31221233barEv,_ZThn40_N9GG31221233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3122123[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3122123[0]),
+ (VTBL_ENTRY)&_ZN9GG31221233fooEv,
+ (VTBL_ENTRY)&_ZN9GG31221233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3122123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31221233barEv,_ZTv0_n20_N9GG31221233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3122123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31221233fooEv,_ZTv0_n12_N9GG31221233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31221233barEv,_ZTv0_n16_N9GG31221233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3122123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31221233fooEv,_ZTv0_n12_N9GG31221233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3122123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31221233barEv,_ZTv0_n20_N9GG31221233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3122123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31221233barEv,_ZTv0_n12_N9GG31221233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3122123[];
+extern void _ZN5EE3123barEv();
+static VTBL_ENTRY _tg__ZTV5EE312__9GG3122123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN5EE3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv)();
+extern void ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE312__9GG3122123[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE312__9GG3122123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF2123barEv();
+static VTBL_ENTRY _tg__ZTV5FF212__9GG3122123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN5FF2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv)();
+extern void ABISELECT(_ZThn16_N5FF2123barEv,_ZThn8_N5FF2123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF212__9GG3122123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF212__9GG3122123[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG3122123[] = {
+ {&(_ZTV9GG3122123[7]), 7,35},
+ {&(_ZTV9GG3122123[14]), 14,35},
+ {&(_ZTV9GG3122123[19]), 19,35},
+ {&(_ZTV9GG3122123[24]), 24,35},
+ {&(_ZTV9GG3122123[30]), 30,35},
+ {&(_ZTV9GG3122123[34]), 34,35},
+ {&(_tg__ZTV5EE312__9GG3122123[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE312__9GG3122123[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE312__9GG3122123[3]), 3,4},
+ {&(_tg__ZTV5FF212__9GG3122123[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF212__9GG3122123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF212__9GG3122123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3122123[];
+extern VTBL_ENTRY _ZTV9GG3122123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3122123[];
+static VTBL_ENTRY alt_thunk_names794[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2123barEv,_ZThn8_N5FF2123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31221233barEv,_ZTv0_n12_N9GG31221233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31221233barEv,_ZThn40_N9GG31221233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31221233barEv,_ZTv0_n16_N9GG31221233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31221233barEv,_ZThn16_N9GG31221233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31221233fooEv,_ZTv0_n12_N9GG31221233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31221233fooEv,_ZThn24_N9GG31221233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31221233fooEv,_ZThn16_N9GG31221233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31221233barEv,_ZTv0_n20_N9GG31221233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31221233barEv,_ZThn32_N9GG31221233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31221233barEv,_ZThn8_N9GG31221233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3122123 = { "GG3122123", // class name
+ bases_GG3122123, 5,
+ &(vtc_GG3122123[0]), // expected_vtbl_contents
+ &(vtt_GG3122123[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3122123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3122123),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3122123),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names794,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3122133 : virtual EE312 , virtual FF213 {
+ int pg;
+ virtual void foo(); // _ZN9GG31221333fooEv
+ virtual void bar(); // _ZN9GG31221333barEv
+ ~GG3122133(); // tgen
+ GG3122133(); // tgen
+};
+//SIG(1 GG3122133) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3122133 ::foo(){vfunc_called(this, "_ZN9GG31221333fooEv");}
+void GG3122133 ::bar(){vfunc_called(this, "_ZN9GG31221333barEv");}
+GG3122133 ::~GG3122133(){ note_dtor("GG3122133", this);} // tgen
+GG3122133 ::GG3122133(){ note_ctor("GG3122133", this);} // tgen
+
+static void Test_GG3122133()
+{
+ extern Class_Descriptor cd_GG3122133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3122133, buf);
+ GG3122133 *dp, &lv = *(dp=new (buf) GG3122133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3122133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3122133)");
+ check_base_class_offset(lv, (AA3*)(EE312*), ABISELECT(32,16), "GG3122133");
+ check_base_class_offset(lv, (BB1*)(EE312*), ABISELECT(48,24), "GG3122133");
+ check_base_class_offset(lv, (BB1*)(FF213*), ABISELECT(48,24), "GG3122133");
+ check_base_class_offset(lv, (EE312*), ABISELECT(16,8), "GG3122133");
+ check_base_class_offset(lv, (AA2*)(FF213*), ABISELECT(80,40), "GG3122133");
+ check_base_class_offset(lv, (FF213*), ABISELECT(64,32), "GG3122133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3122133.pg");
+ test_class_info(&lv, &cd_GG3122133);
+ dp->~GG3122133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3122133(Test_GG3122133, "GG3122133", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3122133C1Ev();
+extern void _ZN9GG3122133D1Ev();
+Name_Map name_map_GG3122133[] = {
+ NSPAIR(_ZN9GG3122133C1Ev),
+ NSPAIR(_ZN9GG3122133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE312;
+extern VTBL_ENTRY _ZTI5EE312[];
+extern VTBL_ENTRY _ZTV5EE312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE312[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF213;
+extern VTBL_ENTRY _ZTI5FF213[];
+extern VTBL_ENTRY _ZTV5FF213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF213[];
+static Base_Class bases_GG3122133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE312, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF213, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3122133[];
+extern void _ZN9GG31221333fooEv();
+extern void _ZN9GG31221333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31221333barEv,_ZTv0_n20_N9GG31221333barEv)();
+extern void ABISELECT(_ZThn16_N9GG31221333barEv,_ZThn8_N9GG31221333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31221333fooEv,_ZTv0_n12_N9GG31221333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31221333fooEv,_ZThn16_N9GG31221333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31221333barEv,_ZTv0_n16_N9GG31221333barEv)();
+extern void ABISELECT(_ZThn32_N9GG31221333barEv,_ZThn16_N9GG31221333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31221333fooEv,_ZTv0_n12_N9GG31221333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31221333fooEv,_ZThn24_N9GG31221333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31221333fooEv,_ZTv0_n20_N9GG31221333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31221333fooEv,_ZThn32_N9GG31221333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31221333barEv,_ZTv0_n24_N9GG31221333barEv)();
+extern void ABISELECT(_ZThn64_N9GG31221333barEv,_ZThn32_N9GG31221333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31221333barEv,_ZTv0_n12_N9GG31221333barEv)();
+extern void ABISELECT(_ZThn80_N9GG31221333barEv,_ZThn40_N9GG31221333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3122133[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3122133[0]),
+ (VTBL_ENTRY)&_ZN9GG31221333fooEv,
+ (VTBL_ENTRY)&_ZN9GG31221333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3122133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31221333barEv,_ZTv0_n20_N9GG31221333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3122133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31221333fooEv,_ZTv0_n12_N9GG31221333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31221333barEv,_ZTv0_n16_N9GG31221333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3122133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31221333fooEv,_ZTv0_n12_N9GG31221333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3122133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31221333fooEv,_ZTv0_n20_N9GG31221333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31221333barEv,_ZTv0_n24_N9GG31221333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3122133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31221333barEv,_ZTv0_n12_N9GG31221333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3122133[];
+extern void _ZN5EE3123barEv();
+static VTBL_ENTRY _tg__ZTV5EE312__9GG3122133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN5EE3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv)();
+extern void ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE312__9GG3122133[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE312__9GG3122133[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF2133fooEv();
+extern void _ZN5FF2133barEv();
+static VTBL_ENTRY _tg__ZTV5FF213__9GG3122133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&_ZN5FF2133fooEv,
+ (VTBL_ENTRY)&_ZN5FF2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv)();
+extern void ABISELECT(_ZThn16_N5FF2133barEv,_ZThn8_N5FF2133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF213__9GG3122133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF213__9GG3122133[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv),
+};
+static VTT_ENTRY vtt_GG3122133[] = {
+ {&(_ZTV9GG3122133[7]), 7,37},
+ {&(_ZTV9GG3122133[14]), 14,37},
+ {&(_ZTV9GG3122133[19]), 19,37},
+ {&(_ZTV9GG3122133[24]), 24,37},
+ {&(_ZTV9GG3122133[31]), 31,37},
+ {&(_ZTV9GG3122133[36]), 36,37},
+ {&(_tg__ZTV5EE312__9GG3122133[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE312__9GG3122133[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE312__9GG3122133[3]), 3,4},
+ {&(_tg__ZTV5FF213__9GG3122133[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF213__9GG3122133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF213__9GG3122133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3122133[];
+extern VTBL_ENTRY _ZTV9GG3122133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3122133[];
+static VTBL_ENTRY alt_thunk_names795[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2133barEv,_ZThn8_N5FF2133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31221333barEv,_ZTv0_n12_N9GG31221333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31221333barEv,_ZThn40_N9GG31221333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG31221333barEv,_ZTv0_n24_N9GG31221333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31221333barEv,_ZThn32_N9GG31221333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31221333fooEv,_ZTv0_n20_N9GG31221333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31221333fooEv,_ZThn32_N9GG31221333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31221333barEv,_ZTv0_n16_N9GG31221333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31221333barEv,_ZThn16_N9GG31221333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31221333fooEv,_ZTv0_n12_N9GG31221333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31221333fooEv,_ZThn24_N9GG31221333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31221333fooEv,_ZThn16_N9GG31221333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31221333barEv,_ZTv0_n20_N9GG31221333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31221333barEv,_ZThn8_N9GG31221333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3122133 = { "GG3122133", // class name
+ bases_GG3122133, 5,
+ &(vtc_GG3122133[0]), // expected_vtbl_contents
+ &(vtt_GG3122133[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3122133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3122133),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3122133),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names795,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3122213 : virtual EE312 , virtual FF221 {
+ int pg;
+ virtual void foo(); // _ZN9GG31222133fooEv
+ virtual void bar(); // _ZN9GG31222133barEv
+ ~GG3122213(); // tgen
+ GG3122213(); // tgen
+};
+//SIG(1 GG3122213) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3122213 ::foo(){vfunc_called(this, "_ZN9GG31222133fooEv");}
+void GG3122213 ::bar(){vfunc_called(this, "_ZN9GG31222133barEv");}
+GG3122213 ::~GG3122213(){ note_dtor("GG3122213", this);} // tgen
+GG3122213 ::GG3122213(){ note_ctor("GG3122213", this);} // tgen
+
+static void Test_GG3122213()
+{
+ extern Class_Descriptor cd_GG3122213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3122213, buf);
+ GG3122213 *dp, &lv = *(dp=new (buf) GG3122213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3122213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3122213)");
+ check_base_class_offset(lv, (AA3*)(EE312*), ABISELECT(32,16), "GG3122213");
+ check_base_class_offset(lv, (BB1*)(EE312*), ABISELECT(48,24), "GG3122213");
+ check_base_class_offset(lv, (EE312*), ABISELECT(16,8), "GG3122213");
+ check_base_class_offset(lv, (AA2*)(FF221*), ABISELECT(80,40), "GG3122213");
+ check_base_class_offset(lv, (BB2*)(FF221*), ABISELECT(96,48), "GG3122213");
+ check_base_class_offset(lv, (FF221*), ABISELECT(64,32), "GG3122213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3122213.pg");
+ test_class_info(&lv, &cd_GG3122213);
+ dp->~GG3122213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3122213(Test_GG3122213, "GG3122213", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3122213C1Ev();
+extern void _ZN9GG3122213D1Ev();
+Name_Map name_map_GG3122213[] = {
+ NSPAIR(_ZN9GG3122213C1Ev),
+ NSPAIR(_ZN9GG3122213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE312;
+extern VTBL_ENTRY _ZTI5EE312[];
+extern VTBL_ENTRY _ZTV5EE312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE312[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF221;
+extern VTBL_ENTRY _ZTI5FF221[];
+extern VTBL_ENTRY _ZTV5FF221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF221[];
+static Base_Class bases_GG3122213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE312, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF221, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3122213[];
+extern void _ZN9GG31222133fooEv();
+extern void _ZN9GG31222133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31222133barEv,_ZTv0_n20_N9GG31222133barEv)();
+extern void ABISELECT(_ZThn16_N9GG31222133barEv,_ZThn8_N9GG31222133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31222133fooEv,_ZTv0_n12_N9GG31222133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31222133fooEv,_ZThn16_N9GG31222133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31222133barEv,_ZTv0_n16_N9GG31222133barEv)();
+extern void ABISELECT(_ZThn32_N9GG31222133barEv,_ZThn16_N9GG31222133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31222133fooEv,_ZTv0_n12_N9GG31222133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31222133fooEv,_ZThn24_N9GG31222133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31222133fooEv,_ZTv0_n20_N9GG31222133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31222133fooEv,_ZThn32_N9GG31222133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31222133barEv,_ZTv0_n12_N9GG31222133barEv)();
+extern void ABISELECT(_ZThn80_N9GG31222133barEv,_ZThn40_N9GG31222133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31222133barEv,_ZTv0_n12_N9GG31222133barEv)();
+extern void ABISELECT(_ZThn96_N9GG31222133barEv,_ZThn48_N9GG31222133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3122213[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3122213[0]),
+ (VTBL_ENTRY)&_ZN9GG31222133fooEv,
+ (VTBL_ENTRY)&_ZN9GG31222133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3122213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31222133barEv,_ZTv0_n20_N9GG31222133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3122213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31222133fooEv,_ZTv0_n12_N9GG31222133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31222133barEv,_ZTv0_n16_N9GG31222133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3122213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31222133fooEv,_ZTv0_n12_N9GG31222133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3122213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31222133fooEv,_ZTv0_n20_N9GG31222133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3122213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31222133barEv,_ZTv0_n12_N9GG31222133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3122213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31222133barEv,_ZTv0_n12_N9GG31222133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3122213[];
+extern void _ZN5EE3123barEv();
+static VTBL_ENTRY _tg__ZTV5EE312__9GG3122213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN5EE3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv)();
+extern void ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE312__9GG3122213[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE312__9GG3122213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF2213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF221__9GG3122213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN5FF2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF221__9GG3122213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF221__9GG3122213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG3122213[] = {
+ {&(_ZTV9GG3122213[8]), 8,40},
+ {&(_ZTV9GG3122213[15]), 15,40},
+ {&(_ZTV9GG3122213[20]), 20,40},
+ {&(_ZTV9GG3122213[25]), 25,40},
+ {&(_ZTV9GG3122213[31]), 31,40},
+ {&(_ZTV9GG3122213[35]), 35,40},
+ {&(_ZTV9GG3122213[39]), 39,40},
+ {&(_tg__ZTV5EE312__9GG3122213[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE312__9GG3122213[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE312__9GG3122213[3]), 3,4},
+ {&(_tg__ZTV5FF221__9GG3122213[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF221__9GG3122213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF221__9GG3122213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3122213[];
+extern VTBL_ENTRY _ZTV9GG3122213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3122213[];
+static VTBL_ENTRY alt_thunk_names796[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31222133barEv,_ZTv0_n12_N9GG31222133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31222133barEv,_ZThn48_N9GG31222133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31222133barEv,_ZThn40_N9GG31222133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31222133fooEv,_ZTv0_n20_N9GG31222133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31222133fooEv,_ZThn32_N9GG31222133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31222133barEv,_ZTv0_n16_N9GG31222133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31222133barEv,_ZThn16_N9GG31222133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31222133fooEv,_ZTv0_n12_N9GG31222133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31222133fooEv,_ZThn24_N9GG31222133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31222133fooEv,_ZThn16_N9GG31222133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31222133barEv,_ZTv0_n20_N9GG31222133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31222133barEv,_ZThn8_N9GG31222133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3122213 = { "GG3122213", // class name
+ bases_GG3122213, 6,
+ &(vtc_GG3122213[0]), // expected_vtbl_contents
+ &(vtt_GG3122213[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3122213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3122213),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3122213),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names796,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3122222 : virtual EE312 , virtual FF222 {
+ int pg;
+ virtual void bar(); // _ZN9GG31222223barEv
+ ~GG3122222(); // tgen
+ GG3122222(); // tgen
+};
+//SIG(1 GG3122222) C1{ VBC2{ VBC3{ v2 v1 Fi} VBC4{ v3 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+void GG3122222 ::bar(){vfunc_called(this, "_ZN9GG31222223barEv");}
+GG3122222 ::~GG3122222(){ note_dtor("GG3122222", this);} // tgen
+GG3122222 ::GG3122222(){ note_ctor("GG3122222", this);} // tgen
+
+static void Test_GG3122222()
+{
+ extern Class_Descriptor cd_GG3122222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3122222, buf);
+ GG3122222 *dp, &lv = *(dp=new (buf) GG3122222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3122222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3122222)");
+ check_base_class_offset(lv, (AA3*)(EE312*), ABISELECT(32,16), "GG3122222");
+ check_base_class_offset(lv, (BB1*)(EE312*), ABISELECT(48,24), "GG3122222");
+ check_base_class_offset(lv, (EE312*), ABISELECT(16,8), "GG3122222");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(80,40), "GG3122222");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(96,48), "GG3122222");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG3122222");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3122222.pg");
+ test_class_info(&lv, &cd_GG3122222);
+ dp->~GG3122222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3122222(Test_GG3122222, "GG3122222", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3122222C1Ev();
+extern void _ZN9GG3122222D1Ev();
+Name_Map name_map_GG3122222[] = {
+ NSPAIR(_ZN9GG3122222C1Ev),
+ NSPAIR(_ZN9GG3122222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE312;
+extern VTBL_ENTRY _ZTI5EE312[];
+extern VTBL_ENTRY _ZTV5EE312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE312[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG3122222[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE312, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3122222[];
+extern void _ZN9GG31222223barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31222223barEv,_ZTv0_n20_N9GG31222223barEv)();
+extern void ABISELECT(_ZThn16_N9GG31222223barEv,_ZThn8_N9GG31222223barEv)() __attribute__((weak));
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N9GG31222223barEv,_ZTv0_n16_N9GG31222223barEv)();
+extern void ABISELECT(_ZThn32_N9GG31222223barEv,_ZThn16_N9GG31222223barEv)() __attribute__((weak));
+extern void _ZN3BB13fooEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31222223barEv,_ZTv0_n20_N9GG31222223barEv)();
+extern void ABISELECT(_ZThn64_N9GG31222223barEv,_ZThn32_N9GG31222223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31222223barEv,_ZTv0_n12_N9GG31222223barEv)();
+extern void ABISELECT(_ZThn80_N9GG31222223barEv,_ZThn40_N9GG31222223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31222223barEv,_ZTv0_n12_N9GG31222223barEv)();
+extern void ABISELECT(_ZThn96_N9GG31222223barEv,_ZThn48_N9GG31222223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3122222[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3122222[0]),
+ (VTBL_ENTRY)&_ZN9GG31222223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3122222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31222223barEv,_ZTv0_n20_N9GG31222223barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3122222[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31222223barEv,_ZTv0_n16_N9GG31222223barEv),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3122222[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3122222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31222223barEv,_ZTv0_n20_N9GG31222223barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3122222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31222223barEv,_ZTv0_n12_N9GG31222223barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3122222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31222223barEv,_ZTv0_n12_N9GG31222223barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3122222[];
+extern void _ZN5EE3123barEv();
+static VTBL_ENTRY _tg__ZTV5EE312__9GG3122222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN5EE3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv)();
+extern void ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE312__9GG3122222[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE312__9GG3122222[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG3122222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG3122222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG3122222[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG3122222[] = {
+ {&(_ZTV9GG3122222[8]), 8,39},
+ {&(_ZTV9GG3122222[14]), 14,39},
+ {&(_ZTV9GG3122222[19]), 19,39},
+ {&(_ZTV9GG3122222[24]), 24,39},
+ {&(_ZTV9GG3122222[30]), 30,39},
+ {&(_ZTV9GG3122222[34]), 34,39},
+ {&(_ZTV9GG3122222[38]), 38,39},
+ {&(_tg__ZTV5EE312__9GG3122222[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE312__9GG3122222[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE312__9GG3122222[3]), 3,4},
+ {&(_tg__ZTV5FF222__9GG3122222[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG3122222[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG3122222[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3122222[];
+extern VTBL_ENTRY _ZTV9GG3122222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3122222[];
+static VTBL_ENTRY alt_thunk_names797[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31222223barEv,_ZTv0_n12_N9GG31222223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31222223barEv,_ZThn48_N9GG31222223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31222223barEv,_ZThn40_N9GG31222223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31222223barEv,_ZTv0_n16_N9GG31222223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31222223barEv,_ZThn16_N9GG31222223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31222223barEv,_ZTv0_n20_N9GG31222223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31222223barEv,_ZThn32_N9GG31222223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31222223barEv,_ZThn8_N9GG31222223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3122222 = { "GG3122222", // class name
+ bases_GG3122222, 6,
+ &(vtc_GG3122222[0]), // expected_vtbl_contents
+ &(vtt_GG3122222[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3122222),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3122222),39, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3122222),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names797,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3122223 : virtual EE312 , virtual FF222 {
+ int pg;
+ virtual void foo(); // _ZN9GG31222233fooEv
+ virtual void bar(); // _ZN9GG31222233barEv
+ ~GG3122223(); // tgen
+ GG3122223(); // tgen
+};
+//SIG(1 GG3122223) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3122223 ::foo(){vfunc_called(this, "_ZN9GG31222233fooEv");}
+void GG3122223 ::bar(){vfunc_called(this, "_ZN9GG31222233barEv");}
+GG3122223 ::~GG3122223(){ note_dtor("GG3122223", this);} // tgen
+GG3122223 ::GG3122223(){ note_ctor("GG3122223", this);} // tgen
+
+static void Test_GG3122223()
+{
+ extern Class_Descriptor cd_GG3122223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3122223, buf);
+ GG3122223 *dp, &lv = *(dp=new (buf) GG3122223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3122223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3122223)");
+ check_base_class_offset(lv, (AA3*)(EE312*), ABISELECT(32,16), "GG3122223");
+ check_base_class_offset(lv, (BB1*)(EE312*), ABISELECT(48,24), "GG3122223");
+ check_base_class_offset(lv, (EE312*), ABISELECT(16,8), "GG3122223");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(80,40), "GG3122223");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(96,48), "GG3122223");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG3122223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3122223.pg");
+ test_class_info(&lv, &cd_GG3122223);
+ dp->~GG3122223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3122223(Test_GG3122223, "GG3122223", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3122223C1Ev();
+extern void _ZN9GG3122223D1Ev();
+Name_Map name_map_GG3122223[] = {
+ NSPAIR(_ZN9GG3122223C1Ev),
+ NSPAIR(_ZN9GG3122223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE312;
+extern VTBL_ENTRY _ZTI5EE312[];
+extern VTBL_ENTRY _ZTV5EE312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE312[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG3122223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE312, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3122223[];
+extern void _ZN9GG31222233fooEv();
+extern void _ZN9GG31222233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31222233barEv,_ZTv0_n20_N9GG31222233barEv)();
+extern void ABISELECT(_ZThn16_N9GG31222233barEv,_ZThn8_N9GG31222233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31222233fooEv,_ZTv0_n12_N9GG31222233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31222233fooEv,_ZThn16_N9GG31222233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31222233barEv,_ZTv0_n16_N9GG31222233barEv)();
+extern void ABISELECT(_ZThn32_N9GG31222233barEv,_ZThn16_N9GG31222233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31222233fooEv,_ZTv0_n12_N9GG31222233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31222233fooEv,_ZThn24_N9GG31222233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31222233barEv,_ZTv0_n20_N9GG31222233barEv)();
+extern void ABISELECT(_ZThn64_N9GG31222233barEv,_ZThn32_N9GG31222233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31222233barEv,_ZTv0_n12_N9GG31222233barEv)();
+extern void ABISELECT(_ZThn80_N9GG31222233barEv,_ZThn40_N9GG31222233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31222233barEv,_ZTv0_n12_N9GG31222233barEv)();
+extern void ABISELECT(_ZThn96_N9GG31222233barEv,_ZThn48_N9GG31222233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3122223[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3122223[0]),
+ (VTBL_ENTRY)&_ZN9GG31222233fooEv,
+ (VTBL_ENTRY)&_ZN9GG31222233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3122223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31222233barEv,_ZTv0_n20_N9GG31222233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3122223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31222233fooEv,_ZTv0_n12_N9GG31222233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31222233barEv,_ZTv0_n16_N9GG31222233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3122223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31222233fooEv,_ZTv0_n12_N9GG31222233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3122223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31222233barEv,_ZTv0_n20_N9GG31222233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3122223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31222233barEv,_ZTv0_n12_N9GG31222233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3122223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31222233barEv,_ZTv0_n12_N9GG31222233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3122223[];
+extern void _ZN5EE3123barEv();
+static VTBL_ENTRY _tg__ZTV5EE312__9GG3122223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN5EE3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv)();
+extern void ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE312__9GG3122223[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE312__9GG3122223[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG3122223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG3122223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG3122223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG3122223[] = {
+ {&(_ZTV9GG3122223[8]), 8,40},
+ {&(_ZTV9GG3122223[15]), 15,40},
+ {&(_ZTV9GG3122223[20]), 20,40},
+ {&(_ZTV9GG3122223[25]), 25,40},
+ {&(_ZTV9GG3122223[31]), 31,40},
+ {&(_ZTV9GG3122223[35]), 35,40},
+ {&(_ZTV9GG3122223[39]), 39,40},
+ {&(_tg__ZTV5EE312__9GG3122223[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE312__9GG3122223[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE312__9GG3122223[3]), 3,4},
+ {&(_tg__ZTV5FF222__9GG3122223[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG3122223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG3122223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3122223[];
+extern VTBL_ENTRY _ZTV9GG3122223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3122223[];
+static VTBL_ENTRY alt_thunk_names798[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31222233barEv,_ZTv0_n12_N9GG31222233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31222233barEv,_ZThn48_N9GG31222233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31222233barEv,_ZThn40_N9GG31222233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31222233barEv,_ZTv0_n16_N9GG31222233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31222233barEv,_ZThn16_N9GG31222233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31222233fooEv,_ZTv0_n12_N9GG31222233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31222233fooEv,_ZThn24_N9GG31222233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31222233fooEv,_ZThn16_N9GG31222233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31222233barEv,_ZTv0_n20_N9GG31222233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31222233barEv,_ZThn32_N9GG31222233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31222233barEv,_ZThn8_N9GG31222233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3122223 = { "GG3122223", // class name
+ bases_GG3122223, 6,
+ &(vtc_GG3122223[0]), // expected_vtbl_contents
+ &(vtt_GG3122223[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3122223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3122223),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3122223),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names798,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3122233 : virtual EE312 , virtual FF223 {
+ int pg;
+ virtual void foo(); // _ZN9GG31222333fooEv
+ virtual void bar(); // _ZN9GG31222333barEv
+ ~GG3122233(); // tgen
+ GG3122233(); // tgen
+};
+//SIG(1 GG3122233) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3122233 ::foo(){vfunc_called(this, "_ZN9GG31222333fooEv");}
+void GG3122233 ::bar(){vfunc_called(this, "_ZN9GG31222333barEv");}
+GG3122233 ::~GG3122233(){ note_dtor("GG3122233", this);} // tgen
+GG3122233 ::GG3122233(){ note_ctor("GG3122233", this);} // tgen
+
+static void Test_GG3122233()
+{
+ extern Class_Descriptor cd_GG3122233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3122233, buf);
+ GG3122233 *dp, &lv = *(dp=new (buf) GG3122233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3122233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3122233)");
+ check_base_class_offset(lv, (AA3*)(EE312*), ABISELECT(32,16), "GG3122233");
+ check_base_class_offset(lv, (BB1*)(EE312*), ABISELECT(48,24), "GG3122233");
+ check_base_class_offset(lv, (EE312*), ABISELECT(16,8), "GG3122233");
+ check_base_class_offset(lv, (AA2*)(FF223*), ABISELECT(80,40), "GG3122233");
+ check_base_class_offset(lv, (BB2*)(FF223*), ABISELECT(96,48), "GG3122233");
+ check_base_class_offset(lv, (FF223*), ABISELECT(64,32), "GG3122233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3122233.pg");
+ test_class_info(&lv, &cd_GG3122233);
+ dp->~GG3122233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3122233(Test_GG3122233, "GG3122233", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3122233C1Ev();
+extern void _ZN9GG3122233D1Ev();
+Name_Map name_map_GG3122233[] = {
+ NSPAIR(_ZN9GG3122233C1Ev),
+ NSPAIR(_ZN9GG3122233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE312;
+extern VTBL_ENTRY _ZTI5EE312[];
+extern VTBL_ENTRY _ZTV5EE312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE312[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF223;
+extern VTBL_ENTRY _ZTI5FF223[];
+extern VTBL_ENTRY _ZTV5FF223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF223[];
+static Base_Class bases_GG3122233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE312, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF223, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3122233[];
+extern void _ZN9GG31222333fooEv();
+extern void _ZN9GG31222333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31222333barEv,_ZTv0_n20_N9GG31222333barEv)();
+extern void ABISELECT(_ZThn16_N9GG31222333barEv,_ZThn8_N9GG31222333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31222333fooEv,_ZTv0_n12_N9GG31222333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31222333fooEv,_ZThn16_N9GG31222333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31222333barEv,_ZTv0_n16_N9GG31222333barEv)();
+extern void ABISELECT(_ZThn32_N9GG31222333barEv,_ZThn16_N9GG31222333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31222333fooEv,_ZTv0_n12_N9GG31222333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31222333fooEv,_ZThn24_N9GG31222333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31222333fooEv,_ZTv0_n20_N9GG31222333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31222333fooEv,_ZThn32_N9GG31222333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31222333barEv,_ZTv0_n24_N9GG31222333barEv)();
+extern void ABISELECT(_ZThn64_N9GG31222333barEv,_ZThn32_N9GG31222333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31222333barEv,_ZTv0_n12_N9GG31222333barEv)();
+extern void ABISELECT(_ZThn80_N9GG31222333barEv,_ZThn40_N9GG31222333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31222333barEv,_ZTv0_n12_N9GG31222333barEv)();
+extern void ABISELECT(_ZThn96_N9GG31222333barEv,_ZThn48_N9GG31222333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3122233[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3122233[0]),
+ (VTBL_ENTRY)&_ZN9GG31222333fooEv,
+ (VTBL_ENTRY)&_ZN9GG31222333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3122233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31222333barEv,_ZTv0_n20_N9GG31222333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3122233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31222333fooEv,_ZTv0_n12_N9GG31222333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31222333barEv,_ZTv0_n16_N9GG31222333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3122233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31222333fooEv,_ZTv0_n12_N9GG31222333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3122233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31222333fooEv,_ZTv0_n20_N9GG31222333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31222333barEv,_ZTv0_n24_N9GG31222333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3122233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31222333barEv,_ZTv0_n12_N9GG31222333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3122233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31222333barEv,_ZTv0_n12_N9GG31222333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3122233[];
+extern void _ZN5EE3123barEv();
+static VTBL_ENTRY _tg__ZTV5EE312__9GG3122233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN5EE3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv)();
+extern void ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE312__9GG3122233[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE312__9GG3122233[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF2233fooEv();
+extern void _ZN5FF2233barEv();
+static VTBL_ENTRY _tg__ZTV5FF223__9GG3122233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&_ZN5FF2233fooEv,
+ (VTBL_ENTRY)&_ZN5FF2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+extern void ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF223__9GG3122233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+extern void ABISELECT(_ZThn32_N5FF2233barEv,_ZThn16_N5FF2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF223__9GG3122233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+static VTT_ENTRY vtt_GG3122233[] = {
+ {&(_ZTV9GG3122233[8]), 8,42},
+ {&(_ZTV9GG3122233[15]), 15,42},
+ {&(_ZTV9GG3122233[20]), 20,42},
+ {&(_ZTV9GG3122233[25]), 25,42},
+ {&(_ZTV9GG3122233[32]), 32,42},
+ {&(_ZTV9GG3122233[37]), 37,42},
+ {&(_ZTV9GG3122233[41]), 41,42},
+ {&(_tg__ZTV5EE312__9GG3122233[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE312__9GG3122233[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE312__9GG3122233[3]), 3,4},
+ {&(_tg__ZTV5FF223__9GG3122233[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF223__9GG3122233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF223__9GG3122233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3122233[];
+extern VTBL_ENTRY _ZTV9GG3122233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3122233[];
+static VTBL_ENTRY alt_thunk_names799[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2233barEv,_ZThn16_N5FF2233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31222333barEv,_ZTv0_n12_N9GG31222333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31222333barEv,_ZThn48_N9GG31222333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31222333barEv,_ZThn40_N9GG31222333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG31222333barEv,_ZTv0_n24_N9GG31222333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31222333barEv,_ZThn32_N9GG31222333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31222333fooEv,_ZTv0_n20_N9GG31222333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31222333fooEv,_ZThn32_N9GG31222333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31222333barEv,_ZTv0_n16_N9GG31222333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31222333barEv,_ZThn16_N9GG31222333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31222333fooEv,_ZTv0_n12_N9GG31222333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31222333fooEv,_ZThn24_N9GG31222333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31222333fooEv,_ZThn16_N9GG31222333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31222333barEv,_ZTv0_n20_N9GG31222333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31222333barEv,_ZThn8_N9GG31222333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3122233 = { "GG3122233", // class name
+ bases_GG3122233, 6,
+ &(vtc_GG3122233[0]), // expected_vtbl_contents
+ &(vtt_GG3122233[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3122233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3122233),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3122233),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names799,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3122313 : virtual EE312 , virtual FF231 {
+ int pg;
+ virtual void foo(); // _ZN9GG31223133fooEv
+ virtual void bar(); // _ZN9GG31223133barEv
+ ~GG3122313(); // tgen
+ GG3122313(); // tgen
+};
+//SIG(1 GG3122313) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3122313 ::foo(){vfunc_called(this, "_ZN9GG31223133fooEv");}
+void GG3122313 ::bar(){vfunc_called(this, "_ZN9GG31223133barEv");}
+GG3122313 ::~GG3122313(){ note_dtor("GG3122313", this);} // tgen
+GG3122313 ::GG3122313(){ note_ctor("GG3122313", this);} // tgen
+
+static void Test_GG3122313()
+{
+ extern Class_Descriptor cd_GG3122313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3122313, buf);
+ GG3122313 *dp, &lv = *(dp=new (buf) GG3122313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3122313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3122313)");
+ check_base_class_offset(lv, (AA3*)(EE312*), ABISELECT(32,16), "GG3122313");
+ check_base_class_offset(lv, (BB1*)(EE312*), ABISELECT(48,24), "GG3122313");
+ check_base_class_offset(lv, (EE312*), ABISELECT(16,8), "GG3122313");
+ check_base_class_offset(lv, (AA2*)(FF231*), ABISELECT(80,40), "GG3122313");
+ check_base_class_offset(lv, (BB3*)(FF231*), ABISELECT(96,48), "GG3122313");
+ check_base_class_offset(lv, (FF231*), ABISELECT(64,32), "GG3122313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3122313.pg");
+ test_class_info(&lv, &cd_GG3122313);
+ dp->~GG3122313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3122313(Test_GG3122313, "GG3122313", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3122313C1Ev();
+extern void _ZN9GG3122313D1Ev();
+Name_Map name_map_GG3122313[] = {
+ NSPAIR(_ZN9GG3122313C1Ev),
+ NSPAIR(_ZN9GG3122313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE312;
+extern VTBL_ENTRY _ZTI5EE312[];
+extern VTBL_ENTRY _ZTV5EE312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE312[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF231;
+extern VTBL_ENTRY _ZTI5FF231[];
+extern VTBL_ENTRY _ZTV5FF231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF231[];
+static Base_Class bases_GG3122313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE312, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF231, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3122313[];
+extern void _ZN9GG31223133fooEv();
+extern void _ZN9GG31223133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31223133barEv,_ZTv0_n20_N9GG31223133barEv)();
+extern void ABISELECT(_ZThn16_N9GG31223133barEv,_ZThn8_N9GG31223133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31223133fooEv,_ZTv0_n12_N9GG31223133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31223133fooEv,_ZThn16_N9GG31223133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31223133barEv,_ZTv0_n16_N9GG31223133barEv)();
+extern void ABISELECT(_ZThn32_N9GG31223133barEv,_ZThn16_N9GG31223133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31223133fooEv,_ZTv0_n12_N9GG31223133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31223133fooEv,_ZThn24_N9GG31223133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31223133fooEv,_ZTv0_n20_N9GG31223133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31223133fooEv,_ZThn32_N9GG31223133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31223133barEv,_ZTv0_n12_N9GG31223133barEv)();
+extern void ABISELECT(_ZThn80_N9GG31223133barEv,_ZThn40_N9GG31223133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31223133fooEv,_ZTv0_n12_N9GG31223133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG31223133fooEv,_ZThn48_N9GG31223133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31223133barEv,_ZTv0_n16_N9GG31223133barEv)();
+extern void ABISELECT(_ZThn96_N9GG31223133barEv,_ZThn48_N9GG31223133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3122313[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3122313[0]),
+ (VTBL_ENTRY)&_ZN9GG31223133fooEv,
+ (VTBL_ENTRY)&_ZN9GG31223133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3122313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31223133barEv,_ZTv0_n20_N9GG31223133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3122313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31223133fooEv,_ZTv0_n12_N9GG31223133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31223133barEv,_ZTv0_n16_N9GG31223133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3122313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31223133fooEv,_ZTv0_n12_N9GG31223133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3122313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31223133fooEv,_ZTv0_n20_N9GG31223133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3122313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31223133barEv,_ZTv0_n12_N9GG31223133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3122313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31223133fooEv,_ZTv0_n12_N9GG31223133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31223133barEv,_ZTv0_n16_N9GG31223133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3122313[];
+extern void _ZN5EE3123barEv();
+static VTBL_ENTRY _tg__ZTV5EE312__9GG3122313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN5EE3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv)();
+extern void ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE312__9GG3122313[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE312__9GG3122313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF2313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF231__9GG3122313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN5FF2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF231__9GG3122313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2313fooEv,_ZThn16_N5FF2313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF231__9GG3122313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG3122313[] = {
+ {&(_ZTV9GG3122313[8]), 8,42},
+ {&(_ZTV9GG3122313[15]), 15,42},
+ {&(_ZTV9GG3122313[20]), 20,42},
+ {&(_ZTV9GG3122313[25]), 25,42},
+ {&(_ZTV9GG3122313[31]), 31,42},
+ {&(_ZTV9GG3122313[35]), 35,42},
+ {&(_ZTV9GG3122313[40]), 40,42},
+ {&(_tg__ZTV5EE312__9GG3122313[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE312__9GG3122313[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE312__9GG3122313[3]), 3,4},
+ {&(_tg__ZTV5FF231__9GG3122313[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF231__9GG3122313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF231__9GG3122313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3122313[];
+extern VTBL_ENTRY _ZTV9GG3122313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3122313[];
+static VTBL_ENTRY alt_thunk_names800[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2313fooEv,_ZThn16_N5FF2313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31223133barEv,_ZTv0_n12_N9GG31223133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31223133barEv,_ZThn40_N9GG31223133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31223133fooEv,_ZTv0_n20_N9GG31223133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31223133fooEv,_ZThn32_N9GG31223133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31223133barEv,_ZTv0_n16_N9GG31223133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31223133barEv,_ZThn48_N9GG31223133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31223133barEv,_ZThn16_N9GG31223133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31223133fooEv,_ZTv0_n12_N9GG31223133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31223133fooEv,_ZThn48_N9GG31223133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31223133fooEv,_ZThn24_N9GG31223133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31223133fooEv,_ZThn16_N9GG31223133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31223133barEv,_ZTv0_n20_N9GG31223133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31223133barEv,_ZThn8_N9GG31223133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3122313 = { "GG3122313", // class name
+ bases_GG3122313, 6,
+ &(vtc_GG3122313[0]), // expected_vtbl_contents
+ &(vtt_GG3122313[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3122313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3122313),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3122313),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names800,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3122323 : virtual EE312 , virtual FF232 {
+ int pg;
+ virtual void foo(); // _ZN9GG31223233fooEv
+ virtual void bar(); // _ZN9GG31223233barEv
+ ~GG3122323(); // tgen
+ GG3122323(); // tgen
+};
+//SIG(1 GG3122323) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3122323 ::foo(){vfunc_called(this, "_ZN9GG31223233fooEv");}
+void GG3122323 ::bar(){vfunc_called(this, "_ZN9GG31223233barEv");}
+GG3122323 ::~GG3122323(){ note_dtor("GG3122323", this);} // tgen
+GG3122323 ::GG3122323(){ note_ctor("GG3122323", this);} // tgen
+
+static void Test_GG3122323()
+{
+ extern Class_Descriptor cd_GG3122323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3122323, buf);
+ GG3122323 *dp, &lv = *(dp=new (buf) GG3122323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3122323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3122323)");
+ check_base_class_offset(lv, (AA3*)(EE312*), ABISELECT(32,16), "GG3122323");
+ check_base_class_offset(lv, (BB1*)(EE312*), ABISELECT(48,24), "GG3122323");
+ check_base_class_offset(lv, (EE312*), ABISELECT(16,8), "GG3122323");
+ check_base_class_offset(lv, (AA2*)(FF232*), ABISELECT(80,40), "GG3122323");
+ check_base_class_offset(lv, (BB3*)(FF232*), ABISELECT(96,48), "GG3122323");
+ check_base_class_offset(lv, (FF232*), ABISELECT(64,32), "GG3122323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3122323.pg");
+ test_class_info(&lv, &cd_GG3122323);
+ dp->~GG3122323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3122323(Test_GG3122323, "GG3122323", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3122323C1Ev();
+extern void _ZN9GG3122323D1Ev();
+Name_Map name_map_GG3122323[] = {
+ NSPAIR(_ZN9GG3122323C1Ev),
+ NSPAIR(_ZN9GG3122323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE312;
+extern VTBL_ENTRY _ZTI5EE312[];
+extern VTBL_ENTRY _ZTV5EE312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE312[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF232;
+extern VTBL_ENTRY _ZTI5FF232[];
+extern VTBL_ENTRY _ZTV5FF232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF232[];
+static Base_Class bases_GG3122323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE312, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF232, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3122323[];
+extern void _ZN9GG31223233fooEv();
+extern void _ZN9GG31223233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31223233barEv,_ZTv0_n20_N9GG31223233barEv)();
+extern void ABISELECT(_ZThn16_N9GG31223233barEv,_ZThn8_N9GG31223233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31223233fooEv,_ZTv0_n12_N9GG31223233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31223233fooEv,_ZThn16_N9GG31223233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31223233barEv,_ZTv0_n16_N9GG31223233barEv)();
+extern void ABISELECT(_ZThn32_N9GG31223233barEv,_ZThn16_N9GG31223233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31223233fooEv,_ZTv0_n12_N9GG31223233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31223233fooEv,_ZThn24_N9GG31223233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31223233barEv,_ZTv0_n20_N9GG31223233barEv)();
+extern void ABISELECT(_ZThn64_N9GG31223233barEv,_ZThn32_N9GG31223233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31223233barEv,_ZTv0_n12_N9GG31223233barEv)();
+extern void ABISELECT(_ZThn80_N9GG31223233barEv,_ZThn40_N9GG31223233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31223233fooEv,_ZTv0_n12_N9GG31223233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG31223233fooEv,_ZThn48_N9GG31223233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31223233barEv,_ZTv0_n16_N9GG31223233barEv)();
+extern void ABISELECT(_ZThn96_N9GG31223233barEv,_ZThn48_N9GG31223233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3122323[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3122323[0]),
+ (VTBL_ENTRY)&_ZN9GG31223233fooEv,
+ (VTBL_ENTRY)&_ZN9GG31223233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3122323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31223233barEv,_ZTv0_n20_N9GG31223233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3122323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31223233fooEv,_ZTv0_n12_N9GG31223233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31223233barEv,_ZTv0_n16_N9GG31223233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3122323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31223233fooEv,_ZTv0_n12_N9GG31223233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3122323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31223233barEv,_ZTv0_n20_N9GG31223233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3122323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31223233barEv,_ZTv0_n12_N9GG31223233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3122323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31223233fooEv,_ZTv0_n12_N9GG31223233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31223233barEv,_ZTv0_n16_N9GG31223233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3122323[];
+extern void _ZN5EE3123barEv();
+static VTBL_ENTRY _tg__ZTV5EE312__9GG3122323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN5EE3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv)();
+extern void ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE312__9GG3122323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE312__9GG3122323[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF2323barEv();
+static VTBL_ENTRY _tg__ZTV5FF232__9GG3122323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN5FF2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv)();
+extern void ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF232__9GG3122323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv)();
+extern void ABISELECT(_ZThn32_N5FF2323barEv,_ZThn16_N5FF2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF232__9GG3122323[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv),
+};
+static VTT_ENTRY vtt_GG3122323[] = {
+ {&(_ZTV9GG3122323[8]), 8,42},
+ {&(_ZTV9GG3122323[15]), 15,42},
+ {&(_ZTV9GG3122323[20]), 20,42},
+ {&(_ZTV9GG3122323[25]), 25,42},
+ {&(_ZTV9GG3122323[31]), 31,42},
+ {&(_ZTV9GG3122323[35]), 35,42},
+ {&(_ZTV9GG3122323[40]), 40,42},
+ {&(_tg__ZTV5EE312__9GG3122323[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE312__9GG3122323[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE312__9GG3122323[3]), 3,4},
+ {&(_tg__ZTV5FF232__9GG3122323[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF232__9GG3122323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF232__9GG3122323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3122323[];
+extern VTBL_ENTRY _ZTV9GG3122323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3122323[];
+static VTBL_ENTRY alt_thunk_names801[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2323barEv,_ZThn16_N5FF2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31223233barEv,_ZTv0_n12_N9GG31223233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31223233barEv,_ZThn40_N9GG31223233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31223233barEv,_ZTv0_n16_N9GG31223233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31223233barEv,_ZThn48_N9GG31223233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31223233barEv,_ZThn16_N9GG31223233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31223233fooEv,_ZTv0_n12_N9GG31223233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31223233fooEv,_ZThn48_N9GG31223233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31223233fooEv,_ZThn24_N9GG31223233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31223233fooEv,_ZThn16_N9GG31223233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31223233barEv,_ZTv0_n20_N9GG31223233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31223233barEv,_ZThn32_N9GG31223233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31223233barEv,_ZThn8_N9GG31223233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3122323 = { "GG3122323", // class name
+ bases_GG3122323, 6,
+ &(vtc_GG3122323[0]), // expected_vtbl_contents
+ &(vtt_GG3122323[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3122323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3122323),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3122323),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names801,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3122333 : virtual EE312 , virtual FF233 {
+ int pg;
+ virtual void foo(); // _ZN9GG31223333fooEv
+ virtual void bar(); // _ZN9GG31223333barEv
+ ~GG3122333(); // tgen
+ GG3122333(); // tgen
+};
+//SIG(1 GG3122333) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3122333 ::foo(){vfunc_called(this, "_ZN9GG31223333fooEv");}
+void GG3122333 ::bar(){vfunc_called(this, "_ZN9GG31223333barEv");}
+GG3122333 ::~GG3122333(){ note_dtor("GG3122333", this);} // tgen
+GG3122333 ::GG3122333(){ note_ctor("GG3122333", this);} // tgen
+
+static void Test_GG3122333()
+{
+ extern Class_Descriptor cd_GG3122333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3122333, buf);
+ GG3122333 *dp, &lv = *(dp=new (buf) GG3122333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3122333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3122333)");
+ check_base_class_offset(lv, (AA3*)(EE312*), ABISELECT(32,16), "GG3122333");
+ check_base_class_offset(lv, (BB1*)(EE312*), ABISELECT(48,24), "GG3122333");
+ check_base_class_offset(lv, (EE312*), ABISELECT(16,8), "GG3122333");
+ check_base_class_offset(lv, (AA2*)(FF233*), ABISELECT(80,40), "GG3122333");
+ check_base_class_offset(lv, (BB3*)(FF233*), ABISELECT(96,48), "GG3122333");
+ check_base_class_offset(lv, (FF233*), ABISELECT(64,32), "GG3122333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3122333.pg");
+ test_class_info(&lv, &cd_GG3122333);
+ dp->~GG3122333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3122333(Test_GG3122333, "GG3122333", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3122333C1Ev();
+extern void _ZN9GG3122333D1Ev();
+Name_Map name_map_GG3122333[] = {
+ NSPAIR(_ZN9GG3122333C1Ev),
+ NSPAIR(_ZN9GG3122333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE312;
+extern VTBL_ENTRY _ZTI5EE312[];
+extern VTBL_ENTRY _ZTV5EE312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE312[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF233;
+extern VTBL_ENTRY _ZTI5FF233[];
+extern VTBL_ENTRY _ZTV5FF233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF233[];
+static Base_Class bases_GG3122333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE312, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF233, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3122333[];
+extern void _ZN9GG31223333fooEv();
+extern void _ZN9GG31223333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31223333barEv,_ZTv0_n20_N9GG31223333barEv)();
+extern void ABISELECT(_ZThn16_N9GG31223333barEv,_ZThn8_N9GG31223333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31223333fooEv,_ZTv0_n12_N9GG31223333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31223333fooEv,_ZThn16_N9GG31223333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31223333barEv,_ZTv0_n16_N9GG31223333barEv)();
+extern void ABISELECT(_ZThn32_N9GG31223333barEv,_ZThn16_N9GG31223333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31223333fooEv,_ZTv0_n12_N9GG31223333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31223333fooEv,_ZThn24_N9GG31223333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31223333fooEv,_ZTv0_n20_N9GG31223333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31223333fooEv,_ZThn32_N9GG31223333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31223333barEv,_ZTv0_n24_N9GG31223333barEv)();
+extern void ABISELECT(_ZThn64_N9GG31223333barEv,_ZThn32_N9GG31223333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31223333barEv,_ZTv0_n12_N9GG31223333barEv)();
+extern void ABISELECT(_ZThn80_N9GG31223333barEv,_ZThn40_N9GG31223333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31223333fooEv,_ZTv0_n12_N9GG31223333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG31223333fooEv,_ZThn48_N9GG31223333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31223333barEv,_ZTv0_n16_N9GG31223333barEv)();
+extern void ABISELECT(_ZThn96_N9GG31223333barEv,_ZThn48_N9GG31223333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3122333[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3122333[0]),
+ (VTBL_ENTRY)&_ZN9GG31223333fooEv,
+ (VTBL_ENTRY)&_ZN9GG31223333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3122333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31223333barEv,_ZTv0_n20_N9GG31223333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3122333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31223333fooEv,_ZTv0_n12_N9GG31223333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31223333barEv,_ZTv0_n16_N9GG31223333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3122333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31223333fooEv,_ZTv0_n12_N9GG31223333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3122333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31223333fooEv,_ZTv0_n20_N9GG31223333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31223333barEv,_ZTv0_n24_N9GG31223333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3122333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31223333barEv,_ZTv0_n12_N9GG31223333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3122333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31223333fooEv,_ZTv0_n12_N9GG31223333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31223333barEv,_ZTv0_n16_N9GG31223333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3122333[];
+extern void _ZN5EE3123barEv();
+static VTBL_ENTRY _tg__ZTV5EE312__9GG3122333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN5EE3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv)();
+extern void ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE312__9GG3122333[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE312__9GG3122333[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF2333fooEv();
+extern void _ZN5FF2333barEv();
+static VTBL_ENTRY _tg__ZTV5FF233__9GG3122333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&_ZN5FF2333fooEv,
+ (VTBL_ENTRY)&_ZN5FF2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv)();
+extern void ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF233__9GG3122333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2333fooEv,_ZThn16_N5FF2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv)();
+extern void ABISELECT(_ZThn32_N5FF2333barEv,_ZThn16_N5FF2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF233__9GG3122333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv),
+};
+static VTT_ENTRY vtt_GG3122333[] = {
+ {&(_ZTV9GG3122333[8]), 8,44},
+ {&(_ZTV9GG3122333[15]), 15,44},
+ {&(_ZTV9GG3122333[20]), 20,44},
+ {&(_ZTV9GG3122333[25]), 25,44},
+ {&(_ZTV9GG3122333[32]), 32,44},
+ {&(_ZTV9GG3122333[37]), 37,44},
+ {&(_ZTV9GG3122333[42]), 42,44},
+ {&(_tg__ZTV5EE312__9GG3122333[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE312__9GG3122333[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE312__9GG3122333[3]), 3,4},
+ {&(_tg__ZTV5FF233__9GG3122333[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF233__9GG3122333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF233__9GG3122333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3122333[];
+extern VTBL_ENTRY _ZTV9GG3122333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3122333[];
+static VTBL_ENTRY alt_thunk_names802[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2333barEv,_ZThn16_N5FF2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2333fooEv,_ZThn16_N5FF2333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31223333barEv,_ZTv0_n12_N9GG31223333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31223333barEv,_ZThn40_N9GG31223333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG31223333barEv,_ZTv0_n24_N9GG31223333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31223333barEv,_ZThn32_N9GG31223333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31223333fooEv,_ZTv0_n20_N9GG31223333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31223333fooEv,_ZThn32_N9GG31223333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31223333barEv,_ZTv0_n16_N9GG31223333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31223333barEv,_ZThn48_N9GG31223333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31223333barEv,_ZThn16_N9GG31223333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31223333fooEv,_ZTv0_n12_N9GG31223333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31223333fooEv,_ZThn48_N9GG31223333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31223333fooEv,_ZThn24_N9GG31223333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31223333fooEv,_ZThn16_N9GG31223333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31223333barEv,_ZTv0_n20_N9GG31223333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31223333barEv,_ZThn8_N9GG31223333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3122333 = { "GG3122333", // class name
+ bases_GG3122333, 6,
+ &(vtc_GG3122333[0]), // expected_vtbl_contents
+ &(vtt_GG3122333[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3122333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3122333),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3122333),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names802,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3123113 : virtual EE312 , virtual FF311 {
+ int pg;
+ virtual void foo(); // _ZN9GG31231133fooEv
+ virtual void bar(); // _ZN9GG31231133barEv
+ ~GG3123113(); // tgen
+ GG3123113(); // tgen
+};
+//SIG(1 GG3123113) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC3 VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG3123113 ::foo(){vfunc_called(this, "_ZN9GG31231133fooEv");}
+void GG3123113 ::bar(){vfunc_called(this, "_ZN9GG31231133barEv");}
+GG3123113 ::~GG3123113(){ note_dtor("GG3123113", this);} // tgen
+GG3123113 ::GG3123113(){ note_ctor("GG3123113", this);} // tgen
+
+static void Test_GG3123113()
+{
+ extern Class_Descriptor cd_GG3123113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG3123113, buf);
+ GG3123113 *dp, &lv = *(dp=new (buf) GG3123113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG3123113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3123113)");
+ check_base_class_offset(lv, (AA3*)(EE312*), ABISELECT(32,16), "GG3123113");
+ check_base_class_offset(lv, (AA3*)(FF311*), ABISELECT(32,16), "GG3123113");
+ check_base_class_offset(lv, (BB1*)(EE312*), ABISELECT(48,24), "GG3123113");
+ check_base_class_offset(lv, (BB1*)(FF311*), ABISELECT(48,24), "GG3123113");
+ check_base_class_offset(lv, (EE312*), ABISELECT(16,8), "GG3123113");
+ check_base_class_offset(lv, (FF311*), ABISELECT(64,32), "GG3123113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3123113.pg");
+ test_class_info(&lv, &cd_GG3123113);
+ dp->~GG3123113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3123113(Test_GG3123113, "GG3123113", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG3123113C1Ev();
+extern void _ZN9GG3123113D1Ev();
+Name_Map name_map_GG3123113[] = {
+ NSPAIR(_ZN9GG3123113C1Ev),
+ NSPAIR(_ZN9GG3123113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE312;
+extern VTBL_ENTRY _ZTI5EE312[];
+extern VTBL_ENTRY _ZTV5EE312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE312[];
+extern Class_Descriptor cd_FF311;
+extern VTBL_ENTRY _ZTI5FF311[];
+extern VTBL_ENTRY _ZTV5FF311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF311[];
+static Base_Class bases_GG3123113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE312, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF311, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3123113[];
+extern void _ZN9GG31231133fooEv();
+extern void _ZN9GG31231133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31231133barEv,_ZTv0_n20_N9GG31231133barEv)();
+extern void ABISELECT(_ZThn16_N9GG31231133barEv,_ZThn8_N9GG31231133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31231133fooEv,_ZTv0_n12_N9GG31231133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31231133fooEv,_ZThn16_N9GG31231133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31231133barEv,_ZTv0_n16_N9GG31231133barEv)();
+extern void ABISELECT(_ZThn32_N9GG31231133barEv,_ZThn16_N9GG31231133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31231133fooEv,_ZTv0_n12_N9GG31231133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31231133fooEv,_ZThn24_N9GG31231133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31231133fooEv,_ZTv0_n20_N9GG31231133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31231133fooEv,_ZThn32_N9GG31231133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3123113[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3123113[0]),
+ (VTBL_ENTRY)&_ZN9GG31231133fooEv,
+ (VTBL_ENTRY)&_ZN9GG31231133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3123113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31231133barEv,_ZTv0_n20_N9GG31231133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3123113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31231133fooEv,_ZTv0_n12_N9GG31231133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31231133barEv,_ZTv0_n16_N9GG31231133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3123113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31231133fooEv,_ZTv0_n12_N9GG31231133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3123113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31231133fooEv,_ZTv0_n20_N9GG31231133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3123113[];
+extern void _ZN5EE3123barEv();
+static VTBL_ENTRY _tg__ZTV5EE312__9GG3123113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN5EE3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv)();
+extern void ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE312__9GG3123113[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE312__9GG3123113[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF3113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF311__9GG3123113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&_ZN5FF3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF311__9GG3123113[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF311__9GG3123113[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+};
+static VTT_ENTRY vtt_GG3123113[] = {
+ {&(_ZTV9GG3123113[6]), 6,30},
+ {&(_ZTV9GG3123113[13]), 13,30},
+ {&(_ZTV9GG3123113[18]), 18,30},
+ {&(_ZTV9GG3123113[23]), 23,30},
+ {&(_ZTV9GG3123113[29]), 29,30},
+ {&(_tg__ZTV5EE312__9GG3123113[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE312__9GG3123113[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE312__9GG3123113[3]), 3,4},
+ {&(_tg__ZTV5FF311__9GG3123113[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF311__9GG3123113[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF311__9GG3123113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3123113[];
+extern VTBL_ENTRY _ZTV9GG3123113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3123113[];
+static VTBL_ENTRY alt_thunk_names803[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31231133fooEv,_ZTv0_n20_N9GG31231133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31231133fooEv,_ZThn32_N9GG31231133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31231133barEv,_ZTv0_n16_N9GG31231133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31231133barEv,_ZThn16_N9GG31231133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31231133fooEv,_ZTv0_n12_N9GG31231133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31231133fooEv,_ZThn24_N9GG31231133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31231133fooEv,_ZThn16_N9GG31231133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31231133barEv,_ZTv0_n20_N9GG31231133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31231133barEv,_ZThn8_N9GG31231133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3123113 = { "GG3123113", // class name
+ bases_GG3123113, 4,
+ &(vtc_GG3123113[0]), // expected_vtbl_contents
+ &(vtt_GG3123113[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG3123113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3123113),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3123113),11, //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 GG3123123 : virtual EE312 , virtual FF312 {
+ int pg;
+ virtual void foo(); // _ZN9GG31231233fooEv
+ virtual void bar(); // _ZN9GG31231233barEv
+ ~GG3123123(); // tgen
+ GG3123123(); // tgen
+};
+//SIG(1 GG3123123) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC3 VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG3123123 ::foo(){vfunc_called(this, "_ZN9GG31231233fooEv");}
+void GG3123123 ::bar(){vfunc_called(this, "_ZN9GG31231233barEv");}
+GG3123123 ::~GG3123123(){ note_dtor("GG3123123", this);} // tgen
+GG3123123 ::GG3123123(){ note_ctor("GG3123123", this);} // tgen
+
+static void Test_GG3123123()
+{
+ extern Class_Descriptor cd_GG3123123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG3123123, buf);
+ GG3123123 *dp, &lv = *(dp=new (buf) GG3123123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG3123123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3123123)");
+ check_base_class_offset(lv, (AA3*)(EE312*), ABISELECT(32,16), "GG3123123");
+ check_base_class_offset(lv, (AA3*)(FF312*), ABISELECT(32,16), "GG3123123");
+ check_base_class_offset(lv, (BB1*)(EE312*), ABISELECT(48,24), "GG3123123");
+ check_base_class_offset(lv, (BB1*)(FF312*), ABISELECT(48,24), "GG3123123");
+ check_base_class_offset(lv, (EE312*), ABISELECT(16,8), "GG3123123");
+ check_base_class_offset(lv, (FF312*), ABISELECT(64,32), "GG3123123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3123123.pg");
+ test_class_info(&lv, &cd_GG3123123);
+ dp->~GG3123123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3123123(Test_GG3123123, "GG3123123", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG3123123C1Ev();
+extern void _ZN9GG3123123D1Ev();
+Name_Map name_map_GG3123123[] = {
+ NSPAIR(_ZN9GG3123123C1Ev),
+ NSPAIR(_ZN9GG3123123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE312;
+extern VTBL_ENTRY _ZTI5EE312[];
+extern VTBL_ENTRY _ZTV5EE312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE312[];
+extern Class_Descriptor cd_FF312;
+extern VTBL_ENTRY _ZTI5FF312[];
+extern VTBL_ENTRY _ZTV5FF312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF312[];
+static Base_Class bases_GG3123123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE312, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF312, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3123123[];
+extern void _ZN9GG31231233fooEv();
+extern void _ZN9GG31231233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31231233barEv,_ZTv0_n20_N9GG31231233barEv)();
+extern void ABISELECT(_ZThn16_N9GG31231233barEv,_ZThn8_N9GG31231233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31231233fooEv,_ZTv0_n12_N9GG31231233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31231233fooEv,_ZThn16_N9GG31231233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31231233barEv,_ZTv0_n16_N9GG31231233barEv)();
+extern void ABISELECT(_ZThn32_N9GG31231233barEv,_ZThn16_N9GG31231233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31231233fooEv,_ZTv0_n12_N9GG31231233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31231233fooEv,_ZThn24_N9GG31231233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31231233barEv,_ZTv0_n20_N9GG31231233barEv)();
+extern void ABISELECT(_ZThn64_N9GG31231233barEv,_ZThn32_N9GG31231233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3123123[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3123123[0]),
+ (VTBL_ENTRY)&_ZN9GG31231233fooEv,
+ (VTBL_ENTRY)&_ZN9GG31231233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3123123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31231233barEv,_ZTv0_n20_N9GG31231233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3123123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31231233fooEv,_ZTv0_n12_N9GG31231233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31231233barEv,_ZTv0_n16_N9GG31231233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3123123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31231233fooEv,_ZTv0_n12_N9GG31231233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3123123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31231233barEv,_ZTv0_n20_N9GG31231233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3123123[];
+extern void _ZN5EE3123barEv();
+static VTBL_ENTRY _tg__ZTV5EE312__9GG3123123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN5EE3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv)();
+extern void ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE312__9GG3123123[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE312__9GG3123123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF3123barEv();
+static VTBL_ENTRY _tg__ZTV5FF312__9GG3123123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN5FF3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF312__9GG3123123[] = {
+ ABISELECT(32,16),
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF312__9GG3123123[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG3123123[] = {
+ {&(_ZTV9GG3123123[6]), 6,30},
+ {&(_ZTV9GG3123123[13]), 13,30},
+ {&(_ZTV9GG3123123[18]), 18,30},
+ {&(_ZTV9GG3123123[23]), 23,30},
+ {&(_ZTV9GG3123123[29]), 29,30},
+ {&(_tg__ZTV5EE312__9GG3123123[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE312__9GG3123123[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE312__9GG3123123[3]), 3,4},
+ {&(_tg__ZTV5FF312__9GG3123123[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF312__9GG3123123[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF312__9GG3123123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3123123[];
+extern VTBL_ENTRY _ZTV9GG3123123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3123123[];
+static VTBL_ENTRY alt_thunk_names804[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31231233barEv,_ZTv0_n16_N9GG31231233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31231233barEv,_ZThn16_N9GG31231233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31231233fooEv,_ZTv0_n12_N9GG31231233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31231233fooEv,_ZThn24_N9GG31231233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31231233fooEv,_ZThn16_N9GG31231233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31231233barEv,_ZTv0_n20_N9GG31231233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31231233barEv,_ZThn32_N9GG31231233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31231233barEv,_ZThn8_N9GG31231233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3123123 = { "GG3123123", // class name
+ bases_GG3123123, 4,
+ &(vtc_GG3123123[0]), // expected_vtbl_contents
+ &(vtt_GG3123123[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG3123123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3123123),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3123123),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names804,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3123133 : virtual EE312 , virtual FF313 {
+ int pg;
+ virtual void foo(); // _ZN9GG31231333fooEv
+ virtual void bar(); // _ZN9GG31231333barEv
+ ~GG3123133(); // tgen
+ GG3123133(); // tgen
+};
+//SIG(1 GG3123133) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC3 VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3123133 ::foo(){vfunc_called(this, "_ZN9GG31231333fooEv");}
+void GG3123133 ::bar(){vfunc_called(this, "_ZN9GG31231333barEv");}
+GG3123133 ::~GG3123133(){ note_dtor("GG3123133", this);} // tgen
+GG3123133 ::GG3123133(){ note_ctor("GG3123133", this);} // tgen
+
+static void Test_GG3123133()
+{
+ extern Class_Descriptor cd_GG3123133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG3123133, buf);
+ GG3123133 *dp, &lv = *(dp=new (buf) GG3123133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG3123133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3123133)");
+ check_base_class_offset(lv, (AA3*)(EE312*), ABISELECT(32,16), "GG3123133");
+ check_base_class_offset(lv, (AA3*)(FF313*), ABISELECT(32,16), "GG3123133");
+ check_base_class_offset(lv, (BB1*)(EE312*), ABISELECT(48,24), "GG3123133");
+ check_base_class_offset(lv, (BB1*)(FF313*), ABISELECT(48,24), "GG3123133");
+ check_base_class_offset(lv, (EE312*), ABISELECT(16,8), "GG3123133");
+ check_base_class_offset(lv, (FF313*), ABISELECT(64,32), "GG3123133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3123133.pg");
+ test_class_info(&lv, &cd_GG3123133);
+ dp->~GG3123133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3123133(Test_GG3123133, "GG3123133", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG3123133C1Ev();
+extern void _ZN9GG3123133D1Ev();
+Name_Map name_map_GG3123133[] = {
+ NSPAIR(_ZN9GG3123133C1Ev),
+ NSPAIR(_ZN9GG3123133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE312;
+extern VTBL_ENTRY _ZTI5EE312[];
+extern VTBL_ENTRY _ZTV5EE312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE312[];
+extern Class_Descriptor cd_FF313;
+extern VTBL_ENTRY _ZTI5FF313[];
+extern VTBL_ENTRY _ZTV5FF313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF313[];
+static Base_Class bases_GG3123133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE312, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF313, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3123133[];
+extern void _ZN9GG31231333fooEv();
+extern void _ZN9GG31231333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31231333barEv,_ZTv0_n20_N9GG31231333barEv)();
+extern void ABISELECT(_ZThn16_N9GG31231333barEv,_ZThn8_N9GG31231333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31231333fooEv,_ZTv0_n12_N9GG31231333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31231333fooEv,_ZThn16_N9GG31231333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31231333barEv,_ZTv0_n16_N9GG31231333barEv)();
+extern void ABISELECT(_ZThn32_N9GG31231333barEv,_ZThn16_N9GG31231333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31231333fooEv,_ZTv0_n12_N9GG31231333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31231333fooEv,_ZThn24_N9GG31231333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31231333fooEv,_ZTv0_n20_N9GG31231333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31231333fooEv,_ZThn32_N9GG31231333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31231333barEv,_ZTv0_n24_N9GG31231333barEv)();
+extern void ABISELECT(_ZThn64_N9GG31231333barEv,_ZThn32_N9GG31231333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3123133[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3123133[0]),
+ (VTBL_ENTRY)&_ZN9GG31231333fooEv,
+ (VTBL_ENTRY)&_ZN9GG31231333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3123133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31231333barEv,_ZTv0_n20_N9GG31231333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3123133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31231333fooEv,_ZTv0_n12_N9GG31231333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31231333barEv,_ZTv0_n16_N9GG31231333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3123133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31231333fooEv,_ZTv0_n12_N9GG31231333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3123133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31231333fooEv,_ZTv0_n20_N9GG31231333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31231333barEv,_ZTv0_n24_N9GG31231333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3123133[];
+extern void _ZN5EE3123barEv();
+static VTBL_ENTRY _tg__ZTV5EE312__9GG3123133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN5EE3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv)();
+extern void ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE312__9GG3123133[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE312__9GG3123133[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF3133fooEv();
+extern void _ZN5FF3133barEv();
+static VTBL_ENTRY _tg__ZTV5FF313__9GG3123133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&_ZN5FF3133fooEv,
+ (VTBL_ENTRY)&_ZN5FF3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF313__9GG3123133[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF313__9GG3123133[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+};
+static VTT_ENTRY vtt_GG3123133[] = {
+ {&(_ZTV9GG3123133[6]), 6,32},
+ {&(_ZTV9GG3123133[13]), 13,32},
+ {&(_ZTV9GG3123133[18]), 18,32},
+ {&(_ZTV9GG3123133[23]), 23,32},
+ {&(_ZTV9GG3123133[30]), 30,32},
+ {&(_tg__ZTV5EE312__9GG3123133[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE312__9GG3123133[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE312__9GG3123133[3]), 3,4},
+ {&(_tg__ZTV5FF313__9GG3123133[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF313__9GG3123133[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF313__9GG3123133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3123133[];
+extern VTBL_ENTRY _ZTV9GG3123133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3123133[];
+static VTBL_ENTRY alt_thunk_names805[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG31231333barEv,_ZTv0_n24_N9GG31231333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31231333barEv,_ZThn32_N9GG31231333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31231333fooEv,_ZTv0_n20_N9GG31231333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31231333fooEv,_ZThn32_N9GG31231333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31231333barEv,_ZTv0_n16_N9GG31231333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31231333barEv,_ZThn16_N9GG31231333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31231333fooEv,_ZTv0_n12_N9GG31231333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31231333fooEv,_ZThn24_N9GG31231333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31231333fooEv,_ZThn16_N9GG31231333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31231333barEv,_ZTv0_n20_N9GG31231333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31231333barEv,_ZThn8_N9GG31231333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3123133 = { "GG3123133", // class name
+ bases_GG3123133, 4,
+ &(vtc_GG3123133[0]), // expected_vtbl_contents
+ &(vtt_GG3123133[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG3123133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3123133),32, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3123133),11, //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 GG3123213 : virtual EE312 , virtual FF321 {
+ int pg;
+ virtual void foo(); // _ZN9GG31232133fooEv
+ virtual void bar(); // _ZN9GG31232133barEv
+ ~GG3123213(); // tgen
+ GG3123213(); // tgen
+};
+//SIG(1 GG3123213) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3123213 ::foo(){vfunc_called(this, "_ZN9GG31232133fooEv");}
+void GG3123213 ::bar(){vfunc_called(this, "_ZN9GG31232133barEv");}
+GG3123213 ::~GG3123213(){ note_dtor("GG3123213", this);} // tgen
+GG3123213 ::GG3123213(){ note_ctor("GG3123213", this);} // tgen
+
+static void Test_GG3123213()
+{
+ extern Class_Descriptor cd_GG3123213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3123213, buf);
+ GG3123213 *dp, &lv = *(dp=new (buf) GG3123213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3123213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3123213)");
+ check_base_class_offset(lv, (AA3*)(EE312*), ABISELECT(32,16), "GG3123213");
+ check_base_class_offset(lv, (AA3*)(FF321*), ABISELECT(32,16), "GG3123213");
+ check_base_class_offset(lv, (BB1*)(EE312*), ABISELECT(48,24), "GG3123213");
+ check_base_class_offset(lv, (EE312*), ABISELECT(16,8), "GG3123213");
+ check_base_class_offset(lv, (BB2*)(FF321*), ABISELECT(80,40), "GG3123213");
+ check_base_class_offset(lv, (FF321*), ABISELECT(64,32), "GG3123213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3123213.pg");
+ test_class_info(&lv, &cd_GG3123213);
+ dp->~GG3123213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3123213(Test_GG3123213, "GG3123213", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3123213C1Ev();
+extern void _ZN9GG3123213D1Ev();
+Name_Map name_map_GG3123213[] = {
+ NSPAIR(_ZN9GG3123213C1Ev),
+ NSPAIR(_ZN9GG3123213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE312;
+extern VTBL_ENTRY _ZTI5EE312[];
+extern VTBL_ENTRY _ZTV5EE312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE312[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF321;
+extern VTBL_ENTRY _ZTI5FF321[];
+extern VTBL_ENTRY _ZTV5FF321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF321[];
+static Base_Class bases_GG3123213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE312, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF321, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3123213[];
+extern void _ZN9GG31232133fooEv();
+extern void _ZN9GG31232133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31232133barEv,_ZTv0_n20_N9GG31232133barEv)();
+extern void ABISELECT(_ZThn16_N9GG31232133barEv,_ZThn8_N9GG31232133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31232133fooEv,_ZTv0_n12_N9GG31232133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31232133fooEv,_ZThn16_N9GG31232133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31232133barEv,_ZTv0_n16_N9GG31232133barEv)();
+extern void ABISELECT(_ZThn32_N9GG31232133barEv,_ZThn16_N9GG31232133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31232133fooEv,_ZTv0_n12_N9GG31232133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31232133fooEv,_ZThn24_N9GG31232133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31232133fooEv,_ZTv0_n20_N9GG31232133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31232133fooEv,_ZThn32_N9GG31232133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31232133barEv,_ZTv0_n12_N9GG31232133barEv)();
+extern void ABISELECT(_ZThn80_N9GG31232133barEv,_ZThn40_N9GG31232133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3123213[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3123213[0]),
+ (VTBL_ENTRY)&_ZN9GG31232133fooEv,
+ (VTBL_ENTRY)&_ZN9GG31232133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3123213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31232133barEv,_ZTv0_n20_N9GG31232133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3123213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31232133fooEv,_ZTv0_n12_N9GG31232133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31232133barEv,_ZTv0_n16_N9GG31232133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3123213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31232133fooEv,_ZTv0_n12_N9GG31232133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3123213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31232133fooEv,_ZTv0_n20_N9GG31232133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3123213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31232133barEv,_ZTv0_n12_N9GG31232133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3123213[];
+extern void _ZN5EE3123barEv();
+static VTBL_ENTRY _tg__ZTV5EE312__9GG3123213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN5EE3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv)();
+extern void ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE312__9GG3123213[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE312__9GG3123213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF3213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF321__9GG3123213[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN5FF3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv)();
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF321__9GG3123213[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF321__9GG3123213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG3123213[] = {
+ {&(_ZTV9GG3123213[7]), 7,35},
+ {&(_ZTV9GG3123213[14]), 14,35},
+ {&(_ZTV9GG3123213[19]), 19,35},
+ {&(_ZTV9GG3123213[24]), 24,35},
+ {&(_ZTV9GG3123213[30]), 30,35},
+ {&(_ZTV9GG3123213[34]), 34,35},
+ {&(_tg__ZTV5EE312__9GG3123213[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE312__9GG3123213[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE312__9GG3123213[3]), 3,4},
+ {&(_tg__ZTV5FF321__9GG3123213[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF321__9GG3123213[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF321__9GG3123213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3123213[];
+extern VTBL_ENTRY _ZTV9GG3123213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3123213[];
+static VTBL_ENTRY alt_thunk_names806[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31232133barEv,_ZTv0_n12_N9GG31232133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31232133barEv,_ZThn40_N9GG31232133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31232133fooEv,_ZTv0_n20_N9GG31232133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31232133fooEv,_ZThn32_N9GG31232133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31232133barEv,_ZTv0_n16_N9GG31232133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31232133barEv,_ZThn16_N9GG31232133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31232133fooEv,_ZTv0_n12_N9GG31232133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31232133fooEv,_ZThn24_N9GG31232133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31232133fooEv,_ZThn16_N9GG31232133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31232133barEv,_ZTv0_n20_N9GG31232133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31232133barEv,_ZThn8_N9GG31232133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3123213 = { "GG3123213", // class name
+ bases_GG3123213, 5,
+ &(vtc_GG3123213[0]), // expected_vtbl_contents
+ &(vtt_GG3123213[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3123213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3123213),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3123213),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names806,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3123223 : virtual EE312 , virtual FF322 {
+ int pg;
+ virtual void foo(); // _ZN9GG31232233fooEv
+ virtual void bar(); // _ZN9GG31232233barEv
+ ~GG3123223(); // tgen
+ GG3123223(); // tgen
+};
+//SIG(1 GG3123223) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3123223 ::foo(){vfunc_called(this, "_ZN9GG31232233fooEv");}
+void GG3123223 ::bar(){vfunc_called(this, "_ZN9GG31232233barEv");}
+GG3123223 ::~GG3123223(){ note_dtor("GG3123223", this);} // tgen
+GG3123223 ::GG3123223(){ note_ctor("GG3123223", this);} // tgen
+
+static void Test_GG3123223()
+{
+ extern Class_Descriptor cd_GG3123223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3123223, buf);
+ GG3123223 *dp, &lv = *(dp=new (buf) GG3123223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3123223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3123223)");
+ check_base_class_offset(lv, (AA3*)(EE312*), ABISELECT(32,16), "GG3123223");
+ check_base_class_offset(lv, (AA3*)(FF322*), ABISELECT(32,16), "GG3123223");
+ check_base_class_offset(lv, (BB1*)(EE312*), ABISELECT(48,24), "GG3123223");
+ check_base_class_offset(lv, (EE312*), ABISELECT(16,8), "GG3123223");
+ check_base_class_offset(lv, (BB2*)(FF322*), ABISELECT(80,40), "GG3123223");
+ check_base_class_offset(lv, (FF322*), ABISELECT(64,32), "GG3123223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3123223.pg");
+ test_class_info(&lv, &cd_GG3123223);
+ dp->~GG3123223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3123223(Test_GG3123223, "GG3123223", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3123223C1Ev();
+extern void _ZN9GG3123223D1Ev();
+Name_Map name_map_GG3123223[] = {
+ NSPAIR(_ZN9GG3123223C1Ev),
+ NSPAIR(_ZN9GG3123223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE312;
+extern VTBL_ENTRY _ZTI5EE312[];
+extern VTBL_ENTRY _ZTV5EE312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE312[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF322;
+extern VTBL_ENTRY _ZTI5FF322[];
+extern VTBL_ENTRY _ZTV5FF322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF322[];
+static Base_Class bases_GG3123223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE312, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF322, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3123223[];
+extern void _ZN9GG31232233fooEv();
+extern void _ZN9GG31232233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31232233barEv,_ZTv0_n20_N9GG31232233barEv)();
+extern void ABISELECT(_ZThn16_N9GG31232233barEv,_ZThn8_N9GG31232233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31232233fooEv,_ZTv0_n12_N9GG31232233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31232233fooEv,_ZThn16_N9GG31232233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31232233barEv,_ZTv0_n16_N9GG31232233barEv)();
+extern void ABISELECT(_ZThn32_N9GG31232233barEv,_ZThn16_N9GG31232233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31232233fooEv,_ZTv0_n12_N9GG31232233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31232233fooEv,_ZThn24_N9GG31232233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31232233barEv,_ZTv0_n20_N9GG31232233barEv)();
+extern void ABISELECT(_ZThn64_N9GG31232233barEv,_ZThn32_N9GG31232233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31232233barEv,_ZTv0_n12_N9GG31232233barEv)();
+extern void ABISELECT(_ZThn80_N9GG31232233barEv,_ZThn40_N9GG31232233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3123223[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3123223[0]),
+ (VTBL_ENTRY)&_ZN9GG31232233fooEv,
+ (VTBL_ENTRY)&_ZN9GG31232233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3123223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31232233barEv,_ZTv0_n20_N9GG31232233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3123223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31232233fooEv,_ZTv0_n12_N9GG31232233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31232233barEv,_ZTv0_n16_N9GG31232233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3123223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31232233fooEv,_ZTv0_n12_N9GG31232233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3123223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31232233barEv,_ZTv0_n20_N9GG31232233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3123223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31232233barEv,_ZTv0_n12_N9GG31232233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3123223[];
+extern void _ZN5EE3123barEv();
+static VTBL_ENTRY _tg__ZTV5EE312__9GG3123223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN5EE3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv)();
+extern void ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE312__9GG3123223[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE312__9GG3123223[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF3223barEv();
+static VTBL_ENTRY _tg__ZTV5FF322__9GG3123223[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN5FF3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF322__9GG3123223[] = {
+ ABISELECT(32,16),
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv)();
+extern void ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF322__9GG3123223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv),
+};
+static VTT_ENTRY vtt_GG3123223[] = {
+ {&(_ZTV9GG3123223[7]), 7,35},
+ {&(_ZTV9GG3123223[14]), 14,35},
+ {&(_ZTV9GG3123223[19]), 19,35},
+ {&(_ZTV9GG3123223[24]), 24,35},
+ {&(_ZTV9GG3123223[30]), 30,35},
+ {&(_ZTV9GG3123223[34]), 34,35},
+ {&(_tg__ZTV5EE312__9GG3123223[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE312__9GG3123223[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE312__9GG3123223[3]), 3,4},
+ {&(_tg__ZTV5FF322__9GG3123223[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF322__9GG3123223[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF322__9GG3123223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3123223[];
+extern VTBL_ENTRY _ZTV9GG3123223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3123223[];
+static VTBL_ENTRY alt_thunk_names807[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31232233barEv,_ZTv0_n12_N9GG31232233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31232233barEv,_ZThn40_N9GG31232233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31232233barEv,_ZTv0_n16_N9GG31232233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31232233barEv,_ZThn16_N9GG31232233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31232233fooEv,_ZTv0_n12_N9GG31232233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31232233fooEv,_ZThn24_N9GG31232233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31232233fooEv,_ZThn16_N9GG31232233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31232233barEv,_ZTv0_n20_N9GG31232233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31232233barEv,_ZThn32_N9GG31232233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31232233barEv,_ZThn8_N9GG31232233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3123223 = { "GG3123223", // class name
+ bases_GG3123223, 5,
+ &(vtc_GG3123223[0]), // expected_vtbl_contents
+ &(vtt_GG3123223[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3123223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3123223),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3123223),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names807,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3123233 : virtual EE312 , virtual FF323 {
+ int pg;
+ virtual void foo(); // _ZN9GG31232333fooEv
+ virtual void bar(); // _ZN9GG31232333barEv
+ ~GG3123233(); // tgen
+ GG3123233(); // tgen
+};
+//SIG(1 GG3123233) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3123233 ::foo(){vfunc_called(this, "_ZN9GG31232333fooEv");}
+void GG3123233 ::bar(){vfunc_called(this, "_ZN9GG31232333barEv");}
+GG3123233 ::~GG3123233(){ note_dtor("GG3123233", this);} // tgen
+GG3123233 ::GG3123233(){ note_ctor("GG3123233", this);} // tgen
+
+static void Test_GG3123233()
+{
+ extern Class_Descriptor cd_GG3123233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3123233, buf);
+ GG3123233 *dp, &lv = *(dp=new (buf) GG3123233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3123233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3123233)");
+ check_base_class_offset(lv, (AA3*)(EE312*), ABISELECT(32,16), "GG3123233");
+ check_base_class_offset(lv, (AA3*)(FF323*), ABISELECT(32,16), "GG3123233");
+ check_base_class_offset(lv, (BB1*)(EE312*), ABISELECT(48,24), "GG3123233");
+ check_base_class_offset(lv, (EE312*), ABISELECT(16,8), "GG3123233");
+ check_base_class_offset(lv, (BB2*)(FF323*), ABISELECT(80,40), "GG3123233");
+ check_base_class_offset(lv, (FF323*), ABISELECT(64,32), "GG3123233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3123233.pg");
+ test_class_info(&lv, &cd_GG3123233);
+ dp->~GG3123233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3123233(Test_GG3123233, "GG3123233", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3123233C1Ev();
+extern void _ZN9GG3123233D1Ev();
+Name_Map name_map_GG3123233[] = {
+ NSPAIR(_ZN9GG3123233C1Ev),
+ NSPAIR(_ZN9GG3123233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE312;
+extern VTBL_ENTRY _ZTI5EE312[];
+extern VTBL_ENTRY _ZTV5EE312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE312[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF323;
+extern VTBL_ENTRY _ZTI5FF323[];
+extern VTBL_ENTRY _ZTV5FF323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF323[];
+static Base_Class bases_GG3123233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE312, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF323, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3123233[];
+extern void _ZN9GG31232333fooEv();
+extern void _ZN9GG31232333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31232333barEv,_ZTv0_n20_N9GG31232333barEv)();
+extern void ABISELECT(_ZThn16_N9GG31232333barEv,_ZThn8_N9GG31232333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31232333fooEv,_ZTv0_n12_N9GG31232333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31232333fooEv,_ZThn16_N9GG31232333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31232333barEv,_ZTv0_n16_N9GG31232333barEv)();
+extern void ABISELECT(_ZThn32_N9GG31232333barEv,_ZThn16_N9GG31232333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31232333fooEv,_ZTv0_n12_N9GG31232333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31232333fooEv,_ZThn24_N9GG31232333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31232333fooEv,_ZTv0_n20_N9GG31232333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31232333fooEv,_ZThn32_N9GG31232333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31232333barEv,_ZTv0_n24_N9GG31232333barEv)();
+extern void ABISELECT(_ZThn64_N9GG31232333barEv,_ZThn32_N9GG31232333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31232333barEv,_ZTv0_n12_N9GG31232333barEv)();
+extern void ABISELECT(_ZThn80_N9GG31232333barEv,_ZThn40_N9GG31232333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3123233[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3123233[0]),
+ (VTBL_ENTRY)&_ZN9GG31232333fooEv,
+ (VTBL_ENTRY)&_ZN9GG31232333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3123233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31232333barEv,_ZTv0_n20_N9GG31232333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3123233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31232333fooEv,_ZTv0_n12_N9GG31232333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31232333barEv,_ZTv0_n16_N9GG31232333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3123233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31232333fooEv,_ZTv0_n12_N9GG31232333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3123233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31232333fooEv,_ZTv0_n20_N9GG31232333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31232333barEv,_ZTv0_n24_N9GG31232333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3123233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31232333barEv,_ZTv0_n12_N9GG31232333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3123233[];
+extern void _ZN5EE3123barEv();
+static VTBL_ENTRY _tg__ZTV5EE312__9GG3123233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN5EE3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv)();
+extern void ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE312__9GG3123233[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE312__9GG3123233[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF3233fooEv();
+extern void _ZN5FF3233barEv();
+static VTBL_ENTRY _tg__ZTV5FF323__9GG3123233[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&_ZN5FF3233fooEv,
+ (VTBL_ENTRY)&_ZN5FF3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF323__9GG3123233[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv)();
+extern void ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF323__9GG3123233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv),
+};
+static VTT_ENTRY vtt_GG3123233[] = {
+ {&(_ZTV9GG3123233[7]), 7,37},
+ {&(_ZTV9GG3123233[14]), 14,37},
+ {&(_ZTV9GG3123233[19]), 19,37},
+ {&(_ZTV9GG3123233[24]), 24,37},
+ {&(_ZTV9GG3123233[31]), 31,37},
+ {&(_ZTV9GG3123233[36]), 36,37},
+ {&(_tg__ZTV5EE312__9GG3123233[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE312__9GG3123233[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE312__9GG3123233[3]), 3,4},
+ {&(_tg__ZTV5FF323__9GG3123233[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF323__9GG3123233[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF323__9GG3123233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3123233[];
+extern VTBL_ENTRY _ZTV9GG3123233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3123233[];
+static VTBL_ENTRY alt_thunk_names808[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31232333barEv,_ZTv0_n12_N9GG31232333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31232333barEv,_ZThn40_N9GG31232333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG31232333barEv,_ZTv0_n24_N9GG31232333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31232333barEv,_ZThn32_N9GG31232333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31232333fooEv,_ZTv0_n20_N9GG31232333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31232333fooEv,_ZThn32_N9GG31232333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31232333barEv,_ZTv0_n16_N9GG31232333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31232333barEv,_ZThn16_N9GG31232333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31232333fooEv,_ZTv0_n12_N9GG31232333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31232333fooEv,_ZThn24_N9GG31232333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31232333fooEv,_ZThn16_N9GG31232333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31232333barEv,_ZTv0_n20_N9GG31232333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31232333barEv,_ZThn8_N9GG31232333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3123233 = { "GG3123233", // class name
+ bases_GG3123233, 5,
+ &(vtc_GG3123233[0]), // expected_vtbl_contents
+ &(vtt_GG3123233[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3123233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3123233),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3123233),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names808,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3123313 : virtual EE312 , virtual FF331 {
+ int pg;
+ virtual void foo(); // _ZN9GG31233133fooEv
+ virtual void bar(); // _ZN9GG31233133barEv
+ ~GG3123313(); // tgen
+ GG3123313(); // tgen
+};
+//SIG(1 GG3123313) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3123313 ::foo(){vfunc_called(this, "_ZN9GG31233133fooEv");}
+void GG3123313 ::bar(){vfunc_called(this, "_ZN9GG31233133barEv");}
+GG3123313 ::~GG3123313(){ note_dtor("GG3123313", this);} // tgen
+GG3123313 ::GG3123313(){ note_ctor("GG3123313", this);} // tgen
+
+static void Test_GG3123313()
+{
+ extern Class_Descriptor cd_GG3123313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3123313, buf);
+ GG3123313 *dp, &lv = *(dp=new (buf) GG3123313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3123313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3123313)");
+ check_base_class_offset(lv, (AA3*)(EE312*), ABISELECT(32,16), "GG3123313");
+ check_base_class_offset(lv, (AA3*)(FF331*), ABISELECT(32,16), "GG3123313");
+ check_base_class_offset(lv, (BB1*)(EE312*), ABISELECT(48,24), "GG3123313");
+ check_base_class_offset(lv, (EE312*), ABISELECT(16,8), "GG3123313");
+ check_base_class_offset(lv, (BB3*)(FF331*), ABISELECT(80,40), "GG3123313");
+ check_base_class_offset(lv, (FF331*), ABISELECT(64,32), "GG3123313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3123313.pg");
+ test_class_info(&lv, &cd_GG3123313);
+ dp->~GG3123313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3123313(Test_GG3123313, "GG3123313", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3123313C1Ev();
+extern void _ZN9GG3123313D1Ev();
+Name_Map name_map_GG3123313[] = {
+ NSPAIR(_ZN9GG3123313C1Ev),
+ NSPAIR(_ZN9GG3123313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE312;
+extern VTBL_ENTRY _ZTI5EE312[];
+extern VTBL_ENTRY _ZTV5EE312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE312[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF331;
+extern VTBL_ENTRY _ZTI5FF331[];
+extern VTBL_ENTRY _ZTV5FF331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF331[];
+static Base_Class bases_GG3123313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE312, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF331, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3123313[];
+extern void _ZN9GG31233133fooEv();
+extern void _ZN9GG31233133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31233133barEv,_ZTv0_n20_N9GG31233133barEv)();
+extern void ABISELECT(_ZThn16_N9GG31233133barEv,_ZThn8_N9GG31233133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31233133fooEv,_ZTv0_n12_N9GG31233133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31233133fooEv,_ZThn16_N9GG31233133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31233133barEv,_ZTv0_n16_N9GG31233133barEv)();
+extern void ABISELECT(_ZThn32_N9GG31233133barEv,_ZThn16_N9GG31233133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31233133fooEv,_ZTv0_n12_N9GG31233133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31233133fooEv,_ZThn24_N9GG31233133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31233133fooEv,_ZTv0_n20_N9GG31233133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31233133fooEv,_ZThn32_N9GG31233133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31233133fooEv,_ZTv0_n12_N9GG31233133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG31233133fooEv,_ZThn40_N9GG31233133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31233133barEv,_ZTv0_n16_N9GG31233133barEv)();
+extern void ABISELECT(_ZThn80_N9GG31233133barEv,_ZThn40_N9GG31233133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3123313[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3123313[0]),
+ (VTBL_ENTRY)&_ZN9GG31233133fooEv,
+ (VTBL_ENTRY)&_ZN9GG31233133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3123313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31233133barEv,_ZTv0_n20_N9GG31233133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3123313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31233133fooEv,_ZTv0_n12_N9GG31233133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31233133barEv,_ZTv0_n16_N9GG31233133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3123313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31233133fooEv,_ZTv0_n12_N9GG31233133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3123313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31233133fooEv,_ZTv0_n20_N9GG31233133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3123313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31233133fooEv,_ZTv0_n12_N9GG31233133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31233133barEv,_ZTv0_n16_N9GG31233133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3123313[];
+extern void _ZN5EE3123barEv();
+static VTBL_ENTRY _tg__ZTV5EE312__9GG3123313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN5EE3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv)();
+extern void ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE312__9GG3123313[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE312__9GG3123313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF3313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF331__9GG3123313[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&_ZN5FF3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF331__9GG3123313[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF331__9GG3123313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG3123313[] = {
+ {&(_ZTV9GG3123313[7]), 7,37},
+ {&(_ZTV9GG3123313[14]), 14,37},
+ {&(_ZTV9GG3123313[19]), 19,37},
+ {&(_ZTV9GG3123313[24]), 24,37},
+ {&(_ZTV9GG3123313[30]), 30,37},
+ {&(_ZTV9GG3123313[35]), 35,37},
+ {&(_tg__ZTV5EE312__9GG3123313[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE312__9GG3123313[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE312__9GG3123313[3]), 3,4},
+ {&(_tg__ZTV5FF331__9GG3123313[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF331__9GG3123313[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF331__9GG3123313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3123313[];
+extern VTBL_ENTRY _ZTV9GG3123313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3123313[];
+static VTBL_ENTRY alt_thunk_names809[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31233133fooEv,_ZTv0_n20_N9GG31233133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31233133fooEv,_ZThn32_N9GG31233133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31233133barEv,_ZTv0_n16_N9GG31233133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31233133barEv,_ZThn40_N9GG31233133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31233133barEv,_ZThn16_N9GG31233133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31233133fooEv,_ZTv0_n12_N9GG31233133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31233133fooEv,_ZThn40_N9GG31233133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31233133fooEv,_ZThn24_N9GG31233133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31233133fooEv,_ZThn16_N9GG31233133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31233133barEv,_ZTv0_n20_N9GG31233133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31233133barEv,_ZThn8_N9GG31233133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3123313 = { "GG3123313", // class name
+ bases_GG3123313, 5,
+ &(vtc_GG3123313[0]), // expected_vtbl_contents
+ &(vtt_GG3123313[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3123313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3123313),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3123313),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names809,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3123323 : virtual EE312 , virtual FF332 {
+ int pg;
+ virtual void foo(); // _ZN9GG31233233fooEv
+ virtual void bar(); // _ZN9GG31233233barEv
+ ~GG3123323(); // tgen
+ GG3123323(); // tgen
+};
+//SIG(1 GG3123323) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3123323 ::foo(){vfunc_called(this, "_ZN9GG31233233fooEv");}
+void GG3123323 ::bar(){vfunc_called(this, "_ZN9GG31233233barEv");}
+GG3123323 ::~GG3123323(){ note_dtor("GG3123323", this);} // tgen
+GG3123323 ::GG3123323(){ note_ctor("GG3123323", this);} // tgen
+
+static void Test_GG3123323()
+{
+ extern Class_Descriptor cd_GG3123323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3123323, buf);
+ GG3123323 *dp, &lv = *(dp=new (buf) GG3123323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3123323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3123323)");
+ check_base_class_offset(lv, (AA3*)(EE312*), ABISELECT(32,16), "GG3123323");
+ check_base_class_offset(lv, (AA3*)(FF332*), ABISELECT(32,16), "GG3123323");
+ check_base_class_offset(lv, (BB1*)(EE312*), ABISELECT(48,24), "GG3123323");
+ check_base_class_offset(lv, (EE312*), ABISELECT(16,8), "GG3123323");
+ check_base_class_offset(lv, (BB3*)(FF332*), ABISELECT(80,40), "GG3123323");
+ check_base_class_offset(lv, (FF332*), ABISELECT(64,32), "GG3123323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3123323.pg");
+ test_class_info(&lv, &cd_GG3123323);
+ dp->~GG3123323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3123323(Test_GG3123323, "GG3123323", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3123323C1Ev();
+extern void _ZN9GG3123323D1Ev();
+Name_Map name_map_GG3123323[] = {
+ NSPAIR(_ZN9GG3123323C1Ev),
+ NSPAIR(_ZN9GG3123323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE312;
+extern VTBL_ENTRY _ZTI5EE312[];
+extern VTBL_ENTRY _ZTV5EE312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE312[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF332;
+extern VTBL_ENTRY _ZTI5FF332[];
+extern VTBL_ENTRY _ZTV5FF332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF332[];
+static Base_Class bases_GG3123323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE312, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF332, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3123323[];
+extern void _ZN9GG31233233fooEv();
+extern void _ZN9GG31233233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31233233barEv,_ZTv0_n20_N9GG31233233barEv)();
+extern void ABISELECT(_ZThn16_N9GG31233233barEv,_ZThn8_N9GG31233233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31233233fooEv,_ZTv0_n12_N9GG31233233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31233233fooEv,_ZThn16_N9GG31233233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31233233barEv,_ZTv0_n16_N9GG31233233barEv)();
+extern void ABISELECT(_ZThn32_N9GG31233233barEv,_ZThn16_N9GG31233233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31233233fooEv,_ZTv0_n12_N9GG31233233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31233233fooEv,_ZThn24_N9GG31233233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31233233barEv,_ZTv0_n20_N9GG31233233barEv)();
+extern void ABISELECT(_ZThn64_N9GG31233233barEv,_ZThn32_N9GG31233233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31233233fooEv,_ZTv0_n12_N9GG31233233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG31233233fooEv,_ZThn40_N9GG31233233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31233233barEv,_ZTv0_n16_N9GG31233233barEv)();
+extern void ABISELECT(_ZThn80_N9GG31233233barEv,_ZThn40_N9GG31233233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3123323[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3123323[0]),
+ (VTBL_ENTRY)&_ZN9GG31233233fooEv,
+ (VTBL_ENTRY)&_ZN9GG31233233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3123323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31233233barEv,_ZTv0_n20_N9GG31233233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3123323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31233233fooEv,_ZTv0_n12_N9GG31233233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31233233barEv,_ZTv0_n16_N9GG31233233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3123323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31233233fooEv,_ZTv0_n12_N9GG31233233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3123323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31233233barEv,_ZTv0_n20_N9GG31233233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3123323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31233233fooEv,_ZTv0_n12_N9GG31233233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31233233barEv,_ZTv0_n16_N9GG31233233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3123323[];
+extern void _ZN5EE3123barEv();
+static VTBL_ENTRY _tg__ZTV5EE312__9GG3123323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN5EE3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv)();
+extern void ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE312__9GG3123323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE312__9GG3123323[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF3323barEv();
+static VTBL_ENTRY _tg__ZTV5FF332__9GG3123323[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN5FF3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF332__9GG3123323[] = {
+ ABISELECT(32,16),
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+extern void ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF332__9GG3123323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+static VTT_ENTRY vtt_GG3123323[] = {
+ {&(_ZTV9GG3123323[7]), 7,37},
+ {&(_ZTV9GG3123323[14]), 14,37},
+ {&(_ZTV9GG3123323[19]), 19,37},
+ {&(_ZTV9GG3123323[24]), 24,37},
+ {&(_ZTV9GG3123323[30]), 30,37},
+ {&(_ZTV9GG3123323[35]), 35,37},
+ {&(_tg__ZTV5EE312__9GG3123323[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE312__9GG3123323[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE312__9GG3123323[3]), 3,4},
+ {&(_tg__ZTV5FF332__9GG3123323[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF332__9GG3123323[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF332__9GG3123323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3123323[];
+extern VTBL_ENTRY _ZTV9GG3123323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3123323[];
+static VTBL_ENTRY alt_thunk_names810[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31233233barEv,_ZTv0_n16_N9GG31233233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31233233barEv,_ZThn40_N9GG31233233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31233233barEv,_ZThn16_N9GG31233233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31233233fooEv,_ZTv0_n12_N9GG31233233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31233233fooEv,_ZThn40_N9GG31233233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31233233fooEv,_ZThn24_N9GG31233233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31233233fooEv,_ZThn16_N9GG31233233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31233233barEv,_ZTv0_n20_N9GG31233233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31233233barEv,_ZThn32_N9GG31233233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31233233barEv,_ZThn8_N9GG31233233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3123323 = { "GG3123323", // class name
+ bases_GG3123323, 5,
+ &(vtc_GG3123323[0]), // expected_vtbl_contents
+ &(vtt_GG3123323[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3123323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3123323),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3123323),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names810,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3123333 : virtual EE312 , virtual FF333 {
+ int pg;
+ virtual void foo(); // _ZN9GG31233333fooEv
+ virtual void bar(); // _ZN9GG31233333barEv
+ ~GG3123333(); // tgen
+ GG3123333(); // tgen
+};
+//SIG(1 GG3123333) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3123333 ::foo(){vfunc_called(this, "_ZN9GG31233333fooEv");}
+void GG3123333 ::bar(){vfunc_called(this, "_ZN9GG31233333barEv");}
+GG3123333 ::~GG3123333(){ note_dtor("GG3123333", this);} // tgen
+GG3123333 ::GG3123333(){ note_ctor("GG3123333", this);} // tgen
+
+static void Test_GG3123333()
+{
+ extern Class_Descriptor cd_GG3123333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3123333, buf);
+ GG3123333 *dp, &lv = *(dp=new (buf) GG3123333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3123333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3123333)");
+ check_base_class_offset(lv, (AA3*)(EE312*), ABISELECT(32,16), "GG3123333");
+ check_base_class_offset(lv, (AA3*)(FF333*), ABISELECT(32,16), "GG3123333");
+ check_base_class_offset(lv, (BB1*)(EE312*), ABISELECT(48,24), "GG3123333");
+ check_base_class_offset(lv, (EE312*), ABISELECT(16,8), "GG3123333");
+ check_base_class_offset(lv, (BB3*)(FF333*), ABISELECT(80,40), "GG3123333");
+ check_base_class_offset(lv, (FF333*), ABISELECT(64,32), "GG3123333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3123333.pg");
+ test_class_info(&lv, &cd_GG3123333);
+ dp->~GG3123333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3123333(Test_GG3123333, "GG3123333", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3123333C1Ev();
+extern void _ZN9GG3123333D1Ev();
+Name_Map name_map_GG3123333[] = {
+ NSPAIR(_ZN9GG3123333C1Ev),
+ NSPAIR(_ZN9GG3123333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE312;
+extern VTBL_ENTRY _ZTI5EE312[];
+extern VTBL_ENTRY _ZTV5EE312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE312[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF333;
+extern VTBL_ENTRY _ZTI5FF333[];
+extern VTBL_ENTRY _ZTV5FF333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF333[];
+static Base_Class bases_GG3123333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE312, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF333, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3123333[];
+extern void _ZN9GG31233333fooEv();
+extern void _ZN9GG31233333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31233333barEv,_ZTv0_n20_N9GG31233333barEv)();
+extern void ABISELECT(_ZThn16_N9GG31233333barEv,_ZThn8_N9GG31233333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31233333fooEv,_ZTv0_n12_N9GG31233333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31233333fooEv,_ZThn16_N9GG31233333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31233333barEv,_ZTv0_n16_N9GG31233333barEv)();
+extern void ABISELECT(_ZThn32_N9GG31233333barEv,_ZThn16_N9GG31233333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31233333fooEv,_ZTv0_n12_N9GG31233333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31233333fooEv,_ZThn24_N9GG31233333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31233333fooEv,_ZTv0_n20_N9GG31233333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31233333fooEv,_ZThn32_N9GG31233333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31233333barEv,_ZTv0_n24_N9GG31233333barEv)();
+extern void ABISELECT(_ZThn64_N9GG31233333barEv,_ZThn32_N9GG31233333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31233333fooEv,_ZTv0_n12_N9GG31233333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG31233333fooEv,_ZThn40_N9GG31233333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31233333barEv,_ZTv0_n16_N9GG31233333barEv)();
+extern void ABISELECT(_ZThn80_N9GG31233333barEv,_ZThn40_N9GG31233333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3123333[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3123333[0]),
+ (VTBL_ENTRY)&_ZN9GG31233333fooEv,
+ (VTBL_ENTRY)&_ZN9GG31233333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3123333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31233333barEv,_ZTv0_n20_N9GG31233333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3123333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31233333fooEv,_ZTv0_n12_N9GG31233333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31233333barEv,_ZTv0_n16_N9GG31233333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3123333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31233333fooEv,_ZTv0_n12_N9GG31233333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3123333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31233333fooEv,_ZTv0_n20_N9GG31233333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31233333barEv,_ZTv0_n24_N9GG31233333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3123333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31233333fooEv,_ZTv0_n12_N9GG31233333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31233333barEv,_ZTv0_n16_N9GG31233333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3123333[];
+extern void _ZN5EE3123barEv();
+static VTBL_ENTRY _tg__ZTV5EE312__9GG3123333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN5EE3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv)();
+extern void ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE312__9GG3123333[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5EE312__9GG3123333[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+extern void _ZN5FF3333fooEv();
+extern void _ZN5FF3333barEv();
+static VTBL_ENTRY _tg__ZTV5FF333__9GG3123333[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&_ZN5FF3333fooEv,
+ (VTBL_ENTRY)&_ZN5FF3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF333__9GG3123333[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+extern void ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF333__9GG3123333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+static VTT_ENTRY vtt_GG3123333[] = {
+ {&(_ZTV9GG3123333[7]), 7,39},
+ {&(_ZTV9GG3123333[14]), 14,39},
+ {&(_ZTV9GG3123333[19]), 19,39},
+ {&(_ZTV9GG3123333[24]), 24,39},
+ {&(_ZTV9GG3123333[31]), 31,39},
+ {&(_ZTV9GG3123333[37]), 37,39},
+ {&(_tg__ZTV5EE312__9GG3123333[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE312__9GG3123333[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE312__9GG3123333[3]), 3,4},
+ {&(_tg__ZTV5FF333__9GG3123333[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF333__9GG3123333[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF333__9GG3123333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3123333[];
+extern VTBL_ENTRY _ZTV9GG3123333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3123333[];
+static VTBL_ENTRY alt_thunk_names811[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3123barEv,_ZTv0_n16_N5EE3123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3123barEv,_ZThn8_N5EE3123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG31233333barEv,_ZTv0_n24_N9GG31233333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31233333barEv,_ZThn32_N9GG31233333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31233333fooEv,_ZTv0_n20_N9GG31233333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31233333fooEv,_ZThn32_N9GG31233333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31233333barEv,_ZTv0_n16_N9GG31233333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31233333barEv,_ZThn40_N9GG31233333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31233333barEv,_ZThn16_N9GG31233333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31233333fooEv,_ZTv0_n12_N9GG31233333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31233333fooEv,_ZThn40_N9GG31233333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31233333fooEv,_ZThn24_N9GG31233333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31233333fooEv,_ZThn16_N9GG31233333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31233333barEv,_ZTv0_n20_N9GG31233333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31233333barEv,_ZThn8_N9GG31233333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3123333 = { "GG3123333", // class name
+ bases_GG3123333, 5,
+ &(vtc_GG3123333[0]), // expected_vtbl_contents
+ &(vtt_GG3123333[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3123333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3123333),39, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3123333),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names811,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3131111 : virtual EE313 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG31311113fooEv
+ ~GG3131111(); // tgen
+ GG3131111(); // tgen
+};
+//SIG(1 GG3131111) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v1 Fi} v1 Fi}
+
+
+void GG3131111 ::foo(){vfunc_called(this, "_ZN9GG31311113fooEv");}
+GG3131111 ::~GG3131111(){ note_dtor("GG3131111", this);} // tgen
+GG3131111 ::GG3131111(){ note_ctor("GG3131111", this);} // tgen
+
+static void Test_GG3131111()
+{
+ extern Class_Descriptor cd_GG3131111;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3131111, buf);
+ GG3131111 *dp, &lv = *(dp=new (buf) GG3131111());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3131111)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3131111)");
+ check_base_class_offset(lv, (AA3*)(EE313*), ABISELECT(32,16), "GG3131111");
+ check_base_class_offset(lv, (BB1*)(EE313*), ABISELECT(48,24), "GG3131111");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(48,24), "GG3131111");
+ check_base_class_offset(lv, (EE313*), ABISELECT(16,8), "GG3131111");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(80,40), "GG3131111");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG3131111");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3131111.pg");
+ test_class_info(&lv, &cd_GG3131111);
+ dp->~GG3131111();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3131111(Test_GG3131111, "GG3131111", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3131111C1Ev();
+extern void _ZN9GG3131111D1Ev();
+Name_Map name_map_GG3131111[] = {
+ NSPAIR(_ZN9GG3131111C1Ev),
+ NSPAIR(_ZN9GG3131111D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE313;
+extern VTBL_ENTRY _ZTI5EE313[];
+extern VTBL_ENTRY _ZTV5EE313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE313[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG3131111[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE313, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3131111[];
+extern void _ZN9GG31311113fooEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31311113fooEv,_ZTv0_n20_N9GG31311113fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31311113fooEv,_ZThn8_N9GG31311113fooEv)() __attribute__((weak));
+extern void _ZN5EE3133barEv();
+extern void ABISELECT(_ZTv0_n24_N9GG31311113fooEv,_ZTv0_n12_N9GG31311113fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31311113fooEv,_ZThn16_N9GG31311113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv)();
+extern void ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31311113fooEv,_ZTv0_n12_N9GG31311113fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31311113fooEv,_ZThn24_N9GG31311113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31311113fooEv,_ZTv0_n20_N9GG31311113fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31311113fooEv,_ZThn32_N9GG31311113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31311113fooEv,_ZTv0_n12_N9GG31311113fooEv)();
+extern void ABISELECT(_ZThn80_N9GG31311113fooEv,_ZThn40_N9GG31311113fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3131111[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3131111[0]),
+ (VTBL_ENTRY)&_ZN9GG31311113fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3131111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31311113fooEv,_ZTv0_n20_N9GG31311113fooEv),
+ (VTBL_ENTRY)&_ZN5EE3133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3131111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31311113fooEv,_ZTv0_n12_N9GG31311113fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3131111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31311113fooEv,_ZTv0_n12_N9GG31311113fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3131111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31311113fooEv,_ZTv0_n20_N9GG31311113fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3131111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31311113fooEv,_ZTv0_n12_N9GG31311113fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3131111[];
+extern void _ZN5EE3133fooEv();
+extern void _ZN5EE3133barEv();
+static VTBL_ENTRY _tg__ZTV5EE313__9GG3131111[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&_ZN5EE3133fooEv,
+ (VTBL_ENTRY)&_ZN5EE3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv)();
+extern void ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE313__9GG3131111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE313__9GG3131111[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG3131111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG3131111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG3131111[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG3131111[] = {
+ {&(_ZTV9GG3131111[7]), 7,36},
+ {&(_ZTV9GG3131111[14]), 14,36},
+ {&(_ZTV9GG3131111[20]), 20,36},
+ {&(_ZTV9GG3131111[25]), 25,36},
+ {&(_ZTV9GG3131111[31]), 31,36},
+ {&(_ZTV9GG3131111[35]), 35,36},
+ {&(_tg__ZTV5EE313__9GG3131111[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE313__9GG3131111[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE313__9GG3131111[3]), 3,4},
+ {&(_tg__ZTV5FF111__9GG3131111[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG3131111[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG3131111[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3131111[];
+extern VTBL_ENTRY _ZTV9GG3131111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3131111[];
+static VTBL_ENTRY alt_thunk_names812[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31311113fooEv,_ZTv0_n12_N9GG31311113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31311113fooEv,_ZThn40_N9GG31311113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31311113fooEv,_ZThn24_N9GG31311113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31311113fooEv,_ZThn16_N9GG31311113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31311113fooEv,_ZTv0_n20_N9GG31311113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31311113fooEv,_ZThn32_N9GG31311113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31311113fooEv,_ZThn8_N9GG31311113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3131111 = { "GG3131111", // class name
+ bases_GG3131111, 5,
+ &(vtc_GG3131111[0]), // expected_vtbl_contents
+ &(vtt_GG3131111[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3131111),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3131111),36, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3131111),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names812,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3131113 : virtual EE313 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG31311133fooEv
+ virtual void bar(); // _ZN9GG31311133barEv
+ ~GG3131113(); // tgen
+ GG3131113(); // tgen
+};
+//SIG(1 GG3131113) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG3131113 ::foo(){vfunc_called(this, "_ZN9GG31311133fooEv");}
+void GG3131113 ::bar(){vfunc_called(this, "_ZN9GG31311133barEv");}
+GG3131113 ::~GG3131113(){ note_dtor("GG3131113", this);} // tgen
+GG3131113 ::GG3131113(){ note_ctor("GG3131113", this);} // tgen
+
+static void Test_GG3131113()
+{
+ extern Class_Descriptor cd_GG3131113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3131113, buf);
+ GG3131113 *dp, &lv = *(dp=new (buf) GG3131113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3131113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3131113)");
+ check_base_class_offset(lv, (AA3*)(EE313*), ABISELECT(32,16), "GG3131113");
+ check_base_class_offset(lv, (BB1*)(EE313*), ABISELECT(48,24), "GG3131113");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(48,24), "GG3131113");
+ check_base_class_offset(lv, (EE313*), ABISELECT(16,8), "GG3131113");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(80,40), "GG3131113");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG3131113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3131113.pg");
+ test_class_info(&lv, &cd_GG3131113);
+ dp->~GG3131113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3131113(Test_GG3131113, "GG3131113", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3131113C1Ev();
+extern void _ZN9GG3131113D1Ev();
+Name_Map name_map_GG3131113[] = {
+ NSPAIR(_ZN9GG3131113C1Ev),
+ NSPAIR(_ZN9GG3131113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE313;
+extern VTBL_ENTRY _ZTI5EE313[];
+extern VTBL_ENTRY _ZTV5EE313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE313[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG3131113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE313, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3131113[];
+extern void _ZN9GG31311133fooEv();
+extern void _ZN9GG31311133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31311133fooEv,_ZTv0_n20_N9GG31311133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31311133fooEv,_ZThn8_N9GG31311133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31311133barEv,_ZTv0_n24_N9GG31311133barEv)();
+extern void ABISELECT(_ZThn16_N9GG31311133barEv,_ZThn8_N9GG31311133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31311133fooEv,_ZTv0_n12_N9GG31311133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31311133fooEv,_ZThn16_N9GG31311133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31311133barEv,_ZTv0_n16_N9GG31311133barEv)();
+extern void ABISELECT(_ZThn32_N9GG31311133barEv,_ZThn16_N9GG31311133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31311133fooEv,_ZTv0_n12_N9GG31311133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31311133fooEv,_ZThn24_N9GG31311133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31311133fooEv,_ZTv0_n20_N9GG31311133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31311133fooEv,_ZThn32_N9GG31311133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31311133fooEv,_ZTv0_n12_N9GG31311133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG31311133fooEv,_ZThn40_N9GG31311133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3131113[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3131113[0]),
+ (VTBL_ENTRY)&_ZN9GG31311133fooEv,
+ (VTBL_ENTRY)&_ZN9GG31311133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3131113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31311133fooEv,_ZTv0_n20_N9GG31311133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31311133barEv,_ZTv0_n24_N9GG31311133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3131113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31311133fooEv,_ZTv0_n12_N9GG31311133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31311133barEv,_ZTv0_n16_N9GG31311133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3131113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31311133fooEv,_ZTv0_n12_N9GG31311133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3131113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31311133fooEv,_ZTv0_n20_N9GG31311133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3131113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31311133fooEv,_ZTv0_n12_N9GG31311133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3131113[];
+extern void _ZN5EE3133fooEv();
+extern void _ZN5EE3133barEv();
+static VTBL_ENTRY _tg__ZTV5EE313__9GG3131113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&_ZN5EE3133fooEv,
+ (VTBL_ENTRY)&_ZN5EE3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv)();
+extern void ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE313__9GG3131113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE313__9GG3131113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG3131113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG3131113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG3131113[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG3131113[] = {
+ {&(_ZTV9GG3131113[7]), 7,37},
+ {&(_ZTV9GG3131113[15]), 15,37},
+ {&(_ZTV9GG3131113[21]), 21,37},
+ {&(_ZTV9GG3131113[26]), 26,37},
+ {&(_ZTV9GG3131113[32]), 32,37},
+ {&(_ZTV9GG3131113[36]), 36,37},
+ {&(_tg__ZTV5EE313__9GG3131113[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE313__9GG3131113[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE313__9GG3131113[3]), 3,4},
+ {&(_tg__ZTV5FF111__9GG3131113[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG3131113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG3131113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3131113[];
+extern VTBL_ENTRY _ZTV9GG3131113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3131113[];
+static VTBL_ENTRY alt_thunk_names813[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31311133barEv,_ZTv0_n16_N9GG31311133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31311133barEv,_ZThn16_N9GG31311133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31311133fooEv,_ZTv0_n12_N9GG31311133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31311133fooEv,_ZThn40_N9GG31311133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31311133fooEv,_ZThn24_N9GG31311133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31311133fooEv,_ZThn16_N9GG31311133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG31311133barEv,_ZTv0_n24_N9GG31311133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31311133barEv,_ZThn8_N9GG31311133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31311133fooEv,_ZTv0_n20_N9GG31311133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31311133fooEv,_ZThn32_N9GG31311133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31311133fooEv,_ZThn8_N9GG31311133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3131113 = { "GG3131113", // class name
+ bases_GG3131113, 5,
+ &(vtc_GG3131113[0]), // expected_vtbl_contents
+ &(vtt_GG3131113[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3131113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3131113),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3131113),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names813,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3131123 : virtual EE313 , virtual FF112 {
+ int pg;
+ virtual void foo(); // _ZN9GG31311233fooEv
+ virtual void bar(); // _ZN9GG31311233barEv
+ ~GG3131123(); // tgen
+ GG3131123(); // tgen
+};
+//SIG(1 GG3131123) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG3131123 ::foo(){vfunc_called(this, "_ZN9GG31311233fooEv");}
+void GG3131123 ::bar(){vfunc_called(this, "_ZN9GG31311233barEv");}
+GG3131123 ::~GG3131123(){ note_dtor("GG3131123", this);} // tgen
+GG3131123 ::GG3131123(){ note_ctor("GG3131123", this);} // tgen
+
+static void Test_GG3131123()
+{
+ extern Class_Descriptor cd_GG3131123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3131123, buf);
+ GG3131123 *dp, &lv = *(dp=new (buf) GG3131123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3131123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3131123)");
+ check_base_class_offset(lv, (AA3*)(EE313*), ABISELECT(32,16), "GG3131123");
+ check_base_class_offset(lv, (BB1*)(EE313*), ABISELECT(48,24), "GG3131123");
+ check_base_class_offset(lv, (BB1*)(FF112*), ABISELECT(48,24), "GG3131123");
+ check_base_class_offset(lv, (EE313*), ABISELECT(16,8), "GG3131123");
+ check_base_class_offset(lv, (AA1*)(FF112*), ABISELECT(80,40), "GG3131123");
+ check_base_class_offset(lv, (FF112*), ABISELECT(64,32), "GG3131123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3131123.pg");
+ test_class_info(&lv, &cd_GG3131123);
+ dp->~GG3131123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3131123(Test_GG3131123, "GG3131123", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3131123C1Ev();
+extern void _ZN9GG3131123D1Ev();
+Name_Map name_map_GG3131123[] = {
+ NSPAIR(_ZN9GG3131123C1Ev),
+ NSPAIR(_ZN9GG3131123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE313;
+extern VTBL_ENTRY _ZTI5EE313[];
+extern VTBL_ENTRY _ZTV5EE313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE313[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF112;
+extern VTBL_ENTRY _ZTI5FF112[];
+extern VTBL_ENTRY _ZTV5FF112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF112[];
+static Base_Class bases_GG3131123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE313, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF112, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3131123[];
+extern void _ZN9GG31311233fooEv();
+extern void _ZN9GG31311233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31311233fooEv,_ZTv0_n20_N9GG31311233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31311233fooEv,_ZThn8_N9GG31311233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31311233barEv,_ZTv0_n24_N9GG31311233barEv)();
+extern void ABISELECT(_ZThn16_N9GG31311233barEv,_ZThn8_N9GG31311233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31311233fooEv,_ZTv0_n12_N9GG31311233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31311233fooEv,_ZThn16_N9GG31311233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31311233barEv,_ZTv0_n16_N9GG31311233barEv)();
+extern void ABISELECT(_ZThn32_N9GG31311233barEv,_ZThn16_N9GG31311233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31311233fooEv,_ZTv0_n12_N9GG31311233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31311233fooEv,_ZThn24_N9GG31311233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31311233barEv,_ZTv0_n20_N9GG31311233barEv)();
+extern void ABISELECT(_ZThn64_N9GG31311233barEv,_ZThn32_N9GG31311233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31311233fooEv,_ZTv0_n12_N9GG31311233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG31311233fooEv,_ZThn40_N9GG31311233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3131123[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3131123[0]),
+ (VTBL_ENTRY)&_ZN9GG31311233fooEv,
+ (VTBL_ENTRY)&_ZN9GG31311233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3131123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31311233fooEv,_ZTv0_n20_N9GG31311233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31311233barEv,_ZTv0_n24_N9GG31311233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3131123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31311233fooEv,_ZTv0_n12_N9GG31311233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31311233barEv,_ZTv0_n16_N9GG31311233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3131123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31311233fooEv,_ZTv0_n12_N9GG31311233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3131123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31311233barEv,_ZTv0_n20_N9GG31311233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3131123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31311233fooEv,_ZTv0_n12_N9GG31311233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3131123[];
+extern void _ZN5EE3133fooEv();
+extern void _ZN5EE3133barEv();
+static VTBL_ENTRY _tg__ZTV5EE313__9GG3131123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&_ZN5EE3133fooEv,
+ (VTBL_ENTRY)&_ZN5EE3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv)();
+extern void ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE313__9GG3131123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE313__9GG3131123[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+};
+extern void _ZN5FF1123barEv();
+static VTBL_ENTRY _tg__ZTV5FF112__9GG3131123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN5FF1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF112__9GG3131123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF112__9GG3131123[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG3131123[] = {
+ {&(_ZTV9GG3131123[7]), 7,37},
+ {&(_ZTV9GG3131123[15]), 15,37},
+ {&(_ZTV9GG3131123[21]), 21,37},
+ {&(_ZTV9GG3131123[26]), 26,37},
+ {&(_ZTV9GG3131123[32]), 32,37},
+ {&(_ZTV9GG3131123[36]), 36,37},
+ {&(_tg__ZTV5EE313__9GG3131123[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE313__9GG3131123[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE313__9GG3131123[3]), 3,4},
+ {&(_tg__ZTV5FF112__9GG3131123[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF112__9GG3131123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF112__9GG3131123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3131123[];
+extern VTBL_ENTRY _ZTV9GG3131123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3131123[];
+static VTBL_ENTRY alt_thunk_names814[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31311233barEv,_ZTv0_n20_N9GG31311233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31311233barEv,_ZThn32_N9GG31311233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31311233barEv,_ZTv0_n16_N9GG31311233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31311233barEv,_ZThn16_N9GG31311233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31311233fooEv,_ZTv0_n12_N9GG31311233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31311233fooEv,_ZThn40_N9GG31311233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31311233fooEv,_ZThn24_N9GG31311233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31311233fooEv,_ZThn16_N9GG31311233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG31311233barEv,_ZTv0_n24_N9GG31311233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31311233barEv,_ZThn8_N9GG31311233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31311233fooEv,_ZTv0_n20_N9GG31311233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31311233fooEv,_ZThn8_N9GG31311233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3131123 = { "GG3131123", // class name
+ bases_GG3131123, 5,
+ &(vtc_GG3131123[0]), // expected_vtbl_contents
+ &(vtt_GG3131123[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3131123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3131123),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3131123),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names814,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3131133 : virtual EE313 , virtual FF113 {
+ int pg;
+ virtual void foo(); // _ZN9GG31311333fooEv
+ virtual void bar(); // _ZN9GG31311333barEv
+ ~GG3131133(); // tgen
+ GG3131133(); // tgen
+};
+//SIG(1 GG3131133) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3131133 ::foo(){vfunc_called(this, "_ZN9GG31311333fooEv");}
+void GG3131133 ::bar(){vfunc_called(this, "_ZN9GG31311333barEv");}
+GG3131133 ::~GG3131133(){ note_dtor("GG3131133", this);} // tgen
+GG3131133 ::GG3131133(){ note_ctor("GG3131133", this);} // tgen
+
+static void Test_GG3131133()
+{
+ extern Class_Descriptor cd_GG3131133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3131133, buf);
+ GG3131133 *dp, &lv = *(dp=new (buf) GG3131133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3131133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3131133)");
+ check_base_class_offset(lv, (AA3*)(EE313*), ABISELECT(32,16), "GG3131133");
+ check_base_class_offset(lv, (BB1*)(EE313*), ABISELECT(48,24), "GG3131133");
+ check_base_class_offset(lv, (BB1*)(FF113*), ABISELECT(48,24), "GG3131133");
+ check_base_class_offset(lv, (EE313*), ABISELECT(16,8), "GG3131133");
+ check_base_class_offset(lv, (AA1*)(FF113*), ABISELECT(80,40), "GG3131133");
+ check_base_class_offset(lv, (FF113*), ABISELECT(64,32), "GG3131133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3131133.pg");
+ test_class_info(&lv, &cd_GG3131133);
+ dp->~GG3131133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3131133(Test_GG3131133, "GG3131133", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3131133C1Ev();
+extern void _ZN9GG3131133D1Ev();
+Name_Map name_map_GG3131133[] = {
+ NSPAIR(_ZN9GG3131133C1Ev),
+ NSPAIR(_ZN9GG3131133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE313;
+extern VTBL_ENTRY _ZTI5EE313[];
+extern VTBL_ENTRY _ZTV5EE313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE313[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF113;
+extern VTBL_ENTRY _ZTI5FF113[];
+extern VTBL_ENTRY _ZTV5FF113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF113[];
+static Base_Class bases_GG3131133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE313, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF113, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3131133[];
+extern void _ZN9GG31311333fooEv();
+extern void _ZN9GG31311333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31311333fooEv,_ZTv0_n20_N9GG31311333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31311333fooEv,_ZThn8_N9GG31311333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31311333barEv,_ZTv0_n24_N9GG31311333barEv)();
+extern void ABISELECT(_ZThn16_N9GG31311333barEv,_ZThn8_N9GG31311333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31311333fooEv,_ZTv0_n12_N9GG31311333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31311333fooEv,_ZThn16_N9GG31311333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31311333barEv,_ZTv0_n16_N9GG31311333barEv)();
+extern void ABISELECT(_ZThn32_N9GG31311333barEv,_ZThn16_N9GG31311333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31311333fooEv,_ZTv0_n12_N9GG31311333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31311333fooEv,_ZThn24_N9GG31311333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31311333fooEv,_ZTv0_n20_N9GG31311333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31311333fooEv,_ZThn32_N9GG31311333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31311333barEv,_ZTv0_n24_N9GG31311333barEv)();
+extern void ABISELECT(_ZThn64_N9GG31311333barEv,_ZThn32_N9GG31311333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31311333fooEv,_ZTv0_n12_N9GG31311333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG31311333fooEv,_ZThn40_N9GG31311333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3131133[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3131133[0]),
+ (VTBL_ENTRY)&_ZN9GG31311333fooEv,
+ (VTBL_ENTRY)&_ZN9GG31311333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3131133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31311333fooEv,_ZTv0_n20_N9GG31311333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31311333barEv,_ZTv0_n24_N9GG31311333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3131133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31311333fooEv,_ZTv0_n12_N9GG31311333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31311333barEv,_ZTv0_n16_N9GG31311333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3131133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31311333fooEv,_ZTv0_n12_N9GG31311333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3131133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31311333fooEv,_ZTv0_n20_N9GG31311333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31311333barEv,_ZTv0_n24_N9GG31311333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3131133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31311333fooEv,_ZTv0_n12_N9GG31311333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3131133[];
+extern void _ZN5EE3133fooEv();
+extern void _ZN5EE3133barEv();
+static VTBL_ENTRY _tg__ZTV5EE313__9GG3131133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&_ZN5EE3133fooEv,
+ (VTBL_ENTRY)&_ZN5EE3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv)();
+extern void ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE313__9GG3131133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE313__9GG3131133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+};
+extern void _ZN5FF1133fooEv();
+extern void _ZN5FF1133barEv();
+static VTBL_ENTRY _tg__ZTV5FF113__9GG3131133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&_ZN5FF1133fooEv,
+ (VTBL_ENTRY)&_ZN5FF1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF113__9GG3131133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF113__9GG3131133[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+static VTT_ENTRY vtt_GG3131133[] = {
+ {&(_ZTV9GG3131133[7]), 7,39},
+ {&(_ZTV9GG3131133[15]), 15,39},
+ {&(_ZTV9GG3131133[21]), 21,39},
+ {&(_ZTV9GG3131133[26]), 26,39},
+ {&(_ZTV9GG3131133[33]), 33,39},
+ {&(_ZTV9GG3131133[38]), 38,39},
+ {&(_tg__ZTV5EE313__9GG3131133[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE313__9GG3131133[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE313__9GG3131133[3]), 3,4},
+ {&(_tg__ZTV5FF113__9GG3131133[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF113__9GG3131133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF113__9GG3131133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3131133[];
+extern VTBL_ENTRY _ZTV9GG3131133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3131133[];
+static VTBL_ENTRY alt_thunk_names815[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31311333barEv,_ZTv0_n16_N9GG31311333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31311333barEv,_ZThn16_N9GG31311333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31311333fooEv,_ZTv0_n12_N9GG31311333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31311333fooEv,_ZThn40_N9GG31311333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31311333fooEv,_ZThn24_N9GG31311333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31311333fooEv,_ZThn16_N9GG31311333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG31311333barEv,_ZTv0_n24_N9GG31311333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31311333barEv,_ZThn32_N9GG31311333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31311333barEv,_ZThn8_N9GG31311333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31311333fooEv,_ZTv0_n20_N9GG31311333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31311333fooEv,_ZThn32_N9GG31311333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31311333fooEv,_ZThn8_N9GG31311333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3131133 = { "GG3131133", // class name
+ bases_GG3131133, 5,
+ &(vtc_GG3131133[0]), // expected_vtbl_contents
+ &(vtt_GG3131133[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3131133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3131133),39, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3131133),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names815,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3131213 : virtual EE313 , virtual FF121 {
+ int pg;
+ virtual void foo(); // _ZN9GG31312133fooEv
+ virtual void bar(); // _ZN9GG31312133barEv
+ ~GG3131213(); // tgen
+ GG3131213(); // tgen
+};
+//SIG(1 GG3131213) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3131213 ::foo(){vfunc_called(this, "_ZN9GG31312133fooEv");}
+void GG3131213 ::bar(){vfunc_called(this, "_ZN9GG31312133barEv");}
+GG3131213 ::~GG3131213(){ note_dtor("GG3131213", this);} // tgen
+GG3131213 ::GG3131213(){ note_ctor("GG3131213", this);} // tgen
+
+static void Test_GG3131213()
+{
+ extern Class_Descriptor cd_GG3131213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3131213, buf);
+ GG3131213 *dp, &lv = *(dp=new (buf) GG3131213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3131213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3131213)");
+ check_base_class_offset(lv, (AA3*)(EE313*), ABISELECT(32,16), "GG3131213");
+ check_base_class_offset(lv, (BB1*)(EE313*), ABISELECT(48,24), "GG3131213");
+ check_base_class_offset(lv, (EE313*), ABISELECT(16,8), "GG3131213");
+ check_base_class_offset(lv, (AA1*)(FF121*), ABISELECT(80,40), "GG3131213");
+ check_base_class_offset(lv, (BB2*)(FF121*), ABISELECT(96,48), "GG3131213");
+ check_base_class_offset(lv, (FF121*), ABISELECT(64,32), "GG3131213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3131213.pg");
+ test_class_info(&lv, &cd_GG3131213);
+ dp->~GG3131213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3131213(Test_GG3131213, "GG3131213", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3131213C1Ev();
+extern void _ZN9GG3131213D1Ev();
+Name_Map name_map_GG3131213[] = {
+ NSPAIR(_ZN9GG3131213C1Ev),
+ NSPAIR(_ZN9GG3131213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE313;
+extern VTBL_ENTRY _ZTI5EE313[];
+extern VTBL_ENTRY _ZTV5EE313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE313[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF121;
+extern VTBL_ENTRY _ZTI5FF121[];
+extern VTBL_ENTRY _ZTV5FF121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF121[];
+static Base_Class bases_GG3131213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_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_BB1, ABISELECT(48,24), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE313, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF121, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3131213[];
+extern void _ZN9GG31312133fooEv();
+extern void _ZN9GG31312133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31312133fooEv,_ZTv0_n20_N9GG31312133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31312133fooEv,_ZThn8_N9GG31312133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31312133barEv,_ZTv0_n24_N9GG31312133barEv)();
+extern void ABISELECT(_ZThn16_N9GG31312133barEv,_ZThn8_N9GG31312133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31312133fooEv,_ZTv0_n12_N9GG31312133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31312133fooEv,_ZThn16_N9GG31312133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31312133barEv,_ZTv0_n16_N9GG31312133barEv)();
+extern void ABISELECT(_ZThn32_N9GG31312133barEv,_ZThn16_N9GG31312133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31312133fooEv,_ZTv0_n12_N9GG31312133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31312133fooEv,_ZThn24_N9GG31312133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31312133fooEv,_ZTv0_n20_N9GG31312133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31312133fooEv,_ZThn32_N9GG31312133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31312133fooEv,_ZTv0_n12_N9GG31312133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG31312133fooEv,_ZThn40_N9GG31312133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31312133barEv,_ZTv0_n12_N9GG31312133barEv)();
+extern void ABISELECT(_ZThn96_N9GG31312133barEv,_ZThn48_N9GG31312133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3131213[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3131213[0]),
+ (VTBL_ENTRY)&_ZN9GG31312133fooEv,
+ (VTBL_ENTRY)&_ZN9GG31312133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3131213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31312133fooEv,_ZTv0_n20_N9GG31312133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31312133barEv,_ZTv0_n24_N9GG31312133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3131213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31312133fooEv,_ZTv0_n12_N9GG31312133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31312133barEv,_ZTv0_n16_N9GG31312133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3131213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31312133fooEv,_ZTv0_n12_N9GG31312133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3131213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31312133fooEv,_ZTv0_n20_N9GG31312133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3131213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31312133fooEv,_ZTv0_n12_N9GG31312133fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3131213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31312133barEv,_ZTv0_n12_N9GG31312133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3131213[];
+extern void _ZN5EE3133fooEv();
+extern void _ZN5EE3133barEv();
+static VTBL_ENTRY _tg__ZTV5EE313__9GG3131213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&_ZN5EE3133fooEv,
+ (VTBL_ENTRY)&_ZN5EE3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv)();
+extern void ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE313__9GG3131213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE313__9GG3131213[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+};
+extern void _ZN5FF1213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF121__9GG3131213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN5FF1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1213fooEv,_ZThn8_N5FF1213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF121__9GG3131213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF121__9GG3131213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG3131213[] = {
+ {&(_ZTV9GG3131213[8]), 8,42},
+ {&(_ZTV9GG3131213[16]), 16,42},
+ {&(_ZTV9GG3131213[22]), 22,42},
+ {&(_ZTV9GG3131213[27]), 27,42},
+ {&(_ZTV9GG3131213[33]), 33,42},
+ {&(_ZTV9GG3131213[37]), 37,42},
+ {&(_ZTV9GG3131213[41]), 41,42},
+ {&(_tg__ZTV5EE313__9GG3131213[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE313__9GG3131213[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE313__9GG3131213[3]), 3,4},
+ {&(_tg__ZTV5FF121__9GG3131213[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF121__9GG3131213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF121__9GG3131213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3131213[];
+extern VTBL_ENTRY _ZTV9GG3131213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3131213[];
+static VTBL_ENTRY alt_thunk_names816[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1213fooEv,_ZThn8_N5FF1213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31312133barEv,_ZTv0_n12_N9GG31312133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31312133barEv,_ZThn48_N9GG31312133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31312133barEv,_ZTv0_n16_N9GG31312133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31312133barEv,_ZThn16_N9GG31312133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31312133fooEv,_ZTv0_n12_N9GG31312133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31312133fooEv,_ZThn40_N9GG31312133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31312133fooEv,_ZThn24_N9GG31312133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31312133fooEv,_ZThn16_N9GG31312133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG31312133barEv,_ZTv0_n24_N9GG31312133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31312133barEv,_ZThn8_N9GG31312133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31312133fooEv,_ZTv0_n20_N9GG31312133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31312133fooEv,_ZThn32_N9GG31312133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31312133fooEv,_ZThn8_N9GG31312133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3131213 = { "GG3131213", // class name
+ bases_GG3131213, 6,
+ &(vtc_GG3131213[0]), // expected_vtbl_contents
+ &(vtt_GG3131213[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3131213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3131213),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3131213),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names816,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3131223 : virtual EE313 , virtual FF122 {
+ int pg;
+ virtual void foo(); // _ZN9GG31312233fooEv
+ virtual void bar(); // _ZN9GG31312233barEv
+ ~GG3131223(); // tgen
+ GG3131223(); // tgen
+};
+//SIG(1 GG3131223) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3131223 ::foo(){vfunc_called(this, "_ZN9GG31312233fooEv");}
+void GG3131223 ::bar(){vfunc_called(this, "_ZN9GG31312233barEv");}
+GG3131223 ::~GG3131223(){ note_dtor("GG3131223", this);} // tgen
+GG3131223 ::GG3131223(){ note_ctor("GG3131223", this);} // tgen
+
+static void Test_GG3131223()
+{
+ extern Class_Descriptor cd_GG3131223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3131223, buf);
+ GG3131223 *dp, &lv = *(dp=new (buf) GG3131223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3131223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3131223)");
+ check_base_class_offset(lv, (AA3*)(EE313*), ABISELECT(32,16), "GG3131223");
+ check_base_class_offset(lv, (BB1*)(EE313*), ABISELECT(48,24), "GG3131223");
+ check_base_class_offset(lv, (EE313*), ABISELECT(16,8), "GG3131223");
+ check_base_class_offset(lv, (AA1*)(FF122*), ABISELECT(80,40), "GG3131223");
+ check_base_class_offset(lv, (BB2*)(FF122*), ABISELECT(96,48), "GG3131223");
+ check_base_class_offset(lv, (FF122*), ABISELECT(64,32), "GG3131223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3131223.pg");
+ test_class_info(&lv, &cd_GG3131223);
+ dp->~GG3131223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3131223(Test_GG3131223, "GG3131223", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3131223C1Ev();
+extern void _ZN9GG3131223D1Ev();
+Name_Map name_map_GG3131223[] = {
+ NSPAIR(_ZN9GG3131223C1Ev),
+ NSPAIR(_ZN9GG3131223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE313;
+extern VTBL_ENTRY _ZTI5EE313[];
+extern VTBL_ENTRY _ZTV5EE313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE313[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF122;
+extern VTBL_ENTRY _ZTI5FF122[];
+extern VTBL_ENTRY _ZTV5FF122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF122[];
+static Base_Class bases_GG3131223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_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_BB1, ABISELECT(48,24), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE313, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF122, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3131223[];
+extern void _ZN9GG31312233fooEv();
+extern void _ZN9GG31312233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31312233fooEv,_ZTv0_n20_N9GG31312233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31312233fooEv,_ZThn8_N9GG31312233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31312233barEv,_ZTv0_n24_N9GG31312233barEv)();
+extern void ABISELECT(_ZThn16_N9GG31312233barEv,_ZThn8_N9GG31312233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31312233fooEv,_ZTv0_n12_N9GG31312233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31312233fooEv,_ZThn16_N9GG31312233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31312233barEv,_ZTv0_n16_N9GG31312233barEv)();
+extern void ABISELECT(_ZThn32_N9GG31312233barEv,_ZThn16_N9GG31312233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31312233fooEv,_ZTv0_n12_N9GG31312233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31312233fooEv,_ZThn24_N9GG31312233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31312233barEv,_ZTv0_n20_N9GG31312233barEv)();
+extern void ABISELECT(_ZThn64_N9GG31312233barEv,_ZThn32_N9GG31312233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31312233fooEv,_ZTv0_n12_N9GG31312233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG31312233fooEv,_ZThn40_N9GG31312233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31312233barEv,_ZTv0_n12_N9GG31312233barEv)();
+extern void ABISELECT(_ZThn96_N9GG31312233barEv,_ZThn48_N9GG31312233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3131223[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3131223[0]),
+ (VTBL_ENTRY)&_ZN9GG31312233fooEv,
+ (VTBL_ENTRY)&_ZN9GG31312233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3131223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31312233fooEv,_ZTv0_n20_N9GG31312233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31312233barEv,_ZTv0_n24_N9GG31312233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3131223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31312233fooEv,_ZTv0_n12_N9GG31312233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31312233barEv,_ZTv0_n16_N9GG31312233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3131223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31312233fooEv,_ZTv0_n12_N9GG31312233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3131223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31312233barEv,_ZTv0_n20_N9GG31312233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3131223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31312233fooEv,_ZTv0_n12_N9GG31312233fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3131223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31312233barEv,_ZTv0_n12_N9GG31312233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3131223[];
+extern void _ZN5EE3133fooEv();
+extern void _ZN5EE3133barEv();
+static VTBL_ENTRY _tg__ZTV5EE313__9GG3131223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&_ZN5EE3133fooEv,
+ (VTBL_ENTRY)&_ZN5EE3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv)();
+extern void ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE313__9GG3131223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE313__9GG3131223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+};
+extern void _ZN5FF1223barEv();
+static VTBL_ENTRY _tg__ZTV5FF122__9GG3131223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN5FF1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF122__9GG3131223[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv)();
+extern void ABISELECT(_ZThn32_N5FF1223barEv,_ZThn16_N5FF1223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF122__9GG3131223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv),
+};
+static VTT_ENTRY vtt_GG3131223[] = {
+ {&(_ZTV9GG3131223[8]), 8,42},
+ {&(_ZTV9GG3131223[16]), 16,42},
+ {&(_ZTV9GG3131223[22]), 22,42},
+ {&(_ZTV9GG3131223[27]), 27,42},
+ {&(_ZTV9GG3131223[33]), 33,42},
+ {&(_ZTV9GG3131223[37]), 37,42},
+ {&(_ZTV9GG3131223[41]), 41,42},
+ {&(_tg__ZTV5EE313__9GG3131223[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE313__9GG3131223[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE313__9GG3131223[3]), 3,4},
+ {&(_tg__ZTV5FF122__9GG3131223[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF122__9GG3131223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF122__9GG3131223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3131223[];
+extern VTBL_ENTRY _ZTV9GG3131223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3131223[];
+static VTBL_ENTRY alt_thunk_names817[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1223barEv,_ZThn16_N5FF1223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31312233barEv,_ZTv0_n12_N9GG31312233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31312233barEv,_ZThn48_N9GG31312233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31312233barEv,_ZTv0_n20_N9GG31312233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31312233barEv,_ZThn32_N9GG31312233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31312233barEv,_ZTv0_n16_N9GG31312233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31312233barEv,_ZThn16_N9GG31312233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31312233fooEv,_ZTv0_n12_N9GG31312233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31312233fooEv,_ZThn40_N9GG31312233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31312233fooEv,_ZThn24_N9GG31312233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31312233fooEv,_ZThn16_N9GG31312233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG31312233barEv,_ZTv0_n24_N9GG31312233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31312233barEv,_ZThn8_N9GG31312233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31312233fooEv,_ZTv0_n20_N9GG31312233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31312233fooEv,_ZThn8_N9GG31312233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3131223 = { "GG3131223", // class name
+ bases_GG3131223, 6,
+ &(vtc_GG3131223[0]), // expected_vtbl_contents
+ &(vtt_GG3131223[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3131223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3131223),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3131223),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names817,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3131233 : virtual EE313 , virtual FF123 {
+ int pg;
+ virtual void foo(); // _ZN9GG31312333fooEv
+ virtual void bar(); // _ZN9GG31312333barEv
+ ~GG3131233(); // tgen
+ GG3131233(); // tgen
+};
+//SIG(1 GG3131233) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3131233 ::foo(){vfunc_called(this, "_ZN9GG31312333fooEv");}
+void GG3131233 ::bar(){vfunc_called(this, "_ZN9GG31312333barEv");}
+GG3131233 ::~GG3131233(){ note_dtor("GG3131233", this);} // tgen
+GG3131233 ::GG3131233(){ note_ctor("GG3131233", this);} // tgen
+
+static void Test_GG3131233()
+{
+ extern Class_Descriptor cd_GG3131233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3131233, buf);
+ GG3131233 *dp, &lv = *(dp=new (buf) GG3131233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3131233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3131233)");
+ check_base_class_offset(lv, (AA3*)(EE313*), ABISELECT(32,16), "GG3131233");
+ check_base_class_offset(lv, (BB1*)(EE313*), ABISELECT(48,24), "GG3131233");
+ check_base_class_offset(lv, (EE313*), ABISELECT(16,8), "GG3131233");
+ check_base_class_offset(lv, (AA1*)(FF123*), ABISELECT(80,40), "GG3131233");
+ check_base_class_offset(lv, (BB2*)(FF123*), ABISELECT(96,48), "GG3131233");
+ check_base_class_offset(lv, (FF123*), ABISELECT(64,32), "GG3131233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3131233.pg");
+ test_class_info(&lv, &cd_GG3131233);
+ dp->~GG3131233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3131233(Test_GG3131233, "GG3131233", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3131233C1Ev();
+extern void _ZN9GG3131233D1Ev();
+Name_Map name_map_GG3131233[] = {
+ NSPAIR(_ZN9GG3131233C1Ev),
+ NSPAIR(_ZN9GG3131233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE313;
+extern VTBL_ENTRY _ZTI5EE313[];
+extern VTBL_ENTRY _ZTV5EE313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE313[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF123;
+extern VTBL_ENTRY _ZTI5FF123[];
+extern VTBL_ENTRY _ZTV5FF123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF123[];
+static Base_Class bases_GG3131233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_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_BB1, ABISELECT(48,24), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE313, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 40, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF123, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3131233[];
+extern void _ZN9GG31312333fooEv();
+extern void _ZN9GG31312333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31312333fooEv,_ZTv0_n20_N9GG31312333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31312333fooEv,_ZThn8_N9GG31312333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31312333barEv,_ZTv0_n24_N9GG31312333barEv)();
+extern void ABISELECT(_ZThn16_N9GG31312333barEv,_ZThn8_N9GG31312333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31312333fooEv,_ZTv0_n12_N9GG31312333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31312333fooEv,_ZThn16_N9GG31312333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31312333barEv,_ZTv0_n16_N9GG31312333barEv)();
+extern void ABISELECT(_ZThn32_N9GG31312333barEv,_ZThn16_N9GG31312333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31312333fooEv,_ZTv0_n12_N9GG31312333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31312333fooEv,_ZThn24_N9GG31312333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31312333fooEv,_ZTv0_n20_N9GG31312333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31312333fooEv,_ZThn32_N9GG31312333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31312333barEv,_ZTv0_n24_N9GG31312333barEv)();
+extern void ABISELECT(_ZThn64_N9GG31312333barEv,_ZThn32_N9GG31312333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31312333fooEv,_ZTv0_n12_N9GG31312333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG31312333fooEv,_ZThn40_N9GG31312333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31312333barEv,_ZTv0_n12_N9GG31312333barEv)();
+extern void ABISELECT(_ZThn96_N9GG31312333barEv,_ZThn48_N9GG31312333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3131233[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3131233[0]),
+ (VTBL_ENTRY)&_ZN9GG31312333fooEv,
+ (VTBL_ENTRY)&_ZN9GG31312333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3131233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31312333fooEv,_ZTv0_n20_N9GG31312333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31312333barEv,_ZTv0_n24_N9GG31312333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3131233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31312333fooEv,_ZTv0_n12_N9GG31312333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31312333barEv,_ZTv0_n16_N9GG31312333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3131233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31312333fooEv,_ZTv0_n12_N9GG31312333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3131233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31312333fooEv,_ZTv0_n20_N9GG31312333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31312333barEv,_ZTv0_n24_N9GG31312333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3131233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31312333fooEv,_ZTv0_n12_N9GG31312333fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3131233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31312333barEv,_ZTv0_n12_N9GG31312333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3131233[];
+extern void _ZN5EE3133fooEv();
+extern void _ZN5EE3133barEv();
+static VTBL_ENTRY _tg__ZTV5EE313__9GG3131233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&_ZN5EE3133fooEv,
+ (VTBL_ENTRY)&_ZN5EE3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv)();
+extern void ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE313__9GG3131233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE313__9GG3131233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+};
+extern void _ZN5FF1233fooEv();
+extern void _ZN5FF1233barEv();
+static VTBL_ENTRY _tg__ZTV5FF123__9GG3131233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&_ZN5FF1233fooEv,
+ (VTBL_ENTRY)&_ZN5FF1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1233fooEv,_ZThn8_N5FF1233fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF123__9GG3131233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv)();
+extern void ABISELECT(_ZThn32_N5FF1233barEv,_ZThn16_N5FF1233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF123__9GG3131233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv),
+};
+static VTT_ENTRY vtt_GG3131233[] = {
+ {&(_ZTV9GG3131233[8]), 8,44},
+ {&(_ZTV9GG3131233[16]), 16,44},
+ {&(_ZTV9GG3131233[22]), 22,44},
+ {&(_ZTV9GG3131233[27]), 27,44},
+ {&(_ZTV9GG3131233[34]), 34,44},
+ {&(_ZTV9GG3131233[39]), 39,44},
+ {&(_ZTV9GG3131233[43]), 43,44},
+ {&(_tg__ZTV5EE313__9GG3131233[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE313__9GG3131233[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE313__9GG3131233[3]), 3,4},
+ {&(_tg__ZTV5FF123__9GG3131233[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF123__9GG3131233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF123__9GG3131233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3131233[];
+extern VTBL_ENTRY _ZTV9GG3131233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3131233[];
+static VTBL_ENTRY alt_thunk_names818[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1233barEv,_ZThn16_N5FF1233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1233fooEv,_ZThn8_N5FF1233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31312333barEv,_ZTv0_n12_N9GG31312333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31312333barEv,_ZThn48_N9GG31312333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31312333barEv,_ZTv0_n16_N9GG31312333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31312333barEv,_ZThn16_N9GG31312333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31312333fooEv,_ZTv0_n12_N9GG31312333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31312333fooEv,_ZThn40_N9GG31312333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31312333fooEv,_ZThn24_N9GG31312333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31312333fooEv,_ZThn16_N9GG31312333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG31312333barEv,_ZTv0_n24_N9GG31312333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31312333barEv,_ZThn32_N9GG31312333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31312333barEv,_ZThn8_N9GG31312333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31312333fooEv,_ZTv0_n20_N9GG31312333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31312333fooEv,_ZThn32_N9GG31312333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31312333fooEv,_ZThn8_N9GG31312333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3131233 = { "GG3131233", // class name
+ bases_GG3131233, 6,
+ &(vtc_GG3131233[0]), // expected_vtbl_contents
+ &(vtt_GG3131233[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3131233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3131233),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3131233),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names818,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3131313 : virtual EE313 , virtual FF131 {
+ int pg;
+ virtual void foo(); // _ZN9GG31313133fooEv
+ virtual void bar(); // _ZN9GG31313133barEv
+ ~GG3131313(); // tgen
+ GG3131313(); // tgen
+};
+//SIG(1 GG3131313) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3131313 ::foo(){vfunc_called(this, "_ZN9GG31313133fooEv");}
+void GG3131313 ::bar(){vfunc_called(this, "_ZN9GG31313133barEv");}
+GG3131313 ::~GG3131313(){ note_dtor("GG3131313", this);} // tgen
+GG3131313 ::GG3131313(){ note_ctor("GG3131313", this);} // tgen
+
+static void Test_GG3131313()
+{
+ extern Class_Descriptor cd_GG3131313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3131313, buf);
+ GG3131313 *dp, &lv = *(dp=new (buf) GG3131313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3131313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3131313)");
+ check_base_class_offset(lv, (AA3*)(EE313*), ABISELECT(32,16), "GG3131313");
+ check_base_class_offset(lv, (BB1*)(EE313*), ABISELECT(48,24), "GG3131313");
+ check_base_class_offset(lv, (EE313*), ABISELECT(16,8), "GG3131313");
+ check_base_class_offset(lv, (AA1*)(FF131*), ABISELECT(80,40), "GG3131313");
+ check_base_class_offset(lv, (BB3*)(FF131*), ABISELECT(96,48), "GG3131313");
+ check_base_class_offset(lv, (FF131*), ABISELECT(64,32), "GG3131313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3131313.pg");
+ test_class_info(&lv, &cd_GG3131313);
+ dp->~GG3131313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3131313(Test_GG3131313, "GG3131313", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3131313C1Ev();
+extern void _ZN9GG3131313D1Ev();
+Name_Map name_map_GG3131313[] = {
+ NSPAIR(_ZN9GG3131313C1Ev),
+ NSPAIR(_ZN9GG3131313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE313;
+extern VTBL_ENTRY _ZTI5EE313[];
+extern VTBL_ENTRY _ZTV5EE313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE313[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF131;
+extern VTBL_ENTRY _ZTI5FF131[];
+extern VTBL_ENTRY _ZTV5FF131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF131[];
+static Base_Class bases_GG3131313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_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_BB1, ABISELECT(48,24), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE313, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF131, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3131313[];
+extern void _ZN9GG31313133fooEv();
+extern void _ZN9GG31313133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31313133fooEv,_ZTv0_n20_N9GG31313133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31313133fooEv,_ZThn8_N9GG31313133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31313133barEv,_ZTv0_n24_N9GG31313133barEv)();
+extern void ABISELECT(_ZThn16_N9GG31313133barEv,_ZThn8_N9GG31313133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31313133fooEv,_ZTv0_n12_N9GG31313133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31313133fooEv,_ZThn16_N9GG31313133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31313133barEv,_ZTv0_n16_N9GG31313133barEv)();
+extern void ABISELECT(_ZThn32_N9GG31313133barEv,_ZThn16_N9GG31313133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31313133fooEv,_ZTv0_n12_N9GG31313133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31313133fooEv,_ZThn24_N9GG31313133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31313133fooEv,_ZTv0_n20_N9GG31313133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31313133fooEv,_ZThn32_N9GG31313133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31313133fooEv,_ZTv0_n12_N9GG31313133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG31313133fooEv,_ZThn40_N9GG31313133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31313133fooEv,_ZTv0_n12_N9GG31313133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG31313133fooEv,_ZThn48_N9GG31313133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31313133barEv,_ZTv0_n16_N9GG31313133barEv)();
+extern void ABISELECT(_ZThn96_N9GG31313133barEv,_ZThn48_N9GG31313133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3131313[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3131313[0]),
+ (VTBL_ENTRY)&_ZN9GG31313133fooEv,
+ (VTBL_ENTRY)&_ZN9GG31313133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3131313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31313133fooEv,_ZTv0_n20_N9GG31313133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31313133barEv,_ZTv0_n24_N9GG31313133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3131313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31313133fooEv,_ZTv0_n12_N9GG31313133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31313133barEv,_ZTv0_n16_N9GG31313133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3131313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31313133fooEv,_ZTv0_n12_N9GG31313133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3131313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31313133fooEv,_ZTv0_n20_N9GG31313133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3131313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31313133fooEv,_ZTv0_n12_N9GG31313133fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3131313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31313133fooEv,_ZTv0_n12_N9GG31313133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31313133barEv,_ZTv0_n16_N9GG31313133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3131313[];
+extern void _ZN5EE3133fooEv();
+extern void _ZN5EE3133barEv();
+static VTBL_ENTRY _tg__ZTV5EE313__9GG3131313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&_ZN5EE3133fooEv,
+ (VTBL_ENTRY)&_ZN5EE3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv)();
+extern void ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE313__9GG3131313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE313__9GG3131313[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+};
+extern void _ZN5FF1313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF131__9GG3131313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&_ZN5FF1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF131__9GG3131313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1313fooEv,_ZThn16_N5FF1313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF131__9GG3131313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG3131313[] = {
+ {&(_ZTV9GG3131313[8]), 8,44},
+ {&(_ZTV9GG3131313[16]), 16,44},
+ {&(_ZTV9GG3131313[22]), 22,44},
+ {&(_ZTV9GG3131313[27]), 27,44},
+ {&(_ZTV9GG3131313[33]), 33,44},
+ {&(_ZTV9GG3131313[37]), 37,44},
+ {&(_ZTV9GG3131313[42]), 42,44},
+ {&(_tg__ZTV5EE313__9GG3131313[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE313__9GG3131313[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE313__9GG3131313[3]), 3,4},
+ {&(_tg__ZTV5FF131__9GG3131313[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF131__9GG3131313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF131__9GG3131313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3131313[];
+extern VTBL_ENTRY _ZTV9GG3131313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3131313[];
+static VTBL_ENTRY alt_thunk_names819[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1313fooEv,_ZThn16_N5FF1313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31313133barEv,_ZTv0_n16_N9GG31313133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31313133barEv,_ZThn48_N9GG31313133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31313133barEv,_ZThn16_N9GG31313133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31313133fooEv,_ZTv0_n12_N9GG31313133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31313133fooEv,_ZThn48_N9GG31313133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31313133fooEv,_ZThn40_N9GG31313133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31313133fooEv,_ZThn24_N9GG31313133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31313133fooEv,_ZThn16_N9GG31313133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG31313133barEv,_ZTv0_n24_N9GG31313133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31313133barEv,_ZThn8_N9GG31313133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31313133fooEv,_ZTv0_n20_N9GG31313133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31313133fooEv,_ZThn32_N9GG31313133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31313133fooEv,_ZThn8_N9GG31313133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3131313 = { "GG3131313", // class name
+ bases_GG3131313, 6,
+ &(vtc_GG3131313[0]), // expected_vtbl_contents
+ &(vtt_GG3131313[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3131313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3131313),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3131313),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names819,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3131323 : virtual EE313 , virtual FF132 {
+ int pg;
+ virtual void foo(); // _ZN9GG31313233fooEv
+ virtual void bar(); // _ZN9GG31313233barEv
+ ~GG3131323(); // tgen
+ GG3131323(); // tgen
+};
+//SIG(1 GG3131323) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3131323 ::foo(){vfunc_called(this, "_ZN9GG31313233fooEv");}
+void GG3131323 ::bar(){vfunc_called(this, "_ZN9GG31313233barEv");}
+GG3131323 ::~GG3131323(){ note_dtor("GG3131323", this);} // tgen
+GG3131323 ::GG3131323(){ note_ctor("GG3131323", this);} // tgen
+
+static void Test_GG3131323()
+{
+ extern Class_Descriptor cd_GG3131323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3131323, buf);
+ GG3131323 *dp, &lv = *(dp=new (buf) GG3131323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3131323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3131323)");
+ check_base_class_offset(lv, (AA3*)(EE313*), ABISELECT(32,16), "GG3131323");
+ check_base_class_offset(lv, (BB1*)(EE313*), ABISELECT(48,24), "GG3131323");
+ check_base_class_offset(lv, (EE313*), ABISELECT(16,8), "GG3131323");
+ check_base_class_offset(lv, (AA1*)(FF132*), ABISELECT(80,40), "GG3131323");
+ check_base_class_offset(lv, (BB3*)(FF132*), ABISELECT(96,48), "GG3131323");
+ check_base_class_offset(lv, (FF132*), ABISELECT(64,32), "GG3131323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3131323.pg");
+ test_class_info(&lv, &cd_GG3131323);
+ dp->~GG3131323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3131323(Test_GG3131323, "GG3131323", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3131323C1Ev();
+extern void _ZN9GG3131323D1Ev();
+Name_Map name_map_GG3131323[] = {
+ NSPAIR(_ZN9GG3131323C1Ev),
+ NSPAIR(_ZN9GG3131323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE313;
+extern VTBL_ENTRY _ZTI5EE313[];
+extern VTBL_ENTRY _ZTV5EE313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE313[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF132;
+extern VTBL_ENTRY _ZTI5FF132[];
+extern VTBL_ENTRY _ZTV5FF132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF132[];
+static Base_Class bases_GG3131323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_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_BB1, ABISELECT(48,24), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE313, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF132, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3131323[];
+extern void _ZN9GG31313233fooEv();
+extern void _ZN9GG31313233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31313233fooEv,_ZTv0_n20_N9GG31313233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31313233fooEv,_ZThn8_N9GG31313233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31313233barEv,_ZTv0_n24_N9GG31313233barEv)();
+extern void ABISELECT(_ZThn16_N9GG31313233barEv,_ZThn8_N9GG31313233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31313233fooEv,_ZTv0_n12_N9GG31313233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31313233fooEv,_ZThn16_N9GG31313233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31313233barEv,_ZTv0_n16_N9GG31313233barEv)();
+extern void ABISELECT(_ZThn32_N9GG31313233barEv,_ZThn16_N9GG31313233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31313233fooEv,_ZTv0_n12_N9GG31313233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31313233fooEv,_ZThn24_N9GG31313233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31313233barEv,_ZTv0_n20_N9GG31313233barEv)();
+extern void ABISELECT(_ZThn64_N9GG31313233barEv,_ZThn32_N9GG31313233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31313233fooEv,_ZTv0_n12_N9GG31313233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG31313233fooEv,_ZThn40_N9GG31313233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31313233fooEv,_ZTv0_n12_N9GG31313233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG31313233fooEv,_ZThn48_N9GG31313233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31313233barEv,_ZTv0_n16_N9GG31313233barEv)();
+extern void ABISELECT(_ZThn96_N9GG31313233barEv,_ZThn48_N9GG31313233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3131323[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3131323[0]),
+ (VTBL_ENTRY)&_ZN9GG31313233fooEv,
+ (VTBL_ENTRY)&_ZN9GG31313233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3131323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31313233fooEv,_ZTv0_n20_N9GG31313233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31313233barEv,_ZTv0_n24_N9GG31313233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3131323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31313233fooEv,_ZTv0_n12_N9GG31313233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31313233barEv,_ZTv0_n16_N9GG31313233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3131323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31313233fooEv,_ZTv0_n12_N9GG31313233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3131323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31313233barEv,_ZTv0_n20_N9GG31313233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3131323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31313233fooEv,_ZTv0_n12_N9GG31313233fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3131323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31313233fooEv,_ZTv0_n12_N9GG31313233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31313233barEv,_ZTv0_n16_N9GG31313233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3131323[];
+extern void _ZN5EE3133fooEv();
+extern void _ZN5EE3133barEv();
+static VTBL_ENTRY _tg__ZTV5EE313__9GG3131323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&_ZN5EE3133fooEv,
+ (VTBL_ENTRY)&_ZN5EE3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv)();
+extern void ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE313__9GG3131323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE313__9GG3131323[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+};
+extern void _ZN5FF1323barEv();
+static VTBL_ENTRY _tg__ZTV5FF132__9GG3131323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN5FF1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF132__9GG3131323[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv)();
+extern void ABISELECT(_ZThn32_N5FF1323barEv,_ZThn16_N5FF1323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF132__9GG3131323[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv),
+};
+static VTT_ENTRY vtt_GG3131323[] = {
+ {&(_ZTV9GG3131323[8]), 8,44},
+ {&(_ZTV9GG3131323[16]), 16,44},
+ {&(_ZTV9GG3131323[22]), 22,44},
+ {&(_ZTV9GG3131323[27]), 27,44},
+ {&(_ZTV9GG3131323[33]), 33,44},
+ {&(_ZTV9GG3131323[37]), 37,44},
+ {&(_ZTV9GG3131323[42]), 42,44},
+ {&(_tg__ZTV5EE313__9GG3131323[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE313__9GG3131323[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE313__9GG3131323[3]), 3,4},
+ {&(_tg__ZTV5FF132__9GG3131323[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF132__9GG3131323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF132__9GG3131323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3131323[];
+extern VTBL_ENTRY _ZTV9GG3131323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3131323[];
+static VTBL_ENTRY alt_thunk_names820[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1323barEv,_ZThn16_N5FF1323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31313233barEv,_ZTv0_n20_N9GG31313233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31313233barEv,_ZThn32_N9GG31313233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31313233barEv,_ZTv0_n16_N9GG31313233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31313233barEv,_ZThn48_N9GG31313233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31313233barEv,_ZThn16_N9GG31313233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31313233fooEv,_ZTv0_n12_N9GG31313233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31313233fooEv,_ZThn48_N9GG31313233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31313233fooEv,_ZThn40_N9GG31313233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31313233fooEv,_ZThn24_N9GG31313233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31313233fooEv,_ZThn16_N9GG31313233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG31313233barEv,_ZTv0_n24_N9GG31313233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31313233barEv,_ZThn8_N9GG31313233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31313233fooEv,_ZTv0_n20_N9GG31313233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31313233fooEv,_ZThn8_N9GG31313233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3131323 = { "GG3131323", // class name
+ bases_GG3131323, 6,
+ &(vtc_GG3131323[0]), // expected_vtbl_contents
+ &(vtt_GG3131323[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3131323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3131323),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3131323),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names820,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3131333 : virtual EE313 , virtual FF133 {
+ int pg;
+ virtual void foo(); // _ZN9GG31313333fooEv
+ virtual void bar(); // _ZN9GG31313333barEv
+ ~GG3131333(); // tgen
+ GG3131333(); // tgen
+};
+//SIG(1 GG3131333) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3131333 ::foo(){vfunc_called(this, "_ZN9GG31313333fooEv");}
+void GG3131333 ::bar(){vfunc_called(this, "_ZN9GG31313333barEv");}
+GG3131333 ::~GG3131333(){ note_dtor("GG3131333", this);} // tgen
+GG3131333 ::GG3131333(){ note_ctor("GG3131333", this);} // tgen
+
+static void Test_GG3131333()
+{
+ extern Class_Descriptor cd_GG3131333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3131333, buf);
+ GG3131333 *dp, &lv = *(dp=new (buf) GG3131333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3131333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3131333)");
+ check_base_class_offset(lv, (AA3*)(EE313*), ABISELECT(32,16), "GG3131333");
+ check_base_class_offset(lv, (BB1*)(EE313*), ABISELECT(48,24), "GG3131333");
+ check_base_class_offset(lv, (EE313*), ABISELECT(16,8), "GG3131333");
+ check_base_class_offset(lv, (AA1*)(FF133*), ABISELECT(80,40), "GG3131333");
+ check_base_class_offset(lv, (BB3*)(FF133*), ABISELECT(96,48), "GG3131333");
+ check_base_class_offset(lv, (FF133*), ABISELECT(64,32), "GG3131333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3131333.pg");
+ test_class_info(&lv, &cd_GG3131333);
+ dp->~GG3131333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3131333(Test_GG3131333, "GG3131333", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3131333C1Ev();
+extern void _ZN9GG3131333D1Ev();
+Name_Map name_map_GG3131333[] = {
+ NSPAIR(_ZN9GG3131333C1Ev),
+ NSPAIR(_ZN9GG3131333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE313;
+extern VTBL_ENTRY _ZTI5EE313[];
+extern VTBL_ENTRY _ZTV5EE313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE313[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF133;
+extern VTBL_ENTRY _ZTI5FF133[];
+extern VTBL_ENTRY _ZTV5FF133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF133[];
+static Base_Class bases_GG3131333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_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_BB1, ABISELECT(48,24), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE313, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 40, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF133, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3131333[];
+extern void _ZN9GG31313333fooEv();
+extern void _ZN9GG31313333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31313333fooEv,_ZTv0_n20_N9GG31313333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31313333fooEv,_ZThn8_N9GG31313333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31313333barEv,_ZTv0_n24_N9GG31313333barEv)();
+extern void ABISELECT(_ZThn16_N9GG31313333barEv,_ZThn8_N9GG31313333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31313333fooEv,_ZTv0_n12_N9GG31313333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31313333fooEv,_ZThn16_N9GG31313333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31313333barEv,_ZTv0_n16_N9GG31313333barEv)();
+extern void ABISELECT(_ZThn32_N9GG31313333barEv,_ZThn16_N9GG31313333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31313333fooEv,_ZTv0_n12_N9GG31313333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31313333fooEv,_ZThn24_N9GG31313333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31313333fooEv,_ZTv0_n20_N9GG31313333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31313333fooEv,_ZThn32_N9GG31313333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31313333barEv,_ZTv0_n24_N9GG31313333barEv)();
+extern void ABISELECT(_ZThn64_N9GG31313333barEv,_ZThn32_N9GG31313333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31313333fooEv,_ZTv0_n12_N9GG31313333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG31313333fooEv,_ZThn40_N9GG31313333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31313333fooEv,_ZTv0_n12_N9GG31313333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG31313333fooEv,_ZThn48_N9GG31313333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31313333barEv,_ZTv0_n16_N9GG31313333barEv)();
+extern void ABISELECT(_ZThn96_N9GG31313333barEv,_ZThn48_N9GG31313333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3131333[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3131333[0]),
+ (VTBL_ENTRY)&_ZN9GG31313333fooEv,
+ (VTBL_ENTRY)&_ZN9GG31313333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3131333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31313333fooEv,_ZTv0_n20_N9GG31313333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31313333barEv,_ZTv0_n24_N9GG31313333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3131333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31313333fooEv,_ZTv0_n12_N9GG31313333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31313333barEv,_ZTv0_n16_N9GG31313333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3131333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31313333fooEv,_ZTv0_n12_N9GG31313333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3131333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31313333fooEv,_ZTv0_n20_N9GG31313333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31313333barEv,_ZTv0_n24_N9GG31313333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3131333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31313333fooEv,_ZTv0_n12_N9GG31313333fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3131333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31313333fooEv,_ZTv0_n12_N9GG31313333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31313333barEv,_ZTv0_n16_N9GG31313333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3131333[];
+extern void _ZN5EE3133fooEv();
+extern void _ZN5EE3133barEv();
+static VTBL_ENTRY _tg__ZTV5EE313__9GG3131333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&_ZN5EE3133fooEv,
+ (VTBL_ENTRY)&_ZN5EE3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv)();
+extern void ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE313__9GG3131333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE313__9GG3131333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+};
+extern void _ZN5FF1333fooEv();
+extern void _ZN5FF1333barEv();
+static VTBL_ENTRY _tg__ZTV5FF133__9GG3131333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&_ZN5FF1333fooEv,
+ (VTBL_ENTRY)&_ZN5FF1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF133__9GG3131333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1333fooEv,_ZThn16_N5FF1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv)();
+extern void ABISELECT(_ZThn32_N5FF1333barEv,_ZThn16_N5FF1333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF133__9GG3131333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv),
+};
+static VTT_ENTRY vtt_GG3131333[] = {
+ {&(_ZTV9GG3131333[8]), 8,46},
+ {&(_ZTV9GG3131333[16]), 16,46},
+ {&(_ZTV9GG3131333[22]), 22,46},
+ {&(_ZTV9GG3131333[27]), 27,46},
+ {&(_ZTV9GG3131333[34]), 34,46},
+ {&(_ZTV9GG3131333[39]), 39,46},
+ {&(_ZTV9GG3131333[44]), 44,46},
+ {&(_tg__ZTV5EE313__9GG3131333[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE313__9GG3131333[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE313__9GG3131333[3]), 3,4},
+ {&(_tg__ZTV5FF133__9GG3131333[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF133__9GG3131333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF133__9GG3131333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3131333[];
+extern VTBL_ENTRY _ZTV9GG3131333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3131333[];
+static VTBL_ENTRY alt_thunk_names821[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1333barEv,_ZThn16_N5FF1333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1333fooEv,_ZThn16_N5FF1333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31313333barEv,_ZTv0_n16_N9GG31313333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31313333barEv,_ZThn48_N9GG31313333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31313333barEv,_ZThn16_N9GG31313333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31313333fooEv,_ZTv0_n12_N9GG31313333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31313333fooEv,_ZThn48_N9GG31313333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31313333fooEv,_ZThn40_N9GG31313333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31313333fooEv,_ZThn24_N9GG31313333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31313333fooEv,_ZThn16_N9GG31313333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG31313333barEv,_ZTv0_n24_N9GG31313333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31313333barEv,_ZThn32_N9GG31313333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31313333barEv,_ZThn8_N9GG31313333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31313333fooEv,_ZTv0_n20_N9GG31313333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31313333fooEv,_ZThn32_N9GG31313333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31313333fooEv,_ZThn8_N9GG31313333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3131333 = { "GG3131333", // class name
+ bases_GG3131333, 6,
+ &(vtc_GG3131333[0]), // expected_vtbl_contents
+ &(vtt_GG3131333[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3131333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3131333),46, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3131333),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names821,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3132113 : virtual EE313 , virtual FF211 {
+ int pg;
+ virtual void foo(); // _ZN9GG31321133fooEv
+ virtual void bar(); // _ZN9GG31321133barEv
+ ~GG3132113(); // tgen
+ GG3132113(); // tgen
+};
+//SIG(1 GG3132113) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG3132113 ::foo(){vfunc_called(this, "_ZN9GG31321133fooEv");}
+void GG3132113 ::bar(){vfunc_called(this, "_ZN9GG31321133barEv");}
+GG3132113 ::~GG3132113(){ note_dtor("GG3132113", this);} // tgen
+GG3132113 ::GG3132113(){ note_ctor("GG3132113", this);} // tgen
+
+static void Test_GG3132113()
+{
+ extern Class_Descriptor cd_GG3132113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3132113, buf);
+ GG3132113 *dp, &lv = *(dp=new (buf) GG3132113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3132113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3132113)");
+ check_base_class_offset(lv, (AA3*)(EE313*), ABISELECT(32,16), "GG3132113");
+ check_base_class_offset(lv, (BB1*)(EE313*), ABISELECT(48,24), "GG3132113");
+ check_base_class_offset(lv, (BB1*)(FF211*), ABISELECT(48,24), "GG3132113");
+ check_base_class_offset(lv, (EE313*), ABISELECT(16,8), "GG3132113");
+ check_base_class_offset(lv, (AA2*)(FF211*), ABISELECT(80,40), "GG3132113");
+ check_base_class_offset(lv, (FF211*), ABISELECT(64,32), "GG3132113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3132113.pg");
+ test_class_info(&lv, &cd_GG3132113);
+ dp->~GG3132113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3132113(Test_GG3132113, "GG3132113", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3132113C1Ev();
+extern void _ZN9GG3132113D1Ev();
+Name_Map name_map_GG3132113[] = {
+ NSPAIR(_ZN9GG3132113C1Ev),
+ NSPAIR(_ZN9GG3132113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE313;
+extern VTBL_ENTRY _ZTI5EE313[];
+extern VTBL_ENTRY _ZTV5EE313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE313[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF211;
+extern VTBL_ENTRY _ZTI5FF211[];
+extern VTBL_ENTRY _ZTV5FF211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF211[];
+static Base_Class bases_GG3132113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE313, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF211, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3132113[];
+extern void _ZN9GG31321133fooEv();
+extern void _ZN9GG31321133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31321133fooEv,_ZTv0_n20_N9GG31321133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31321133fooEv,_ZThn8_N9GG31321133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31321133barEv,_ZTv0_n24_N9GG31321133barEv)();
+extern void ABISELECT(_ZThn16_N9GG31321133barEv,_ZThn8_N9GG31321133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31321133fooEv,_ZTv0_n12_N9GG31321133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31321133fooEv,_ZThn16_N9GG31321133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31321133barEv,_ZTv0_n16_N9GG31321133barEv)();
+extern void ABISELECT(_ZThn32_N9GG31321133barEv,_ZThn16_N9GG31321133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31321133fooEv,_ZTv0_n12_N9GG31321133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31321133fooEv,_ZThn24_N9GG31321133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31321133fooEv,_ZTv0_n20_N9GG31321133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31321133fooEv,_ZThn32_N9GG31321133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31321133barEv,_ZTv0_n12_N9GG31321133barEv)();
+extern void ABISELECT(_ZThn80_N9GG31321133barEv,_ZThn40_N9GG31321133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3132113[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3132113[0]),
+ (VTBL_ENTRY)&_ZN9GG31321133fooEv,
+ (VTBL_ENTRY)&_ZN9GG31321133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3132113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31321133fooEv,_ZTv0_n20_N9GG31321133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31321133barEv,_ZTv0_n24_N9GG31321133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3132113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31321133fooEv,_ZTv0_n12_N9GG31321133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31321133barEv,_ZTv0_n16_N9GG31321133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3132113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31321133fooEv,_ZTv0_n12_N9GG31321133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3132113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31321133fooEv,_ZTv0_n20_N9GG31321133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3132113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31321133barEv,_ZTv0_n12_N9GG31321133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3132113[];
+extern void _ZN5EE3133fooEv();
+extern void _ZN5EE3133barEv();
+static VTBL_ENTRY _tg__ZTV5EE313__9GG3132113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&_ZN5EE3133fooEv,
+ (VTBL_ENTRY)&_ZN5EE3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv)();
+extern void ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE313__9GG3132113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE313__9GG3132113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+};
+extern void _ZN5FF2113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF211__9GG3132113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN5FF2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF211__9GG3132113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF211__9GG3132113[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv),
+};
+static VTT_ENTRY vtt_GG3132113[] = {
+ {&(_ZTV9GG3132113[7]), 7,37},
+ {&(_ZTV9GG3132113[15]), 15,37},
+ {&(_ZTV9GG3132113[21]), 21,37},
+ {&(_ZTV9GG3132113[26]), 26,37},
+ {&(_ZTV9GG3132113[32]), 32,37},
+ {&(_ZTV9GG3132113[36]), 36,37},
+ {&(_tg__ZTV5EE313__9GG3132113[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE313__9GG3132113[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE313__9GG3132113[3]), 3,4},
+ {&(_tg__ZTV5FF211__9GG3132113[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF211__9GG3132113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF211__9GG3132113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3132113[];
+extern VTBL_ENTRY _ZTV9GG3132113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3132113[];
+static VTBL_ENTRY alt_thunk_names822[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31321133barEv,_ZTv0_n12_N9GG31321133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31321133barEv,_ZThn40_N9GG31321133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31321133barEv,_ZTv0_n16_N9GG31321133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31321133barEv,_ZThn16_N9GG31321133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31321133fooEv,_ZTv0_n12_N9GG31321133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31321133fooEv,_ZThn24_N9GG31321133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31321133fooEv,_ZThn16_N9GG31321133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG31321133barEv,_ZTv0_n24_N9GG31321133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31321133barEv,_ZThn8_N9GG31321133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31321133fooEv,_ZTv0_n20_N9GG31321133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31321133fooEv,_ZThn32_N9GG31321133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31321133fooEv,_ZThn8_N9GG31321133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3132113 = { "GG3132113", // class name
+ bases_GG3132113, 5,
+ &(vtc_GG3132113[0]), // expected_vtbl_contents
+ &(vtt_GG3132113[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3132113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3132113),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3132113),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names822,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3132123 : virtual EE313 , virtual FF212 {
+ int pg;
+ virtual void foo(); // _ZN9GG31321233fooEv
+ virtual void bar(); // _ZN9GG31321233barEv
+ ~GG3132123(); // tgen
+ GG3132123(); // tgen
+};
+//SIG(1 GG3132123) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG3132123 ::foo(){vfunc_called(this, "_ZN9GG31321233fooEv");}
+void GG3132123 ::bar(){vfunc_called(this, "_ZN9GG31321233barEv");}
+GG3132123 ::~GG3132123(){ note_dtor("GG3132123", this);} // tgen
+GG3132123 ::GG3132123(){ note_ctor("GG3132123", this);} // tgen
+
+static void Test_GG3132123()
+{
+ extern Class_Descriptor cd_GG3132123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3132123, buf);
+ GG3132123 *dp, &lv = *(dp=new (buf) GG3132123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3132123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3132123)");
+ check_base_class_offset(lv, (AA3*)(EE313*), ABISELECT(32,16), "GG3132123");
+ check_base_class_offset(lv, (BB1*)(EE313*), ABISELECT(48,24), "GG3132123");
+ check_base_class_offset(lv, (BB1*)(FF212*), ABISELECT(48,24), "GG3132123");
+ check_base_class_offset(lv, (EE313*), ABISELECT(16,8), "GG3132123");
+ check_base_class_offset(lv, (AA2*)(FF212*), ABISELECT(80,40), "GG3132123");
+ check_base_class_offset(lv, (FF212*), ABISELECT(64,32), "GG3132123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3132123.pg");
+ test_class_info(&lv, &cd_GG3132123);
+ dp->~GG3132123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3132123(Test_GG3132123, "GG3132123", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3132123C1Ev();
+extern void _ZN9GG3132123D1Ev();
+Name_Map name_map_GG3132123[] = {
+ NSPAIR(_ZN9GG3132123C1Ev),
+ NSPAIR(_ZN9GG3132123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE313;
+extern VTBL_ENTRY _ZTI5EE313[];
+extern VTBL_ENTRY _ZTV5EE313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE313[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF212;
+extern VTBL_ENTRY _ZTI5FF212[];
+extern VTBL_ENTRY _ZTV5FF212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF212[];
+static Base_Class bases_GG3132123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE313, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF212, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3132123[];
+extern void _ZN9GG31321233fooEv();
+extern void _ZN9GG31321233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31321233fooEv,_ZTv0_n20_N9GG31321233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31321233fooEv,_ZThn8_N9GG31321233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31321233barEv,_ZTv0_n24_N9GG31321233barEv)();
+extern void ABISELECT(_ZThn16_N9GG31321233barEv,_ZThn8_N9GG31321233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31321233fooEv,_ZTv0_n12_N9GG31321233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31321233fooEv,_ZThn16_N9GG31321233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31321233barEv,_ZTv0_n16_N9GG31321233barEv)();
+extern void ABISELECT(_ZThn32_N9GG31321233barEv,_ZThn16_N9GG31321233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31321233fooEv,_ZTv0_n12_N9GG31321233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31321233fooEv,_ZThn24_N9GG31321233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31321233barEv,_ZTv0_n20_N9GG31321233barEv)();
+extern void ABISELECT(_ZThn64_N9GG31321233barEv,_ZThn32_N9GG31321233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31321233barEv,_ZTv0_n12_N9GG31321233barEv)();
+extern void ABISELECT(_ZThn80_N9GG31321233barEv,_ZThn40_N9GG31321233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3132123[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3132123[0]),
+ (VTBL_ENTRY)&_ZN9GG31321233fooEv,
+ (VTBL_ENTRY)&_ZN9GG31321233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3132123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31321233fooEv,_ZTv0_n20_N9GG31321233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31321233barEv,_ZTv0_n24_N9GG31321233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3132123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31321233fooEv,_ZTv0_n12_N9GG31321233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31321233barEv,_ZTv0_n16_N9GG31321233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3132123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31321233fooEv,_ZTv0_n12_N9GG31321233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3132123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31321233barEv,_ZTv0_n20_N9GG31321233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3132123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31321233barEv,_ZTv0_n12_N9GG31321233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3132123[];
+extern void _ZN5EE3133fooEv();
+extern void _ZN5EE3133barEv();
+static VTBL_ENTRY _tg__ZTV5EE313__9GG3132123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&_ZN5EE3133fooEv,
+ (VTBL_ENTRY)&_ZN5EE3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv)();
+extern void ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE313__9GG3132123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE313__9GG3132123[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+};
+extern void _ZN5FF2123barEv();
+static VTBL_ENTRY _tg__ZTV5FF212__9GG3132123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN5FF2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv)();
+extern void ABISELECT(_ZThn16_N5FF2123barEv,_ZThn8_N5FF2123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF212__9GG3132123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF212__9GG3132123[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG3132123[] = {
+ {&(_ZTV9GG3132123[7]), 7,37},
+ {&(_ZTV9GG3132123[15]), 15,37},
+ {&(_ZTV9GG3132123[21]), 21,37},
+ {&(_ZTV9GG3132123[26]), 26,37},
+ {&(_ZTV9GG3132123[32]), 32,37},
+ {&(_ZTV9GG3132123[36]), 36,37},
+ {&(_tg__ZTV5EE313__9GG3132123[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE313__9GG3132123[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE313__9GG3132123[3]), 3,4},
+ {&(_tg__ZTV5FF212__9GG3132123[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF212__9GG3132123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF212__9GG3132123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3132123[];
+extern VTBL_ENTRY _ZTV9GG3132123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3132123[];
+static VTBL_ENTRY alt_thunk_names823[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2123barEv,_ZThn8_N5FF2123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31321233barEv,_ZTv0_n12_N9GG31321233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31321233barEv,_ZThn40_N9GG31321233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31321233barEv,_ZTv0_n20_N9GG31321233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31321233barEv,_ZThn32_N9GG31321233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31321233barEv,_ZTv0_n16_N9GG31321233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31321233barEv,_ZThn16_N9GG31321233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31321233fooEv,_ZTv0_n12_N9GG31321233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31321233fooEv,_ZThn24_N9GG31321233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31321233fooEv,_ZThn16_N9GG31321233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG31321233barEv,_ZTv0_n24_N9GG31321233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31321233barEv,_ZThn8_N9GG31321233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31321233fooEv,_ZTv0_n20_N9GG31321233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31321233fooEv,_ZThn8_N9GG31321233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3132123 = { "GG3132123", // class name
+ bases_GG3132123, 5,
+ &(vtc_GG3132123[0]), // expected_vtbl_contents
+ &(vtt_GG3132123[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3132123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3132123),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3132123),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names823,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3132133 : virtual EE313 , virtual FF213 {
+ int pg;
+ virtual void foo(); // _ZN9GG31321333fooEv
+ virtual void bar(); // _ZN9GG31321333barEv
+ ~GG3132133(); // tgen
+ GG3132133(); // tgen
+};
+//SIG(1 GG3132133) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3132133 ::foo(){vfunc_called(this, "_ZN9GG31321333fooEv");}
+void GG3132133 ::bar(){vfunc_called(this, "_ZN9GG31321333barEv");}
+GG3132133 ::~GG3132133(){ note_dtor("GG3132133", this);} // tgen
+GG3132133 ::GG3132133(){ note_ctor("GG3132133", this);} // tgen
+
+static void Test_GG3132133()
+{
+ extern Class_Descriptor cd_GG3132133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3132133, buf);
+ GG3132133 *dp, &lv = *(dp=new (buf) GG3132133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3132133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3132133)");
+ check_base_class_offset(lv, (AA3*)(EE313*), ABISELECT(32,16), "GG3132133");
+ check_base_class_offset(lv, (BB1*)(EE313*), ABISELECT(48,24), "GG3132133");
+ check_base_class_offset(lv, (BB1*)(FF213*), ABISELECT(48,24), "GG3132133");
+ check_base_class_offset(lv, (EE313*), ABISELECT(16,8), "GG3132133");
+ check_base_class_offset(lv, (AA2*)(FF213*), ABISELECT(80,40), "GG3132133");
+ check_base_class_offset(lv, (FF213*), ABISELECT(64,32), "GG3132133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3132133.pg");
+ test_class_info(&lv, &cd_GG3132133);
+ dp->~GG3132133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3132133(Test_GG3132133, "GG3132133", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3132133C1Ev();
+extern void _ZN9GG3132133D1Ev();
+Name_Map name_map_GG3132133[] = {
+ NSPAIR(_ZN9GG3132133C1Ev),
+ NSPAIR(_ZN9GG3132133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE313;
+extern VTBL_ENTRY _ZTI5EE313[];
+extern VTBL_ENTRY _ZTV5EE313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE313[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF213;
+extern VTBL_ENTRY _ZTI5FF213[];
+extern VTBL_ENTRY _ZTV5FF213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF213[];
+static Base_Class bases_GG3132133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE313, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF213, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3132133[];
+extern void _ZN9GG31321333fooEv();
+extern void _ZN9GG31321333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31321333fooEv,_ZTv0_n20_N9GG31321333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31321333fooEv,_ZThn8_N9GG31321333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31321333barEv,_ZTv0_n24_N9GG31321333barEv)();
+extern void ABISELECT(_ZThn16_N9GG31321333barEv,_ZThn8_N9GG31321333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31321333fooEv,_ZTv0_n12_N9GG31321333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31321333fooEv,_ZThn16_N9GG31321333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31321333barEv,_ZTv0_n16_N9GG31321333barEv)();
+extern void ABISELECT(_ZThn32_N9GG31321333barEv,_ZThn16_N9GG31321333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31321333fooEv,_ZTv0_n12_N9GG31321333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31321333fooEv,_ZThn24_N9GG31321333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31321333fooEv,_ZTv0_n20_N9GG31321333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31321333fooEv,_ZThn32_N9GG31321333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31321333barEv,_ZTv0_n24_N9GG31321333barEv)();
+extern void ABISELECT(_ZThn64_N9GG31321333barEv,_ZThn32_N9GG31321333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31321333barEv,_ZTv0_n12_N9GG31321333barEv)();
+extern void ABISELECT(_ZThn80_N9GG31321333barEv,_ZThn40_N9GG31321333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3132133[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3132133[0]),
+ (VTBL_ENTRY)&_ZN9GG31321333fooEv,
+ (VTBL_ENTRY)&_ZN9GG31321333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3132133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31321333fooEv,_ZTv0_n20_N9GG31321333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31321333barEv,_ZTv0_n24_N9GG31321333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3132133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31321333fooEv,_ZTv0_n12_N9GG31321333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31321333barEv,_ZTv0_n16_N9GG31321333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3132133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31321333fooEv,_ZTv0_n12_N9GG31321333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3132133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31321333fooEv,_ZTv0_n20_N9GG31321333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31321333barEv,_ZTv0_n24_N9GG31321333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3132133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31321333barEv,_ZTv0_n12_N9GG31321333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3132133[];
+extern void _ZN5EE3133fooEv();
+extern void _ZN5EE3133barEv();
+static VTBL_ENTRY _tg__ZTV5EE313__9GG3132133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&_ZN5EE3133fooEv,
+ (VTBL_ENTRY)&_ZN5EE3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv)();
+extern void ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE313__9GG3132133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE313__9GG3132133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+};
+extern void _ZN5FF2133fooEv();
+extern void _ZN5FF2133barEv();
+static VTBL_ENTRY _tg__ZTV5FF213__9GG3132133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&_ZN5FF2133fooEv,
+ (VTBL_ENTRY)&_ZN5FF2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv)();
+extern void ABISELECT(_ZThn16_N5FF2133barEv,_ZThn8_N5FF2133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF213__9GG3132133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF213__9GG3132133[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv),
+};
+static VTT_ENTRY vtt_GG3132133[] = {
+ {&(_ZTV9GG3132133[7]), 7,39},
+ {&(_ZTV9GG3132133[15]), 15,39},
+ {&(_ZTV9GG3132133[21]), 21,39},
+ {&(_ZTV9GG3132133[26]), 26,39},
+ {&(_ZTV9GG3132133[33]), 33,39},
+ {&(_ZTV9GG3132133[38]), 38,39},
+ {&(_tg__ZTV5EE313__9GG3132133[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE313__9GG3132133[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE313__9GG3132133[3]), 3,4},
+ {&(_tg__ZTV5FF213__9GG3132133[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF213__9GG3132133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF213__9GG3132133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3132133[];
+extern VTBL_ENTRY _ZTV9GG3132133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3132133[];
+static VTBL_ENTRY alt_thunk_names824[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2133barEv,_ZThn8_N5FF2133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31321333barEv,_ZTv0_n12_N9GG31321333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31321333barEv,_ZThn40_N9GG31321333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31321333barEv,_ZTv0_n16_N9GG31321333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31321333barEv,_ZThn16_N9GG31321333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31321333fooEv,_ZTv0_n12_N9GG31321333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31321333fooEv,_ZThn24_N9GG31321333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31321333fooEv,_ZThn16_N9GG31321333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG31321333barEv,_ZTv0_n24_N9GG31321333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31321333barEv,_ZThn32_N9GG31321333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31321333barEv,_ZThn8_N9GG31321333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31321333fooEv,_ZTv0_n20_N9GG31321333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31321333fooEv,_ZThn32_N9GG31321333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31321333fooEv,_ZThn8_N9GG31321333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3132133 = { "GG3132133", // class name
+ bases_GG3132133, 5,
+ &(vtc_GG3132133[0]), // expected_vtbl_contents
+ &(vtt_GG3132133[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3132133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3132133),39, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3132133),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names824,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3132213 : virtual EE313 , virtual FF221 {
+ int pg;
+ virtual void foo(); // _ZN9GG31322133fooEv
+ virtual void bar(); // _ZN9GG31322133barEv
+ ~GG3132213(); // tgen
+ GG3132213(); // tgen
+};
+//SIG(1 GG3132213) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3132213 ::foo(){vfunc_called(this, "_ZN9GG31322133fooEv");}
+void GG3132213 ::bar(){vfunc_called(this, "_ZN9GG31322133barEv");}
+GG3132213 ::~GG3132213(){ note_dtor("GG3132213", this);} // tgen
+GG3132213 ::GG3132213(){ note_ctor("GG3132213", this);} // tgen
+
+static void Test_GG3132213()
+{
+ extern Class_Descriptor cd_GG3132213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3132213, buf);
+ GG3132213 *dp, &lv = *(dp=new (buf) GG3132213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3132213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3132213)");
+ check_base_class_offset(lv, (AA3*)(EE313*), ABISELECT(32,16), "GG3132213");
+ check_base_class_offset(lv, (BB1*)(EE313*), ABISELECT(48,24), "GG3132213");
+ check_base_class_offset(lv, (EE313*), ABISELECT(16,8), "GG3132213");
+ check_base_class_offset(lv, (AA2*)(FF221*), ABISELECT(80,40), "GG3132213");
+ check_base_class_offset(lv, (BB2*)(FF221*), ABISELECT(96,48), "GG3132213");
+ check_base_class_offset(lv, (FF221*), ABISELECT(64,32), "GG3132213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3132213.pg");
+ test_class_info(&lv, &cd_GG3132213);
+ dp->~GG3132213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3132213(Test_GG3132213, "GG3132213", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3132213C1Ev();
+extern void _ZN9GG3132213D1Ev();
+Name_Map name_map_GG3132213[] = {
+ NSPAIR(_ZN9GG3132213C1Ev),
+ NSPAIR(_ZN9GG3132213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE313;
+extern VTBL_ENTRY _ZTI5EE313[];
+extern VTBL_ENTRY _ZTV5EE313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE313[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF221;
+extern VTBL_ENTRY _ZTI5FF221[];
+extern VTBL_ENTRY _ZTV5FF221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF221[];
+static Base_Class bases_GG3132213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_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_BB1, ABISELECT(48,24), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE313, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF221, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3132213[];
+extern void _ZN9GG31322133fooEv();
+extern void _ZN9GG31322133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31322133fooEv,_ZTv0_n20_N9GG31322133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31322133fooEv,_ZThn8_N9GG31322133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31322133barEv,_ZTv0_n24_N9GG31322133barEv)();
+extern void ABISELECT(_ZThn16_N9GG31322133barEv,_ZThn8_N9GG31322133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31322133fooEv,_ZTv0_n12_N9GG31322133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31322133fooEv,_ZThn16_N9GG31322133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31322133barEv,_ZTv0_n16_N9GG31322133barEv)();
+extern void ABISELECT(_ZThn32_N9GG31322133barEv,_ZThn16_N9GG31322133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31322133fooEv,_ZTv0_n12_N9GG31322133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31322133fooEv,_ZThn24_N9GG31322133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31322133fooEv,_ZTv0_n20_N9GG31322133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31322133fooEv,_ZThn32_N9GG31322133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31322133barEv,_ZTv0_n12_N9GG31322133barEv)();
+extern void ABISELECT(_ZThn80_N9GG31322133barEv,_ZThn40_N9GG31322133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31322133barEv,_ZTv0_n12_N9GG31322133barEv)();
+extern void ABISELECT(_ZThn96_N9GG31322133barEv,_ZThn48_N9GG31322133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3132213[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3132213[0]),
+ (VTBL_ENTRY)&_ZN9GG31322133fooEv,
+ (VTBL_ENTRY)&_ZN9GG31322133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3132213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31322133fooEv,_ZTv0_n20_N9GG31322133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31322133barEv,_ZTv0_n24_N9GG31322133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3132213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31322133fooEv,_ZTv0_n12_N9GG31322133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31322133barEv,_ZTv0_n16_N9GG31322133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3132213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31322133fooEv,_ZTv0_n12_N9GG31322133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3132213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31322133fooEv,_ZTv0_n20_N9GG31322133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3132213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31322133barEv,_ZTv0_n12_N9GG31322133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3132213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31322133barEv,_ZTv0_n12_N9GG31322133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3132213[];
+extern void _ZN5EE3133fooEv();
+extern void _ZN5EE3133barEv();
+static VTBL_ENTRY _tg__ZTV5EE313__9GG3132213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&_ZN5EE3133fooEv,
+ (VTBL_ENTRY)&_ZN5EE3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv)();
+extern void ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE313__9GG3132213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE313__9GG3132213[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+};
+extern void _ZN5FF2213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF221__9GG3132213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN5FF2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF221__9GG3132213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF221__9GG3132213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG3132213[] = {
+ {&(_ZTV9GG3132213[8]), 8,42},
+ {&(_ZTV9GG3132213[16]), 16,42},
+ {&(_ZTV9GG3132213[22]), 22,42},
+ {&(_ZTV9GG3132213[27]), 27,42},
+ {&(_ZTV9GG3132213[33]), 33,42},
+ {&(_ZTV9GG3132213[37]), 37,42},
+ {&(_ZTV9GG3132213[41]), 41,42},
+ {&(_tg__ZTV5EE313__9GG3132213[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE313__9GG3132213[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE313__9GG3132213[3]), 3,4},
+ {&(_tg__ZTV5FF221__9GG3132213[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF221__9GG3132213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF221__9GG3132213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3132213[];
+extern VTBL_ENTRY _ZTV9GG3132213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3132213[];
+static VTBL_ENTRY alt_thunk_names825[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31322133barEv,_ZTv0_n12_N9GG31322133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31322133barEv,_ZThn48_N9GG31322133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31322133barEv,_ZThn40_N9GG31322133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31322133barEv,_ZTv0_n16_N9GG31322133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31322133barEv,_ZThn16_N9GG31322133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31322133fooEv,_ZTv0_n12_N9GG31322133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31322133fooEv,_ZThn24_N9GG31322133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31322133fooEv,_ZThn16_N9GG31322133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG31322133barEv,_ZTv0_n24_N9GG31322133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31322133barEv,_ZThn8_N9GG31322133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31322133fooEv,_ZTv0_n20_N9GG31322133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31322133fooEv,_ZThn32_N9GG31322133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31322133fooEv,_ZThn8_N9GG31322133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3132213 = { "GG3132213", // class name
+ bases_GG3132213, 6,
+ &(vtc_GG3132213[0]), // expected_vtbl_contents
+ &(vtt_GG3132213[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3132213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3132213),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3132213),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names825,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3132222 : virtual EE313 , virtual FF222 {
+ int pg;
+ virtual void bar(); // _ZN9GG31322223barEv
+ ~GG3132222(); // tgen
+ GG3132222(); // tgen
+};
+//SIG(1 GG3132222) C1{ VBC2{ VBC3{ v2 v1 Fi} VBC4{ v2 Fi} v2 v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+void GG3132222 ::bar(){vfunc_called(this, "_ZN9GG31322223barEv");}
+GG3132222 ::~GG3132222(){ note_dtor("GG3132222", this);} // tgen
+GG3132222 ::GG3132222(){ note_ctor("GG3132222", this);} // tgen
+
+static void Test_GG3132222()
+{
+ extern Class_Descriptor cd_GG3132222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3132222, buf);
+ GG3132222 *dp, &lv = *(dp=new (buf) GG3132222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3132222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3132222)");
+ check_base_class_offset(lv, (AA3*)(EE313*), ABISELECT(32,16), "GG3132222");
+ check_base_class_offset(lv, (BB1*)(EE313*), ABISELECT(48,24), "GG3132222");
+ check_base_class_offset(lv, (EE313*), ABISELECT(16,8), "GG3132222");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(80,40), "GG3132222");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(96,48), "GG3132222");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG3132222");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3132222.pg");
+ test_class_info(&lv, &cd_GG3132222);
+ dp->~GG3132222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3132222(Test_GG3132222, "GG3132222", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3132222C1Ev();
+extern void _ZN9GG3132222D1Ev();
+Name_Map name_map_GG3132222[] = {
+ NSPAIR(_ZN9GG3132222C1Ev),
+ NSPAIR(_ZN9GG3132222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE313;
+extern VTBL_ENTRY _ZTI5EE313[];
+extern VTBL_ENTRY _ZTV5EE313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE313[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG3132222[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE313, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 37, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3132222[];
+extern void _ZN9GG31322223barEv();
+extern void _ZN5EE3133fooEv();
+extern void ABISELECT(_ZTv0_n48_N9GG31322223barEv,_ZTv0_n24_N9GG31322223barEv)();
+extern void ABISELECT(_ZThn16_N9GG31322223barEv,_ZThn8_N9GG31322223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31322223barEv,_ZTv0_n16_N9GG31322223barEv)();
+extern void ABISELECT(_ZThn32_N9GG31322223barEv,_ZThn16_N9GG31322223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31322223barEv,_ZTv0_n20_N9GG31322223barEv)();
+extern void ABISELECT(_ZThn64_N9GG31322223barEv,_ZThn32_N9GG31322223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31322223barEv,_ZTv0_n12_N9GG31322223barEv)();
+extern void ABISELECT(_ZThn80_N9GG31322223barEv,_ZThn40_N9GG31322223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31322223barEv,_ZTv0_n12_N9GG31322223barEv)();
+extern void ABISELECT(_ZThn96_N9GG31322223barEv,_ZThn48_N9GG31322223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3132222[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3132222[0]),
+ (VTBL_ENTRY)&_ZN9GG31322223barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3132222[0]),
+ (VTBL_ENTRY)&_ZN5EE3133fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31322223barEv,_ZTv0_n24_N9GG31322223barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3132222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31322223barEv,_ZTv0_n16_N9GG31322223barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3132222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3132222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31322223barEv,_ZTv0_n20_N9GG31322223barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3132222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31322223barEv,_ZTv0_n12_N9GG31322223barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3132222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31322223barEv,_ZTv0_n12_N9GG31322223barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3132222[];
+extern void _ZN5EE3133fooEv();
+extern void _ZN5EE3133barEv();
+static VTBL_ENTRY _tg__ZTV5EE313__9GG3132222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&_ZN5EE3133fooEv,
+ (VTBL_ENTRY)&_ZN5EE3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv)();
+extern void ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE313__9GG3132222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE313__9GG3132222[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG3132222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG3132222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG3132222[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG3132222[] = {
+ {&(_ZTV9GG3132222[8]), 8,41},
+ {&(_ZTV9GG3132222[15]), 15,41},
+ {&(_ZTV9GG3132222[21]), 21,41},
+ {&(_ZTV9GG3132222[26]), 26,41},
+ {&(_ZTV9GG3132222[32]), 32,41},
+ {&(_ZTV9GG3132222[36]), 36,41},
+ {&(_ZTV9GG3132222[40]), 40,41},
+ {&(_tg__ZTV5EE313__9GG3132222[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE313__9GG3132222[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE313__9GG3132222[3]), 3,4},
+ {&(_tg__ZTV5FF222__9GG3132222[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG3132222[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG3132222[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3132222[];
+extern VTBL_ENTRY _ZTV9GG3132222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3132222[];
+static VTBL_ENTRY alt_thunk_names826[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31322223barEv,_ZTv0_n12_N9GG31322223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31322223barEv,_ZThn48_N9GG31322223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31322223barEv,_ZThn40_N9GG31322223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31322223barEv,_ZTv0_n20_N9GG31322223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31322223barEv,_ZThn32_N9GG31322223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31322223barEv,_ZTv0_n16_N9GG31322223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31322223barEv,_ZThn16_N9GG31322223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG31322223barEv,_ZTv0_n24_N9GG31322223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31322223barEv,_ZThn8_N9GG31322223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3132222 = { "GG3132222", // class name
+ bases_GG3132222, 6,
+ &(vtc_GG3132222[0]), // expected_vtbl_contents
+ &(vtt_GG3132222[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3132222),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3132222),41, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3132222),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names826,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3132223 : virtual EE313 , virtual FF222 {
+ int pg;
+ virtual void foo(); // _ZN9GG31322233fooEv
+ virtual void bar(); // _ZN9GG31322233barEv
+ ~GG3132223(); // tgen
+ GG3132223(); // tgen
+};
+//SIG(1 GG3132223) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3132223 ::foo(){vfunc_called(this, "_ZN9GG31322233fooEv");}
+void GG3132223 ::bar(){vfunc_called(this, "_ZN9GG31322233barEv");}
+GG3132223 ::~GG3132223(){ note_dtor("GG3132223", this);} // tgen
+GG3132223 ::GG3132223(){ note_ctor("GG3132223", this);} // tgen
+
+static void Test_GG3132223()
+{
+ extern Class_Descriptor cd_GG3132223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3132223, buf);
+ GG3132223 *dp, &lv = *(dp=new (buf) GG3132223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3132223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3132223)");
+ check_base_class_offset(lv, (AA3*)(EE313*), ABISELECT(32,16), "GG3132223");
+ check_base_class_offset(lv, (BB1*)(EE313*), ABISELECT(48,24), "GG3132223");
+ check_base_class_offset(lv, (EE313*), ABISELECT(16,8), "GG3132223");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(80,40), "GG3132223");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(96,48), "GG3132223");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG3132223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3132223.pg");
+ test_class_info(&lv, &cd_GG3132223);
+ dp->~GG3132223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3132223(Test_GG3132223, "GG3132223", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3132223C1Ev();
+extern void _ZN9GG3132223D1Ev();
+Name_Map name_map_GG3132223[] = {
+ NSPAIR(_ZN9GG3132223C1Ev),
+ NSPAIR(_ZN9GG3132223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE313;
+extern VTBL_ENTRY _ZTI5EE313[];
+extern VTBL_ENTRY _ZTV5EE313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE313[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG3132223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_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_BB1, ABISELECT(48,24), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE313, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3132223[];
+extern void _ZN9GG31322233fooEv();
+extern void _ZN9GG31322233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31322233fooEv,_ZTv0_n20_N9GG31322233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31322233fooEv,_ZThn8_N9GG31322233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31322233barEv,_ZTv0_n24_N9GG31322233barEv)();
+extern void ABISELECT(_ZThn16_N9GG31322233barEv,_ZThn8_N9GG31322233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31322233fooEv,_ZTv0_n12_N9GG31322233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31322233fooEv,_ZThn16_N9GG31322233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31322233barEv,_ZTv0_n16_N9GG31322233barEv)();
+extern void ABISELECT(_ZThn32_N9GG31322233barEv,_ZThn16_N9GG31322233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31322233fooEv,_ZTv0_n12_N9GG31322233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31322233fooEv,_ZThn24_N9GG31322233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31322233barEv,_ZTv0_n20_N9GG31322233barEv)();
+extern void ABISELECT(_ZThn64_N9GG31322233barEv,_ZThn32_N9GG31322233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31322233barEv,_ZTv0_n12_N9GG31322233barEv)();
+extern void ABISELECT(_ZThn80_N9GG31322233barEv,_ZThn40_N9GG31322233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31322233barEv,_ZTv0_n12_N9GG31322233barEv)();
+extern void ABISELECT(_ZThn96_N9GG31322233barEv,_ZThn48_N9GG31322233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3132223[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3132223[0]),
+ (VTBL_ENTRY)&_ZN9GG31322233fooEv,
+ (VTBL_ENTRY)&_ZN9GG31322233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3132223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31322233fooEv,_ZTv0_n20_N9GG31322233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31322233barEv,_ZTv0_n24_N9GG31322233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3132223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31322233fooEv,_ZTv0_n12_N9GG31322233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31322233barEv,_ZTv0_n16_N9GG31322233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3132223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31322233fooEv,_ZTv0_n12_N9GG31322233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3132223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31322233barEv,_ZTv0_n20_N9GG31322233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3132223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31322233barEv,_ZTv0_n12_N9GG31322233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3132223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31322233barEv,_ZTv0_n12_N9GG31322233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3132223[];
+extern void _ZN5EE3133fooEv();
+extern void _ZN5EE3133barEv();
+static VTBL_ENTRY _tg__ZTV5EE313__9GG3132223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&_ZN5EE3133fooEv,
+ (VTBL_ENTRY)&_ZN5EE3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv)();
+extern void ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE313__9GG3132223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE313__9GG3132223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG3132223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG3132223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG3132223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG3132223[] = {
+ {&(_ZTV9GG3132223[8]), 8,42},
+ {&(_ZTV9GG3132223[16]), 16,42},
+ {&(_ZTV9GG3132223[22]), 22,42},
+ {&(_ZTV9GG3132223[27]), 27,42},
+ {&(_ZTV9GG3132223[33]), 33,42},
+ {&(_ZTV9GG3132223[37]), 37,42},
+ {&(_ZTV9GG3132223[41]), 41,42},
+ {&(_tg__ZTV5EE313__9GG3132223[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE313__9GG3132223[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE313__9GG3132223[3]), 3,4},
+ {&(_tg__ZTV5FF222__9GG3132223[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG3132223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG3132223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3132223[];
+extern VTBL_ENTRY _ZTV9GG3132223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3132223[];
+static VTBL_ENTRY alt_thunk_names827[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31322233barEv,_ZTv0_n12_N9GG31322233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31322233barEv,_ZThn48_N9GG31322233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31322233barEv,_ZThn40_N9GG31322233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31322233barEv,_ZTv0_n20_N9GG31322233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31322233barEv,_ZThn32_N9GG31322233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31322233barEv,_ZTv0_n16_N9GG31322233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31322233barEv,_ZThn16_N9GG31322233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31322233fooEv,_ZTv0_n12_N9GG31322233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31322233fooEv,_ZThn24_N9GG31322233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31322233fooEv,_ZThn16_N9GG31322233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG31322233barEv,_ZTv0_n24_N9GG31322233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31322233barEv,_ZThn8_N9GG31322233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31322233fooEv,_ZTv0_n20_N9GG31322233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31322233fooEv,_ZThn8_N9GG31322233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3132223 = { "GG3132223", // class name
+ bases_GG3132223, 6,
+ &(vtc_GG3132223[0]), // expected_vtbl_contents
+ &(vtt_GG3132223[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3132223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3132223),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3132223),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names827,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3132233 : virtual EE313 , virtual FF223 {
+ int pg;
+ virtual void foo(); // _ZN9GG31322333fooEv
+ virtual void bar(); // _ZN9GG31322333barEv
+ ~GG3132233(); // tgen
+ GG3132233(); // tgen
+};
+//SIG(1 GG3132233) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3132233 ::foo(){vfunc_called(this, "_ZN9GG31322333fooEv");}
+void GG3132233 ::bar(){vfunc_called(this, "_ZN9GG31322333barEv");}
+GG3132233 ::~GG3132233(){ note_dtor("GG3132233", this);} // tgen
+GG3132233 ::GG3132233(){ note_ctor("GG3132233", this);} // tgen
+
+static void Test_GG3132233()
+{
+ extern Class_Descriptor cd_GG3132233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3132233, buf);
+ GG3132233 *dp, &lv = *(dp=new (buf) GG3132233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3132233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3132233)");
+ check_base_class_offset(lv, (AA3*)(EE313*), ABISELECT(32,16), "GG3132233");
+ check_base_class_offset(lv, (BB1*)(EE313*), ABISELECT(48,24), "GG3132233");
+ check_base_class_offset(lv, (EE313*), ABISELECT(16,8), "GG3132233");
+ check_base_class_offset(lv, (AA2*)(FF223*), ABISELECT(80,40), "GG3132233");
+ check_base_class_offset(lv, (BB2*)(FF223*), ABISELECT(96,48), "GG3132233");
+ check_base_class_offset(lv, (FF223*), ABISELECT(64,32), "GG3132233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3132233.pg");
+ test_class_info(&lv, &cd_GG3132233);
+ dp->~GG3132233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3132233(Test_GG3132233, "GG3132233", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3132233C1Ev();
+extern void _ZN9GG3132233D1Ev();
+Name_Map name_map_GG3132233[] = {
+ NSPAIR(_ZN9GG3132233C1Ev),
+ NSPAIR(_ZN9GG3132233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE313;
+extern VTBL_ENTRY _ZTI5EE313[];
+extern VTBL_ENTRY _ZTV5EE313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE313[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF223;
+extern VTBL_ENTRY _ZTI5FF223[];
+extern VTBL_ENTRY _ZTV5FF223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF223[];
+static Base_Class bases_GG3132233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_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_BB1, ABISELECT(48,24), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE313, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 40, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF223, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3132233[];
+extern void _ZN9GG31322333fooEv();
+extern void _ZN9GG31322333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31322333fooEv,_ZTv0_n20_N9GG31322333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31322333fooEv,_ZThn8_N9GG31322333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31322333barEv,_ZTv0_n24_N9GG31322333barEv)();
+extern void ABISELECT(_ZThn16_N9GG31322333barEv,_ZThn8_N9GG31322333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31322333fooEv,_ZTv0_n12_N9GG31322333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31322333fooEv,_ZThn16_N9GG31322333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31322333barEv,_ZTv0_n16_N9GG31322333barEv)();
+extern void ABISELECT(_ZThn32_N9GG31322333barEv,_ZThn16_N9GG31322333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31322333fooEv,_ZTv0_n12_N9GG31322333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31322333fooEv,_ZThn24_N9GG31322333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31322333fooEv,_ZTv0_n20_N9GG31322333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31322333fooEv,_ZThn32_N9GG31322333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31322333barEv,_ZTv0_n24_N9GG31322333barEv)();
+extern void ABISELECT(_ZThn64_N9GG31322333barEv,_ZThn32_N9GG31322333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31322333barEv,_ZTv0_n12_N9GG31322333barEv)();
+extern void ABISELECT(_ZThn80_N9GG31322333barEv,_ZThn40_N9GG31322333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31322333barEv,_ZTv0_n12_N9GG31322333barEv)();
+extern void ABISELECT(_ZThn96_N9GG31322333barEv,_ZThn48_N9GG31322333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3132233[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3132233[0]),
+ (VTBL_ENTRY)&_ZN9GG31322333fooEv,
+ (VTBL_ENTRY)&_ZN9GG31322333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3132233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31322333fooEv,_ZTv0_n20_N9GG31322333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31322333barEv,_ZTv0_n24_N9GG31322333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3132233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31322333fooEv,_ZTv0_n12_N9GG31322333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31322333barEv,_ZTv0_n16_N9GG31322333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3132233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31322333fooEv,_ZTv0_n12_N9GG31322333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3132233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31322333fooEv,_ZTv0_n20_N9GG31322333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31322333barEv,_ZTv0_n24_N9GG31322333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3132233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31322333barEv,_ZTv0_n12_N9GG31322333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3132233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31322333barEv,_ZTv0_n12_N9GG31322333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3132233[];
+extern void _ZN5EE3133fooEv();
+extern void _ZN5EE3133barEv();
+static VTBL_ENTRY _tg__ZTV5EE313__9GG3132233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&_ZN5EE3133fooEv,
+ (VTBL_ENTRY)&_ZN5EE3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv)();
+extern void ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE313__9GG3132233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE313__9GG3132233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+};
+extern void _ZN5FF2233fooEv();
+extern void _ZN5FF2233barEv();
+static VTBL_ENTRY _tg__ZTV5FF223__9GG3132233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&_ZN5FF2233fooEv,
+ (VTBL_ENTRY)&_ZN5FF2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+extern void ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF223__9GG3132233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+extern void ABISELECT(_ZThn32_N5FF2233barEv,_ZThn16_N5FF2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF223__9GG3132233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+static VTT_ENTRY vtt_GG3132233[] = {
+ {&(_ZTV9GG3132233[8]), 8,44},
+ {&(_ZTV9GG3132233[16]), 16,44},
+ {&(_ZTV9GG3132233[22]), 22,44},
+ {&(_ZTV9GG3132233[27]), 27,44},
+ {&(_ZTV9GG3132233[34]), 34,44},
+ {&(_ZTV9GG3132233[39]), 39,44},
+ {&(_ZTV9GG3132233[43]), 43,44},
+ {&(_tg__ZTV5EE313__9GG3132233[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE313__9GG3132233[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE313__9GG3132233[3]), 3,4},
+ {&(_tg__ZTV5FF223__9GG3132233[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF223__9GG3132233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF223__9GG3132233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3132233[];
+extern VTBL_ENTRY _ZTV9GG3132233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3132233[];
+static VTBL_ENTRY alt_thunk_names828[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2233barEv,_ZThn16_N5FF2233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31322333barEv,_ZTv0_n12_N9GG31322333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31322333barEv,_ZThn48_N9GG31322333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31322333barEv,_ZThn40_N9GG31322333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31322333barEv,_ZTv0_n16_N9GG31322333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31322333barEv,_ZThn16_N9GG31322333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31322333fooEv,_ZTv0_n12_N9GG31322333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31322333fooEv,_ZThn24_N9GG31322333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31322333fooEv,_ZThn16_N9GG31322333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG31322333barEv,_ZTv0_n24_N9GG31322333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31322333barEv,_ZThn32_N9GG31322333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31322333barEv,_ZThn8_N9GG31322333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31322333fooEv,_ZTv0_n20_N9GG31322333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31322333fooEv,_ZThn32_N9GG31322333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31322333fooEv,_ZThn8_N9GG31322333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3132233 = { "GG3132233", // class name
+ bases_GG3132233, 6,
+ &(vtc_GG3132233[0]), // expected_vtbl_contents
+ &(vtt_GG3132233[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3132233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3132233),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3132233),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names828,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3132313 : virtual EE313 , virtual FF231 {
+ int pg;
+ virtual void foo(); // _ZN9GG31323133fooEv
+ virtual void bar(); // _ZN9GG31323133barEv
+ ~GG3132313(); // tgen
+ GG3132313(); // tgen
+};
+//SIG(1 GG3132313) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3132313 ::foo(){vfunc_called(this, "_ZN9GG31323133fooEv");}
+void GG3132313 ::bar(){vfunc_called(this, "_ZN9GG31323133barEv");}
+GG3132313 ::~GG3132313(){ note_dtor("GG3132313", this);} // tgen
+GG3132313 ::GG3132313(){ note_ctor("GG3132313", this);} // tgen
+
+static void Test_GG3132313()
+{
+ extern Class_Descriptor cd_GG3132313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3132313, buf);
+ GG3132313 *dp, &lv = *(dp=new (buf) GG3132313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3132313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3132313)");
+ check_base_class_offset(lv, (AA3*)(EE313*), ABISELECT(32,16), "GG3132313");
+ check_base_class_offset(lv, (BB1*)(EE313*), ABISELECT(48,24), "GG3132313");
+ check_base_class_offset(lv, (EE313*), ABISELECT(16,8), "GG3132313");
+ check_base_class_offset(lv, (AA2*)(FF231*), ABISELECT(80,40), "GG3132313");
+ check_base_class_offset(lv, (BB3*)(FF231*), ABISELECT(96,48), "GG3132313");
+ check_base_class_offset(lv, (FF231*), ABISELECT(64,32), "GG3132313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3132313.pg");
+ test_class_info(&lv, &cd_GG3132313);
+ dp->~GG3132313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3132313(Test_GG3132313, "GG3132313", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3132313C1Ev();
+extern void _ZN9GG3132313D1Ev();
+Name_Map name_map_GG3132313[] = {
+ NSPAIR(_ZN9GG3132313C1Ev),
+ NSPAIR(_ZN9GG3132313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE313;
+extern VTBL_ENTRY _ZTI5EE313[];
+extern VTBL_ENTRY _ZTV5EE313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE313[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF231;
+extern VTBL_ENTRY _ZTI5FF231[];
+extern VTBL_ENTRY _ZTV5FF231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF231[];
+static Base_Class bases_GG3132313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_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_BB1, ABISELECT(48,24), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE313, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF231, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3132313[];
+extern void _ZN9GG31323133fooEv();
+extern void _ZN9GG31323133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31323133fooEv,_ZTv0_n20_N9GG31323133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31323133fooEv,_ZThn8_N9GG31323133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31323133barEv,_ZTv0_n24_N9GG31323133barEv)();
+extern void ABISELECT(_ZThn16_N9GG31323133barEv,_ZThn8_N9GG31323133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31323133fooEv,_ZTv0_n12_N9GG31323133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31323133fooEv,_ZThn16_N9GG31323133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31323133barEv,_ZTv0_n16_N9GG31323133barEv)();
+extern void ABISELECT(_ZThn32_N9GG31323133barEv,_ZThn16_N9GG31323133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31323133fooEv,_ZTv0_n12_N9GG31323133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31323133fooEv,_ZThn24_N9GG31323133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31323133fooEv,_ZTv0_n20_N9GG31323133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31323133fooEv,_ZThn32_N9GG31323133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31323133barEv,_ZTv0_n12_N9GG31323133barEv)();
+extern void ABISELECT(_ZThn80_N9GG31323133barEv,_ZThn40_N9GG31323133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31323133fooEv,_ZTv0_n12_N9GG31323133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG31323133fooEv,_ZThn48_N9GG31323133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31323133barEv,_ZTv0_n16_N9GG31323133barEv)();
+extern void ABISELECT(_ZThn96_N9GG31323133barEv,_ZThn48_N9GG31323133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3132313[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3132313[0]),
+ (VTBL_ENTRY)&_ZN9GG31323133fooEv,
+ (VTBL_ENTRY)&_ZN9GG31323133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3132313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31323133fooEv,_ZTv0_n20_N9GG31323133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31323133barEv,_ZTv0_n24_N9GG31323133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3132313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31323133fooEv,_ZTv0_n12_N9GG31323133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31323133barEv,_ZTv0_n16_N9GG31323133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3132313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31323133fooEv,_ZTv0_n12_N9GG31323133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3132313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31323133fooEv,_ZTv0_n20_N9GG31323133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3132313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31323133barEv,_ZTv0_n12_N9GG31323133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3132313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31323133fooEv,_ZTv0_n12_N9GG31323133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31323133barEv,_ZTv0_n16_N9GG31323133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3132313[];
+extern void _ZN5EE3133fooEv();
+extern void _ZN5EE3133barEv();
+static VTBL_ENTRY _tg__ZTV5EE313__9GG3132313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&_ZN5EE3133fooEv,
+ (VTBL_ENTRY)&_ZN5EE3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv)();
+extern void ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE313__9GG3132313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE313__9GG3132313[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+};
+extern void _ZN5FF2313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF231__9GG3132313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN5FF2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF231__9GG3132313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2313fooEv,_ZThn16_N5FF2313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF231__9GG3132313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG3132313[] = {
+ {&(_ZTV9GG3132313[8]), 8,44},
+ {&(_ZTV9GG3132313[16]), 16,44},
+ {&(_ZTV9GG3132313[22]), 22,44},
+ {&(_ZTV9GG3132313[27]), 27,44},
+ {&(_ZTV9GG3132313[33]), 33,44},
+ {&(_ZTV9GG3132313[37]), 37,44},
+ {&(_ZTV9GG3132313[42]), 42,44},
+ {&(_tg__ZTV5EE313__9GG3132313[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE313__9GG3132313[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE313__9GG3132313[3]), 3,4},
+ {&(_tg__ZTV5FF231__9GG3132313[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF231__9GG3132313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF231__9GG3132313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3132313[];
+extern VTBL_ENTRY _ZTV9GG3132313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3132313[];
+static VTBL_ENTRY alt_thunk_names829[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2313fooEv,_ZThn16_N5FF2313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31323133barEv,_ZTv0_n12_N9GG31323133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31323133barEv,_ZThn40_N9GG31323133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31323133barEv,_ZTv0_n16_N9GG31323133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31323133barEv,_ZThn48_N9GG31323133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31323133barEv,_ZThn16_N9GG31323133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31323133fooEv,_ZTv0_n12_N9GG31323133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31323133fooEv,_ZThn48_N9GG31323133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31323133fooEv,_ZThn24_N9GG31323133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31323133fooEv,_ZThn16_N9GG31323133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG31323133barEv,_ZTv0_n24_N9GG31323133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31323133barEv,_ZThn8_N9GG31323133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31323133fooEv,_ZTv0_n20_N9GG31323133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31323133fooEv,_ZThn32_N9GG31323133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31323133fooEv,_ZThn8_N9GG31323133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3132313 = { "GG3132313", // class name
+ bases_GG3132313, 6,
+ &(vtc_GG3132313[0]), // expected_vtbl_contents
+ &(vtt_GG3132313[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3132313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3132313),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3132313),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names829,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3132323 : virtual EE313 , virtual FF232 {
+ int pg;
+ virtual void foo(); // _ZN9GG31323233fooEv
+ virtual void bar(); // _ZN9GG31323233barEv
+ ~GG3132323(); // tgen
+ GG3132323(); // tgen
+};
+//SIG(1 GG3132323) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3132323 ::foo(){vfunc_called(this, "_ZN9GG31323233fooEv");}
+void GG3132323 ::bar(){vfunc_called(this, "_ZN9GG31323233barEv");}
+GG3132323 ::~GG3132323(){ note_dtor("GG3132323", this);} // tgen
+GG3132323 ::GG3132323(){ note_ctor("GG3132323", this);} // tgen
+
+static void Test_GG3132323()
+{
+ extern Class_Descriptor cd_GG3132323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3132323, buf);
+ GG3132323 *dp, &lv = *(dp=new (buf) GG3132323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3132323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3132323)");
+ check_base_class_offset(lv, (AA3*)(EE313*), ABISELECT(32,16), "GG3132323");
+ check_base_class_offset(lv, (BB1*)(EE313*), ABISELECT(48,24), "GG3132323");
+ check_base_class_offset(lv, (EE313*), ABISELECT(16,8), "GG3132323");
+ check_base_class_offset(lv, (AA2*)(FF232*), ABISELECT(80,40), "GG3132323");
+ check_base_class_offset(lv, (BB3*)(FF232*), ABISELECT(96,48), "GG3132323");
+ check_base_class_offset(lv, (FF232*), ABISELECT(64,32), "GG3132323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3132323.pg");
+ test_class_info(&lv, &cd_GG3132323);
+ dp->~GG3132323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3132323(Test_GG3132323, "GG3132323", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3132323C1Ev();
+extern void _ZN9GG3132323D1Ev();
+Name_Map name_map_GG3132323[] = {
+ NSPAIR(_ZN9GG3132323C1Ev),
+ NSPAIR(_ZN9GG3132323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE313;
+extern VTBL_ENTRY _ZTI5EE313[];
+extern VTBL_ENTRY _ZTV5EE313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE313[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF232;
+extern VTBL_ENTRY _ZTI5FF232[];
+extern VTBL_ENTRY _ZTV5FF232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF232[];
+static Base_Class bases_GG3132323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_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_BB1, ABISELECT(48,24), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE313, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF232, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3132323[];
+extern void _ZN9GG31323233fooEv();
+extern void _ZN9GG31323233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31323233fooEv,_ZTv0_n20_N9GG31323233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31323233fooEv,_ZThn8_N9GG31323233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31323233barEv,_ZTv0_n24_N9GG31323233barEv)();
+extern void ABISELECT(_ZThn16_N9GG31323233barEv,_ZThn8_N9GG31323233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31323233fooEv,_ZTv0_n12_N9GG31323233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31323233fooEv,_ZThn16_N9GG31323233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31323233barEv,_ZTv0_n16_N9GG31323233barEv)();
+extern void ABISELECT(_ZThn32_N9GG31323233barEv,_ZThn16_N9GG31323233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31323233fooEv,_ZTv0_n12_N9GG31323233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31323233fooEv,_ZThn24_N9GG31323233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31323233barEv,_ZTv0_n20_N9GG31323233barEv)();
+extern void ABISELECT(_ZThn64_N9GG31323233barEv,_ZThn32_N9GG31323233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31323233barEv,_ZTv0_n12_N9GG31323233barEv)();
+extern void ABISELECT(_ZThn80_N9GG31323233barEv,_ZThn40_N9GG31323233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31323233fooEv,_ZTv0_n12_N9GG31323233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG31323233fooEv,_ZThn48_N9GG31323233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31323233barEv,_ZTv0_n16_N9GG31323233barEv)();
+extern void ABISELECT(_ZThn96_N9GG31323233barEv,_ZThn48_N9GG31323233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3132323[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3132323[0]),
+ (VTBL_ENTRY)&_ZN9GG31323233fooEv,
+ (VTBL_ENTRY)&_ZN9GG31323233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3132323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31323233fooEv,_ZTv0_n20_N9GG31323233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31323233barEv,_ZTv0_n24_N9GG31323233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3132323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31323233fooEv,_ZTv0_n12_N9GG31323233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31323233barEv,_ZTv0_n16_N9GG31323233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3132323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31323233fooEv,_ZTv0_n12_N9GG31323233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3132323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31323233barEv,_ZTv0_n20_N9GG31323233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3132323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31323233barEv,_ZTv0_n12_N9GG31323233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3132323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31323233fooEv,_ZTv0_n12_N9GG31323233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31323233barEv,_ZTv0_n16_N9GG31323233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3132323[];
+extern void _ZN5EE3133fooEv();
+extern void _ZN5EE3133barEv();
+static VTBL_ENTRY _tg__ZTV5EE313__9GG3132323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&_ZN5EE3133fooEv,
+ (VTBL_ENTRY)&_ZN5EE3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv)();
+extern void ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE313__9GG3132323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE313__9GG3132323[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+};
+extern void _ZN5FF2323barEv();
+static VTBL_ENTRY _tg__ZTV5FF232__9GG3132323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN5FF2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv)();
+extern void ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF232__9GG3132323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv)();
+extern void ABISELECT(_ZThn32_N5FF2323barEv,_ZThn16_N5FF2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF232__9GG3132323[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv),
+};
+static VTT_ENTRY vtt_GG3132323[] = {
+ {&(_ZTV9GG3132323[8]), 8,44},
+ {&(_ZTV9GG3132323[16]), 16,44},
+ {&(_ZTV9GG3132323[22]), 22,44},
+ {&(_ZTV9GG3132323[27]), 27,44},
+ {&(_ZTV9GG3132323[33]), 33,44},
+ {&(_ZTV9GG3132323[37]), 37,44},
+ {&(_ZTV9GG3132323[42]), 42,44},
+ {&(_tg__ZTV5EE313__9GG3132323[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE313__9GG3132323[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE313__9GG3132323[3]), 3,4},
+ {&(_tg__ZTV5FF232__9GG3132323[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF232__9GG3132323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF232__9GG3132323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3132323[];
+extern VTBL_ENTRY _ZTV9GG3132323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3132323[];
+static VTBL_ENTRY alt_thunk_names830[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2323barEv,_ZThn16_N5FF2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31323233barEv,_ZTv0_n12_N9GG31323233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31323233barEv,_ZThn40_N9GG31323233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31323233barEv,_ZTv0_n20_N9GG31323233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31323233barEv,_ZThn32_N9GG31323233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31323233barEv,_ZTv0_n16_N9GG31323233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31323233barEv,_ZThn48_N9GG31323233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31323233barEv,_ZThn16_N9GG31323233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31323233fooEv,_ZTv0_n12_N9GG31323233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31323233fooEv,_ZThn48_N9GG31323233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31323233fooEv,_ZThn24_N9GG31323233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31323233fooEv,_ZThn16_N9GG31323233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG31323233barEv,_ZTv0_n24_N9GG31323233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31323233barEv,_ZThn8_N9GG31323233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31323233fooEv,_ZTv0_n20_N9GG31323233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31323233fooEv,_ZThn8_N9GG31323233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3132323 = { "GG3132323", // class name
+ bases_GG3132323, 6,
+ &(vtc_GG3132323[0]), // expected_vtbl_contents
+ &(vtt_GG3132323[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3132323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3132323),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3132323),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names830,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3132333 : virtual EE313 , virtual FF233 {
+ int pg;
+ virtual void foo(); // _ZN9GG31323333fooEv
+ virtual void bar(); // _ZN9GG31323333barEv
+ ~GG3132333(); // tgen
+ GG3132333(); // tgen
+};
+//SIG(1 GG3132333) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3132333 ::foo(){vfunc_called(this, "_ZN9GG31323333fooEv");}
+void GG3132333 ::bar(){vfunc_called(this, "_ZN9GG31323333barEv");}
+GG3132333 ::~GG3132333(){ note_dtor("GG3132333", this);} // tgen
+GG3132333 ::GG3132333(){ note_ctor("GG3132333", this);} // tgen
+
+static void Test_GG3132333()
+{
+ extern Class_Descriptor cd_GG3132333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3132333, buf);
+ GG3132333 *dp, &lv = *(dp=new (buf) GG3132333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3132333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3132333)");
+ check_base_class_offset(lv, (AA3*)(EE313*), ABISELECT(32,16), "GG3132333");
+ check_base_class_offset(lv, (BB1*)(EE313*), ABISELECT(48,24), "GG3132333");
+ check_base_class_offset(lv, (EE313*), ABISELECT(16,8), "GG3132333");
+ check_base_class_offset(lv, (AA2*)(FF233*), ABISELECT(80,40), "GG3132333");
+ check_base_class_offset(lv, (BB3*)(FF233*), ABISELECT(96,48), "GG3132333");
+ check_base_class_offset(lv, (FF233*), ABISELECT(64,32), "GG3132333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3132333.pg");
+ test_class_info(&lv, &cd_GG3132333);
+ dp->~GG3132333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3132333(Test_GG3132333, "GG3132333", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3132333C1Ev();
+extern void _ZN9GG3132333D1Ev();
+Name_Map name_map_GG3132333[] = {
+ NSPAIR(_ZN9GG3132333C1Ev),
+ NSPAIR(_ZN9GG3132333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE313;
+extern VTBL_ENTRY _ZTI5EE313[];
+extern VTBL_ENTRY _ZTV5EE313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE313[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF233;
+extern VTBL_ENTRY _ZTI5FF233[];
+extern VTBL_ENTRY _ZTV5FF233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF233[];
+static Base_Class bases_GG3132333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_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_BB1, ABISELECT(48,24), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE313, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 40, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF233, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3132333[];
+extern void _ZN9GG31323333fooEv();
+extern void _ZN9GG31323333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31323333fooEv,_ZTv0_n20_N9GG31323333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31323333fooEv,_ZThn8_N9GG31323333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31323333barEv,_ZTv0_n24_N9GG31323333barEv)();
+extern void ABISELECT(_ZThn16_N9GG31323333barEv,_ZThn8_N9GG31323333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31323333fooEv,_ZTv0_n12_N9GG31323333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31323333fooEv,_ZThn16_N9GG31323333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31323333barEv,_ZTv0_n16_N9GG31323333barEv)();
+extern void ABISELECT(_ZThn32_N9GG31323333barEv,_ZThn16_N9GG31323333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31323333fooEv,_ZTv0_n12_N9GG31323333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31323333fooEv,_ZThn24_N9GG31323333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31323333fooEv,_ZTv0_n20_N9GG31323333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31323333fooEv,_ZThn32_N9GG31323333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31323333barEv,_ZTv0_n24_N9GG31323333barEv)();
+extern void ABISELECT(_ZThn64_N9GG31323333barEv,_ZThn32_N9GG31323333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31323333barEv,_ZTv0_n12_N9GG31323333barEv)();
+extern void ABISELECT(_ZThn80_N9GG31323333barEv,_ZThn40_N9GG31323333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31323333fooEv,_ZTv0_n12_N9GG31323333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG31323333fooEv,_ZThn48_N9GG31323333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31323333barEv,_ZTv0_n16_N9GG31323333barEv)();
+extern void ABISELECT(_ZThn96_N9GG31323333barEv,_ZThn48_N9GG31323333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3132333[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3132333[0]),
+ (VTBL_ENTRY)&_ZN9GG31323333fooEv,
+ (VTBL_ENTRY)&_ZN9GG31323333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3132333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31323333fooEv,_ZTv0_n20_N9GG31323333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31323333barEv,_ZTv0_n24_N9GG31323333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3132333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31323333fooEv,_ZTv0_n12_N9GG31323333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31323333barEv,_ZTv0_n16_N9GG31323333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3132333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31323333fooEv,_ZTv0_n12_N9GG31323333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3132333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31323333fooEv,_ZTv0_n20_N9GG31323333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31323333barEv,_ZTv0_n24_N9GG31323333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3132333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31323333barEv,_ZTv0_n12_N9GG31323333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3132333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31323333fooEv,_ZTv0_n12_N9GG31323333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31323333barEv,_ZTv0_n16_N9GG31323333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3132333[];
+extern void _ZN5EE3133fooEv();
+extern void _ZN5EE3133barEv();
+static VTBL_ENTRY _tg__ZTV5EE313__9GG3132333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&_ZN5EE3133fooEv,
+ (VTBL_ENTRY)&_ZN5EE3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv)();
+extern void ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE313__9GG3132333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE313__9GG3132333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+};
+extern void _ZN5FF2333fooEv();
+extern void _ZN5FF2333barEv();
+static VTBL_ENTRY _tg__ZTV5FF233__9GG3132333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&_ZN5FF2333fooEv,
+ (VTBL_ENTRY)&_ZN5FF2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv)();
+extern void ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF233__9GG3132333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2333fooEv,_ZThn16_N5FF2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv)();
+extern void ABISELECT(_ZThn32_N5FF2333barEv,_ZThn16_N5FF2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF233__9GG3132333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv),
+};
+static VTT_ENTRY vtt_GG3132333[] = {
+ {&(_ZTV9GG3132333[8]), 8,46},
+ {&(_ZTV9GG3132333[16]), 16,46},
+ {&(_ZTV9GG3132333[22]), 22,46},
+ {&(_ZTV9GG3132333[27]), 27,46},
+ {&(_ZTV9GG3132333[34]), 34,46},
+ {&(_ZTV9GG3132333[39]), 39,46},
+ {&(_ZTV9GG3132333[44]), 44,46},
+ {&(_tg__ZTV5EE313__9GG3132333[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE313__9GG3132333[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE313__9GG3132333[3]), 3,4},
+ {&(_tg__ZTV5FF233__9GG3132333[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF233__9GG3132333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF233__9GG3132333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3132333[];
+extern VTBL_ENTRY _ZTV9GG3132333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3132333[];
+static VTBL_ENTRY alt_thunk_names831[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2333barEv,_ZThn16_N5FF2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2333fooEv,_ZThn16_N5FF2333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31323333barEv,_ZTv0_n12_N9GG31323333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31323333barEv,_ZThn40_N9GG31323333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31323333barEv,_ZTv0_n16_N9GG31323333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31323333barEv,_ZThn48_N9GG31323333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31323333barEv,_ZThn16_N9GG31323333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31323333fooEv,_ZTv0_n12_N9GG31323333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG31323333fooEv,_ZThn48_N9GG31323333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31323333fooEv,_ZThn24_N9GG31323333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31323333fooEv,_ZThn16_N9GG31323333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG31323333barEv,_ZTv0_n24_N9GG31323333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31323333barEv,_ZThn32_N9GG31323333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31323333barEv,_ZThn8_N9GG31323333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31323333fooEv,_ZTv0_n20_N9GG31323333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31323333fooEv,_ZThn32_N9GG31323333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31323333fooEv,_ZThn8_N9GG31323333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3132333 = { "GG3132333", // class name
+ bases_GG3132333, 6,
+ &(vtc_GG3132333[0]), // expected_vtbl_contents
+ &(vtt_GG3132333[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3132333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3132333),46, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3132333),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names831,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3133113 : virtual EE313 , virtual FF311 {
+ int pg;
+ virtual void foo(); // _ZN9GG31331133fooEv
+ virtual void bar(); // _ZN9GG31331133barEv
+ ~GG3133113(); // tgen
+ GG3133113(); // tgen
+};
+//SIG(1 GG3133113) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC3 VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG3133113 ::foo(){vfunc_called(this, "_ZN9GG31331133fooEv");}
+void GG3133113 ::bar(){vfunc_called(this, "_ZN9GG31331133barEv");}
+GG3133113 ::~GG3133113(){ note_dtor("GG3133113", this);} // tgen
+GG3133113 ::GG3133113(){ note_ctor("GG3133113", this);} // tgen
+
+static void Test_GG3133113()
+{
+ extern Class_Descriptor cd_GG3133113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG3133113, buf);
+ GG3133113 *dp, &lv = *(dp=new (buf) GG3133113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG3133113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3133113)");
+ check_base_class_offset(lv, (AA3*)(EE313*), ABISELECT(32,16), "GG3133113");
+ check_base_class_offset(lv, (AA3*)(FF311*), ABISELECT(32,16), "GG3133113");
+ check_base_class_offset(lv, (BB1*)(EE313*), ABISELECT(48,24), "GG3133113");
+ check_base_class_offset(lv, (BB1*)(FF311*), ABISELECT(48,24), "GG3133113");
+ check_base_class_offset(lv, (EE313*), ABISELECT(16,8), "GG3133113");
+ check_base_class_offset(lv, (FF311*), ABISELECT(64,32), "GG3133113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3133113.pg");
+ test_class_info(&lv, &cd_GG3133113);
+ dp->~GG3133113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3133113(Test_GG3133113, "GG3133113", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG3133113C1Ev();
+extern void _ZN9GG3133113D1Ev();
+Name_Map name_map_GG3133113[] = {
+ NSPAIR(_ZN9GG3133113C1Ev),
+ NSPAIR(_ZN9GG3133113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE313;
+extern VTBL_ENTRY _ZTI5EE313[];
+extern VTBL_ENTRY _ZTV5EE313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE313[];
+extern Class_Descriptor cd_FF311;
+extern VTBL_ENTRY _ZTI5FF311[];
+extern VTBL_ENTRY _ZTV5FF311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF311[];
+static Base_Class bases_GG3133113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE313, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF311, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3133113[];
+extern void _ZN9GG31331133fooEv();
+extern void _ZN9GG31331133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31331133fooEv,_ZTv0_n20_N9GG31331133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31331133fooEv,_ZThn8_N9GG31331133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31331133barEv,_ZTv0_n24_N9GG31331133barEv)();
+extern void ABISELECT(_ZThn16_N9GG31331133barEv,_ZThn8_N9GG31331133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31331133fooEv,_ZTv0_n12_N9GG31331133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31331133fooEv,_ZThn16_N9GG31331133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31331133barEv,_ZTv0_n16_N9GG31331133barEv)();
+extern void ABISELECT(_ZThn32_N9GG31331133barEv,_ZThn16_N9GG31331133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31331133fooEv,_ZTv0_n12_N9GG31331133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31331133fooEv,_ZThn24_N9GG31331133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31331133fooEv,_ZTv0_n20_N9GG31331133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31331133fooEv,_ZThn32_N9GG31331133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3133113[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3133113[0]),
+ (VTBL_ENTRY)&_ZN9GG31331133fooEv,
+ (VTBL_ENTRY)&_ZN9GG31331133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3133113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31331133fooEv,_ZTv0_n20_N9GG31331133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31331133barEv,_ZTv0_n24_N9GG31331133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3133113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31331133fooEv,_ZTv0_n12_N9GG31331133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31331133barEv,_ZTv0_n16_N9GG31331133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3133113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31331133fooEv,_ZTv0_n12_N9GG31331133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3133113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31331133fooEv,_ZTv0_n20_N9GG31331133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3133113[];
+extern void _ZN5EE3133fooEv();
+extern void _ZN5EE3133barEv();
+static VTBL_ENTRY _tg__ZTV5EE313__9GG3133113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&_ZN5EE3133fooEv,
+ (VTBL_ENTRY)&_ZN5EE3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv)();
+extern void ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE313__9GG3133113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE313__9GG3133113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+};
+extern void _ZN5FF3113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF311__9GG3133113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&_ZN5FF3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF311__9GG3133113[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF311__9GG3133113[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+};
+static VTT_ENTRY vtt_GG3133113[] = {
+ {&(_ZTV9GG3133113[6]), 6,32},
+ {&(_ZTV9GG3133113[14]), 14,32},
+ {&(_ZTV9GG3133113[20]), 20,32},
+ {&(_ZTV9GG3133113[25]), 25,32},
+ {&(_ZTV9GG3133113[31]), 31,32},
+ {&(_tg__ZTV5EE313__9GG3133113[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE313__9GG3133113[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE313__9GG3133113[3]), 3,4},
+ {&(_tg__ZTV5FF311__9GG3133113[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF311__9GG3133113[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF311__9GG3133113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3133113[];
+extern VTBL_ENTRY _ZTV9GG3133113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3133113[];
+static VTBL_ENTRY alt_thunk_names832[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31331133barEv,_ZTv0_n16_N9GG31331133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31331133barEv,_ZThn16_N9GG31331133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31331133fooEv,_ZTv0_n12_N9GG31331133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31331133fooEv,_ZThn24_N9GG31331133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31331133fooEv,_ZThn16_N9GG31331133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG31331133barEv,_ZTv0_n24_N9GG31331133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31331133barEv,_ZThn8_N9GG31331133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31331133fooEv,_ZTv0_n20_N9GG31331133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31331133fooEv,_ZThn32_N9GG31331133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31331133fooEv,_ZThn8_N9GG31331133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3133113 = { "GG3133113", // class name
+ bases_GG3133113, 4,
+ &(vtc_GG3133113[0]), // expected_vtbl_contents
+ &(vtt_GG3133113[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG3133113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3133113),32, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3133113),11, //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 GG3133123 : virtual EE313 , virtual FF312 {
+ int pg;
+ virtual void foo(); // _ZN9GG31331233fooEv
+ virtual void bar(); // _ZN9GG31331233barEv
+ ~GG3133123(); // tgen
+ GG3133123(); // tgen
+};
+//SIG(1 GG3133123) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC3 VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG3133123 ::foo(){vfunc_called(this, "_ZN9GG31331233fooEv");}
+void GG3133123 ::bar(){vfunc_called(this, "_ZN9GG31331233barEv");}
+GG3133123 ::~GG3133123(){ note_dtor("GG3133123", this);} // tgen
+GG3133123 ::GG3133123(){ note_ctor("GG3133123", this);} // tgen
+
+static void Test_GG3133123()
+{
+ extern Class_Descriptor cd_GG3133123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG3133123, buf);
+ GG3133123 *dp, &lv = *(dp=new (buf) GG3133123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG3133123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3133123)");
+ check_base_class_offset(lv, (AA3*)(EE313*), ABISELECT(32,16), "GG3133123");
+ check_base_class_offset(lv, (AA3*)(FF312*), ABISELECT(32,16), "GG3133123");
+ check_base_class_offset(lv, (BB1*)(EE313*), ABISELECT(48,24), "GG3133123");
+ check_base_class_offset(lv, (BB1*)(FF312*), ABISELECT(48,24), "GG3133123");
+ check_base_class_offset(lv, (EE313*), ABISELECT(16,8), "GG3133123");
+ check_base_class_offset(lv, (FF312*), ABISELECT(64,32), "GG3133123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3133123.pg");
+ test_class_info(&lv, &cd_GG3133123);
+ dp->~GG3133123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3133123(Test_GG3133123, "GG3133123", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG3133123C1Ev();
+extern void _ZN9GG3133123D1Ev();
+Name_Map name_map_GG3133123[] = {
+ NSPAIR(_ZN9GG3133123C1Ev),
+ NSPAIR(_ZN9GG3133123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE313;
+extern VTBL_ENTRY _ZTI5EE313[];
+extern VTBL_ENTRY _ZTV5EE313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE313[];
+extern Class_Descriptor cd_FF312;
+extern VTBL_ENTRY _ZTI5FF312[];
+extern VTBL_ENTRY _ZTV5FF312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF312[];
+static Base_Class bases_GG3133123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE313, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF312, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3133123[];
+extern void _ZN9GG31331233fooEv();
+extern void _ZN9GG31331233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31331233fooEv,_ZTv0_n20_N9GG31331233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31331233fooEv,_ZThn8_N9GG31331233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31331233barEv,_ZTv0_n24_N9GG31331233barEv)();
+extern void ABISELECT(_ZThn16_N9GG31331233barEv,_ZThn8_N9GG31331233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31331233fooEv,_ZTv0_n12_N9GG31331233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31331233fooEv,_ZThn16_N9GG31331233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31331233barEv,_ZTv0_n16_N9GG31331233barEv)();
+extern void ABISELECT(_ZThn32_N9GG31331233barEv,_ZThn16_N9GG31331233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31331233fooEv,_ZTv0_n12_N9GG31331233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31331233fooEv,_ZThn24_N9GG31331233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31331233barEv,_ZTv0_n20_N9GG31331233barEv)();
+extern void ABISELECT(_ZThn64_N9GG31331233barEv,_ZThn32_N9GG31331233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3133123[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3133123[0]),
+ (VTBL_ENTRY)&_ZN9GG31331233fooEv,
+ (VTBL_ENTRY)&_ZN9GG31331233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3133123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31331233fooEv,_ZTv0_n20_N9GG31331233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31331233barEv,_ZTv0_n24_N9GG31331233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3133123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31331233fooEv,_ZTv0_n12_N9GG31331233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31331233barEv,_ZTv0_n16_N9GG31331233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3133123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31331233fooEv,_ZTv0_n12_N9GG31331233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3133123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31331233barEv,_ZTv0_n20_N9GG31331233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3133123[];
+extern void _ZN5EE3133fooEv();
+extern void _ZN5EE3133barEv();
+static VTBL_ENTRY _tg__ZTV5EE313__9GG3133123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&_ZN5EE3133fooEv,
+ (VTBL_ENTRY)&_ZN5EE3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv)();
+extern void ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE313__9GG3133123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE313__9GG3133123[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+};
+extern void _ZN5FF3123barEv();
+static VTBL_ENTRY _tg__ZTV5FF312__9GG3133123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN5FF3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF312__9GG3133123[] = {
+ ABISELECT(32,16),
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF312__9GG3133123[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG3133123[] = {
+ {&(_ZTV9GG3133123[6]), 6,32},
+ {&(_ZTV9GG3133123[14]), 14,32},
+ {&(_ZTV9GG3133123[20]), 20,32},
+ {&(_ZTV9GG3133123[25]), 25,32},
+ {&(_ZTV9GG3133123[31]), 31,32},
+ {&(_tg__ZTV5EE313__9GG3133123[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE313__9GG3133123[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE313__9GG3133123[3]), 3,4},
+ {&(_tg__ZTV5FF312__9GG3133123[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF312__9GG3133123[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF312__9GG3133123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3133123[];
+extern VTBL_ENTRY _ZTV9GG3133123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3133123[];
+static VTBL_ENTRY alt_thunk_names833[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31331233barEv,_ZTv0_n20_N9GG31331233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31331233barEv,_ZThn32_N9GG31331233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31331233barEv,_ZTv0_n16_N9GG31331233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31331233barEv,_ZThn16_N9GG31331233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31331233fooEv,_ZTv0_n12_N9GG31331233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31331233fooEv,_ZThn24_N9GG31331233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31331233fooEv,_ZThn16_N9GG31331233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG31331233barEv,_ZTv0_n24_N9GG31331233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31331233barEv,_ZThn8_N9GG31331233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31331233fooEv,_ZTv0_n20_N9GG31331233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31331233fooEv,_ZThn8_N9GG31331233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3133123 = { "GG3133123", // class name
+ bases_GG3133123, 4,
+ &(vtc_GG3133123[0]), // expected_vtbl_contents
+ &(vtt_GG3133123[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG3133123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3133123),32, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3133123),11, //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 GG3133133 : virtual EE313 , virtual FF313 {
+ int pg;
+ virtual void foo(); // _ZN9GG31331333fooEv
+ virtual void bar(); // _ZN9GG31331333barEv
+ ~GG3133133(); // tgen
+ GG3133133(); // tgen
+};
+//SIG(1 GG3133133) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC3 VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3133133 ::foo(){vfunc_called(this, "_ZN9GG31331333fooEv");}
+void GG3133133 ::bar(){vfunc_called(this, "_ZN9GG31331333barEv");}
+GG3133133 ::~GG3133133(){ note_dtor("GG3133133", this);} // tgen
+GG3133133 ::GG3133133(){ note_ctor("GG3133133", this);} // tgen
+
+static void Test_GG3133133()
+{
+ extern Class_Descriptor cd_GG3133133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG3133133, buf);
+ GG3133133 *dp, &lv = *(dp=new (buf) GG3133133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG3133133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3133133)");
+ check_base_class_offset(lv, (AA3*)(EE313*), ABISELECT(32,16), "GG3133133");
+ check_base_class_offset(lv, (AA3*)(FF313*), ABISELECT(32,16), "GG3133133");
+ check_base_class_offset(lv, (BB1*)(EE313*), ABISELECT(48,24), "GG3133133");
+ check_base_class_offset(lv, (BB1*)(FF313*), ABISELECT(48,24), "GG3133133");
+ check_base_class_offset(lv, (EE313*), ABISELECT(16,8), "GG3133133");
+ check_base_class_offset(lv, (FF313*), ABISELECT(64,32), "GG3133133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3133133.pg");
+ test_class_info(&lv, &cd_GG3133133);
+ dp->~GG3133133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3133133(Test_GG3133133, "GG3133133", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG3133133C1Ev();
+extern void _ZN9GG3133133D1Ev();
+Name_Map name_map_GG3133133[] = {
+ NSPAIR(_ZN9GG3133133C1Ev),
+ NSPAIR(_ZN9GG3133133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE313;
+extern VTBL_ENTRY _ZTI5EE313[];
+extern VTBL_ENTRY _ZTV5EE313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE313[];
+extern Class_Descriptor cd_FF313;
+extern VTBL_ENTRY _ZTI5FF313[];
+extern VTBL_ENTRY _ZTV5FF313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF313[];
+static Base_Class bases_GG3133133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE313, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF313, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3133133[];
+extern void _ZN9GG31331333fooEv();
+extern void _ZN9GG31331333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31331333fooEv,_ZTv0_n20_N9GG31331333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31331333fooEv,_ZThn8_N9GG31331333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31331333barEv,_ZTv0_n24_N9GG31331333barEv)();
+extern void ABISELECT(_ZThn16_N9GG31331333barEv,_ZThn8_N9GG31331333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31331333fooEv,_ZTv0_n12_N9GG31331333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31331333fooEv,_ZThn16_N9GG31331333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31331333barEv,_ZTv0_n16_N9GG31331333barEv)();
+extern void ABISELECT(_ZThn32_N9GG31331333barEv,_ZThn16_N9GG31331333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31331333fooEv,_ZTv0_n12_N9GG31331333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31331333fooEv,_ZThn24_N9GG31331333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31331333fooEv,_ZTv0_n20_N9GG31331333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31331333fooEv,_ZThn32_N9GG31331333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31331333barEv,_ZTv0_n24_N9GG31331333barEv)();
+extern void ABISELECT(_ZThn64_N9GG31331333barEv,_ZThn32_N9GG31331333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3133133[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3133133[0]),
+ (VTBL_ENTRY)&_ZN9GG31331333fooEv,
+ (VTBL_ENTRY)&_ZN9GG31331333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3133133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31331333fooEv,_ZTv0_n20_N9GG31331333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31331333barEv,_ZTv0_n24_N9GG31331333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3133133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31331333fooEv,_ZTv0_n12_N9GG31331333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31331333barEv,_ZTv0_n16_N9GG31331333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3133133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31331333fooEv,_ZTv0_n12_N9GG31331333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3133133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31331333fooEv,_ZTv0_n20_N9GG31331333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31331333barEv,_ZTv0_n24_N9GG31331333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3133133[];
+extern void _ZN5EE3133fooEv();
+extern void _ZN5EE3133barEv();
+static VTBL_ENTRY _tg__ZTV5EE313__9GG3133133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&_ZN5EE3133fooEv,
+ (VTBL_ENTRY)&_ZN5EE3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv)();
+extern void ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE313__9GG3133133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE313__9GG3133133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+};
+extern void _ZN5FF3133fooEv();
+extern void _ZN5FF3133barEv();
+static VTBL_ENTRY _tg__ZTV5FF313__9GG3133133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&_ZN5FF3133fooEv,
+ (VTBL_ENTRY)&_ZN5FF3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF313__9GG3133133[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF313__9GG3133133[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+};
+static VTT_ENTRY vtt_GG3133133[] = {
+ {&(_ZTV9GG3133133[6]), 6,34},
+ {&(_ZTV9GG3133133[14]), 14,34},
+ {&(_ZTV9GG3133133[20]), 20,34},
+ {&(_ZTV9GG3133133[25]), 25,34},
+ {&(_ZTV9GG3133133[32]), 32,34},
+ {&(_tg__ZTV5EE313__9GG3133133[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE313__9GG3133133[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE313__9GG3133133[3]), 3,4},
+ {&(_tg__ZTV5FF313__9GG3133133[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF313__9GG3133133[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF313__9GG3133133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3133133[];
+extern VTBL_ENTRY _ZTV9GG3133133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3133133[];
+static VTBL_ENTRY alt_thunk_names834[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31331333barEv,_ZTv0_n16_N9GG31331333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31331333barEv,_ZThn16_N9GG31331333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31331333fooEv,_ZTv0_n12_N9GG31331333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31331333fooEv,_ZThn24_N9GG31331333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31331333fooEv,_ZThn16_N9GG31331333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG31331333barEv,_ZTv0_n24_N9GG31331333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31331333barEv,_ZThn32_N9GG31331333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31331333barEv,_ZThn8_N9GG31331333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31331333fooEv,_ZTv0_n20_N9GG31331333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31331333fooEv,_ZThn32_N9GG31331333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31331333fooEv,_ZThn8_N9GG31331333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3133133 = { "GG3133133", // class name
+ bases_GG3133133, 4,
+ &(vtc_GG3133133[0]), // expected_vtbl_contents
+ &(vtt_GG3133133[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG3133133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3133133),34, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3133133),11, //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 GG3133213 : virtual EE313 , virtual FF321 {
+ int pg;
+ virtual void foo(); // _ZN9GG31332133fooEv
+ virtual void bar(); // _ZN9GG31332133barEv
+ ~GG3133213(); // tgen
+ GG3133213(); // tgen
+};
+//SIG(1 GG3133213) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3133213 ::foo(){vfunc_called(this, "_ZN9GG31332133fooEv");}
+void GG3133213 ::bar(){vfunc_called(this, "_ZN9GG31332133barEv");}
+GG3133213 ::~GG3133213(){ note_dtor("GG3133213", this);} // tgen
+GG3133213 ::GG3133213(){ note_ctor("GG3133213", this);} // tgen
+
+static void Test_GG3133213()
+{
+ extern Class_Descriptor cd_GG3133213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3133213, buf);
+ GG3133213 *dp, &lv = *(dp=new (buf) GG3133213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3133213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3133213)");
+ check_base_class_offset(lv, (AA3*)(EE313*), ABISELECT(32,16), "GG3133213");
+ check_base_class_offset(lv, (AA3*)(FF321*), ABISELECT(32,16), "GG3133213");
+ check_base_class_offset(lv, (BB1*)(EE313*), ABISELECT(48,24), "GG3133213");
+ check_base_class_offset(lv, (EE313*), ABISELECT(16,8), "GG3133213");
+ check_base_class_offset(lv, (BB2*)(FF321*), ABISELECT(80,40), "GG3133213");
+ check_base_class_offset(lv, (FF321*), ABISELECT(64,32), "GG3133213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3133213.pg");
+ test_class_info(&lv, &cd_GG3133213);
+ dp->~GG3133213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3133213(Test_GG3133213, "GG3133213", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3133213C1Ev();
+extern void _ZN9GG3133213D1Ev();
+Name_Map name_map_GG3133213[] = {
+ NSPAIR(_ZN9GG3133213C1Ev),
+ NSPAIR(_ZN9GG3133213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE313;
+extern VTBL_ENTRY _ZTI5EE313[];
+extern VTBL_ENTRY _ZTV5EE313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE313[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF321;
+extern VTBL_ENTRY _ZTI5FF321[];
+extern VTBL_ENTRY _ZTV5FF321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF321[];
+static Base_Class bases_GG3133213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE313, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF321, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3133213[];
+extern void _ZN9GG31332133fooEv();
+extern void _ZN9GG31332133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31332133fooEv,_ZTv0_n20_N9GG31332133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31332133fooEv,_ZThn8_N9GG31332133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31332133barEv,_ZTv0_n24_N9GG31332133barEv)();
+extern void ABISELECT(_ZThn16_N9GG31332133barEv,_ZThn8_N9GG31332133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31332133fooEv,_ZTv0_n12_N9GG31332133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31332133fooEv,_ZThn16_N9GG31332133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31332133barEv,_ZTv0_n16_N9GG31332133barEv)();
+extern void ABISELECT(_ZThn32_N9GG31332133barEv,_ZThn16_N9GG31332133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31332133fooEv,_ZTv0_n12_N9GG31332133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31332133fooEv,_ZThn24_N9GG31332133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31332133fooEv,_ZTv0_n20_N9GG31332133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31332133fooEv,_ZThn32_N9GG31332133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31332133barEv,_ZTv0_n12_N9GG31332133barEv)();
+extern void ABISELECT(_ZThn80_N9GG31332133barEv,_ZThn40_N9GG31332133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3133213[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3133213[0]),
+ (VTBL_ENTRY)&_ZN9GG31332133fooEv,
+ (VTBL_ENTRY)&_ZN9GG31332133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3133213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31332133fooEv,_ZTv0_n20_N9GG31332133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31332133barEv,_ZTv0_n24_N9GG31332133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3133213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31332133fooEv,_ZTv0_n12_N9GG31332133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31332133barEv,_ZTv0_n16_N9GG31332133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3133213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31332133fooEv,_ZTv0_n12_N9GG31332133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3133213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31332133fooEv,_ZTv0_n20_N9GG31332133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3133213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31332133barEv,_ZTv0_n12_N9GG31332133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3133213[];
+extern void _ZN5EE3133fooEv();
+extern void _ZN5EE3133barEv();
+static VTBL_ENTRY _tg__ZTV5EE313__9GG3133213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&_ZN5EE3133fooEv,
+ (VTBL_ENTRY)&_ZN5EE3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv)();
+extern void ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE313__9GG3133213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE313__9GG3133213[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+};
+extern void _ZN5FF3213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF321__9GG3133213[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN5FF3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv)();
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF321__9GG3133213[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF321__9GG3133213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG3133213[] = {
+ {&(_ZTV9GG3133213[7]), 7,37},
+ {&(_ZTV9GG3133213[15]), 15,37},
+ {&(_ZTV9GG3133213[21]), 21,37},
+ {&(_ZTV9GG3133213[26]), 26,37},
+ {&(_ZTV9GG3133213[32]), 32,37},
+ {&(_ZTV9GG3133213[36]), 36,37},
+ {&(_tg__ZTV5EE313__9GG3133213[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE313__9GG3133213[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE313__9GG3133213[3]), 3,4},
+ {&(_tg__ZTV5FF321__9GG3133213[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF321__9GG3133213[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF321__9GG3133213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3133213[];
+extern VTBL_ENTRY _ZTV9GG3133213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3133213[];
+static VTBL_ENTRY alt_thunk_names835[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31332133barEv,_ZTv0_n12_N9GG31332133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31332133barEv,_ZThn40_N9GG31332133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31332133barEv,_ZTv0_n16_N9GG31332133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31332133barEv,_ZThn16_N9GG31332133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31332133fooEv,_ZTv0_n12_N9GG31332133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31332133fooEv,_ZThn24_N9GG31332133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31332133fooEv,_ZThn16_N9GG31332133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG31332133barEv,_ZTv0_n24_N9GG31332133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31332133barEv,_ZThn8_N9GG31332133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31332133fooEv,_ZTv0_n20_N9GG31332133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31332133fooEv,_ZThn32_N9GG31332133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31332133fooEv,_ZThn8_N9GG31332133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3133213 = { "GG3133213", // class name
+ bases_GG3133213, 5,
+ &(vtc_GG3133213[0]), // expected_vtbl_contents
+ &(vtt_GG3133213[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3133213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3133213),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3133213),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names835,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3133223 : virtual EE313 , virtual FF322 {
+ int pg;
+ virtual void foo(); // _ZN9GG31332233fooEv
+ virtual void bar(); // _ZN9GG31332233barEv
+ ~GG3133223(); // tgen
+ GG3133223(); // tgen
+};
+//SIG(1 GG3133223) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3133223 ::foo(){vfunc_called(this, "_ZN9GG31332233fooEv");}
+void GG3133223 ::bar(){vfunc_called(this, "_ZN9GG31332233barEv");}
+GG3133223 ::~GG3133223(){ note_dtor("GG3133223", this);} // tgen
+GG3133223 ::GG3133223(){ note_ctor("GG3133223", this);} // tgen
+
+static void Test_GG3133223()
+{
+ extern Class_Descriptor cd_GG3133223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3133223, buf);
+ GG3133223 *dp, &lv = *(dp=new (buf) GG3133223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3133223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3133223)");
+ check_base_class_offset(lv, (AA3*)(EE313*), ABISELECT(32,16), "GG3133223");
+ check_base_class_offset(lv, (AA3*)(FF322*), ABISELECT(32,16), "GG3133223");
+ check_base_class_offset(lv, (BB1*)(EE313*), ABISELECT(48,24), "GG3133223");
+ check_base_class_offset(lv, (EE313*), ABISELECT(16,8), "GG3133223");
+ check_base_class_offset(lv, (BB2*)(FF322*), ABISELECT(80,40), "GG3133223");
+ check_base_class_offset(lv, (FF322*), ABISELECT(64,32), "GG3133223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3133223.pg");
+ test_class_info(&lv, &cd_GG3133223);
+ dp->~GG3133223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3133223(Test_GG3133223, "GG3133223", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3133223C1Ev();
+extern void _ZN9GG3133223D1Ev();
+Name_Map name_map_GG3133223[] = {
+ NSPAIR(_ZN9GG3133223C1Ev),
+ NSPAIR(_ZN9GG3133223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE313;
+extern VTBL_ENTRY _ZTI5EE313[];
+extern VTBL_ENTRY _ZTV5EE313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE313[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF322;
+extern VTBL_ENTRY _ZTI5FF322[];
+extern VTBL_ENTRY _ZTV5FF322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF322[];
+static Base_Class bases_GG3133223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE313, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF322, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3133223[];
+extern void _ZN9GG31332233fooEv();
+extern void _ZN9GG31332233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31332233fooEv,_ZTv0_n20_N9GG31332233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31332233fooEv,_ZThn8_N9GG31332233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31332233barEv,_ZTv0_n24_N9GG31332233barEv)();
+extern void ABISELECT(_ZThn16_N9GG31332233barEv,_ZThn8_N9GG31332233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31332233fooEv,_ZTv0_n12_N9GG31332233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31332233fooEv,_ZThn16_N9GG31332233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31332233barEv,_ZTv0_n16_N9GG31332233barEv)();
+extern void ABISELECT(_ZThn32_N9GG31332233barEv,_ZThn16_N9GG31332233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31332233fooEv,_ZTv0_n12_N9GG31332233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31332233fooEv,_ZThn24_N9GG31332233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31332233barEv,_ZTv0_n20_N9GG31332233barEv)();
+extern void ABISELECT(_ZThn64_N9GG31332233barEv,_ZThn32_N9GG31332233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31332233barEv,_ZTv0_n12_N9GG31332233barEv)();
+extern void ABISELECT(_ZThn80_N9GG31332233barEv,_ZThn40_N9GG31332233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3133223[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3133223[0]),
+ (VTBL_ENTRY)&_ZN9GG31332233fooEv,
+ (VTBL_ENTRY)&_ZN9GG31332233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3133223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31332233fooEv,_ZTv0_n20_N9GG31332233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31332233barEv,_ZTv0_n24_N9GG31332233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3133223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31332233fooEv,_ZTv0_n12_N9GG31332233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31332233barEv,_ZTv0_n16_N9GG31332233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3133223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31332233fooEv,_ZTv0_n12_N9GG31332233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3133223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31332233barEv,_ZTv0_n20_N9GG31332233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3133223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31332233barEv,_ZTv0_n12_N9GG31332233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3133223[];
+extern void _ZN5EE3133fooEv();
+extern void _ZN5EE3133barEv();
+static VTBL_ENTRY _tg__ZTV5EE313__9GG3133223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&_ZN5EE3133fooEv,
+ (VTBL_ENTRY)&_ZN5EE3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv)();
+extern void ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE313__9GG3133223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE313__9GG3133223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+};
+extern void _ZN5FF3223barEv();
+static VTBL_ENTRY _tg__ZTV5FF322__9GG3133223[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN5FF3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF322__9GG3133223[] = {
+ ABISELECT(32,16),
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv)();
+extern void ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF322__9GG3133223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv),
+};
+static VTT_ENTRY vtt_GG3133223[] = {
+ {&(_ZTV9GG3133223[7]), 7,37},
+ {&(_ZTV9GG3133223[15]), 15,37},
+ {&(_ZTV9GG3133223[21]), 21,37},
+ {&(_ZTV9GG3133223[26]), 26,37},
+ {&(_ZTV9GG3133223[32]), 32,37},
+ {&(_ZTV9GG3133223[36]), 36,37},
+ {&(_tg__ZTV5EE313__9GG3133223[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE313__9GG3133223[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE313__9GG3133223[3]), 3,4},
+ {&(_tg__ZTV5FF322__9GG3133223[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF322__9GG3133223[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF322__9GG3133223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3133223[];
+extern VTBL_ENTRY _ZTV9GG3133223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3133223[];
+static VTBL_ENTRY alt_thunk_names836[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31332233barEv,_ZTv0_n12_N9GG31332233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31332233barEv,_ZThn40_N9GG31332233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31332233barEv,_ZTv0_n20_N9GG31332233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31332233barEv,_ZThn32_N9GG31332233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31332233barEv,_ZTv0_n16_N9GG31332233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31332233barEv,_ZThn16_N9GG31332233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31332233fooEv,_ZTv0_n12_N9GG31332233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31332233fooEv,_ZThn24_N9GG31332233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31332233fooEv,_ZThn16_N9GG31332233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG31332233barEv,_ZTv0_n24_N9GG31332233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31332233barEv,_ZThn8_N9GG31332233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31332233fooEv,_ZTv0_n20_N9GG31332233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31332233fooEv,_ZThn8_N9GG31332233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3133223 = { "GG3133223", // class name
+ bases_GG3133223, 5,
+ &(vtc_GG3133223[0]), // expected_vtbl_contents
+ &(vtt_GG3133223[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3133223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3133223),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3133223),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names836,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3133233 : virtual EE313 , virtual FF323 {
+ int pg;
+ virtual void foo(); // _ZN9GG31332333fooEv
+ virtual void bar(); // _ZN9GG31332333barEv
+ ~GG3133233(); // tgen
+ GG3133233(); // tgen
+};
+//SIG(1 GG3133233) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3133233 ::foo(){vfunc_called(this, "_ZN9GG31332333fooEv");}
+void GG3133233 ::bar(){vfunc_called(this, "_ZN9GG31332333barEv");}
+GG3133233 ::~GG3133233(){ note_dtor("GG3133233", this);} // tgen
+GG3133233 ::GG3133233(){ note_ctor("GG3133233", this);} // tgen
+
+static void Test_GG3133233()
+{
+ extern Class_Descriptor cd_GG3133233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3133233, buf);
+ GG3133233 *dp, &lv = *(dp=new (buf) GG3133233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3133233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3133233)");
+ check_base_class_offset(lv, (AA3*)(EE313*), ABISELECT(32,16), "GG3133233");
+ check_base_class_offset(lv, (AA3*)(FF323*), ABISELECT(32,16), "GG3133233");
+ check_base_class_offset(lv, (BB1*)(EE313*), ABISELECT(48,24), "GG3133233");
+ check_base_class_offset(lv, (EE313*), ABISELECT(16,8), "GG3133233");
+ check_base_class_offset(lv, (BB2*)(FF323*), ABISELECT(80,40), "GG3133233");
+ check_base_class_offset(lv, (FF323*), ABISELECT(64,32), "GG3133233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3133233.pg");
+ test_class_info(&lv, &cd_GG3133233);
+ dp->~GG3133233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3133233(Test_GG3133233, "GG3133233", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3133233C1Ev();
+extern void _ZN9GG3133233D1Ev();
+Name_Map name_map_GG3133233[] = {
+ NSPAIR(_ZN9GG3133233C1Ev),
+ NSPAIR(_ZN9GG3133233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE313;
+extern VTBL_ENTRY _ZTI5EE313[];
+extern VTBL_ENTRY _ZTV5EE313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE313[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF323;
+extern VTBL_ENTRY _ZTI5FF323[];
+extern VTBL_ENTRY _ZTV5FF323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF323[];
+static Base_Class bases_GG3133233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE313, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF323, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3133233[];
+extern void _ZN9GG31332333fooEv();
+extern void _ZN9GG31332333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31332333fooEv,_ZTv0_n20_N9GG31332333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31332333fooEv,_ZThn8_N9GG31332333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31332333barEv,_ZTv0_n24_N9GG31332333barEv)();
+extern void ABISELECT(_ZThn16_N9GG31332333barEv,_ZThn8_N9GG31332333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31332333fooEv,_ZTv0_n12_N9GG31332333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31332333fooEv,_ZThn16_N9GG31332333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31332333barEv,_ZTv0_n16_N9GG31332333barEv)();
+extern void ABISELECT(_ZThn32_N9GG31332333barEv,_ZThn16_N9GG31332333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31332333fooEv,_ZTv0_n12_N9GG31332333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31332333fooEv,_ZThn24_N9GG31332333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31332333fooEv,_ZTv0_n20_N9GG31332333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31332333fooEv,_ZThn32_N9GG31332333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31332333barEv,_ZTv0_n24_N9GG31332333barEv)();
+extern void ABISELECT(_ZThn64_N9GG31332333barEv,_ZThn32_N9GG31332333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31332333barEv,_ZTv0_n12_N9GG31332333barEv)();
+extern void ABISELECT(_ZThn80_N9GG31332333barEv,_ZThn40_N9GG31332333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3133233[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3133233[0]),
+ (VTBL_ENTRY)&_ZN9GG31332333fooEv,
+ (VTBL_ENTRY)&_ZN9GG31332333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3133233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31332333fooEv,_ZTv0_n20_N9GG31332333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31332333barEv,_ZTv0_n24_N9GG31332333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3133233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31332333fooEv,_ZTv0_n12_N9GG31332333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31332333barEv,_ZTv0_n16_N9GG31332333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3133233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31332333fooEv,_ZTv0_n12_N9GG31332333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3133233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31332333fooEv,_ZTv0_n20_N9GG31332333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31332333barEv,_ZTv0_n24_N9GG31332333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3133233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31332333barEv,_ZTv0_n12_N9GG31332333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3133233[];
+extern void _ZN5EE3133fooEv();
+extern void _ZN5EE3133barEv();
+static VTBL_ENTRY _tg__ZTV5EE313__9GG3133233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&_ZN5EE3133fooEv,
+ (VTBL_ENTRY)&_ZN5EE3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv)();
+extern void ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE313__9GG3133233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE313__9GG3133233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+};
+extern void _ZN5FF3233fooEv();
+extern void _ZN5FF3233barEv();
+static VTBL_ENTRY _tg__ZTV5FF323__9GG3133233[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&_ZN5FF3233fooEv,
+ (VTBL_ENTRY)&_ZN5FF3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF323__9GG3133233[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv)();
+extern void ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF323__9GG3133233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv),
+};
+static VTT_ENTRY vtt_GG3133233[] = {
+ {&(_ZTV9GG3133233[7]), 7,39},
+ {&(_ZTV9GG3133233[15]), 15,39},
+ {&(_ZTV9GG3133233[21]), 21,39},
+ {&(_ZTV9GG3133233[26]), 26,39},
+ {&(_ZTV9GG3133233[33]), 33,39},
+ {&(_ZTV9GG3133233[38]), 38,39},
+ {&(_tg__ZTV5EE313__9GG3133233[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE313__9GG3133233[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE313__9GG3133233[3]), 3,4},
+ {&(_tg__ZTV5FF323__9GG3133233[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF323__9GG3133233[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF323__9GG3133233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3133233[];
+extern VTBL_ENTRY _ZTV9GG3133233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3133233[];
+static VTBL_ENTRY alt_thunk_names837[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31332333barEv,_ZTv0_n12_N9GG31332333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31332333barEv,_ZThn40_N9GG31332333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31332333barEv,_ZTv0_n16_N9GG31332333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31332333barEv,_ZThn16_N9GG31332333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31332333fooEv,_ZTv0_n12_N9GG31332333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31332333fooEv,_ZThn24_N9GG31332333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31332333fooEv,_ZThn16_N9GG31332333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG31332333barEv,_ZTv0_n24_N9GG31332333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31332333barEv,_ZThn32_N9GG31332333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31332333barEv,_ZThn8_N9GG31332333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31332333fooEv,_ZTv0_n20_N9GG31332333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31332333fooEv,_ZThn32_N9GG31332333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31332333fooEv,_ZThn8_N9GG31332333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3133233 = { "GG3133233", // class name
+ bases_GG3133233, 5,
+ &(vtc_GG3133233[0]), // expected_vtbl_contents
+ &(vtt_GG3133233[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3133233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3133233),39, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3133233),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names837,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3133313 : virtual EE313 , virtual FF331 {
+ int pg;
+ virtual void foo(); // _ZN9GG31333133fooEv
+ virtual void bar(); // _ZN9GG31333133barEv
+ ~GG3133313(); // tgen
+ GG3133313(); // tgen
+};
+//SIG(1 GG3133313) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3133313 ::foo(){vfunc_called(this, "_ZN9GG31333133fooEv");}
+void GG3133313 ::bar(){vfunc_called(this, "_ZN9GG31333133barEv");}
+GG3133313 ::~GG3133313(){ note_dtor("GG3133313", this);} // tgen
+GG3133313 ::GG3133313(){ note_ctor("GG3133313", this);} // tgen
+
+static void Test_GG3133313()
+{
+ extern Class_Descriptor cd_GG3133313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3133313, buf);
+ GG3133313 *dp, &lv = *(dp=new (buf) GG3133313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3133313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3133313)");
+ check_base_class_offset(lv, (AA3*)(EE313*), ABISELECT(32,16), "GG3133313");
+ check_base_class_offset(lv, (AA3*)(FF331*), ABISELECT(32,16), "GG3133313");
+ check_base_class_offset(lv, (BB1*)(EE313*), ABISELECT(48,24), "GG3133313");
+ check_base_class_offset(lv, (EE313*), ABISELECT(16,8), "GG3133313");
+ check_base_class_offset(lv, (BB3*)(FF331*), ABISELECT(80,40), "GG3133313");
+ check_base_class_offset(lv, (FF331*), ABISELECT(64,32), "GG3133313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3133313.pg");
+ test_class_info(&lv, &cd_GG3133313);
+ dp->~GG3133313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3133313(Test_GG3133313, "GG3133313", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3133313C1Ev();
+extern void _ZN9GG3133313D1Ev();
+Name_Map name_map_GG3133313[] = {
+ NSPAIR(_ZN9GG3133313C1Ev),
+ NSPAIR(_ZN9GG3133313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE313;
+extern VTBL_ENTRY _ZTI5EE313[];
+extern VTBL_ENTRY _ZTV5EE313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE313[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF331;
+extern VTBL_ENTRY _ZTI5FF331[];
+extern VTBL_ENTRY _ZTV5FF331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF331[];
+static Base_Class bases_GG3133313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE313, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF331, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3133313[];
+extern void _ZN9GG31333133fooEv();
+extern void _ZN9GG31333133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31333133fooEv,_ZTv0_n20_N9GG31333133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31333133fooEv,_ZThn8_N9GG31333133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31333133barEv,_ZTv0_n24_N9GG31333133barEv)();
+extern void ABISELECT(_ZThn16_N9GG31333133barEv,_ZThn8_N9GG31333133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31333133fooEv,_ZTv0_n12_N9GG31333133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31333133fooEv,_ZThn16_N9GG31333133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31333133barEv,_ZTv0_n16_N9GG31333133barEv)();
+extern void ABISELECT(_ZThn32_N9GG31333133barEv,_ZThn16_N9GG31333133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31333133fooEv,_ZTv0_n12_N9GG31333133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31333133fooEv,_ZThn24_N9GG31333133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31333133fooEv,_ZTv0_n20_N9GG31333133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31333133fooEv,_ZThn32_N9GG31333133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31333133fooEv,_ZTv0_n12_N9GG31333133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG31333133fooEv,_ZThn40_N9GG31333133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31333133barEv,_ZTv0_n16_N9GG31333133barEv)();
+extern void ABISELECT(_ZThn80_N9GG31333133barEv,_ZThn40_N9GG31333133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3133313[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3133313[0]),
+ (VTBL_ENTRY)&_ZN9GG31333133fooEv,
+ (VTBL_ENTRY)&_ZN9GG31333133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3133313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31333133fooEv,_ZTv0_n20_N9GG31333133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31333133barEv,_ZTv0_n24_N9GG31333133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3133313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31333133fooEv,_ZTv0_n12_N9GG31333133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31333133barEv,_ZTv0_n16_N9GG31333133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3133313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31333133fooEv,_ZTv0_n12_N9GG31333133fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3133313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31333133fooEv,_ZTv0_n20_N9GG31333133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3133313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31333133fooEv,_ZTv0_n12_N9GG31333133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31333133barEv,_ZTv0_n16_N9GG31333133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3133313[];
+extern void _ZN5EE3133fooEv();
+extern void _ZN5EE3133barEv();
+static VTBL_ENTRY _tg__ZTV5EE313__9GG3133313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&_ZN5EE3133fooEv,
+ (VTBL_ENTRY)&_ZN5EE3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv)();
+extern void ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE313__9GG3133313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE313__9GG3133313[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+};
+extern void _ZN5FF3313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF331__9GG3133313[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&_ZN5FF3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF331__9GG3133313[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF331__9GG3133313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG3133313[] = {
+ {&(_ZTV9GG3133313[7]), 7,39},
+ {&(_ZTV9GG3133313[15]), 15,39},
+ {&(_ZTV9GG3133313[21]), 21,39},
+ {&(_ZTV9GG3133313[26]), 26,39},
+ {&(_ZTV9GG3133313[32]), 32,39},
+ {&(_ZTV9GG3133313[37]), 37,39},
+ {&(_tg__ZTV5EE313__9GG3133313[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE313__9GG3133313[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE313__9GG3133313[3]), 3,4},
+ {&(_tg__ZTV5FF331__9GG3133313[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF331__9GG3133313[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF331__9GG3133313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3133313[];
+extern VTBL_ENTRY _ZTV9GG3133313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3133313[];
+static VTBL_ENTRY alt_thunk_names838[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31333133barEv,_ZTv0_n16_N9GG31333133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31333133barEv,_ZThn40_N9GG31333133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31333133barEv,_ZThn16_N9GG31333133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31333133fooEv,_ZTv0_n12_N9GG31333133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31333133fooEv,_ZThn40_N9GG31333133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31333133fooEv,_ZThn24_N9GG31333133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31333133fooEv,_ZThn16_N9GG31333133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG31333133barEv,_ZTv0_n24_N9GG31333133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31333133barEv,_ZThn8_N9GG31333133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31333133fooEv,_ZTv0_n20_N9GG31333133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31333133fooEv,_ZThn32_N9GG31333133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31333133fooEv,_ZThn8_N9GG31333133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3133313 = { "GG3133313", // class name
+ bases_GG3133313, 5,
+ &(vtc_GG3133313[0]), // expected_vtbl_contents
+ &(vtt_GG3133313[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3133313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3133313),39, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3133313),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names838,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3133323 : virtual EE313 , virtual FF332 {
+ int pg;
+ virtual void foo(); // _ZN9GG31333233fooEv
+ virtual void bar(); // _ZN9GG31333233barEv
+ ~GG3133323(); // tgen
+ GG3133323(); // tgen
+};
+//SIG(1 GG3133323) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3133323 ::foo(){vfunc_called(this, "_ZN9GG31333233fooEv");}
+void GG3133323 ::bar(){vfunc_called(this, "_ZN9GG31333233barEv");}
+GG3133323 ::~GG3133323(){ note_dtor("GG3133323", this);} // tgen
+GG3133323 ::GG3133323(){ note_ctor("GG3133323", this);} // tgen
+
+static void Test_GG3133323()
+{
+ extern Class_Descriptor cd_GG3133323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3133323, buf);
+ GG3133323 *dp, &lv = *(dp=new (buf) GG3133323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3133323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3133323)");
+ check_base_class_offset(lv, (AA3*)(EE313*), ABISELECT(32,16), "GG3133323");
+ check_base_class_offset(lv, (AA3*)(FF332*), ABISELECT(32,16), "GG3133323");
+ check_base_class_offset(lv, (BB1*)(EE313*), ABISELECT(48,24), "GG3133323");
+ check_base_class_offset(lv, (EE313*), ABISELECT(16,8), "GG3133323");
+ check_base_class_offset(lv, (BB3*)(FF332*), ABISELECT(80,40), "GG3133323");
+ check_base_class_offset(lv, (FF332*), ABISELECT(64,32), "GG3133323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3133323.pg");
+ test_class_info(&lv, &cd_GG3133323);
+ dp->~GG3133323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3133323(Test_GG3133323, "GG3133323", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3133323C1Ev();
+extern void _ZN9GG3133323D1Ev();
+Name_Map name_map_GG3133323[] = {
+ NSPAIR(_ZN9GG3133323C1Ev),
+ NSPAIR(_ZN9GG3133323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE313;
+extern VTBL_ENTRY _ZTI5EE313[];
+extern VTBL_ENTRY _ZTV5EE313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE313[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF332;
+extern VTBL_ENTRY _ZTI5FF332[];
+extern VTBL_ENTRY _ZTV5FF332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF332[];
+static Base_Class bases_GG3133323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE313, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF332, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3133323[];
+extern void _ZN9GG31333233fooEv();
+extern void _ZN9GG31333233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31333233fooEv,_ZTv0_n20_N9GG31333233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31333233fooEv,_ZThn8_N9GG31333233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31333233barEv,_ZTv0_n24_N9GG31333233barEv)();
+extern void ABISELECT(_ZThn16_N9GG31333233barEv,_ZThn8_N9GG31333233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31333233fooEv,_ZTv0_n12_N9GG31333233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31333233fooEv,_ZThn16_N9GG31333233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31333233barEv,_ZTv0_n16_N9GG31333233barEv)();
+extern void ABISELECT(_ZThn32_N9GG31333233barEv,_ZThn16_N9GG31333233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31333233fooEv,_ZTv0_n12_N9GG31333233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31333233fooEv,_ZThn24_N9GG31333233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31333233barEv,_ZTv0_n20_N9GG31333233barEv)();
+extern void ABISELECT(_ZThn64_N9GG31333233barEv,_ZThn32_N9GG31333233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31333233fooEv,_ZTv0_n12_N9GG31333233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG31333233fooEv,_ZThn40_N9GG31333233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31333233barEv,_ZTv0_n16_N9GG31333233barEv)();
+extern void ABISELECT(_ZThn80_N9GG31333233barEv,_ZThn40_N9GG31333233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3133323[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3133323[0]),
+ (VTBL_ENTRY)&_ZN9GG31333233fooEv,
+ (VTBL_ENTRY)&_ZN9GG31333233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3133323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31333233fooEv,_ZTv0_n20_N9GG31333233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31333233barEv,_ZTv0_n24_N9GG31333233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3133323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31333233fooEv,_ZTv0_n12_N9GG31333233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31333233barEv,_ZTv0_n16_N9GG31333233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3133323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31333233fooEv,_ZTv0_n12_N9GG31333233fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3133323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31333233barEv,_ZTv0_n20_N9GG31333233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3133323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31333233fooEv,_ZTv0_n12_N9GG31333233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31333233barEv,_ZTv0_n16_N9GG31333233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3133323[];
+extern void _ZN5EE3133fooEv();
+extern void _ZN5EE3133barEv();
+static VTBL_ENTRY _tg__ZTV5EE313__9GG3133323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&_ZN5EE3133fooEv,
+ (VTBL_ENTRY)&_ZN5EE3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv)();
+extern void ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE313__9GG3133323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE313__9GG3133323[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+};
+extern void _ZN5FF3323barEv();
+static VTBL_ENTRY _tg__ZTV5FF332__9GG3133323[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN5FF3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF332__9GG3133323[] = {
+ ABISELECT(32,16),
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+extern void ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF332__9GG3133323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+static VTT_ENTRY vtt_GG3133323[] = {
+ {&(_ZTV9GG3133323[7]), 7,39},
+ {&(_ZTV9GG3133323[15]), 15,39},
+ {&(_ZTV9GG3133323[21]), 21,39},
+ {&(_ZTV9GG3133323[26]), 26,39},
+ {&(_ZTV9GG3133323[32]), 32,39},
+ {&(_ZTV9GG3133323[37]), 37,39},
+ {&(_tg__ZTV5EE313__9GG3133323[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE313__9GG3133323[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE313__9GG3133323[3]), 3,4},
+ {&(_tg__ZTV5FF332__9GG3133323[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF332__9GG3133323[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF332__9GG3133323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3133323[];
+extern VTBL_ENTRY _ZTV9GG3133323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3133323[];
+static VTBL_ENTRY alt_thunk_names839[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31333233barEv,_ZTv0_n20_N9GG31333233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31333233barEv,_ZThn32_N9GG31333233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31333233barEv,_ZTv0_n16_N9GG31333233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31333233barEv,_ZThn40_N9GG31333233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31333233barEv,_ZThn16_N9GG31333233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31333233fooEv,_ZTv0_n12_N9GG31333233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31333233fooEv,_ZThn40_N9GG31333233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31333233fooEv,_ZThn24_N9GG31333233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31333233fooEv,_ZThn16_N9GG31333233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG31333233barEv,_ZTv0_n24_N9GG31333233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31333233barEv,_ZThn8_N9GG31333233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31333233fooEv,_ZTv0_n20_N9GG31333233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31333233fooEv,_ZThn8_N9GG31333233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3133323 = { "GG3133323", // class name
+ bases_GG3133323, 5,
+ &(vtc_GG3133323[0]), // expected_vtbl_contents
+ &(vtt_GG3133323[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3133323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3133323),39, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3133323),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names839,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3133333 : virtual EE313 , virtual FF333 {
+ int pg;
+ virtual void foo(); // _ZN9GG31333333fooEv
+ virtual void bar(); // _ZN9GG31333333barEv
+ ~GG3133333(); // tgen
+ GG3133333(); // tgen
+};
+//SIG(1 GG3133333) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3133333 ::foo(){vfunc_called(this, "_ZN9GG31333333fooEv");}
+void GG3133333 ::bar(){vfunc_called(this, "_ZN9GG31333333barEv");}
+GG3133333 ::~GG3133333(){ note_dtor("GG3133333", this);} // tgen
+GG3133333 ::GG3133333(){ note_ctor("GG3133333", this);} // tgen
+
+static void Test_GG3133333()
+{
+ extern Class_Descriptor cd_GG3133333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3133333, buf);
+ GG3133333 *dp, &lv = *(dp=new (buf) GG3133333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3133333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3133333)");
+ check_base_class_offset(lv, (AA3*)(EE313*), ABISELECT(32,16), "GG3133333");
+ check_base_class_offset(lv, (AA3*)(FF333*), ABISELECT(32,16), "GG3133333");
+ check_base_class_offset(lv, (BB1*)(EE313*), ABISELECT(48,24), "GG3133333");
+ check_base_class_offset(lv, (EE313*), ABISELECT(16,8), "GG3133333");
+ check_base_class_offset(lv, (BB3*)(FF333*), ABISELECT(80,40), "GG3133333");
+ check_base_class_offset(lv, (FF333*), ABISELECT(64,32), "GG3133333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3133333.pg");
+ test_class_info(&lv, &cd_GG3133333);
+ dp->~GG3133333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3133333(Test_GG3133333, "GG3133333", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3133333C1Ev();
+extern void _ZN9GG3133333D1Ev();
+Name_Map name_map_GG3133333[] = {
+ NSPAIR(_ZN9GG3133333C1Ev),
+ NSPAIR(_ZN9GG3133333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_EE313;
+extern VTBL_ENTRY _ZTI5EE313[];
+extern VTBL_ENTRY _ZTV5EE313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE313[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF333;
+extern VTBL_ENTRY _ZTI5FF333[];
+extern VTBL_ENTRY _ZTV5FF333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF333[];
+static Base_Class bases_GG3133333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE313, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF333, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3133333[];
+extern void _ZN9GG31333333fooEv();
+extern void _ZN9GG31333333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG31333333fooEv,_ZTv0_n20_N9GG31333333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG31333333fooEv,_ZThn8_N9GG31333333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31333333barEv,_ZTv0_n24_N9GG31333333barEv)();
+extern void ABISELECT(_ZThn16_N9GG31333333barEv,_ZThn8_N9GG31333333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31333333fooEv,_ZTv0_n12_N9GG31333333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG31333333fooEv,_ZThn16_N9GG31333333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31333333barEv,_ZTv0_n16_N9GG31333333barEv)();
+extern void ABISELECT(_ZThn32_N9GG31333333barEv,_ZThn16_N9GG31333333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31333333fooEv,_ZTv0_n12_N9GG31333333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG31333333fooEv,_ZThn24_N9GG31333333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG31333333fooEv,_ZTv0_n20_N9GG31333333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG31333333fooEv,_ZThn32_N9GG31333333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG31333333barEv,_ZTv0_n24_N9GG31333333barEv)();
+extern void ABISELECT(_ZThn64_N9GG31333333barEv,_ZThn32_N9GG31333333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG31333333fooEv,_ZTv0_n12_N9GG31333333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG31333333fooEv,_ZThn40_N9GG31333333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG31333333barEv,_ZTv0_n16_N9GG31333333barEv)();
+extern void ABISELECT(_ZThn80_N9GG31333333barEv,_ZThn40_N9GG31333333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3133333[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3133333[0]),
+ (VTBL_ENTRY)&_ZN9GG31333333fooEv,
+ (VTBL_ENTRY)&_ZN9GG31333333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3133333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31333333fooEv,_ZTv0_n20_N9GG31333333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31333333barEv,_ZTv0_n24_N9GG31333333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3133333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31333333fooEv,_ZTv0_n12_N9GG31333333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31333333barEv,_ZTv0_n16_N9GG31333333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3133333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31333333fooEv,_ZTv0_n12_N9GG31333333fooEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3133333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG31333333fooEv,_ZTv0_n20_N9GG31333333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG31333333barEv,_ZTv0_n24_N9GG31333333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3133333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG31333333fooEv,_ZTv0_n12_N9GG31333333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG31333333barEv,_ZTv0_n16_N9GG31333333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3133333[];
+extern void _ZN5EE3133fooEv();
+extern void _ZN5EE3133barEv();
+static VTBL_ENTRY _tg__ZTV5EE313__9GG3133333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&_ZN5EE3133fooEv,
+ (VTBL_ENTRY)&_ZN5EE3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv)();
+extern void ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE313__9GG3133333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5EE313__9GG3133333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv),
+};
+extern void _ZN5FF3333fooEv();
+extern void _ZN5FF3333barEv();
+static VTBL_ENTRY _tg__ZTV5FF333__9GG3133333[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&_ZN5FF3333fooEv,
+ (VTBL_ENTRY)&_ZN5FF3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF333__9GG3133333[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+extern void ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF333__9GG3133333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+static VTT_ENTRY vtt_GG3133333[] = {
+ {&(_ZTV9GG3133333[7]), 7,41},
+ {&(_ZTV9GG3133333[15]), 15,41},
+ {&(_ZTV9GG3133333[21]), 21,41},
+ {&(_ZTV9GG3133333[26]), 26,41},
+ {&(_ZTV9GG3133333[33]), 33,41},
+ {&(_ZTV9GG3133333[39]), 39,41},
+ {&(_tg__ZTV5EE313__9GG3133333[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE313__9GG3133333[4]), 4,6},
+ {&(_tg__ZTV3BB1__5EE313__9GG3133333[3]), 3,4},
+ {&(_tg__ZTV5FF333__9GG3133333[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF333__9GG3133333[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF333__9GG3133333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3133333[];
+extern VTBL_ENTRY _ZTV9GG3133333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3133333[];
+static VTBL_ENTRY alt_thunk_names840[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3133barEv,_ZTv0_n16_N5EE3133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133barEv,_ZThn8_N5EE3133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3133fooEv,_ZTv0_n12_N5EE3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3133fooEv,_ZThn16_N5EE3133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3133fooEv,_ZThn8_N5EE3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG31333333barEv,_ZTv0_n16_N9GG31333333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31333333barEv,_ZThn40_N9GG31333333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31333333barEv,_ZThn16_N9GG31333333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG31333333fooEv,_ZTv0_n12_N9GG31333333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG31333333fooEv,_ZThn40_N9GG31333333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG31333333fooEv,_ZThn24_N9GG31333333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG31333333fooEv,_ZThn16_N9GG31333333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG31333333barEv,_ZTv0_n24_N9GG31333333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31333333barEv,_ZThn32_N9GG31333333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31333333barEv,_ZThn8_N9GG31333333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG31333333fooEv,_ZTv0_n20_N9GG31333333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG31333333fooEv,_ZThn32_N9GG31333333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG31333333fooEv,_ZThn8_N9GG31333333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3133333 = { "GG3133333", // class name
+ bases_GG3133333, 5,
+ &(vtc_GG3133333[0]), // expected_vtbl_contents
+ &(vtt_GG3133333[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3133333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3133333),41, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3133333),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names840,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3211111 : virtual EE321 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG32111113fooEv
+ ~GG3211111(); // tgen
+ GG3211111(); // tgen
+};
+//SIG(1 GG3211111) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v3 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+void GG3211111 ::foo(){vfunc_called(this, "_ZN9GG32111113fooEv");}
+GG3211111 ::~GG3211111(){ note_dtor("GG3211111", this);} // tgen
+GG3211111 ::GG3211111(){ note_ctor("GG3211111", this);} // tgen
+
+static void Test_GG3211111()
+{
+ extern Class_Descriptor cd_GG3211111;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3211111, buf);
+ GG3211111 *dp, &lv = *(dp=new (buf) GG3211111());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3211111)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3211111)");
+ check_base_class_offset(lv, (AA3*)(EE321*), ABISELECT(32,16), "GG3211111");
+ check_base_class_offset(lv, (BB2*)(EE321*), ABISELECT(48,24), "GG3211111");
+ check_base_class_offset(lv, (EE321*), ABISELECT(16,8), "GG3211111");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(80,40), "GG3211111");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(96,48), "GG3211111");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG3211111");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3211111.pg");
+ test_class_info(&lv, &cd_GG3211111);
+ dp->~GG3211111();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3211111(Test_GG3211111, "GG3211111", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3211111C1Ev();
+extern void _ZN9GG3211111D1Ev();
+Name_Map name_map_GG3211111[] = {
+ NSPAIR(_ZN9GG3211111C1Ev),
+ NSPAIR(_ZN9GG3211111D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE321;
+extern VTBL_ENTRY _ZTI5EE321[];
+extern VTBL_ENTRY _ZTV5EE321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE321[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG3211111[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE321, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3211111[];
+extern void _ZN9GG32111113fooEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32111113fooEv,_ZTv0_n20_N9GG32111113fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32111113fooEv,_ZThn8_N9GG32111113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32111113fooEv,_ZTv0_n12_N9GG32111113fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32111113fooEv,_ZThn16_N9GG32111113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+extern void _ZN3BB23barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32111113fooEv,_ZTv0_n20_N9GG32111113fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32111113fooEv,_ZThn32_N9GG32111113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32111113fooEv,_ZTv0_n12_N9GG32111113fooEv)();
+extern void ABISELECT(_ZThn80_N9GG32111113fooEv,_ZThn40_N9GG32111113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32111113fooEv,_ZTv0_n12_N9GG32111113fooEv)();
+extern void ABISELECT(_ZThn96_N9GG32111113fooEv,_ZThn48_N9GG32111113fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3211111[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3211111[0]),
+ (VTBL_ENTRY)&_ZN9GG32111113fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3211111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32111113fooEv,_ZTv0_n20_N9GG32111113fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3211111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32111113fooEv,_ZTv0_n12_N9GG32111113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3211111[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3211111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32111113fooEv,_ZTv0_n20_N9GG32111113fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3211111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32111113fooEv,_ZTv0_n12_N9GG32111113fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3211111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32111113fooEv,_ZTv0_n12_N9GG32111113fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3211111[];
+extern void _ZN5EE3213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE321__9GG3211111[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN5EE3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE321__9GG3211111[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE321__9GG3211111[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG3211111[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG3211111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG3211111[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG3211111[] = {
+ {&(_ZTV9GG3211111[8]), 8,39},
+ {&(_ZTV9GG3211111[14]), 14,39},
+ {&(_ZTV9GG3211111[19]), 19,39},
+ {&(_ZTV9GG3211111[24]), 24,39},
+ {&(_ZTV9GG3211111[30]), 30,39},
+ {&(_ZTV9GG3211111[34]), 34,39},
+ {&(_ZTV9GG3211111[38]), 38,39},
+ {&(_tg__ZTV5EE321__9GG3211111[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE321__9GG3211111[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE321__9GG3211111[3]), 3,4},
+ {&(_tg__ZTV5FF111__9GG3211111[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG3211111[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG3211111[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3211111[];
+extern VTBL_ENTRY _ZTV9GG3211111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3211111[];
+static VTBL_ENTRY alt_thunk_names841[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32111113fooEv,_ZTv0_n12_N9GG32111113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32111113fooEv,_ZThn48_N9GG32111113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32111113fooEv,_ZThn40_N9GG32111113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32111113fooEv,_ZThn16_N9GG32111113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32111113fooEv,_ZTv0_n20_N9GG32111113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32111113fooEv,_ZThn32_N9GG32111113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32111113fooEv,_ZThn8_N9GG32111113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3211111 = { "GG3211111", // class name
+ bases_GG3211111, 6,
+ &(vtc_GG3211111[0]), // expected_vtbl_contents
+ &(vtt_GG3211111[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3211111),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3211111),39, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3211111),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names841,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3211113 : virtual EE321 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG32111133fooEv
+ virtual void bar(); // _ZN9GG32111133barEv
+ ~GG3211113(); // tgen
+ GG3211113(); // tgen
+};
+//SIG(1 GG3211113) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3211113 ::foo(){vfunc_called(this, "_ZN9GG32111133fooEv");}
+void GG3211113 ::bar(){vfunc_called(this, "_ZN9GG32111133barEv");}
+GG3211113 ::~GG3211113(){ note_dtor("GG3211113", this);} // tgen
+GG3211113 ::GG3211113(){ note_ctor("GG3211113", this);} // tgen
+
+static void Test_GG3211113()
+{
+ extern Class_Descriptor cd_GG3211113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3211113, buf);
+ GG3211113 *dp, &lv = *(dp=new (buf) GG3211113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3211113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3211113)");
+ check_base_class_offset(lv, (AA3*)(EE321*), ABISELECT(32,16), "GG3211113");
+ check_base_class_offset(lv, (BB2*)(EE321*), ABISELECT(48,24), "GG3211113");
+ check_base_class_offset(lv, (EE321*), ABISELECT(16,8), "GG3211113");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(80,40), "GG3211113");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(96,48), "GG3211113");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG3211113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3211113.pg");
+ test_class_info(&lv, &cd_GG3211113);
+ dp->~GG3211113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3211113(Test_GG3211113, "GG3211113", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3211113C1Ev();
+extern void _ZN9GG3211113D1Ev();
+Name_Map name_map_GG3211113[] = {
+ NSPAIR(_ZN9GG3211113C1Ev),
+ NSPAIR(_ZN9GG3211113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE321;
+extern VTBL_ENTRY _ZTI5EE321[];
+extern VTBL_ENTRY _ZTV5EE321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE321[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG3211113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE321, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3211113[];
+extern void _ZN9GG32111133fooEv();
+extern void _ZN9GG32111133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32111133fooEv,_ZTv0_n20_N9GG32111133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32111133fooEv,_ZThn8_N9GG32111133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32111133fooEv,_ZTv0_n12_N9GG32111133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32111133fooEv,_ZThn16_N9GG32111133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32111133barEv,_ZTv0_n16_N9GG32111133barEv)();
+extern void ABISELECT(_ZThn32_N9GG32111133barEv,_ZThn16_N9GG32111133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32111133barEv,_ZTv0_n12_N9GG32111133barEv)();
+extern void ABISELECT(_ZThn48_N9GG32111133barEv,_ZThn24_N9GG32111133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32111133fooEv,_ZTv0_n20_N9GG32111133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32111133fooEv,_ZThn32_N9GG32111133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32111133fooEv,_ZTv0_n12_N9GG32111133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG32111133fooEv,_ZThn40_N9GG32111133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32111133fooEv,_ZTv0_n12_N9GG32111133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG32111133fooEv,_ZThn48_N9GG32111133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3211113[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3211113[0]),
+ (VTBL_ENTRY)&_ZN9GG32111133fooEv,
+ (VTBL_ENTRY)&_ZN9GG32111133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3211113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32111133fooEv,_ZTv0_n20_N9GG32111133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3211113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32111133fooEv,_ZTv0_n12_N9GG32111133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32111133barEv,_ZTv0_n16_N9GG32111133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3211113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32111133barEv,_ZTv0_n12_N9GG32111133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3211113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32111133fooEv,_ZTv0_n20_N9GG32111133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3211113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32111133fooEv,_ZTv0_n12_N9GG32111133fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3211113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32111133fooEv,_ZTv0_n12_N9GG32111133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3211113[];
+extern void _ZN5EE3213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE321__9GG3211113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN5EE3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE321__9GG3211113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE321__9GG3211113[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG3211113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG3211113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG3211113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG3211113[] = {
+ {&(_ZTV9GG3211113[8]), 8,40},
+ {&(_ZTV9GG3211113[15]), 15,40},
+ {&(_ZTV9GG3211113[20]), 20,40},
+ {&(_ZTV9GG3211113[25]), 25,40},
+ {&(_ZTV9GG3211113[31]), 31,40},
+ {&(_ZTV9GG3211113[35]), 35,40},
+ {&(_ZTV9GG3211113[39]), 39,40},
+ {&(_tg__ZTV5EE321__9GG3211113[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE321__9GG3211113[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE321__9GG3211113[3]), 3,4},
+ {&(_tg__ZTV5FF111__9GG3211113[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG3211113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG3211113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3211113[];
+extern VTBL_ENTRY _ZTV9GG3211113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3211113[];
+static VTBL_ENTRY alt_thunk_names842[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32111133barEv,_ZTv0_n12_N9GG32111133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32111133barEv,_ZThn24_N9GG32111133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32111133barEv,_ZTv0_n16_N9GG32111133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32111133barEv,_ZThn16_N9GG32111133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32111133fooEv,_ZTv0_n12_N9GG32111133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32111133fooEv,_ZThn48_N9GG32111133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32111133fooEv,_ZThn40_N9GG32111133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32111133fooEv,_ZThn16_N9GG32111133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32111133fooEv,_ZTv0_n20_N9GG32111133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32111133fooEv,_ZThn32_N9GG32111133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32111133fooEv,_ZThn8_N9GG32111133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3211113 = { "GG3211113", // class name
+ bases_GG3211113, 6,
+ &(vtc_GG3211113[0]), // expected_vtbl_contents
+ &(vtt_GG3211113[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3211113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3211113),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3211113),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names842,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3211123 : virtual EE321 , virtual FF112 {
+ int pg;
+ virtual void foo(); // _ZN9GG32111233fooEv
+ virtual void bar(); // _ZN9GG32111233barEv
+ ~GG3211123(); // tgen
+ GG3211123(); // tgen
+};
+//SIG(1 GG3211123) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3211123 ::foo(){vfunc_called(this, "_ZN9GG32111233fooEv");}
+void GG3211123 ::bar(){vfunc_called(this, "_ZN9GG32111233barEv");}
+GG3211123 ::~GG3211123(){ note_dtor("GG3211123", this);} // tgen
+GG3211123 ::GG3211123(){ note_ctor("GG3211123", this);} // tgen
+
+static void Test_GG3211123()
+{
+ extern Class_Descriptor cd_GG3211123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3211123, buf);
+ GG3211123 *dp, &lv = *(dp=new (buf) GG3211123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3211123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3211123)");
+ check_base_class_offset(lv, (AA3*)(EE321*), ABISELECT(32,16), "GG3211123");
+ check_base_class_offset(lv, (BB2*)(EE321*), ABISELECT(48,24), "GG3211123");
+ check_base_class_offset(lv, (EE321*), ABISELECT(16,8), "GG3211123");
+ check_base_class_offset(lv, (AA1*)(FF112*), ABISELECT(80,40), "GG3211123");
+ check_base_class_offset(lv, (BB1*)(FF112*), ABISELECT(96,48), "GG3211123");
+ check_base_class_offset(lv, (FF112*), ABISELECT(64,32), "GG3211123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3211123.pg");
+ test_class_info(&lv, &cd_GG3211123);
+ dp->~GG3211123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3211123(Test_GG3211123, "GG3211123", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3211123C1Ev();
+extern void _ZN9GG3211123D1Ev();
+Name_Map name_map_GG3211123[] = {
+ NSPAIR(_ZN9GG3211123C1Ev),
+ NSPAIR(_ZN9GG3211123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE321;
+extern VTBL_ENTRY _ZTI5EE321[];
+extern VTBL_ENTRY _ZTV5EE321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE321[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF112;
+extern VTBL_ENTRY _ZTI5FF112[];
+extern VTBL_ENTRY _ZTV5FF112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF112[];
+static Base_Class bases_GG3211123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE321, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF112, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3211123[];
+extern void _ZN9GG32111233fooEv();
+extern void _ZN9GG32111233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32111233fooEv,_ZTv0_n20_N9GG32111233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32111233fooEv,_ZThn8_N9GG32111233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32111233fooEv,_ZTv0_n12_N9GG32111233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32111233fooEv,_ZThn16_N9GG32111233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32111233barEv,_ZTv0_n16_N9GG32111233barEv)();
+extern void ABISELECT(_ZThn32_N9GG32111233barEv,_ZThn16_N9GG32111233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32111233barEv,_ZTv0_n12_N9GG32111233barEv)();
+extern void ABISELECT(_ZThn48_N9GG32111233barEv,_ZThn24_N9GG32111233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32111233barEv,_ZTv0_n20_N9GG32111233barEv)();
+extern void ABISELECT(_ZThn64_N9GG32111233barEv,_ZThn32_N9GG32111233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32111233fooEv,_ZTv0_n12_N9GG32111233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG32111233fooEv,_ZThn40_N9GG32111233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32111233fooEv,_ZTv0_n12_N9GG32111233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG32111233fooEv,_ZThn48_N9GG32111233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3211123[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3211123[0]),
+ (VTBL_ENTRY)&_ZN9GG32111233fooEv,
+ (VTBL_ENTRY)&_ZN9GG32111233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3211123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32111233fooEv,_ZTv0_n20_N9GG32111233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3211123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32111233fooEv,_ZTv0_n12_N9GG32111233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32111233barEv,_ZTv0_n16_N9GG32111233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3211123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32111233barEv,_ZTv0_n12_N9GG32111233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3211123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32111233barEv,_ZTv0_n20_N9GG32111233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3211123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32111233fooEv,_ZTv0_n12_N9GG32111233fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3211123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32111233fooEv,_ZTv0_n12_N9GG32111233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3211123[];
+extern void _ZN5EE3213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE321__9GG3211123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN5EE3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE321__9GG3211123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE321__9GG3211123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF1123barEv();
+static VTBL_ENTRY _tg__ZTV5FF112__9GG3211123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN5FF1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF112__9GG3211123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF112__9GG3211123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG3211123[] = {
+ {&(_ZTV9GG3211123[8]), 8,40},
+ {&(_ZTV9GG3211123[15]), 15,40},
+ {&(_ZTV9GG3211123[20]), 20,40},
+ {&(_ZTV9GG3211123[25]), 25,40},
+ {&(_ZTV9GG3211123[31]), 31,40},
+ {&(_ZTV9GG3211123[35]), 35,40},
+ {&(_ZTV9GG3211123[39]), 39,40},
+ {&(_tg__ZTV5EE321__9GG3211123[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE321__9GG3211123[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE321__9GG3211123[3]), 3,4},
+ {&(_tg__ZTV5FF112__9GG3211123[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF112__9GG3211123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF112__9GG3211123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3211123[];
+extern VTBL_ENTRY _ZTV9GG3211123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3211123[];
+static VTBL_ENTRY alt_thunk_names843[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32111233barEv,_ZTv0_n20_N9GG32111233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32111233barEv,_ZThn32_N9GG32111233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32111233barEv,_ZTv0_n12_N9GG32111233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32111233barEv,_ZThn24_N9GG32111233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32111233barEv,_ZTv0_n16_N9GG32111233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32111233barEv,_ZThn16_N9GG32111233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32111233fooEv,_ZTv0_n12_N9GG32111233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32111233fooEv,_ZThn48_N9GG32111233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32111233fooEv,_ZThn40_N9GG32111233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32111233fooEv,_ZThn16_N9GG32111233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32111233fooEv,_ZTv0_n20_N9GG32111233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32111233fooEv,_ZThn8_N9GG32111233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3211123 = { "GG3211123", // class name
+ bases_GG3211123, 6,
+ &(vtc_GG3211123[0]), // expected_vtbl_contents
+ &(vtt_GG3211123[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3211123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3211123),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3211123),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names843,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3211133 : virtual EE321 , virtual FF113 {
+ int pg;
+ virtual void foo(); // _ZN9GG32111333fooEv
+ virtual void bar(); // _ZN9GG32111333barEv
+ ~GG3211133(); // tgen
+ GG3211133(); // tgen
+};
+//SIG(1 GG3211133) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3211133 ::foo(){vfunc_called(this, "_ZN9GG32111333fooEv");}
+void GG3211133 ::bar(){vfunc_called(this, "_ZN9GG32111333barEv");}
+GG3211133 ::~GG3211133(){ note_dtor("GG3211133", this);} // tgen
+GG3211133 ::GG3211133(){ note_ctor("GG3211133", this);} // tgen
+
+static void Test_GG3211133()
+{
+ extern Class_Descriptor cd_GG3211133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3211133, buf);
+ GG3211133 *dp, &lv = *(dp=new (buf) GG3211133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3211133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3211133)");
+ check_base_class_offset(lv, (AA3*)(EE321*), ABISELECT(32,16), "GG3211133");
+ check_base_class_offset(lv, (BB2*)(EE321*), ABISELECT(48,24), "GG3211133");
+ check_base_class_offset(lv, (EE321*), ABISELECT(16,8), "GG3211133");
+ check_base_class_offset(lv, (AA1*)(FF113*), ABISELECT(80,40), "GG3211133");
+ check_base_class_offset(lv, (BB1*)(FF113*), ABISELECT(96,48), "GG3211133");
+ check_base_class_offset(lv, (FF113*), ABISELECT(64,32), "GG3211133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3211133.pg");
+ test_class_info(&lv, &cd_GG3211133);
+ dp->~GG3211133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3211133(Test_GG3211133, "GG3211133", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3211133C1Ev();
+extern void _ZN9GG3211133D1Ev();
+Name_Map name_map_GG3211133[] = {
+ NSPAIR(_ZN9GG3211133C1Ev),
+ NSPAIR(_ZN9GG3211133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE321;
+extern VTBL_ENTRY _ZTI5EE321[];
+extern VTBL_ENTRY _ZTV5EE321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE321[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF113;
+extern VTBL_ENTRY _ZTI5FF113[];
+extern VTBL_ENTRY _ZTV5FF113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF113[];
+static Base_Class bases_GG3211133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE321, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF113, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3211133[];
+extern void _ZN9GG32111333fooEv();
+extern void _ZN9GG32111333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32111333fooEv,_ZTv0_n20_N9GG32111333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32111333fooEv,_ZThn8_N9GG32111333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32111333fooEv,_ZTv0_n12_N9GG32111333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32111333fooEv,_ZThn16_N9GG32111333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32111333barEv,_ZTv0_n16_N9GG32111333barEv)();
+extern void ABISELECT(_ZThn32_N9GG32111333barEv,_ZThn16_N9GG32111333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32111333barEv,_ZTv0_n12_N9GG32111333barEv)();
+extern void ABISELECT(_ZThn48_N9GG32111333barEv,_ZThn24_N9GG32111333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32111333fooEv,_ZTv0_n20_N9GG32111333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32111333fooEv,_ZThn32_N9GG32111333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32111333barEv,_ZTv0_n24_N9GG32111333barEv)();
+extern void ABISELECT(_ZThn64_N9GG32111333barEv,_ZThn32_N9GG32111333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32111333fooEv,_ZTv0_n12_N9GG32111333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG32111333fooEv,_ZThn40_N9GG32111333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32111333fooEv,_ZTv0_n12_N9GG32111333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG32111333fooEv,_ZThn48_N9GG32111333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3211133[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3211133[0]),
+ (VTBL_ENTRY)&_ZN9GG32111333fooEv,
+ (VTBL_ENTRY)&_ZN9GG32111333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3211133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32111333fooEv,_ZTv0_n20_N9GG32111333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3211133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32111333fooEv,_ZTv0_n12_N9GG32111333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32111333barEv,_ZTv0_n16_N9GG32111333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3211133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32111333barEv,_ZTv0_n12_N9GG32111333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3211133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32111333fooEv,_ZTv0_n20_N9GG32111333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32111333barEv,_ZTv0_n24_N9GG32111333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3211133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32111333fooEv,_ZTv0_n12_N9GG32111333fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3211133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32111333fooEv,_ZTv0_n12_N9GG32111333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3211133[];
+extern void _ZN5EE3213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE321__9GG3211133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN5EE3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE321__9GG3211133[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE321__9GG3211133[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF1133fooEv();
+extern void _ZN5FF1133barEv();
+static VTBL_ENTRY _tg__ZTV5FF113__9GG3211133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&_ZN5FF1133fooEv,
+ (VTBL_ENTRY)&_ZN5FF1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF113__9GG3211133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1133fooEv,_ZThn16_N5FF1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF113__9GG3211133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+static VTT_ENTRY vtt_GG3211133[] = {
+ {&(_ZTV9GG3211133[8]), 8,42},
+ {&(_ZTV9GG3211133[15]), 15,42},
+ {&(_ZTV9GG3211133[20]), 20,42},
+ {&(_ZTV9GG3211133[25]), 25,42},
+ {&(_ZTV9GG3211133[32]), 32,42},
+ {&(_ZTV9GG3211133[37]), 37,42},
+ {&(_ZTV9GG3211133[41]), 41,42},
+ {&(_tg__ZTV5EE321__9GG3211133[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE321__9GG3211133[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE321__9GG3211133[3]), 3,4},
+ {&(_tg__ZTV5FF113__9GG3211133[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF113__9GG3211133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF113__9GG3211133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3211133[];
+extern VTBL_ENTRY _ZTV9GG3211133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3211133[];
+static VTBL_ENTRY alt_thunk_names844[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1133fooEv,_ZThn16_N5FF1133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG32111333barEv,_ZTv0_n24_N9GG32111333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32111333barEv,_ZThn32_N9GG32111333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32111333barEv,_ZTv0_n12_N9GG32111333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32111333barEv,_ZThn24_N9GG32111333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32111333barEv,_ZTv0_n16_N9GG32111333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32111333barEv,_ZThn16_N9GG32111333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32111333fooEv,_ZTv0_n12_N9GG32111333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32111333fooEv,_ZThn48_N9GG32111333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32111333fooEv,_ZThn40_N9GG32111333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32111333fooEv,_ZThn16_N9GG32111333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32111333fooEv,_ZTv0_n20_N9GG32111333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32111333fooEv,_ZThn32_N9GG32111333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32111333fooEv,_ZThn8_N9GG32111333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3211133 = { "GG3211133", // class name
+ bases_GG3211133, 6,
+ &(vtc_GG3211133[0]), // expected_vtbl_contents
+ &(vtt_GG3211133[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3211133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3211133),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3211133),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names844,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3211213 : virtual EE321 , virtual FF121 {
+ int pg;
+ virtual void foo(); // _ZN9GG32112133fooEv
+ virtual void bar(); // _ZN9GG32112133barEv
+ ~GG3211213(); // tgen
+ GG3211213(); // tgen
+};
+//SIG(1 GG3211213) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG3211213 ::foo(){vfunc_called(this, "_ZN9GG32112133fooEv");}
+void GG3211213 ::bar(){vfunc_called(this, "_ZN9GG32112133barEv");}
+GG3211213 ::~GG3211213(){ note_dtor("GG3211213", this);} // tgen
+GG3211213 ::GG3211213(){ note_ctor("GG3211213", this);} // tgen
+
+static void Test_GG3211213()
+{
+ extern Class_Descriptor cd_GG3211213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3211213, buf);
+ GG3211213 *dp, &lv = *(dp=new (buf) GG3211213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3211213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3211213)");
+ check_base_class_offset(lv, (AA3*)(EE321*), ABISELECT(32,16), "GG3211213");
+ check_base_class_offset(lv, (BB2*)(EE321*), ABISELECT(48,24), "GG3211213");
+ check_base_class_offset(lv, (BB2*)(FF121*), ABISELECT(48,24), "GG3211213");
+ check_base_class_offset(lv, (EE321*), ABISELECT(16,8), "GG3211213");
+ check_base_class_offset(lv, (AA1*)(FF121*), ABISELECT(80,40), "GG3211213");
+ check_base_class_offset(lv, (FF121*), ABISELECT(64,32), "GG3211213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3211213.pg");
+ test_class_info(&lv, &cd_GG3211213);
+ dp->~GG3211213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3211213(Test_GG3211213, "GG3211213", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3211213C1Ev();
+extern void _ZN9GG3211213D1Ev();
+Name_Map name_map_GG3211213[] = {
+ NSPAIR(_ZN9GG3211213C1Ev),
+ NSPAIR(_ZN9GG3211213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE321;
+extern VTBL_ENTRY _ZTI5EE321[];
+extern VTBL_ENTRY _ZTV5EE321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE321[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF121;
+extern VTBL_ENTRY _ZTI5FF121[];
+extern VTBL_ENTRY _ZTV5FF121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF121[];
+static Base_Class bases_GG3211213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE321, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF121, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3211213[];
+extern void _ZN9GG32112133fooEv();
+extern void _ZN9GG32112133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32112133fooEv,_ZTv0_n20_N9GG32112133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32112133fooEv,_ZThn8_N9GG32112133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32112133fooEv,_ZTv0_n12_N9GG32112133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32112133fooEv,_ZThn16_N9GG32112133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32112133barEv,_ZTv0_n16_N9GG32112133barEv)();
+extern void ABISELECT(_ZThn32_N9GG32112133barEv,_ZThn16_N9GG32112133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32112133barEv,_ZTv0_n12_N9GG32112133barEv)();
+extern void ABISELECT(_ZThn48_N9GG32112133barEv,_ZThn24_N9GG32112133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32112133fooEv,_ZTv0_n20_N9GG32112133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32112133fooEv,_ZThn32_N9GG32112133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32112133fooEv,_ZTv0_n12_N9GG32112133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG32112133fooEv,_ZThn40_N9GG32112133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3211213[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3211213[0]),
+ (VTBL_ENTRY)&_ZN9GG32112133fooEv,
+ (VTBL_ENTRY)&_ZN9GG32112133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3211213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32112133fooEv,_ZTv0_n20_N9GG32112133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3211213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32112133fooEv,_ZTv0_n12_N9GG32112133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32112133barEv,_ZTv0_n16_N9GG32112133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3211213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32112133barEv,_ZTv0_n12_N9GG32112133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3211213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32112133fooEv,_ZTv0_n20_N9GG32112133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3211213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32112133fooEv,_ZTv0_n12_N9GG32112133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3211213[];
+extern void _ZN5EE3213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE321__9GG3211213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN5EE3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE321__9GG3211213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE321__9GG3211213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF1213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF121__9GG3211213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN5FF1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1213fooEv,_ZThn8_N5FF1213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF121__9GG3211213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF121__9GG3211213[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG3211213[] = {
+ {&(_ZTV9GG3211213[7]), 7,35},
+ {&(_ZTV9GG3211213[14]), 14,35},
+ {&(_ZTV9GG3211213[19]), 19,35},
+ {&(_ZTV9GG3211213[24]), 24,35},
+ {&(_ZTV9GG3211213[30]), 30,35},
+ {&(_ZTV9GG3211213[34]), 34,35},
+ {&(_tg__ZTV5EE321__9GG3211213[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE321__9GG3211213[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE321__9GG3211213[3]), 3,4},
+ {&(_tg__ZTV5FF121__9GG3211213[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF121__9GG3211213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF121__9GG3211213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3211213[];
+extern VTBL_ENTRY _ZTV9GG3211213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3211213[];
+static VTBL_ENTRY alt_thunk_names845[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1213fooEv,_ZThn8_N5FF1213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32112133barEv,_ZTv0_n12_N9GG32112133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32112133barEv,_ZThn24_N9GG32112133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32112133barEv,_ZTv0_n16_N9GG32112133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32112133barEv,_ZThn16_N9GG32112133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32112133fooEv,_ZTv0_n12_N9GG32112133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32112133fooEv,_ZThn40_N9GG32112133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32112133fooEv,_ZThn16_N9GG32112133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32112133fooEv,_ZTv0_n20_N9GG32112133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32112133fooEv,_ZThn32_N9GG32112133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32112133fooEv,_ZThn8_N9GG32112133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3211213 = { "GG3211213", // class name
+ bases_GG3211213, 5,
+ &(vtc_GG3211213[0]), // expected_vtbl_contents
+ &(vtt_GG3211213[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3211213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3211213),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3211213),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names845,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3211223 : virtual EE321 , virtual FF122 {
+ int pg;
+ virtual void foo(); // _ZN9GG32112233fooEv
+ virtual void bar(); // _ZN9GG32112233barEv
+ ~GG3211223(); // tgen
+ GG3211223(); // tgen
+};
+//SIG(1 GG3211223) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG3211223 ::foo(){vfunc_called(this, "_ZN9GG32112233fooEv");}
+void GG3211223 ::bar(){vfunc_called(this, "_ZN9GG32112233barEv");}
+GG3211223 ::~GG3211223(){ note_dtor("GG3211223", this);} // tgen
+GG3211223 ::GG3211223(){ note_ctor("GG3211223", this);} // tgen
+
+static void Test_GG3211223()
+{
+ extern Class_Descriptor cd_GG3211223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3211223, buf);
+ GG3211223 *dp, &lv = *(dp=new (buf) GG3211223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3211223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3211223)");
+ check_base_class_offset(lv, (AA3*)(EE321*), ABISELECT(32,16), "GG3211223");
+ check_base_class_offset(lv, (BB2*)(EE321*), ABISELECT(48,24), "GG3211223");
+ check_base_class_offset(lv, (BB2*)(FF122*), ABISELECT(48,24), "GG3211223");
+ check_base_class_offset(lv, (EE321*), ABISELECT(16,8), "GG3211223");
+ check_base_class_offset(lv, (AA1*)(FF122*), ABISELECT(80,40), "GG3211223");
+ check_base_class_offset(lv, (FF122*), ABISELECT(64,32), "GG3211223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3211223.pg");
+ test_class_info(&lv, &cd_GG3211223);
+ dp->~GG3211223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3211223(Test_GG3211223, "GG3211223", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3211223C1Ev();
+extern void _ZN9GG3211223D1Ev();
+Name_Map name_map_GG3211223[] = {
+ NSPAIR(_ZN9GG3211223C1Ev),
+ NSPAIR(_ZN9GG3211223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE321;
+extern VTBL_ENTRY _ZTI5EE321[];
+extern VTBL_ENTRY _ZTV5EE321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE321[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF122;
+extern VTBL_ENTRY _ZTI5FF122[];
+extern VTBL_ENTRY _ZTV5FF122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF122[];
+static Base_Class bases_GG3211223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE321, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF122, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3211223[];
+extern void _ZN9GG32112233fooEv();
+extern void _ZN9GG32112233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32112233fooEv,_ZTv0_n20_N9GG32112233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32112233fooEv,_ZThn8_N9GG32112233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32112233fooEv,_ZTv0_n12_N9GG32112233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32112233fooEv,_ZThn16_N9GG32112233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32112233barEv,_ZTv0_n16_N9GG32112233barEv)();
+extern void ABISELECT(_ZThn32_N9GG32112233barEv,_ZThn16_N9GG32112233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32112233barEv,_ZTv0_n12_N9GG32112233barEv)();
+extern void ABISELECT(_ZThn48_N9GG32112233barEv,_ZThn24_N9GG32112233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32112233barEv,_ZTv0_n20_N9GG32112233barEv)();
+extern void ABISELECT(_ZThn64_N9GG32112233barEv,_ZThn32_N9GG32112233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32112233fooEv,_ZTv0_n12_N9GG32112233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG32112233fooEv,_ZThn40_N9GG32112233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3211223[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3211223[0]),
+ (VTBL_ENTRY)&_ZN9GG32112233fooEv,
+ (VTBL_ENTRY)&_ZN9GG32112233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3211223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32112233fooEv,_ZTv0_n20_N9GG32112233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3211223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32112233fooEv,_ZTv0_n12_N9GG32112233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32112233barEv,_ZTv0_n16_N9GG32112233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3211223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32112233barEv,_ZTv0_n12_N9GG32112233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3211223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32112233barEv,_ZTv0_n20_N9GG32112233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3211223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32112233fooEv,_ZTv0_n12_N9GG32112233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3211223[];
+extern void _ZN5EE3213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE321__9GG3211223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN5EE3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE321__9GG3211223[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE321__9GG3211223[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF1223barEv();
+static VTBL_ENTRY _tg__ZTV5FF122__9GG3211223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN5FF1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF122__9GG3211223[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF122__9GG3211223[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv),
+};
+static VTT_ENTRY vtt_GG3211223[] = {
+ {&(_ZTV9GG3211223[7]), 7,35},
+ {&(_ZTV9GG3211223[14]), 14,35},
+ {&(_ZTV9GG3211223[19]), 19,35},
+ {&(_ZTV9GG3211223[24]), 24,35},
+ {&(_ZTV9GG3211223[30]), 30,35},
+ {&(_ZTV9GG3211223[34]), 34,35},
+ {&(_tg__ZTV5EE321__9GG3211223[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE321__9GG3211223[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE321__9GG3211223[3]), 3,4},
+ {&(_tg__ZTV5FF122__9GG3211223[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF122__9GG3211223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF122__9GG3211223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3211223[];
+extern VTBL_ENTRY _ZTV9GG3211223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3211223[];
+static VTBL_ENTRY alt_thunk_names846[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32112233barEv,_ZTv0_n20_N9GG32112233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32112233barEv,_ZThn32_N9GG32112233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32112233barEv,_ZTv0_n12_N9GG32112233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32112233barEv,_ZThn24_N9GG32112233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32112233barEv,_ZTv0_n16_N9GG32112233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32112233barEv,_ZThn16_N9GG32112233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32112233fooEv,_ZTv0_n12_N9GG32112233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32112233fooEv,_ZThn40_N9GG32112233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32112233fooEv,_ZThn16_N9GG32112233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32112233fooEv,_ZTv0_n20_N9GG32112233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32112233fooEv,_ZThn8_N9GG32112233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3211223 = { "GG3211223", // class name
+ bases_GG3211223, 5,
+ &(vtc_GG3211223[0]), // expected_vtbl_contents
+ &(vtt_GG3211223[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3211223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3211223),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3211223),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names846,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3211233 : virtual EE321 , virtual FF123 {
+ int pg;
+ virtual void foo(); // _ZN9GG32112333fooEv
+ virtual void bar(); // _ZN9GG32112333barEv
+ ~GG3211233(); // tgen
+ GG3211233(); // tgen
+};
+//SIG(1 GG3211233) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3211233 ::foo(){vfunc_called(this, "_ZN9GG32112333fooEv");}
+void GG3211233 ::bar(){vfunc_called(this, "_ZN9GG32112333barEv");}
+GG3211233 ::~GG3211233(){ note_dtor("GG3211233", this);} // tgen
+GG3211233 ::GG3211233(){ note_ctor("GG3211233", this);} // tgen
+
+static void Test_GG3211233()
+{
+ extern Class_Descriptor cd_GG3211233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3211233, buf);
+ GG3211233 *dp, &lv = *(dp=new (buf) GG3211233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3211233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3211233)");
+ check_base_class_offset(lv, (AA3*)(EE321*), ABISELECT(32,16), "GG3211233");
+ check_base_class_offset(lv, (BB2*)(EE321*), ABISELECT(48,24), "GG3211233");
+ check_base_class_offset(lv, (BB2*)(FF123*), ABISELECT(48,24), "GG3211233");
+ check_base_class_offset(lv, (EE321*), ABISELECT(16,8), "GG3211233");
+ check_base_class_offset(lv, (AA1*)(FF123*), ABISELECT(80,40), "GG3211233");
+ check_base_class_offset(lv, (FF123*), ABISELECT(64,32), "GG3211233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3211233.pg");
+ test_class_info(&lv, &cd_GG3211233);
+ dp->~GG3211233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3211233(Test_GG3211233, "GG3211233", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3211233C1Ev();
+extern void _ZN9GG3211233D1Ev();
+Name_Map name_map_GG3211233[] = {
+ NSPAIR(_ZN9GG3211233C1Ev),
+ NSPAIR(_ZN9GG3211233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE321;
+extern VTBL_ENTRY _ZTI5EE321[];
+extern VTBL_ENTRY _ZTV5EE321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE321[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF123;
+extern VTBL_ENTRY _ZTI5FF123[];
+extern VTBL_ENTRY _ZTV5FF123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF123[];
+static Base_Class bases_GG3211233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE321, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF123, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3211233[];
+extern void _ZN9GG32112333fooEv();
+extern void _ZN9GG32112333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32112333fooEv,_ZTv0_n20_N9GG32112333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32112333fooEv,_ZThn8_N9GG32112333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32112333fooEv,_ZTv0_n12_N9GG32112333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32112333fooEv,_ZThn16_N9GG32112333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32112333barEv,_ZTv0_n16_N9GG32112333barEv)();
+extern void ABISELECT(_ZThn32_N9GG32112333barEv,_ZThn16_N9GG32112333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32112333barEv,_ZTv0_n12_N9GG32112333barEv)();
+extern void ABISELECT(_ZThn48_N9GG32112333barEv,_ZThn24_N9GG32112333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32112333fooEv,_ZTv0_n20_N9GG32112333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32112333fooEv,_ZThn32_N9GG32112333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32112333barEv,_ZTv0_n24_N9GG32112333barEv)();
+extern void ABISELECT(_ZThn64_N9GG32112333barEv,_ZThn32_N9GG32112333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32112333fooEv,_ZTv0_n12_N9GG32112333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG32112333fooEv,_ZThn40_N9GG32112333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3211233[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3211233[0]),
+ (VTBL_ENTRY)&_ZN9GG32112333fooEv,
+ (VTBL_ENTRY)&_ZN9GG32112333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3211233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32112333fooEv,_ZTv0_n20_N9GG32112333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3211233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32112333fooEv,_ZTv0_n12_N9GG32112333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32112333barEv,_ZTv0_n16_N9GG32112333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3211233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32112333barEv,_ZTv0_n12_N9GG32112333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3211233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32112333fooEv,_ZTv0_n20_N9GG32112333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32112333barEv,_ZTv0_n24_N9GG32112333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3211233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32112333fooEv,_ZTv0_n12_N9GG32112333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3211233[];
+extern void _ZN5EE3213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE321__9GG3211233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN5EE3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE321__9GG3211233[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE321__9GG3211233[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF1233fooEv();
+extern void _ZN5FF1233barEv();
+static VTBL_ENTRY _tg__ZTV5FF123__9GG3211233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&_ZN5FF1233fooEv,
+ (VTBL_ENTRY)&_ZN5FF1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1233fooEv,_ZThn8_N5FF1233fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF123__9GG3211233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF123__9GG3211233[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv),
+};
+static VTT_ENTRY vtt_GG3211233[] = {
+ {&(_ZTV9GG3211233[7]), 7,37},
+ {&(_ZTV9GG3211233[14]), 14,37},
+ {&(_ZTV9GG3211233[19]), 19,37},
+ {&(_ZTV9GG3211233[24]), 24,37},
+ {&(_ZTV9GG3211233[31]), 31,37},
+ {&(_ZTV9GG3211233[36]), 36,37},
+ {&(_tg__ZTV5EE321__9GG3211233[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE321__9GG3211233[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE321__9GG3211233[3]), 3,4},
+ {&(_tg__ZTV5FF123__9GG3211233[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF123__9GG3211233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF123__9GG3211233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3211233[];
+extern VTBL_ENTRY _ZTV9GG3211233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3211233[];
+static VTBL_ENTRY alt_thunk_names847[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1233fooEv,_ZThn8_N5FF1233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG32112333barEv,_ZTv0_n24_N9GG32112333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32112333barEv,_ZThn32_N9GG32112333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32112333barEv,_ZTv0_n12_N9GG32112333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32112333barEv,_ZThn24_N9GG32112333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32112333barEv,_ZTv0_n16_N9GG32112333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32112333barEv,_ZThn16_N9GG32112333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32112333fooEv,_ZTv0_n12_N9GG32112333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32112333fooEv,_ZThn40_N9GG32112333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32112333fooEv,_ZThn16_N9GG32112333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32112333fooEv,_ZTv0_n20_N9GG32112333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32112333fooEv,_ZThn32_N9GG32112333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32112333fooEv,_ZThn8_N9GG32112333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3211233 = { "GG3211233", // class name
+ bases_GG3211233, 5,
+ &(vtc_GG3211233[0]), // expected_vtbl_contents
+ &(vtt_GG3211233[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3211233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3211233),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3211233),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names847,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3211313 : virtual EE321 , virtual FF131 {
+ int pg;
+ virtual void foo(); // _ZN9GG32113133fooEv
+ virtual void bar(); // _ZN9GG32113133barEv
+ ~GG3211313(); // tgen
+ GG3211313(); // tgen
+};
+//SIG(1 GG3211313) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3211313 ::foo(){vfunc_called(this, "_ZN9GG32113133fooEv");}
+void GG3211313 ::bar(){vfunc_called(this, "_ZN9GG32113133barEv");}
+GG3211313 ::~GG3211313(){ note_dtor("GG3211313", this);} // tgen
+GG3211313 ::GG3211313(){ note_ctor("GG3211313", this);} // tgen
+
+static void Test_GG3211313()
+{
+ extern Class_Descriptor cd_GG3211313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3211313, buf);
+ GG3211313 *dp, &lv = *(dp=new (buf) GG3211313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3211313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3211313)");
+ check_base_class_offset(lv, (AA3*)(EE321*), ABISELECT(32,16), "GG3211313");
+ check_base_class_offset(lv, (BB2*)(EE321*), ABISELECT(48,24), "GG3211313");
+ check_base_class_offset(lv, (EE321*), ABISELECT(16,8), "GG3211313");
+ check_base_class_offset(lv, (AA1*)(FF131*), ABISELECT(80,40), "GG3211313");
+ check_base_class_offset(lv, (BB3*)(FF131*), ABISELECT(96,48), "GG3211313");
+ check_base_class_offset(lv, (FF131*), ABISELECT(64,32), "GG3211313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3211313.pg");
+ test_class_info(&lv, &cd_GG3211313);
+ dp->~GG3211313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3211313(Test_GG3211313, "GG3211313", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3211313C1Ev();
+extern void _ZN9GG3211313D1Ev();
+Name_Map name_map_GG3211313[] = {
+ NSPAIR(_ZN9GG3211313C1Ev),
+ NSPAIR(_ZN9GG3211313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE321;
+extern VTBL_ENTRY _ZTI5EE321[];
+extern VTBL_ENTRY _ZTV5EE321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE321[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF131;
+extern VTBL_ENTRY _ZTI5FF131[];
+extern VTBL_ENTRY _ZTV5FF131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF131[];
+static Base_Class bases_GG3211313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE321, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF131, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3211313[];
+extern void _ZN9GG32113133fooEv();
+extern void _ZN9GG32113133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32113133fooEv,_ZTv0_n20_N9GG32113133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32113133fooEv,_ZThn8_N9GG32113133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32113133fooEv,_ZTv0_n12_N9GG32113133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32113133fooEv,_ZThn16_N9GG32113133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32113133barEv,_ZTv0_n16_N9GG32113133barEv)();
+extern void ABISELECT(_ZThn32_N9GG32113133barEv,_ZThn16_N9GG32113133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32113133barEv,_ZTv0_n12_N9GG32113133barEv)();
+extern void ABISELECT(_ZThn48_N9GG32113133barEv,_ZThn24_N9GG32113133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32113133fooEv,_ZTv0_n20_N9GG32113133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32113133fooEv,_ZThn32_N9GG32113133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32113133fooEv,_ZTv0_n12_N9GG32113133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG32113133fooEv,_ZThn40_N9GG32113133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32113133fooEv,_ZTv0_n12_N9GG32113133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG32113133fooEv,_ZThn48_N9GG32113133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32113133barEv,_ZTv0_n16_N9GG32113133barEv)();
+extern void ABISELECT(_ZThn96_N9GG32113133barEv,_ZThn48_N9GG32113133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3211313[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3211313[0]),
+ (VTBL_ENTRY)&_ZN9GG32113133fooEv,
+ (VTBL_ENTRY)&_ZN9GG32113133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3211313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32113133fooEv,_ZTv0_n20_N9GG32113133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3211313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32113133fooEv,_ZTv0_n12_N9GG32113133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32113133barEv,_ZTv0_n16_N9GG32113133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3211313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32113133barEv,_ZTv0_n12_N9GG32113133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3211313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32113133fooEv,_ZTv0_n20_N9GG32113133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3211313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32113133fooEv,_ZTv0_n12_N9GG32113133fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3211313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32113133fooEv,_ZTv0_n12_N9GG32113133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32113133barEv,_ZTv0_n16_N9GG32113133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3211313[];
+extern void _ZN5EE3213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE321__9GG3211313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN5EE3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE321__9GG3211313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE321__9GG3211313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF1313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF131__9GG3211313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&_ZN5FF1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF131__9GG3211313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1313fooEv,_ZThn16_N5FF1313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF131__9GG3211313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG3211313[] = {
+ {&(_ZTV9GG3211313[8]), 8,42},
+ {&(_ZTV9GG3211313[15]), 15,42},
+ {&(_ZTV9GG3211313[20]), 20,42},
+ {&(_ZTV9GG3211313[25]), 25,42},
+ {&(_ZTV9GG3211313[31]), 31,42},
+ {&(_ZTV9GG3211313[35]), 35,42},
+ {&(_ZTV9GG3211313[40]), 40,42},
+ {&(_tg__ZTV5EE321__9GG3211313[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE321__9GG3211313[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE321__9GG3211313[3]), 3,4},
+ {&(_tg__ZTV5FF131__9GG3211313[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF131__9GG3211313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF131__9GG3211313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3211313[];
+extern VTBL_ENTRY _ZTV9GG3211313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3211313[];
+static VTBL_ENTRY alt_thunk_names848[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1313fooEv,_ZThn16_N5FF1313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32113133barEv,_ZTv0_n12_N9GG32113133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32113133barEv,_ZThn24_N9GG32113133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32113133barEv,_ZTv0_n16_N9GG32113133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32113133barEv,_ZThn48_N9GG32113133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32113133barEv,_ZThn16_N9GG32113133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32113133fooEv,_ZTv0_n12_N9GG32113133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32113133fooEv,_ZThn48_N9GG32113133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32113133fooEv,_ZThn40_N9GG32113133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32113133fooEv,_ZThn16_N9GG32113133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32113133fooEv,_ZTv0_n20_N9GG32113133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32113133fooEv,_ZThn32_N9GG32113133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32113133fooEv,_ZThn8_N9GG32113133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3211313 = { "GG3211313", // class name
+ bases_GG3211313, 6,
+ &(vtc_GG3211313[0]), // expected_vtbl_contents
+ &(vtt_GG3211313[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3211313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3211313),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3211313),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names848,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3211323 : virtual EE321 , virtual FF132 {
+ int pg;
+ virtual void foo(); // _ZN9GG32113233fooEv
+ virtual void bar(); // _ZN9GG32113233barEv
+ ~GG3211323(); // tgen
+ GG3211323(); // tgen
+};
+//SIG(1 GG3211323) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3211323 ::foo(){vfunc_called(this, "_ZN9GG32113233fooEv");}
+void GG3211323 ::bar(){vfunc_called(this, "_ZN9GG32113233barEv");}
+GG3211323 ::~GG3211323(){ note_dtor("GG3211323", this);} // tgen
+GG3211323 ::GG3211323(){ note_ctor("GG3211323", this);} // tgen
+
+static void Test_GG3211323()
+{
+ extern Class_Descriptor cd_GG3211323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3211323, buf);
+ GG3211323 *dp, &lv = *(dp=new (buf) GG3211323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3211323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3211323)");
+ check_base_class_offset(lv, (AA3*)(EE321*), ABISELECT(32,16), "GG3211323");
+ check_base_class_offset(lv, (BB2*)(EE321*), ABISELECT(48,24), "GG3211323");
+ check_base_class_offset(lv, (EE321*), ABISELECT(16,8), "GG3211323");
+ check_base_class_offset(lv, (AA1*)(FF132*), ABISELECT(80,40), "GG3211323");
+ check_base_class_offset(lv, (BB3*)(FF132*), ABISELECT(96,48), "GG3211323");
+ check_base_class_offset(lv, (FF132*), ABISELECT(64,32), "GG3211323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3211323.pg");
+ test_class_info(&lv, &cd_GG3211323);
+ dp->~GG3211323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3211323(Test_GG3211323, "GG3211323", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3211323C1Ev();
+extern void _ZN9GG3211323D1Ev();
+Name_Map name_map_GG3211323[] = {
+ NSPAIR(_ZN9GG3211323C1Ev),
+ NSPAIR(_ZN9GG3211323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE321;
+extern VTBL_ENTRY _ZTI5EE321[];
+extern VTBL_ENTRY _ZTV5EE321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE321[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF132;
+extern VTBL_ENTRY _ZTI5FF132[];
+extern VTBL_ENTRY _ZTV5FF132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF132[];
+static Base_Class bases_GG3211323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE321, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF132, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3211323[];
+extern void _ZN9GG32113233fooEv();
+extern void _ZN9GG32113233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32113233fooEv,_ZTv0_n20_N9GG32113233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32113233fooEv,_ZThn8_N9GG32113233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32113233fooEv,_ZTv0_n12_N9GG32113233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32113233fooEv,_ZThn16_N9GG32113233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32113233barEv,_ZTv0_n16_N9GG32113233barEv)();
+extern void ABISELECT(_ZThn32_N9GG32113233barEv,_ZThn16_N9GG32113233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32113233barEv,_ZTv0_n12_N9GG32113233barEv)();
+extern void ABISELECT(_ZThn48_N9GG32113233barEv,_ZThn24_N9GG32113233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32113233barEv,_ZTv0_n20_N9GG32113233barEv)();
+extern void ABISELECT(_ZThn64_N9GG32113233barEv,_ZThn32_N9GG32113233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32113233fooEv,_ZTv0_n12_N9GG32113233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG32113233fooEv,_ZThn40_N9GG32113233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32113233fooEv,_ZTv0_n12_N9GG32113233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG32113233fooEv,_ZThn48_N9GG32113233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32113233barEv,_ZTv0_n16_N9GG32113233barEv)();
+extern void ABISELECT(_ZThn96_N9GG32113233barEv,_ZThn48_N9GG32113233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3211323[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3211323[0]),
+ (VTBL_ENTRY)&_ZN9GG32113233fooEv,
+ (VTBL_ENTRY)&_ZN9GG32113233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3211323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32113233fooEv,_ZTv0_n20_N9GG32113233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3211323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32113233fooEv,_ZTv0_n12_N9GG32113233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32113233barEv,_ZTv0_n16_N9GG32113233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3211323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32113233barEv,_ZTv0_n12_N9GG32113233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3211323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32113233barEv,_ZTv0_n20_N9GG32113233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3211323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32113233fooEv,_ZTv0_n12_N9GG32113233fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3211323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32113233fooEv,_ZTv0_n12_N9GG32113233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32113233barEv,_ZTv0_n16_N9GG32113233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3211323[];
+extern void _ZN5EE3213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE321__9GG3211323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN5EE3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE321__9GG3211323[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE321__9GG3211323[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF1323barEv();
+static VTBL_ENTRY _tg__ZTV5FF132__9GG3211323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN5FF1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF132__9GG3211323[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv)();
+extern void ABISELECT(_ZThn32_N5FF1323barEv,_ZThn16_N5FF1323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF132__9GG3211323[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv),
+};
+static VTT_ENTRY vtt_GG3211323[] = {
+ {&(_ZTV9GG3211323[8]), 8,42},
+ {&(_ZTV9GG3211323[15]), 15,42},
+ {&(_ZTV9GG3211323[20]), 20,42},
+ {&(_ZTV9GG3211323[25]), 25,42},
+ {&(_ZTV9GG3211323[31]), 31,42},
+ {&(_ZTV9GG3211323[35]), 35,42},
+ {&(_ZTV9GG3211323[40]), 40,42},
+ {&(_tg__ZTV5EE321__9GG3211323[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE321__9GG3211323[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE321__9GG3211323[3]), 3,4},
+ {&(_tg__ZTV5FF132__9GG3211323[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF132__9GG3211323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF132__9GG3211323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3211323[];
+extern VTBL_ENTRY _ZTV9GG3211323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3211323[];
+static VTBL_ENTRY alt_thunk_names849[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1323barEv,_ZThn16_N5FF1323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32113233barEv,_ZTv0_n20_N9GG32113233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32113233barEv,_ZThn32_N9GG32113233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32113233barEv,_ZTv0_n12_N9GG32113233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32113233barEv,_ZThn24_N9GG32113233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32113233barEv,_ZTv0_n16_N9GG32113233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32113233barEv,_ZThn48_N9GG32113233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32113233barEv,_ZThn16_N9GG32113233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32113233fooEv,_ZTv0_n12_N9GG32113233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32113233fooEv,_ZThn48_N9GG32113233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32113233fooEv,_ZThn40_N9GG32113233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32113233fooEv,_ZThn16_N9GG32113233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32113233fooEv,_ZTv0_n20_N9GG32113233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32113233fooEv,_ZThn8_N9GG32113233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3211323 = { "GG3211323", // class name
+ bases_GG3211323, 6,
+ &(vtc_GG3211323[0]), // expected_vtbl_contents
+ &(vtt_GG3211323[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3211323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3211323),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3211323),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names849,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3211333 : virtual EE321 , virtual FF133 {
+ int pg;
+ virtual void foo(); // _ZN9GG32113333fooEv
+ virtual void bar(); // _ZN9GG32113333barEv
+ ~GG3211333(); // tgen
+ GG3211333(); // tgen
+};
+//SIG(1 GG3211333) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3211333 ::foo(){vfunc_called(this, "_ZN9GG32113333fooEv");}
+void GG3211333 ::bar(){vfunc_called(this, "_ZN9GG32113333barEv");}
+GG3211333 ::~GG3211333(){ note_dtor("GG3211333", this);} // tgen
+GG3211333 ::GG3211333(){ note_ctor("GG3211333", this);} // tgen
+
+static void Test_GG3211333()
+{
+ extern Class_Descriptor cd_GG3211333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3211333, buf);
+ GG3211333 *dp, &lv = *(dp=new (buf) GG3211333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3211333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3211333)");
+ check_base_class_offset(lv, (AA3*)(EE321*), ABISELECT(32,16), "GG3211333");
+ check_base_class_offset(lv, (BB2*)(EE321*), ABISELECT(48,24), "GG3211333");
+ check_base_class_offset(lv, (EE321*), ABISELECT(16,8), "GG3211333");
+ check_base_class_offset(lv, (AA1*)(FF133*), ABISELECT(80,40), "GG3211333");
+ check_base_class_offset(lv, (BB3*)(FF133*), ABISELECT(96,48), "GG3211333");
+ check_base_class_offset(lv, (FF133*), ABISELECT(64,32), "GG3211333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3211333.pg");
+ test_class_info(&lv, &cd_GG3211333);
+ dp->~GG3211333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3211333(Test_GG3211333, "GG3211333", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3211333C1Ev();
+extern void _ZN9GG3211333D1Ev();
+Name_Map name_map_GG3211333[] = {
+ NSPAIR(_ZN9GG3211333C1Ev),
+ NSPAIR(_ZN9GG3211333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE321;
+extern VTBL_ENTRY _ZTI5EE321[];
+extern VTBL_ENTRY _ZTV5EE321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE321[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF133;
+extern VTBL_ENTRY _ZTI5FF133[];
+extern VTBL_ENTRY _ZTV5FF133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF133[];
+static Base_Class bases_GG3211333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE321, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF133, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3211333[];
+extern void _ZN9GG32113333fooEv();
+extern void _ZN9GG32113333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32113333fooEv,_ZTv0_n20_N9GG32113333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32113333fooEv,_ZThn8_N9GG32113333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32113333fooEv,_ZTv0_n12_N9GG32113333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32113333fooEv,_ZThn16_N9GG32113333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32113333barEv,_ZTv0_n16_N9GG32113333barEv)();
+extern void ABISELECT(_ZThn32_N9GG32113333barEv,_ZThn16_N9GG32113333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32113333barEv,_ZTv0_n12_N9GG32113333barEv)();
+extern void ABISELECT(_ZThn48_N9GG32113333barEv,_ZThn24_N9GG32113333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32113333fooEv,_ZTv0_n20_N9GG32113333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32113333fooEv,_ZThn32_N9GG32113333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32113333barEv,_ZTv0_n24_N9GG32113333barEv)();
+extern void ABISELECT(_ZThn64_N9GG32113333barEv,_ZThn32_N9GG32113333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32113333fooEv,_ZTv0_n12_N9GG32113333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG32113333fooEv,_ZThn40_N9GG32113333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32113333fooEv,_ZTv0_n12_N9GG32113333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG32113333fooEv,_ZThn48_N9GG32113333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32113333barEv,_ZTv0_n16_N9GG32113333barEv)();
+extern void ABISELECT(_ZThn96_N9GG32113333barEv,_ZThn48_N9GG32113333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3211333[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3211333[0]),
+ (VTBL_ENTRY)&_ZN9GG32113333fooEv,
+ (VTBL_ENTRY)&_ZN9GG32113333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3211333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32113333fooEv,_ZTv0_n20_N9GG32113333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3211333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32113333fooEv,_ZTv0_n12_N9GG32113333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32113333barEv,_ZTv0_n16_N9GG32113333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3211333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32113333barEv,_ZTv0_n12_N9GG32113333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3211333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32113333fooEv,_ZTv0_n20_N9GG32113333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32113333barEv,_ZTv0_n24_N9GG32113333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3211333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32113333fooEv,_ZTv0_n12_N9GG32113333fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3211333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32113333fooEv,_ZTv0_n12_N9GG32113333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32113333barEv,_ZTv0_n16_N9GG32113333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3211333[];
+extern void _ZN5EE3213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE321__9GG3211333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN5EE3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE321__9GG3211333[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE321__9GG3211333[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF1333fooEv();
+extern void _ZN5FF1333barEv();
+static VTBL_ENTRY _tg__ZTV5FF133__9GG3211333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&_ZN5FF1333fooEv,
+ (VTBL_ENTRY)&_ZN5FF1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF133__9GG3211333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1333fooEv,_ZThn16_N5FF1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv)();
+extern void ABISELECT(_ZThn32_N5FF1333barEv,_ZThn16_N5FF1333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF133__9GG3211333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv),
+};
+static VTT_ENTRY vtt_GG3211333[] = {
+ {&(_ZTV9GG3211333[8]), 8,44},
+ {&(_ZTV9GG3211333[15]), 15,44},
+ {&(_ZTV9GG3211333[20]), 20,44},
+ {&(_ZTV9GG3211333[25]), 25,44},
+ {&(_ZTV9GG3211333[32]), 32,44},
+ {&(_ZTV9GG3211333[37]), 37,44},
+ {&(_ZTV9GG3211333[42]), 42,44},
+ {&(_tg__ZTV5EE321__9GG3211333[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE321__9GG3211333[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE321__9GG3211333[3]), 3,4},
+ {&(_tg__ZTV5FF133__9GG3211333[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF133__9GG3211333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF133__9GG3211333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3211333[];
+extern VTBL_ENTRY _ZTV9GG3211333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3211333[];
+static VTBL_ENTRY alt_thunk_names850[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1333barEv,_ZThn16_N5FF1333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1333fooEv,_ZThn16_N5FF1333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG32113333barEv,_ZTv0_n24_N9GG32113333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32113333barEv,_ZThn32_N9GG32113333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32113333barEv,_ZTv0_n12_N9GG32113333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32113333barEv,_ZThn24_N9GG32113333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32113333barEv,_ZTv0_n16_N9GG32113333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32113333barEv,_ZThn48_N9GG32113333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32113333barEv,_ZThn16_N9GG32113333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32113333fooEv,_ZTv0_n12_N9GG32113333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32113333fooEv,_ZThn48_N9GG32113333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32113333fooEv,_ZThn40_N9GG32113333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32113333fooEv,_ZThn16_N9GG32113333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32113333fooEv,_ZTv0_n20_N9GG32113333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32113333fooEv,_ZThn32_N9GG32113333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32113333fooEv,_ZThn8_N9GG32113333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3211333 = { "GG3211333", // class name
+ bases_GG3211333, 6,
+ &(vtc_GG3211333[0]), // expected_vtbl_contents
+ &(vtt_GG3211333[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3211333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3211333),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3211333),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names850,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3212113 : virtual EE321 , virtual FF211 {
+ int pg;
+ virtual void foo(); // _ZN9GG32121133fooEv
+ virtual void bar(); // _ZN9GG32121133barEv
+ ~GG3212113(); // tgen
+ GG3212113(); // tgen
+};
+//SIG(1 GG3212113) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3212113 ::foo(){vfunc_called(this, "_ZN9GG32121133fooEv");}
+void GG3212113 ::bar(){vfunc_called(this, "_ZN9GG32121133barEv");}
+GG3212113 ::~GG3212113(){ note_dtor("GG3212113", this);} // tgen
+GG3212113 ::GG3212113(){ note_ctor("GG3212113", this);} // tgen
+
+static void Test_GG3212113()
+{
+ extern Class_Descriptor cd_GG3212113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3212113, buf);
+ GG3212113 *dp, &lv = *(dp=new (buf) GG3212113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3212113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3212113)");
+ check_base_class_offset(lv, (AA3*)(EE321*), ABISELECT(32,16), "GG3212113");
+ check_base_class_offset(lv, (BB2*)(EE321*), ABISELECT(48,24), "GG3212113");
+ check_base_class_offset(lv, (EE321*), ABISELECT(16,8), "GG3212113");
+ check_base_class_offset(lv, (AA2*)(FF211*), ABISELECT(80,40), "GG3212113");
+ check_base_class_offset(lv, (BB1*)(FF211*), ABISELECT(96,48), "GG3212113");
+ check_base_class_offset(lv, (FF211*), ABISELECT(64,32), "GG3212113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3212113.pg");
+ test_class_info(&lv, &cd_GG3212113);
+ dp->~GG3212113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3212113(Test_GG3212113, "GG3212113", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3212113C1Ev();
+extern void _ZN9GG3212113D1Ev();
+Name_Map name_map_GG3212113[] = {
+ NSPAIR(_ZN9GG3212113C1Ev),
+ NSPAIR(_ZN9GG3212113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE321;
+extern VTBL_ENTRY _ZTI5EE321[];
+extern VTBL_ENTRY _ZTV5EE321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE321[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF211;
+extern VTBL_ENTRY _ZTI5FF211[];
+extern VTBL_ENTRY _ZTV5FF211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF211[];
+static Base_Class bases_GG3212113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE321, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF211, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3212113[];
+extern void _ZN9GG32121133fooEv();
+extern void _ZN9GG32121133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32121133fooEv,_ZTv0_n20_N9GG32121133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32121133fooEv,_ZThn8_N9GG32121133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32121133fooEv,_ZTv0_n12_N9GG32121133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32121133fooEv,_ZThn16_N9GG32121133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32121133barEv,_ZTv0_n16_N9GG32121133barEv)();
+extern void ABISELECT(_ZThn32_N9GG32121133barEv,_ZThn16_N9GG32121133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32121133barEv,_ZTv0_n12_N9GG32121133barEv)();
+extern void ABISELECT(_ZThn48_N9GG32121133barEv,_ZThn24_N9GG32121133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32121133fooEv,_ZTv0_n20_N9GG32121133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32121133fooEv,_ZThn32_N9GG32121133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32121133barEv,_ZTv0_n12_N9GG32121133barEv)();
+extern void ABISELECT(_ZThn80_N9GG32121133barEv,_ZThn40_N9GG32121133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32121133fooEv,_ZTv0_n12_N9GG32121133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG32121133fooEv,_ZThn48_N9GG32121133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3212113[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3212113[0]),
+ (VTBL_ENTRY)&_ZN9GG32121133fooEv,
+ (VTBL_ENTRY)&_ZN9GG32121133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3212113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32121133fooEv,_ZTv0_n20_N9GG32121133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3212113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32121133fooEv,_ZTv0_n12_N9GG32121133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32121133barEv,_ZTv0_n16_N9GG32121133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3212113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32121133barEv,_ZTv0_n12_N9GG32121133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3212113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32121133fooEv,_ZTv0_n20_N9GG32121133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3212113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32121133barEv,_ZTv0_n12_N9GG32121133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3212113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32121133fooEv,_ZTv0_n12_N9GG32121133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3212113[];
+extern void _ZN5EE3213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE321__9GG3212113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN5EE3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE321__9GG3212113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE321__9GG3212113[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF2113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF211__9GG3212113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN5FF2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF211__9GG3212113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2113fooEv,_ZThn16_N5FF2113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF211__9GG3212113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv),
+};
+static VTT_ENTRY vtt_GG3212113[] = {
+ {&(_ZTV9GG3212113[8]), 8,40},
+ {&(_ZTV9GG3212113[15]), 15,40},
+ {&(_ZTV9GG3212113[20]), 20,40},
+ {&(_ZTV9GG3212113[25]), 25,40},
+ {&(_ZTV9GG3212113[31]), 31,40},
+ {&(_ZTV9GG3212113[35]), 35,40},
+ {&(_ZTV9GG3212113[39]), 39,40},
+ {&(_tg__ZTV5EE321__9GG3212113[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE321__9GG3212113[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE321__9GG3212113[3]), 3,4},
+ {&(_tg__ZTV5FF211__9GG3212113[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF211__9GG3212113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF211__9GG3212113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3212113[];
+extern VTBL_ENTRY _ZTV9GG3212113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3212113[];
+static VTBL_ENTRY alt_thunk_names851[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2113fooEv,_ZThn16_N5FF2113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32121133barEv,_ZTv0_n12_N9GG32121133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32121133barEv,_ZThn40_N9GG32121133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32121133barEv,_ZThn24_N9GG32121133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32121133barEv,_ZTv0_n16_N9GG32121133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32121133barEv,_ZThn16_N9GG32121133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32121133fooEv,_ZTv0_n12_N9GG32121133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32121133fooEv,_ZThn48_N9GG32121133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32121133fooEv,_ZThn16_N9GG32121133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32121133fooEv,_ZTv0_n20_N9GG32121133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32121133fooEv,_ZThn32_N9GG32121133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32121133fooEv,_ZThn8_N9GG32121133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3212113 = { "GG3212113", // class name
+ bases_GG3212113, 6,
+ &(vtc_GG3212113[0]), // expected_vtbl_contents
+ &(vtt_GG3212113[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3212113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3212113),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3212113),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names851,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3212123 : virtual EE321 , virtual FF212 {
+ int pg;
+ virtual void foo(); // _ZN9GG32121233fooEv
+ virtual void bar(); // _ZN9GG32121233barEv
+ ~GG3212123(); // tgen
+ GG3212123(); // tgen
+};
+//SIG(1 GG3212123) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3212123 ::foo(){vfunc_called(this, "_ZN9GG32121233fooEv");}
+void GG3212123 ::bar(){vfunc_called(this, "_ZN9GG32121233barEv");}
+GG3212123 ::~GG3212123(){ note_dtor("GG3212123", this);} // tgen
+GG3212123 ::GG3212123(){ note_ctor("GG3212123", this);} // tgen
+
+static void Test_GG3212123()
+{
+ extern Class_Descriptor cd_GG3212123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3212123, buf);
+ GG3212123 *dp, &lv = *(dp=new (buf) GG3212123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3212123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3212123)");
+ check_base_class_offset(lv, (AA3*)(EE321*), ABISELECT(32,16), "GG3212123");
+ check_base_class_offset(lv, (BB2*)(EE321*), ABISELECT(48,24), "GG3212123");
+ check_base_class_offset(lv, (EE321*), ABISELECT(16,8), "GG3212123");
+ check_base_class_offset(lv, (AA2*)(FF212*), ABISELECT(80,40), "GG3212123");
+ check_base_class_offset(lv, (BB1*)(FF212*), ABISELECT(96,48), "GG3212123");
+ check_base_class_offset(lv, (FF212*), ABISELECT(64,32), "GG3212123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3212123.pg");
+ test_class_info(&lv, &cd_GG3212123);
+ dp->~GG3212123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3212123(Test_GG3212123, "GG3212123", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3212123C1Ev();
+extern void _ZN9GG3212123D1Ev();
+Name_Map name_map_GG3212123[] = {
+ NSPAIR(_ZN9GG3212123C1Ev),
+ NSPAIR(_ZN9GG3212123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE321;
+extern VTBL_ENTRY _ZTI5EE321[];
+extern VTBL_ENTRY _ZTV5EE321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE321[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF212;
+extern VTBL_ENTRY _ZTI5FF212[];
+extern VTBL_ENTRY _ZTV5FF212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF212[];
+static Base_Class bases_GG3212123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE321, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF212, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3212123[];
+extern void _ZN9GG32121233fooEv();
+extern void _ZN9GG32121233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32121233fooEv,_ZTv0_n20_N9GG32121233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32121233fooEv,_ZThn8_N9GG32121233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32121233fooEv,_ZTv0_n12_N9GG32121233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32121233fooEv,_ZThn16_N9GG32121233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32121233barEv,_ZTv0_n16_N9GG32121233barEv)();
+extern void ABISELECT(_ZThn32_N9GG32121233barEv,_ZThn16_N9GG32121233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32121233barEv,_ZTv0_n12_N9GG32121233barEv)();
+extern void ABISELECT(_ZThn48_N9GG32121233barEv,_ZThn24_N9GG32121233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32121233barEv,_ZTv0_n20_N9GG32121233barEv)();
+extern void ABISELECT(_ZThn64_N9GG32121233barEv,_ZThn32_N9GG32121233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32121233barEv,_ZTv0_n12_N9GG32121233barEv)();
+extern void ABISELECT(_ZThn80_N9GG32121233barEv,_ZThn40_N9GG32121233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32121233fooEv,_ZTv0_n12_N9GG32121233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG32121233fooEv,_ZThn48_N9GG32121233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3212123[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3212123[0]),
+ (VTBL_ENTRY)&_ZN9GG32121233fooEv,
+ (VTBL_ENTRY)&_ZN9GG32121233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3212123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32121233fooEv,_ZTv0_n20_N9GG32121233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3212123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32121233fooEv,_ZTv0_n12_N9GG32121233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32121233barEv,_ZTv0_n16_N9GG32121233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3212123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32121233barEv,_ZTv0_n12_N9GG32121233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3212123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32121233barEv,_ZTv0_n20_N9GG32121233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3212123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32121233barEv,_ZTv0_n12_N9GG32121233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3212123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32121233fooEv,_ZTv0_n12_N9GG32121233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3212123[];
+extern void _ZN5EE3213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE321__9GG3212123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN5EE3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE321__9GG3212123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE321__9GG3212123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF2123barEv();
+static VTBL_ENTRY _tg__ZTV5FF212__9GG3212123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN5FF2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv)();
+extern void ABISELECT(_ZThn16_N5FF2123barEv,_ZThn8_N5FF2123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF212__9GG3212123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF212__9GG3212123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG3212123[] = {
+ {&(_ZTV9GG3212123[8]), 8,40},
+ {&(_ZTV9GG3212123[15]), 15,40},
+ {&(_ZTV9GG3212123[20]), 20,40},
+ {&(_ZTV9GG3212123[25]), 25,40},
+ {&(_ZTV9GG3212123[31]), 31,40},
+ {&(_ZTV9GG3212123[35]), 35,40},
+ {&(_ZTV9GG3212123[39]), 39,40},
+ {&(_tg__ZTV5EE321__9GG3212123[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE321__9GG3212123[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE321__9GG3212123[3]), 3,4},
+ {&(_tg__ZTV5FF212__9GG3212123[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF212__9GG3212123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF212__9GG3212123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3212123[];
+extern VTBL_ENTRY _ZTV9GG3212123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3212123[];
+static VTBL_ENTRY alt_thunk_names852[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2123barEv,_ZThn8_N5FF2123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32121233barEv,_ZTv0_n20_N9GG32121233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32121233barEv,_ZThn32_N9GG32121233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32121233barEv,_ZTv0_n12_N9GG32121233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32121233barEv,_ZThn40_N9GG32121233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32121233barEv,_ZThn24_N9GG32121233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32121233barEv,_ZTv0_n16_N9GG32121233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32121233barEv,_ZThn16_N9GG32121233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32121233fooEv,_ZTv0_n12_N9GG32121233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32121233fooEv,_ZThn48_N9GG32121233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32121233fooEv,_ZThn16_N9GG32121233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32121233fooEv,_ZTv0_n20_N9GG32121233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32121233fooEv,_ZThn8_N9GG32121233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3212123 = { "GG3212123", // class name
+ bases_GG3212123, 6,
+ &(vtc_GG3212123[0]), // expected_vtbl_contents
+ &(vtt_GG3212123[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3212123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3212123),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3212123),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names852,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3212133 : virtual EE321 , virtual FF213 {
+ int pg;
+ virtual void foo(); // _ZN9GG32121333fooEv
+ virtual void bar(); // _ZN9GG32121333barEv
+ ~GG3212133(); // tgen
+ GG3212133(); // tgen
+};
+//SIG(1 GG3212133) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3212133 ::foo(){vfunc_called(this, "_ZN9GG32121333fooEv");}
+void GG3212133 ::bar(){vfunc_called(this, "_ZN9GG32121333barEv");}
+GG3212133 ::~GG3212133(){ note_dtor("GG3212133", this);} // tgen
+GG3212133 ::GG3212133(){ note_ctor("GG3212133", this);} // tgen
+
+static void Test_GG3212133()
+{
+ extern Class_Descriptor cd_GG3212133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3212133, buf);
+ GG3212133 *dp, &lv = *(dp=new (buf) GG3212133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3212133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3212133)");
+ check_base_class_offset(lv, (AA3*)(EE321*), ABISELECT(32,16), "GG3212133");
+ check_base_class_offset(lv, (BB2*)(EE321*), ABISELECT(48,24), "GG3212133");
+ check_base_class_offset(lv, (EE321*), ABISELECT(16,8), "GG3212133");
+ check_base_class_offset(lv, (AA2*)(FF213*), ABISELECT(80,40), "GG3212133");
+ check_base_class_offset(lv, (BB1*)(FF213*), ABISELECT(96,48), "GG3212133");
+ check_base_class_offset(lv, (FF213*), ABISELECT(64,32), "GG3212133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3212133.pg");
+ test_class_info(&lv, &cd_GG3212133);
+ dp->~GG3212133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3212133(Test_GG3212133, "GG3212133", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3212133C1Ev();
+extern void _ZN9GG3212133D1Ev();
+Name_Map name_map_GG3212133[] = {
+ NSPAIR(_ZN9GG3212133C1Ev),
+ NSPAIR(_ZN9GG3212133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE321;
+extern VTBL_ENTRY _ZTI5EE321[];
+extern VTBL_ENTRY _ZTV5EE321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE321[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF213;
+extern VTBL_ENTRY _ZTI5FF213[];
+extern VTBL_ENTRY _ZTV5FF213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF213[];
+static Base_Class bases_GG3212133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE321, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF213, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3212133[];
+extern void _ZN9GG32121333fooEv();
+extern void _ZN9GG32121333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32121333fooEv,_ZTv0_n20_N9GG32121333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32121333fooEv,_ZThn8_N9GG32121333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32121333fooEv,_ZTv0_n12_N9GG32121333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32121333fooEv,_ZThn16_N9GG32121333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32121333barEv,_ZTv0_n16_N9GG32121333barEv)();
+extern void ABISELECT(_ZThn32_N9GG32121333barEv,_ZThn16_N9GG32121333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32121333barEv,_ZTv0_n12_N9GG32121333barEv)();
+extern void ABISELECT(_ZThn48_N9GG32121333barEv,_ZThn24_N9GG32121333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32121333fooEv,_ZTv0_n20_N9GG32121333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32121333fooEv,_ZThn32_N9GG32121333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32121333barEv,_ZTv0_n24_N9GG32121333barEv)();
+extern void ABISELECT(_ZThn64_N9GG32121333barEv,_ZThn32_N9GG32121333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32121333barEv,_ZTv0_n12_N9GG32121333barEv)();
+extern void ABISELECT(_ZThn80_N9GG32121333barEv,_ZThn40_N9GG32121333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32121333fooEv,_ZTv0_n12_N9GG32121333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG32121333fooEv,_ZThn48_N9GG32121333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3212133[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3212133[0]),
+ (VTBL_ENTRY)&_ZN9GG32121333fooEv,
+ (VTBL_ENTRY)&_ZN9GG32121333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3212133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32121333fooEv,_ZTv0_n20_N9GG32121333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3212133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32121333fooEv,_ZTv0_n12_N9GG32121333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32121333barEv,_ZTv0_n16_N9GG32121333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3212133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32121333barEv,_ZTv0_n12_N9GG32121333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3212133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32121333fooEv,_ZTv0_n20_N9GG32121333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32121333barEv,_ZTv0_n24_N9GG32121333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3212133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32121333barEv,_ZTv0_n12_N9GG32121333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3212133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32121333fooEv,_ZTv0_n12_N9GG32121333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3212133[];
+extern void _ZN5EE3213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE321__9GG3212133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN5EE3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE321__9GG3212133[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE321__9GG3212133[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF2133fooEv();
+extern void _ZN5FF2133barEv();
+static VTBL_ENTRY _tg__ZTV5FF213__9GG3212133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&_ZN5FF2133fooEv,
+ (VTBL_ENTRY)&_ZN5FF2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv)();
+extern void ABISELECT(_ZThn16_N5FF2133barEv,_ZThn8_N5FF2133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF213__9GG3212133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2133fooEv,_ZThn16_N5FF2133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF213__9GG3212133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv),
+};
+static VTT_ENTRY vtt_GG3212133[] = {
+ {&(_ZTV9GG3212133[8]), 8,42},
+ {&(_ZTV9GG3212133[15]), 15,42},
+ {&(_ZTV9GG3212133[20]), 20,42},
+ {&(_ZTV9GG3212133[25]), 25,42},
+ {&(_ZTV9GG3212133[32]), 32,42},
+ {&(_ZTV9GG3212133[37]), 37,42},
+ {&(_ZTV9GG3212133[41]), 41,42},
+ {&(_tg__ZTV5EE321__9GG3212133[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE321__9GG3212133[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE321__9GG3212133[3]), 3,4},
+ {&(_tg__ZTV5FF213__9GG3212133[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF213__9GG3212133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF213__9GG3212133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3212133[];
+extern VTBL_ENTRY _ZTV9GG3212133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3212133[];
+static VTBL_ENTRY alt_thunk_names853[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2133fooEv,_ZThn16_N5FF2133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2133barEv,_ZThn8_N5FF2133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG32121333barEv,_ZTv0_n24_N9GG32121333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32121333barEv,_ZThn32_N9GG32121333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32121333barEv,_ZTv0_n12_N9GG32121333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32121333barEv,_ZThn40_N9GG32121333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32121333barEv,_ZThn24_N9GG32121333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32121333barEv,_ZTv0_n16_N9GG32121333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32121333barEv,_ZThn16_N9GG32121333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32121333fooEv,_ZTv0_n12_N9GG32121333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32121333fooEv,_ZThn48_N9GG32121333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32121333fooEv,_ZThn16_N9GG32121333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32121333fooEv,_ZTv0_n20_N9GG32121333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32121333fooEv,_ZThn32_N9GG32121333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32121333fooEv,_ZThn8_N9GG32121333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3212133 = { "GG3212133", // class name
+ bases_GG3212133, 6,
+ &(vtc_GG3212133[0]), // expected_vtbl_contents
+ &(vtt_GG3212133[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3212133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3212133),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3212133),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names853,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3212213 : virtual EE321 , virtual FF221 {
+ int pg;
+ virtual void foo(); // _ZN9GG32122133fooEv
+ virtual void bar(); // _ZN9GG32122133barEv
+ ~GG3212213(); // tgen
+ GG3212213(); // tgen
+};
+//SIG(1 GG3212213) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG3212213 ::foo(){vfunc_called(this, "_ZN9GG32122133fooEv");}
+void GG3212213 ::bar(){vfunc_called(this, "_ZN9GG32122133barEv");}
+GG3212213 ::~GG3212213(){ note_dtor("GG3212213", this);} // tgen
+GG3212213 ::GG3212213(){ note_ctor("GG3212213", this);} // tgen
+
+static void Test_GG3212213()
+{
+ extern Class_Descriptor cd_GG3212213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3212213, buf);
+ GG3212213 *dp, &lv = *(dp=new (buf) GG3212213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3212213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3212213)");
+ check_base_class_offset(lv, (AA3*)(EE321*), ABISELECT(32,16), "GG3212213");
+ check_base_class_offset(lv, (BB2*)(EE321*), ABISELECT(48,24), "GG3212213");
+ check_base_class_offset(lv, (BB2*)(FF221*), ABISELECT(48,24), "GG3212213");
+ check_base_class_offset(lv, (EE321*), ABISELECT(16,8), "GG3212213");
+ check_base_class_offset(lv, (AA2*)(FF221*), ABISELECT(80,40), "GG3212213");
+ check_base_class_offset(lv, (FF221*), ABISELECT(64,32), "GG3212213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3212213.pg");
+ test_class_info(&lv, &cd_GG3212213);
+ dp->~GG3212213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3212213(Test_GG3212213, "GG3212213", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3212213C1Ev();
+extern void _ZN9GG3212213D1Ev();
+Name_Map name_map_GG3212213[] = {
+ NSPAIR(_ZN9GG3212213C1Ev),
+ NSPAIR(_ZN9GG3212213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE321;
+extern VTBL_ENTRY _ZTI5EE321[];
+extern VTBL_ENTRY _ZTV5EE321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE321[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF221;
+extern VTBL_ENTRY _ZTI5FF221[];
+extern VTBL_ENTRY _ZTV5FF221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF221[];
+static Base_Class bases_GG3212213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE321, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF221, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3212213[];
+extern void _ZN9GG32122133fooEv();
+extern void _ZN9GG32122133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32122133fooEv,_ZTv0_n20_N9GG32122133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32122133fooEv,_ZThn8_N9GG32122133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32122133fooEv,_ZTv0_n12_N9GG32122133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32122133fooEv,_ZThn16_N9GG32122133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32122133barEv,_ZTv0_n16_N9GG32122133barEv)();
+extern void ABISELECT(_ZThn32_N9GG32122133barEv,_ZThn16_N9GG32122133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32122133barEv,_ZTv0_n12_N9GG32122133barEv)();
+extern void ABISELECT(_ZThn48_N9GG32122133barEv,_ZThn24_N9GG32122133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32122133fooEv,_ZTv0_n20_N9GG32122133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32122133fooEv,_ZThn32_N9GG32122133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32122133barEv,_ZTv0_n12_N9GG32122133barEv)();
+extern void ABISELECT(_ZThn80_N9GG32122133barEv,_ZThn40_N9GG32122133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3212213[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3212213[0]),
+ (VTBL_ENTRY)&_ZN9GG32122133fooEv,
+ (VTBL_ENTRY)&_ZN9GG32122133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3212213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32122133fooEv,_ZTv0_n20_N9GG32122133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3212213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32122133fooEv,_ZTv0_n12_N9GG32122133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32122133barEv,_ZTv0_n16_N9GG32122133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3212213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32122133barEv,_ZTv0_n12_N9GG32122133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3212213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32122133fooEv,_ZTv0_n20_N9GG32122133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3212213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32122133barEv,_ZTv0_n12_N9GG32122133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3212213[];
+extern void _ZN5EE3213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE321__9GG3212213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN5EE3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE321__9GG3212213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE321__9GG3212213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF2213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF221__9GG3212213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN5FF2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF221__9GG3212213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF221__9GG3212213[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG3212213[] = {
+ {&(_ZTV9GG3212213[7]), 7,35},
+ {&(_ZTV9GG3212213[14]), 14,35},
+ {&(_ZTV9GG3212213[19]), 19,35},
+ {&(_ZTV9GG3212213[24]), 24,35},
+ {&(_ZTV9GG3212213[30]), 30,35},
+ {&(_ZTV9GG3212213[34]), 34,35},
+ {&(_tg__ZTV5EE321__9GG3212213[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE321__9GG3212213[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE321__9GG3212213[3]), 3,4},
+ {&(_tg__ZTV5FF221__9GG3212213[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF221__9GG3212213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF221__9GG3212213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3212213[];
+extern VTBL_ENTRY _ZTV9GG3212213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3212213[];
+static VTBL_ENTRY alt_thunk_names854[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32122133barEv,_ZTv0_n12_N9GG32122133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32122133barEv,_ZThn40_N9GG32122133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32122133barEv,_ZThn24_N9GG32122133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32122133barEv,_ZTv0_n16_N9GG32122133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32122133barEv,_ZThn16_N9GG32122133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32122133fooEv,_ZTv0_n12_N9GG32122133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32122133fooEv,_ZThn16_N9GG32122133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32122133fooEv,_ZTv0_n20_N9GG32122133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32122133fooEv,_ZThn32_N9GG32122133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32122133fooEv,_ZThn8_N9GG32122133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3212213 = { "GG3212213", // class name
+ bases_GG3212213, 5,
+ &(vtc_GG3212213[0]), // expected_vtbl_contents
+ &(vtt_GG3212213[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3212213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3212213),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3212213),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names854,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3212222 : virtual EE321 , virtual FF222 {
+ int pg;
+ virtual void bar(); // _ZN9GG32122223barEv
+ ~GG3212222(); // tgen
+ GG3212222(); // tgen
+};
+//SIG(1 GG3212222) C1{ VBC2{ VBC3{ v2 v1 Fi} VBC4{ v1 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v1 Fi} v1 Fi}
+
+
+void GG3212222 ::bar(){vfunc_called(this, "_ZN9GG32122223barEv");}
+GG3212222 ::~GG3212222(){ note_dtor("GG3212222", this);} // tgen
+GG3212222 ::GG3212222(){ note_ctor("GG3212222", this);} // tgen
+
+static void Test_GG3212222()
+{
+ extern Class_Descriptor cd_GG3212222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3212222, buf);
+ GG3212222 *dp, &lv = *(dp=new (buf) GG3212222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3212222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3212222)");
+ check_base_class_offset(lv, (AA3*)(EE321*), ABISELECT(32,16), "GG3212222");
+ check_base_class_offset(lv, (BB2*)(EE321*), ABISELECT(48,24), "GG3212222");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(48,24), "GG3212222");
+ check_base_class_offset(lv, (EE321*), ABISELECT(16,8), "GG3212222");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(80,40), "GG3212222");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG3212222");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3212222.pg");
+ test_class_info(&lv, &cd_GG3212222);
+ dp->~GG3212222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3212222(Test_GG3212222, "GG3212222", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3212222C1Ev();
+extern void _ZN9GG3212222D1Ev();
+Name_Map name_map_GG3212222[] = {
+ NSPAIR(_ZN9GG3212222C1Ev),
+ NSPAIR(_ZN9GG3212222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE321;
+extern VTBL_ENTRY _ZTI5EE321[];
+extern VTBL_ENTRY _ZTV5EE321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE321[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG3212222[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE321, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3212222[];
+extern void _ZN9GG32122223barEv();
+extern void _ZN5EE3213fooEv();
+extern void ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32122223barEv,_ZTv0_n16_N9GG32122223barEv)();
+extern void ABISELECT(_ZThn32_N9GG32122223barEv,_ZThn16_N9GG32122223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32122223barEv,_ZTv0_n12_N9GG32122223barEv)();
+extern void ABISELECT(_ZThn48_N9GG32122223barEv,_ZThn24_N9GG32122223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32122223barEv,_ZTv0_n20_N9GG32122223barEv)();
+extern void ABISELECT(_ZThn64_N9GG32122223barEv,_ZThn32_N9GG32122223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32122223barEv,_ZTv0_n12_N9GG32122223barEv)();
+extern void ABISELECT(_ZThn80_N9GG32122223barEv,_ZThn40_N9GG32122223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3212222[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3212222[0]),
+ (VTBL_ENTRY)&_ZN9GG32122223barEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3212222[0]),
+ (VTBL_ENTRY)&_ZN5EE3213fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3212222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32122223barEv,_ZTv0_n16_N9GG32122223barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3212222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32122223barEv,_ZTv0_n12_N9GG32122223barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3212222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32122223barEv,_ZTv0_n20_N9GG32122223barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3212222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32122223barEv,_ZTv0_n12_N9GG32122223barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3212222[];
+extern void _ZN5EE3213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE321__9GG3212222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN5EE3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE321__9GG3212222[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE321__9GG3212222[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG3212222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG3212222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG3212222[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG3212222[] = {
+ {&(_ZTV9GG3212222[7]), 7,34},
+ {&(_ZTV9GG3212222[13]), 13,34},
+ {&(_ZTV9GG3212222[18]), 18,34},
+ {&(_ZTV9GG3212222[23]), 23,34},
+ {&(_ZTV9GG3212222[29]), 29,34},
+ {&(_ZTV9GG3212222[33]), 33,34},
+ {&(_tg__ZTV5EE321__9GG3212222[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE321__9GG3212222[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE321__9GG3212222[3]), 3,4},
+ {&(_tg__ZTV5FF222__9GG3212222[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG3212222[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG3212222[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3212222[];
+extern VTBL_ENTRY _ZTV9GG3212222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3212222[];
+static VTBL_ENTRY alt_thunk_names855[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32122223barEv,_ZTv0_n20_N9GG32122223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32122223barEv,_ZThn32_N9GG32122223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32122223barEv,_ZTv0_n12_N9GG32122223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32122223barEv,_ZThn40_N9GG32122223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32122223barEv,_ZThn24_N9GG32122223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32122223barEv,_ZTv0_n16_N9GG32122223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32122223barEv,_ZThn16_N9GG32122223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3212222 = { "GG3212222", // class name
+ bases_GG3212222, 5,
+ &(vtc_GG3212222[0]), // expected_vtbl_contents
+ &(vtt_GG3212222[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3212222),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3212222),34, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3212222),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names855,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3212223 : virtual EE321 , virtual FF222 {
+ int pg;
+ virtual void foo(); // _ZN9GG32122233fooEv
+ virtual void bar(); // _ZN9GG32122233barEv
+ ~GG3212223(); // tgen
+ GG3212223(); // tgen
+};
+//SIG(1 GG3212223) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG3212223 ::foo(){vfunc_called(this, "_ZN9GG32122233fooEv");}
+void GG3212223 ::bar(){vfunc_called(this, "_ZN9GG32122233barEv");}
+GG3212223 ::~GG3212223(){ note_dtor("GG3212223", this);} // tgen
+GG3212223 ::GG3212223(){ note_ctor("GG3212223", this);} // tgen
+
+static void Test_GG3212223()
+{
+ extern Class_Descriptor cd_GG3212223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3212223, buf);
+ GG3212223 *dp, &lv = *(dp=new (buf) GG3212223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3212223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3212223)");
+ check_base_class_offset(lv, (AA3*)(EE321*), ABISELECT(32,16), "GG3212223");
+ check_base_class_offset(lv, (BB2*)(EE321*), ABISELECT(48,24), "GG3212223");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(48,24), "GG3212223");
+ check_base_class_offset(lv, (EE321*), ABISELECT(16,8), "GG3212223");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(80,40), "GG3212223");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG3212223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3212223.pg");
+ test_class_info(&lv, &cd_GG3212223);
+ dp->~GG3212223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3212223(Test_GG3212223, "GG3212223", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3212223C1Ev();
+extern void _ZN9GG3212223D1Ev();
+Name_Map name_map_GG3212223[] = {
+ NSPAIR(_ZN9GG3212223C1Ev),
+ NSPAIR(_ZN9GG3212223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE321;
+extern VTBL_ENTRY _ZTI5EE321[];
+extern VTBL_ENTRY _ZTV5EE321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE321[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG3212223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE321, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3212223[];
+extern void _ZN9GG32122233fooEv();
+extern void _ZN9GG32122233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32122233fooEv,_ZTv0_n20_N9GG32122233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32122233fooEv,_ZThn8_N9GG32122233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32122233fooEv,_ZTv0_n12_N9GG32122233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32122233fooEv,_ZThn16_N9GG32122233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32122233barEv,_ZTv0_n16_N9GG32122233barEv)();
+extern void ABISELECT(_ZThn32_N9GG32122233barEv,_ZThn16_N9GG32122233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32122233barEv,_ZTv0_n12_N9GG32122233barEv)();
+extern void ABISELECT(_ZThn48_N9GG32122233barEv,_ZThn24_N9GG32122233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32122233barEv,_ZTv0_n20_N9GG32122233barEv)();
+extern void ABISELECT(_ZThn64_N9GG32122233barEv,_ZThn32_N9GG32122233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32122233barEv,_ZTv0_n12_N9GG32122233barEv)();
+extern void ABISELECT(_ZThn80_N9GG32122233barEv,_ZThn40_N9GG32122233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3212223[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3212223[0]),
+ (VTBL_ENTRY)&_ZN9GG32122233fooEv,
+ (VTBL_ENTRY)&_ZN9GG32122233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3212223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32122233fooEv,_ZTv0_n20_N9GG32122233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3212223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32122233fooEv,_ZTv0_n12_N9GG32122233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32122233barEv,_ZTv0_n16_N9GG32122233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3212223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32122233barEv,_ZTv0_n12_N9GG32122233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3212223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32122233barEv,_ZTv0_n20_N9GG32122233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3212223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32122233barEv,_ZTv0_n12_N9GG32122233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3212223[];
+extern void _ZN5EE3213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE321__9GG3212223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN5EE3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE321__9GG3212223[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE321__9GG3212223[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG3212223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG3212223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG3212223[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG3212223[] = {
+ {&(_ZTV9GG3212223[7]), 7,35},
+ {&(_ZTV9GG3212223[14]), 14,35},
+ {&(_ZTV9GG3212223[19]), 19,35},
+ {&(_ZTV9GG3212223[24]), 24,35},
+ {&(_ZTV9GG3212223[30]), 30,35},
+ {&(_ZTV9GG3212223[34]), 34,35},
+ {&(_tg__ZTV5EE321__9GG3212223[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE321__9GG3212223[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE321__9GG3212223[3]), 3,4},
+ {&(_tg__ZTV5FF222__9GG3212223[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG3212223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG3212223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3212223[];
+extern VTBL_ENTRY _ZTV9GG3212223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3212223[];
+static VTBL_ENTRY alt_thunk_names856[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32122233barEv,_ZTv0_n20_N9GG32122233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32122233barEv,_ZThn32_N9GG32122233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32122233barEv,_ZTv0_n12_N9GG32122233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32122233barEv,_ZThn40_N9GG32122233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32122233barEv,_ZThn24_N9GG32122233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32122233barEv,_ZTv0_n16_N9GG32122233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32122233barEv,_ZThn16_N9GG32122233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32122233fooEv,_ZTv0_n12_N9GG32122233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32122233fooEv,_ZThn16_N9GG32122233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32122233fooEv,_ZTv0_n20_N9GG32122233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32122233fooEv,_ZThn8_N9GG32122233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3212223 = { "GG3212223", // class name
+ bases_GG3212223, 5,
+ &(vtc_GG3212223[0]), // expected_vtbl_contents
+ &(vtt_GG3212223[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3212223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3212223),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3212223),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names856,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3212233 : virtual EE321 , virtual FF223 {
+ int pg;
+ virtual void foo(); // _ZN9GG32122333fooEv
+ virtual void bar(); // _ZN9GG32122333barEv
+ ~GG3212233(); // tgen
+ GG3212233(); // tgen
+};
+//SIG(1 GG3212233) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3212233 ::foo(){vfunc_called(this, "_ZN9GG32122333fooEv");}
+void GG3212233 ::bar(){vfunc_called(this, "_ZN9GG32122333barEv");}
+GG3212233 ::~GG3212233(){ note_dtor("GG3212233", this);} // tgen
+GG3212233 ::GG3212233(){ note_ctor("GG3212233", this);} // tgen
+
+static void Test_GG3212233()
+{
+ extern Class_Descriptor cd_GG3212233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3212233, buf);
+ GG3212233 *dp, &lv = *(dp=new (buf) GG3212233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3212233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3212233)");
+ check_base_class_offset(lv, (AA3*)(EE321*), ABISELECT(32,16), "GG3212233");
+ check_base_class_offset(lv, (BB2*)(EE321*), ABISELECT(48,24), "GG3212233");
+ check_base_class_offset(lv, (BB2*)(FF223*), ABISELECT(48,24), "GG3212233");
+ check_base_class_offset(lv, (EE321*), ABISELECT(16,8), "GG3212233");
+ check_base_class_offset(lv, (AA2*)(FF223*), ABISELECT(80,40), "GG3212233");
+ check_base_class_offset(lv, (FF223*), ABISELECT(64,32), "GG3212233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3212233.pg");
+ test_class_info(&lv, &cd_GG3212233);
+ dp->~GG3212233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3212233(Test_GG3212233, "GG3212233", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3212233C1Ev();
+extern void _ZN9GG3212233D1Ev();
+Name_Map name_map_GG3212233[] = {
+ NSPAIR(_ZN9GG3212233C1Ev),
+ NSPAIR(_ZN9GG3212233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE321;
+extern VTBL_ENTRY _ZTI5EE321[];
+extern VTBL_ENTRY _ZTV5EE321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE321[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF223;
+extern VTBL_ENTRY _ZTI5FF223[];
+extern VTBL_ENTRY _ZTV5FF223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF223[];
+static Base_Class bases_GG3212233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE321, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF223, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3212233[];
+extern void _ZN9GG32122333fooEv();
+extern void _ZN9GG32122333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32122333fooEv,_ZTv0_n20_N9GG32122333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32122333fooEv,_ZThn8_N9GG32122333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32122333fooEv,_ZTv0_n12_N9GG32122333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32122333fooEv,_ZThn16_N9GG32122333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32122333barEv,_ZTv0_n16_N9GG32122333barEv)();
+extern void ABISELECT(_ZThn32_N9GG32122333barEv,_ZThn16_N9GG32122333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32122333barEv,_ZTv0_n12_N9GG32122333barEv)();
+extern void ABISELECT(_ZThn48_N9GG32122333barEv,_ZThn24_N9GG32122333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32122333fooEv,_ZTv0_n20_N9GG32122333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32122333fooEv,_ZThn32_N9GG32122333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32122333barEv,_ZTv0_n24_N9GG32122333barEv)();
+extern void ABISELECT(_ZThn64_N9GG32122333barEv,_ZThn32_N9GG32122333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32122333barEv,_ZTv0_n12_N9GG32122333barEv)();
+extern void ABISELECT(_ZThn80_N9GG32122333barEv,_ZThn40_N9GG32122333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3212233[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3212233[0]),
+ (VTBL_ENTRY)&_ZN9GG32122333fooEv,
+ (VTBL_ENTRY)&_ZN9GG32122333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3212233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32122333fooEv,_ZTv0_n20_N9GG32122333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3212233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32122333fooEv,_ZTv0_n12_N9GG32122333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32122333barEv,_ZTv0_n16_N9GG32122333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3212233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32122333barEv,_ZTv0_n12_N9GG32122333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3212233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32122333fooEv,_ZTv0_n20_N9GG32122333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32122333barEv,_ZTv0_n24_N9GG32122333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3212233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32122333barEv,_ZTv0_n12_N9GG32122333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3212233[];
+extern void _ZN5EE3213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE321__9GG3212233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN5EE3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE321__9GG3212233[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE321__9GG3212233[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF2233fooEv();
+extern void _ZN5FF2233barEv();
+static VTBL_ENTRY _tg__ZTV5FF223__9GG3212233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&_ZN5FF2233fooEv,
+ (VTBL_ENTRY)&_ZN5FF2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+extern void ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF223__9GG3212233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF223__9GG3212233[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+static VTT_ENTRY vtt_GG3212233[] = {
+ {&(_ZTV9GG3212233[7]), 7,37},
+ {&(_ZTV9GG3212233[14]), 14,37},
+ {&(_ZTV9GG3212233[19]), 19,37},
+ {&(_ZTV9GG3212233[24]), 24,37},
+ {&(_ZTV9GG3212233[31]), 31,37},
+ {&(_ZTV9GG3212233[36]), 36,37},
+ {&(_tg__ZTV5EE321__9GG3212233[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE321__9GG3212233[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE321__9GG3212233[3]), 3,4},
+ {&(_tg__ZTV5FF223__9GG3212233[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF223__9GG3212233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF223__9GG3212233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3212233[];
+extern VTBL_ENTRY _ZTV9GG3212233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3212233[];
+static VTBL_ENTRY alt_thunk_names857[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG32122333barEv,_ZTv0_n24_N9GG32122333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32122333barEv,_ZThn32_N9GG32122333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32122333barEv,_ZTv0_n12_N9GG32122333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32122333barEv,_ZThn40_N9GG32122333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32122333barEv,_ZThn24_N9GG32122333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32122333barEv,_ZTv0_n16_N9GG32122333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32122333barEv,_ZThn16_N9GG32122333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32122333fooEv,_ZTv0_n12_N9GG32122333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32122333fooEv,_ZThn16_N9GG32122333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32122333fooEv,_ZTv0_n20_N9GG32122333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32122333fooEv,_ZThn32_N9GG32122333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32122333fooEv,_ZThn8_N9GG32122333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3212233 = { "GG3212233", // class name
+ bases_GG3212233, 5,
+ &(vtc_GG3212233[0]), // expected_vtbl_contents
+ &(vtt_GG3212233[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3212233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3212233),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3212233),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names857,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3212313 : virtual EE321 , virtual FF231 {
+ int pg;
+ virtual void foo(); // _ZN9GG32123133fooEv
+ virtual void bar(); // _ZN9GG32123133barEv
+ ~GG3212313(); // tgen
+ GG3212313(); // tgen
+};
+//SIG(1 GG3212313) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3212313 ::foo(){vfunc_called(this, "_ZN9GG32123133fooEv");}
+void GG3212313 ::bar(){vfunc_called(this, "_ZN9GG32123133barEv");}
+GG3212313 ::~GG3212313(){ note_dtor("GG3212313", this);} // tgen
+GG3212313 ::GG3212313(){ note_ctor("GG3212313", this);} // tgen
+
+static void Test_GG3212313()
+{
+ extern Class_Descriptor cd_GG3212313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3212313, buf);
+ GG3212313 *dp, &lv = *(dp=new (buf) GG3212313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3212313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3212313)");
+ check_base_class_offset(lv, (AA3*)(EE321*), ABISELECT(32,16), "GG3212313");
+ check_base_class_offset(lv, (BB2*)(EE321*), ABISELECT(48,24), "GG3212313");
+ check_base_class_offset(lv, (EE321*), ABISELECT(16,8), "GG3212313");
+ check_base_class_offset(lv, (AA2*)(FF231*), ABISELECT(80,40), "GG3212313");
+ check_base_class_offset(lv, (BB3*)(FF231*), ABISELECT(96,48), "GG3212313");
+ check_base_class_offset(lv, (FF231*), ABISELECT(64,32), "GG3212313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3212313.pg");
+ test_class_info(&lv, &cd_GG3212313);
+ dp->~GG3212313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3212313(Test_GG3212313, "GG3212313", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3212313C1Ev();
+extern void _ZN9GG3212313D1Ev();
+Name_Map name_map_GG3212313[] = {
+ NSPAIR(_ZN9GG3212313C1Ev),
+ NSPAIR(_ZN9GG3212313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE321;
+extern VTBL_ENTRY _ZTI5EE321[];
+extern VTBL_ENTRY _ZTV5EE321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE321[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF231;
+extern VTBL_ENTRY _ZTI5FF231[];
+extern VTBL_ENTRY _ZTV5FF231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF231[];
+static Base_Class bases_GG3212313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE321, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF231, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3212313[];
+extern void _ZN9GG32123133fooEv();
+extern void _ZN9GG32123133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32123133fooEv,_ZTv0_n20_N9GG32123133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32123133fooEv,_ZThn8_N9GG32123133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32123133fooEv,_ZTv0_n12_N9GG32123133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32123133fooEv,_ZThn16_N9GG32123133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32123133barEv,_ZTv0_n16_N9GG32123133barEv)();
+extern void ABISELECT(_ZThn32_N9GG32123133barEv,_ZThn16_N9GG32123133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32123133barEv,_ZTv0_n12_N9GG32123133barEv)();
+extern void ABISELECT(_ZThn48_N9GG32123133barEv,_ZThn24_N9GG32123133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32123133fooEv,_ZTv0_n20_N9GG32123133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32123133fooEv,_ZThn32_N9GG32123133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32123133barEv,_ZTv0_n12_N9GG32123133barEv)();
+extern void ABISELECT(_ZThn80_N9GG32123133barEv,_ZThn40_N9GG32123133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32123133fooEv,_ZTv0_n12_N9GG32123133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG32123133fooEv,_ZThn48_N9GG32123133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32123133barEv,_ZTv0_n16_N9GG32123133barEv)();
+extern void ABISELECT(_ZThn96_N9GG32123133barEv,_ZThn48_N9GG32123133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3212313[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3212313[0]),
+ (VTBL_ENTRY)&_ZN9GG32123133fooEv,
+ (VTBL_ENTRY)&_ZN9GG32123133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3212313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32123133fooEv,_ZTv0_n20_N9GG32123133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3212313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32123133fooEv,_ZTv0_n12_N9GG32123133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32123133barEv,_ZTv0_n16_N9GG32123133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3212313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32123133barEv,_ZTv0_n12_N9GG32123133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3212313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32123133fooEv,_ZTv0_n20_N9GG32123133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3212313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32123133barEv,_ZTv0_n12_N9GG32123133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3212313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32123133fooEv,_ZTv0_n12_N9GG32123133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32123133barEv,_ZTv0_n16_N9GG32123133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3212313[];
+extern void _ZN5EE3213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE321__9GG3212313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN5EE3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE321__9GG3212313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE321__9GG3212313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF2313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF231__9GG3212313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN5FF2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF231__9GG3212313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2313fooEv,_ZThn16_N5FF2313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF231__9GG3212313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG3212313[] = {
+ {&(_ZTV9GG3212313[8]), 8,42},
+ {&(_ZTV9GG3212313[15]), 15,42},
+ {&(_ZTV9GG3212313[20]), 20,42},
+ {&(_ZTV9GG3212313[25]), 25,42},
+ {&(_ZTV9GG3212313[31]), 31,42},
+ {&(_ZTV9GG3212313[35]), 35,42},
+ {&(_ZTV9GG3212313[40]), 40,42},
+ {&(_tg__ZTV5EE321__9GG3212313[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE321__9GG3212313[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE321__9GG3212313[3]), 3,4},
+ {&(_tg__ZTV5FF231__9GG3212313[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF231__9GG3212313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF231__9GG3212313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3212313[];
+extern VTBL_ENTRY _ZTV9GG3212313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3212313[];
+static VTBL_ENTRY alt_thunk_names858[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2313fooEv,_ZThn16_N5FF2313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32123133barEv,_ZTv0_n12_N9GG32123133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32123133barEv,_ZThn40_N9GG32123133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32123133barEv,_ZThn24_N9GG32123133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32123133barEv,_ZTv0_n16_N9GG32123133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32123133barEv,_ZThn48_N9GG32123133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32123133barEv,_ZThn16_N9GG32123133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32123133fooEv,_ZTv0_n12_N9GG32123133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32123133fooEv,_ZThn48_N9GG32123133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32123133fooEv,_ZThn16_N9GG32123133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32123133fooEv,_ZTv0_n20_N9GG32123133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32123133fooEv,_ZThn32_N9GG32123133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32123133fooEv,_ZThn8_N9GG32123133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3212313 = { "GG3212313", // class name
+ bases_GG3212313, 6,
+ &(vtc_GG3212313[0]), // expected_vtbl_contents
+ &(vtt_GG3212313[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3212313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3212313),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3212313),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names858,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3212323 : virtual EE321 , virtual FF232 {
+ int pg;
+ virtual void foo(); // _ZN9GG32123233fooEv
+ virtual void bar(); // _ZN9GG32123233barEv
+ ~GG3212323(); // tgen
+ GG3212323(); // tgen
+};
+//SIG(1 GG3212323) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3212323 ::foo(){vfunc_called(this, "_ZN9GG32123233fooEv");}
+void GG3212323 ::bar(){vfunc_called(this, "_ZN9GG32123233barEv");}
+GG3212323 ::~GG3212323(){ note_dtor("GG3212323", this);} // tgen
+GG3212323 ::GG3212323(){ note_ctor("GG3212323", this);} // tgen
+
+static void Test_GG3212323()
+{
+ extern Class_Descriptor cd_GG3212323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3212323, buf);
+ GG3212323 *dp, &lv = *(dp=new (buf) GG3212323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3212323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3212323)");
+ check_base_class_offset(lv, (AA3*)(EE321*), ABISELECT(32,16), "GG3212323");
+ check_base_class_offset(lv, (BB2*)(EE321*), ABISELECT(48,24), "GG3212323");
+ check_base_class_offset(lv, (EE321*), ABISELECT(16,8), "GG3212323");
+ check_base_class_offset(lv, (AA2*)(FF232*), ABISELECT(80,40), "GG3212323");
+ check_base_class_offset(lv, (BB3*)(FF232*), ABISELECT(96,48), "GG3212323");
+ check_base_class_offset(lv, (FF232*), ABISELECT(64,32), "GG3212323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3212323.pg");
+ test_class_info(&lv, &cd_GG3212323);
+ dp->~GG3212323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3212323(Test_GG3212323, "GG3212323", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3212323C1Ev();
+extern void _ZN9GG3212323D1Ev();
+Name_Map name_map_GG3212323[] = {
+ NSPAIR(_ZN9GG3212323C1Ev),
+ NSPAIR(_ZN9GG3212323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE321;
+extern VTBL_ENTRY _ZTI5EE321[];
+extern VTBL_ENTRY _ZTV5EE321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE321[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF232;
+extern VTBL_ENTRY _ZTI5FF232[];
+extern VTBL_ENTRY _ZTV5FF232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF232[];
+static Base_Class bases_GG3212323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE321, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF232, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3212323[];
+extern void _ZN9GG32123233fooEv();
+extern void _ZN9GG32123233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32123233fooEv,_ZTv0_n20_N9GG32123233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32123233fooEv,_ZThn8_N9GG32123233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32123233fooEv,_ZTv0_n12_N9GG32123233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32123233fooEv,_ZThn16_N9GG32123233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32123233barEv,_ZTv0_n16_N9GG32123233barEv)();
+extern void ABISELECT(_ZThn32_N9GG32123233barEv,_ZThn16_N9GG32123233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32123233barEv,_ZTv0_n12_N9GG32123233barEv)();
+extern void ABISELECT(_ZThn48_N9GG32123233barEv,_ZThn24_N9GG32123233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32123233barEv,_ZTv0_n20_N9GG32123233barEv)();
+extern void ABISELECT(_ZThn64_N9GG32123233barEv,_ZThn32_N9GG32123233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32123233barEv,_ZTv0_n12_N9GG32123233barEv)();
+extern void ABISELECT(_ZThn80_N9GG32123233barEv,_ZThn40_N9GG32123233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32123233fooEv,_ZTv0_n12_N9GG32123233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG32123233fooEv,_ZThn48_N9GG32123233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32123233barEv,_ZTv0_n16_N9GG32123233barEv)();
+extern void ABISELECT(_ZThn96_N9GG32123233barEv,_ZThn48_N9GG32123233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3212323[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3212323[0]),
+ (VTBL_ENTRY)&_ZN9GG32123233fooEv,
+ (VTBL_ENTRY)&_ZN9GG32123233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3212323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32123233fooEv,_ZTv0_n20_N9GG32123233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3212323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32123233fooEv,_ZTv0_n12_N9GG32123233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32123233barEv,_ZTv0_n16_N9GG32123233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3212323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32123233barEv,_ZTv0_n12_N9GG32123233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3212323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32123233barEv,_ZTv0_n20_N9GG32123233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3212323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32123233barEv,_ZTv0_n12_N9GG32123233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3212323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32123233fooEv,_ZTv0_n12_N9GG32123233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32123233barEv,_ZTv0_n16_N9GG32123233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3212323[];
+extern void _ZN5EE3213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE321__9GG3212323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN5EE3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE321__9GG3212323[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE321__9GG3212323[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF2323barEv();
+static VTBL_ENTRY _tg__ZTV5FF232__9GG3212323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN5FF2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv)();
+extern void ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF232__9GG3212323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv)();
+extern void ABISELECT(_ZThn32_N5FF2323barEv,_ZThn16_N5FF2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF232__9GG3212323[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv),
+};
+static VTT_ENTRY vtt_GG3212323[] = {
+ {&(_ZTV9GG3212323[8]), 8,42},
+ {&(_ZTV9GG3212323[15]), 15,42},
+ {&(_ZTV9GG3212323[20]), 20,42},
+ {&(_ZTV9GG3212323[25]), 25,42},
+ {&(_ZTV9GG3212323[31]), 31,42},
+ {&(_ZTV9GG3212323[35]), 35,42},
+ {&(_ZTV9GG3212323[40]), 40,42},
+ {&(_tg__ZTV5EE321__9GG3212323[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE321__9GG3212323[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE321__9GG3212323[3]), 3,4},
+ {&(_tg__ZTV5FF232__9GG3212323[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF232__9GG3212323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF232__9GG3212323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3212323[];
+extern VTBL_ENTRY _ZTV9GG3212323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3212323[];
+static VTBL_ENTRY alt_thunk_names859[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2323barEv,_ZThn16_N5FF2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32123233barEv,_ZTv0_n20_N9GG32123233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32123233barEv,_ZThn32_N9GG32123233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32123233barEv,_ZTv0_n12_N9GG32123233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32123233barEv,_ZThn40_N9GG32123233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32123233barEv,_ZThn24_N9GG32123233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32123233barEv,_ZTv0_n16_N9GG32123233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32123233barEv,_ZThn48_N9GG32123233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32123233barEv,_ZThn16_N9GG32123233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32123233fooEv,_ZTv0_n12_N9GG32123233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32123233fooEv,_ZThn48_N9GG32123233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32123233fooEv,_ZThn16_N9GG32123233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32123233fooEv,_ZTv0_n20_N9GG32123233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32123233fooEv,_ZThn8_N9GG32123233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3212323 = { "GG3212323", // class name
+ bases_GG3212323, 6,
+ &(vtc_GG3212323[0]), // expected_vtbl_contents
+ &(vtt_GG3212323[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3212323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3212323),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3212323),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names859,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3212333 : virtual EE321 , virtual FF233 {
+ int pg;
+ virtual void foo(); // _ZN9GG32123333fooEv
+ virtual void bar(); // _ZN9GG32123333barEv
+ ~GG3212333(); // tgen
+ GG3212333(); // tgen
+};
+//SIG(1 GG3212333) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3212333 ::foo(){vfunc_called(this, "_ZN9GG32123333fooEv");}
+void GG3212333 ::bar(){vfunc_called(this, "_ZN9GG32123333barEv");}
+GG3212333 ::~GG3212333(){ note_dtor("GG3212333", this);} // tgen
+GG3212333 ::GG3212333(){ note_ctor("GG3212333", this);} // tgen
+
+static void Test_GG3212333()
+{
+ extern Class_Descriptor cd_GG3212333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3212333, buf);
+ GG3212333 *dp, &lv = *(dp=new (buf) GG3212333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3212333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3212333)");
+ check_base_class_offset(lv, (AA3*)(EE321*), ABISELECT(32,16), "GG3212333");
+ check_base_class_offset(lv, (BB2*)(EE321*), ABISELECT(48,24), "GG3212333");
+ check_base_class_offset(lv, (EE321*), ABISELECT(16,8), "GG3212333");
+ check_base_class_offset(lv, (AA2*)(FF233*), ABISELECT(80,40), "GG3212333");
+ check_base_class_offset(lv, (BB3*)(FF233*), ABISELECT(96,48), "GG3212333");
+ check_base_class_offset(lv, (FF233*), ABISELECT(64,32), "GG3212333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3212333.pg");
+ test_class_info(&lv, &cd_GG3212333);
+ dp->~GG3212333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3212333(Test_GG3212333, "GG3212333", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3212333C1Ev();
+extern void _ZN9GG3212333D1Ev();
+Name_Map name_map_GG3212333[] = {
+ NSPAIR(_ZN9GG3212333C1Ev),
+ NSPAIR(_ZN9GG3212333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE321;
+extern VTBL_ENTRY _ZTI5EE321[];
+extern VTBL_ENTRY _ZTV5EE321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE321[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF233;
+extern VTBL_ENTRY _ZTI5FF233[];
+extern VTBL_ENTRY _ZTV5FF233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF233[];
+static Base_Class bases_GG3212333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE321, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF233, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3212333[];
+extern void _ZN9GG32123333fooEv();
+extern void _ZN9GG32123333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32123333fooEv,_ZTv0_n20_N9GG32123333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32123333fooEv,_ZThn8_N9GG32123333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32123333fooEv,_ZTv0_n12_N9GG32123333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32123333fooEv,_ZThn16_N9GG32123333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32123333barEv,_ZTv0_n16_N9GG32123333barEv)();
+extern void ABISELECT(_ZThn32_N9GG32123333barEv,_ZThn16_N9GG32123333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32123333barEv,_ZTv0_n12_N9GG32123333barEv)();
+extern void ABISELECT(_ZThn48_N9GG32123333barEv,_ZThn24_N9GG32123333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32123333fooEv,_ZTv0_n20_N9GG32123333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32123333fooEv,_ZThn32_N9GG32123333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32123333barEv,_ZTv0_n24_N9GG32123333barEv)();
+extern void ABISELECT(_ZThn64_N9GG32123333barEv,_ZThn32_N9GG32123333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32123333barEv,_ZTv0_n12_N9GG32123333barEv)();
+extern void ABISELECT(_ZThn80_N9GG32123333barEv,_ZThn40_N9GG32123333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32123333fooEv,_ZTv0_n12_N9GG32123333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG32123333fooEv,_ZThn48_N9GG32123333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32123333barEv,_ZTv0_n16_N9GG32123333barEv)();
+extern void ABISELECT(_ZThn96_N9GG32123333barEv,_ZThn48_N9GG32123333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3212333[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3212333[0]),
+ (VTBL_ENTRY)&_ZN9GG32123333fooEv,
+ (VTBL_ENTRY)&_ZN9GG32123333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3212333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32123333fooEv,_ZTv0_n20_N9GG32123333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3212333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32123333fooEv,_ZTv0_n12_N9GG32123333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32123333barEv,_ZTv0_n16_N9GG32123333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3212333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32123333barEv,_ZTv0_n12_N9GG32123333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3212333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32123333fooEv,_ZTv0_n20_N9GG32123333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32123333barEv,_ZTv0_n24_N9GG32123333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3212333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32123333barEv,_ZTv0_n12_N9GG32123333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3212333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32123333fooEv,_ZTv0_n12_N9GG32123333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32123333barEv,_ZTv0_n16_N9GG32123333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3212333[];
+extern void _ZN5EE3213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE321__9GG3212333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN5EE3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE321__9GG3212333[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE321__9GG3212333[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF2333fooEv();
+extern void _ZN5FF2333barEv();
+static VTBL_ENTRY _tg__ZTV5FF233__9GG3212333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&_ZN5FF2333fooEv,
+ (VTBL_ENTRY)&_ZN5FF2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv)();
+extern void ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF233__9GG3212333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2333fooEv,_ZThn16_N5FF2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv)();
+extern void ABISELECT(_ZThn32_N5FF2333barEv,_ZThn16_N5FF2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF233__9GG3212333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv),
+};
+static VTT_ENTRY vtt_GG3212333[] = {
+ {&(_ZTV9GG3212333[8]), 8,44},
+ {&(_ZTV9GG3212333[15]), 15,44},
+ {&(_ZTV9GG3212333[20]), 20,44},
+ {&(_ZTV9GG3212333[25]), 25,44},
+ {&(_ZTV9GG3212333[32]), 32,44},
+ {&(_ZTV9GG3212333[37]), 37,44},
+ {&(_ZTV9GG3212333[42]), 42,44},
+ {&(_tg__ZTV5EE321__9GG3212333[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE321__9GG3212333[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE321__9GG3212333[3]), 3,4},
+ {&(_tg__ZTV5FF233__9GG3212333[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF233__9GG3212333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF233__9GG3212333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3212333[];
+extern VTBL_ENTRY _ZTV9GG3212333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3212333[];
+static VTBL_ENTRY alt_thunk_names860[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2333barEv,_ZThn16_N5FF2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2333fooEv,_ZThn16_N5FF2333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG32123333barEv,_ZTv0_n24_N9GG32123333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32123333barEv,_ZThn32_N9GG32123333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32123333barEv,_ZTv0_n12_N9GG32123333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32123333barEv,_ZThn40_N9GG32123333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32123333barEv,_ZThn24_N9GG32123333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32123333barEv,_ZTv0_n16_N9GG32123333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32123333barEv,_ZThn48_N9GG32123333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32123333barEv,_ZThn16_N9GG32123333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32123333fooEv,_ZTv0_n12_N9GG32123333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32123333fooEv,_ZThn48_N9GG32123333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32123333fooEv,_ZThn16_N9GG32123333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32123333fooEv,_ZTv0_n20_N9GG32123333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32123333fooEv,_ZThn32_N9GG32123333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32123333fooEv,_ZThn8_N9GG32123333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3212333 = { "GG3212333", // class name
+ bases_GG3212333, 6,
+ &(vtc_GG3212333[0]), // expected_vtbl_contents
+ &(vtt_GG3212333[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3212333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3212333),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3212333),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names860,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3213113 : virtual EE321 , virtual FF311 {
+ int pg;
+ virtual void foo(); // _ZN9GG32131133fooEv
+ virtual void bar(); // _ZN9GG32131133barEv
+ ~GG3213113(); // tgen
+ GG3213113(); // tgen
+};
+//SIG(1 GG3213113) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3213113 ::foo(){vfunc_called(this, "_ZN9GG32131133fooEv");}
+void GG3213113 ::bar(){vfunc_called(this, "_ZN9GG32131133barEv");}
+GG3213113 ::~GG3213113(){ note_dtor("GG3213113", this);} // tgen
+GG3213113 ::GG3213113(){ note_ctor("GG3213113", this);} // tgen
+
+static void Test_GG3213113()
+{
+ extern Class_Descriptor cd_GG3213113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3213113, buf);
+ GG3213113 *dp, &lv = *(dp=new (buf) GG3213113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3213113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3213113)");
+ check_base_class_offset(lv, (AA3*)(EE321*), ABISELECT(32,16), "GG3213113");
+ check_base_class_offset(lv, (AA3*)(FF311*), ABISELECT(32,16), "GG3213113");
+ check_base_class_offset(lv, (BB2*)(EE321*), ABISELECT(48,24), "GG3213113");
+ check_base_class_offset(lv, (EE321*), ABISELECT(16,8), "GG3213113");
+ check_base_class_offset(lv, (BB1*)(FF311*), ABISELECT(80,40), "GG3213113");
+ check_base_class_offset(lv, (FF311*), ABISELECT(64,32), "GG3213113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3213113.pg");
+ test_class_info(&lv, &cd_GG3213113);
+ dp->~GG3213113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3213113(Test_GG3213113, "GG3213113", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3213113C1Ev();
+extern void _ZN9GG3213113D1Ev();
+Name_Map name_map_GG3213113[] = {
+ NSPAIR(_ZN9GG3213113C1Ev),
+ NSPAIR(_ZN9GG3213113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE321;
+extern VTBL_ENTRY _ZTI5EE321[];
+extern VTBL_ENTRY _ZTV5EE321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE321[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF311;
+extern VTBL_ENTRY _ZTI5FF311[];
+extern VTBL_ENTRY _ZTV5FF311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF311[];
+static Base_Class bases_GG3213113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE321, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF311, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3213113[];
+extern void _ZN9GG32131133fooEv();
+extern void _ZN9GG32131133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32131133fooEv,_ZTv0_n20_N9GG32131133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32131133fooEv,_ZThn8_N9GG32131133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32131133fooEv,_ZTv0_n12_N9GG32131133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32131133fooEv,_ZThn16_N9GG32131133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32131133barEv,_ZTv0_n16_N9GG32131133barEv)();
+extern void ABISELECT(_ZThn32_N9GG32131133barEv,_ZThn16_N9GG32131133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32131133barEv,_ZTv0_n12_N9GG32131133barEv)();
+extern void ABISELECT(_ZThn48_N9GG32131133barEv,_ZThn24_N9GG32131133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32131133fooEv,_ZTv0_n20_N9GG32131133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32131133fooEv,_ZThn32_N9GG32131133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32131133fooEv,_ZTv0_n12_N9GG32131133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG32131133fooEv,_ZThn40_N9GG32131133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3213113[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3213113[0]),
+ (VTBL_ENTRY)&_ZN9GG32131133fooEv,
+ (VTBL_ENTRY)&_ZN9GG32131133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3213113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32131133fooEv,_ZTv0_n20_N9GG32131133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3213113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32131133fooEv,_ZTv0_n12_N9GG32131133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32131133barEv,_ZTv0_n16_N9GG32131133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3213113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32131133barEv,_ZTv0_n12_N9GG32131133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3213113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32131133fooEv,_ZTv0_n20_N9GG32131133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3213113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32131133fooEv,_ZTv0_n12_N9GG32131133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3213113[];
+extern void _ZN5EE3213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE321__9GG3213113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN5EE3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE321__9GG3213113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE321__9GG3213113[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF3113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF311__9GG3213113[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&_ZN5FF3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF311__9GG3213113[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF311__9GG3213113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+};
+static VTT_ENTRY vtt_GG3213113[] = {
+ {&(_ZTV9GG3213113[7]), 7,35},
+ {&(_ZTV9GG3213113[14]), 14,35},
+ {&(_ZTV9GG3213113[19]), 19,35},
+ {&(_ZTV9GG3213113[24]), 24,35},
+ {&(_ZTV9GG3213113[30]), 30,35},
+ {&(_ZTV9GG3213113[34]), 34,35},
+ {&(_tg__ZTV5EE321__9GG3213113[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE321__9GG3213113[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE321__9GG3213113[3]), 3,4},
+ {&(_tg__ZTV5FF311__9GG3213113[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF311__9GG3213113[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF311__9GG3213113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3213113[];
+extern VTBL_ENTRY _ZTV9GG3213113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3213113[];
+static VTBL_ENTRY alt_thunk_names861[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32131133barEv,_ZTv0_n12_N9GG32131133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32131133barEv,_ZThn24_N9GG32131133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32131133barEv,_ZTv0_n16_N9GG32131133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32131133barEv,_ZThn16_N9GG32131133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32131133fooEv,_ZTv0_n12_N9GG32131133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32131133fooEv,_ZThn40_N9GG32131133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32131133fooEv,_ZThn16_N9GG32131133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32131133fooEv,_ZTv0_n20_N9GG32131133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32131133fooEv,_ZThn32_N9GG32131133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32131133fooEv,_ZThn8_N9GG32131133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3213113 = { "GG3213113", // class name
+ bases_GG3213113, 5,
+ &(vtc_GG3213113[0]), // expected_vtbl_contents
+ &(vtt_GG3213113[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3213113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3213113),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3213113),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names861,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3213123 : virtual EE321 , virtual FF312 {
+ int pg;
+ virtual void foo(); // _ZN9GG32131233fooEv
+ virtual void bar(); // _ZN9GG32131233barEv
+ ~GG3213123(); // tgen
+ GG3213123(); // tgen
+};
+//SIG(1 GG3213123) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3213123 ::foo(){vfunc_called(this, "_ZN9GG32131233fooEv");}
+void GG3213123 ::bar(){vfunc_called(this, "_ZN9GG32131233barEv");}
+GG3213123 ::~GG3213123(){ note_dtor("GG3213123", this);} // tgen
+GG3213123 ::GG3213123(){ note_ctor("GG3213123", this);} // tgen
+
+static void Test_GG3213123()
+{
+ extern Class_Descriptor cd_GG3213123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3213123, buf);
+ GG3213123 *dp, &lv = *(dp=new (buf) GG3213123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3213123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3213123)");
+ check_base_class_offset(lv, (AA3*)(EE321*), ABISELECT(32,16), "GG3213123");
+ check_base_class_offset(lv, (AA3*)(FF312*), ABISELECT(32,16), "GG3213123");
+ check_base_class_offset(lv, (BB2*)(EE321*), ABISELECT(48,24), "GG3213123");
+ check_base_class_offset(lv, (EE321*), ABISELECT(16,8), "GG3213123");
+ check_base_class_offset(lv, (BB1*)(FF312*), ABISELECT(80,40), "GG3213123");
+ check_base_class_offset(lv, (FF312*), ABISELECT(64,32), "GG3213123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3213123.pg");
+ test_class_info(&lv, &cd_GG3213123);
+ dp->~GG3213123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3213123(Test_GG3213123, "GG3213123", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3213123C1Ev();
+extern void _ZN9GG3213123D1Ev();
+Name_Map name_map_GG3213123[] = {
+ NSPAIR(_ZN9GG3213123C1Ev),
+ NSPAIR(_ZN9GG3213123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE321;
+extern VTBL_ENTRY _ZTI5EE321[];
+extern VTBL_ENTRY _ZTV5EE321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE321[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF312;
+extern VTBL_ENTRY _ZTI5FF312[];
+extern VTBL_ENTRY _ZTV5FF312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF312[];
+static Base_Class bases_GG3213123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE321, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF312, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3213123[];
+extern void _ZN9GG32131233fooEv();
+extern void _ZN9GG32131233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32131233fooEv,_ZTv0_n20_N9GG32131233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32131233fooEv,_ZThn8_N9GG32131233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32131233fooEv,_ZTv0_n12_N9GG32131233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32131233fooEv,_ZThn16_N9GG32131233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32131233barEv,_ZTv0_n16_N9GG32131233barEv)();
+extern void ABISELECT(_ZThn32_N9GG32131233barEv,_ZThn16_N9GG32131233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32131233barEv,_ZTv0_n12_N9GG32131233barEv)();
+extern void ABISELECT(_ZThn48_N9GG32131233barEv,_ZThn24_N9GG32131233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32131233barEv,_ZTv0_n20_N9GG32131233barEv)();
+extern void ABISELECT(_ZThn64_N9GG32131233barEv,_ZThn32_N9GG32131233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32131233fooEv,_ZTv0_n12_N9GG32131233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG32131233fooEv,_ZThn40_N9GG32131233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3213123[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3213123[0]),
+ (VTBL_ENTRY)&_ZN9GG32131233fooEv,
+ (VTBL_ENTRY)&_ZN9GG32131233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3213123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32131233fooEv,_ZTv0_n20_N9GG32131233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3213123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32131233fooEv,_ZTv0_n12_N9GG32131233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32131233barEv,_ZTv0_n16_N9GG32131233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3213123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32131233barEv,_ZTv0_n12_N9GG32131233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3213123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32131233barEv,_ZTv0_n20_N9GG32131233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3213123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32131233fooEv,_ZTv0_n12_N9GG32131233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3213123[];
+extern void _ZN5EE3213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE321__9GG3213123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN5EE3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE321__9GG3213123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE321__9GG3213123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF3123barEv();
+static VTBL_ENTRY _tg__ZTV5FF312__9GG3213123[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN5FF3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF312__9GG3213123[] = {
+ ABISELECT(32,16),
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF312__9GG3213123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG3213123[] = {
+ {&(_ZTV9GG3213123[7]), 7,35},
+ {&(_ZTV9GG3213123[14]), 14,35},
+ {&(_ZTV9GG3213123[19]), 19,35},
+ {&(_ZTV9GG3213123[24]), 24,35},
+ {&(_ZTV9GG3213123[30]), 30,35},
+ {&(_ZTV9GG3213123[34]), 34,35},
+ {&(_tg__ZTV5EE321__9GG3213123[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE321__9GG3213123[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE321__9GG3213123[3]), 3,4},
+ {&(_tg__ZTV5FF312__9GG3213123[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF312__9GG3213123[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF312__9GG3213123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3213123[];
+extern VTBL_ENTRY _ZTV9GG3213123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3213123[];
+static VTBL_ENTRY alt_thunk_names862[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32131233barEv,_ZTv0_n20_N9GG32131233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32131233barEv,_ZThn32_N9GG32131233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32131233barEv,_ZTv0_n12_N9GG32131233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32131233barEv,_ZThn24_N9GG32131233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32131233barEv,_ZTv0_n16_N9GG32131233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32131233barEv,_ZThn16_N9GG32131233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32131233fooEv,_ZTv0_n12_N9GG32131233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32131233fooEv,_ZThn40_N9GG32131233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32131233fooEv,_ZThn16_N9GG32131233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32131233fooEv,_ZTv0_n20_N9GG32131233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32131233fooEv,_ZThn8_N9GG32131233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3213123 = { "GG3213123", // class name
+ bases_GG3213123, 5,
+ &(vtc_GG3213123[0]), // expected_vtbl_contents
+ &(vtt_GG3213123[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3213123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3213123),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3213123),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names862,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3213133 : virtual EE321 , virtual FF313 {
+ int pg;
+ virtual void foo(); // _ZN9GG32131333fooEv
+ virtual void bar(); // _ZN9GG32131333barEv
+ ~GG3213133(); // tgen
+ GG3213133(); // tgen
+};
+//SIG(1 GG3213133) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3213133 ::foo(){vfunc_called(this, "_ZN9GG32131333fooEv");}
+void GG3213133 ::bar(){vfunc_called(this, "_ZN9GG32131333barEv");}
+GG3213133 ::~GG3213133(){ note_dtor("GG3213133", this);} // tgen
+GG3213133 ::GG3213133(){ note_ctor("GG3213133", this);} // tgen
+
+static void Test_GG3213133()
+{
+ extern Class_Descriptor cd_GG3213133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3213133, buf);
+ GG3213133 *dp, &lv = *(dp=new (buf) GG3213133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3213133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3213133)");
+ check_base_class_offset(lv, (AA3*)(EE321*), ABISELECT(32,16), "GG3213133");
+ check_base_class_offset(lv, (AA3*)(FF313*), ABISELECT(32,16), "GG3213133");
+ check_base_class_offset(lv, (BB2*)(EE321*), ABISELECT(48,24), "GG3213133");
+ check_base_class_offset(lv, (EE321*), ABISELECT(16,8), "GG3213133");
+ check_base_class_offset(lv, (BB1*)(FF313*), ABISELECT(80,40), "GG3213133");
+ check_base_class_offset(lv, (FF313*), ABISELECT(64,32), "GG3213133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3213133.pg");
+ test_class_info(&lv, &cd_GG3213133);
+ dp->~GG3213133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3213133(Test_GG3213133, "GG3213133", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3213133C1Ev();
+extern void _ZN9GG3213133D1Ev();
+Name_Map name_map_GG3213133[] = {
+ NSPAIR(_ZN9GG3213133C1Ev),
+ NSPAIR(_ZN9GG3213133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE321;
+extern VTBL_ENTRY _ZTI5EE321[];
+extern VTBL_ENTRY _ZTV5EE321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE321[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF313;
+extern VTBL_ENTRY _ZTI5FF313[];
+extern VTBL_ENTRY _ZTV5FF313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF313[];
+static Base_Class bases_GG3213133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE321, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF313, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3213133[];
+extern void _ZN9GG32131333fooEv();
+extern void _ZN9GG32131333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32131333fooEv,_ZTv0_n20_N9GG32131333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32131333fooEv,_ZThn8_N9GG32131333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32131333fooEv,_ZTv0_n12_N9GG32131333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32131333fooEv,_ZThn16_N9GG32131333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32131333barEv,_ZTv0_n16_N9GG32131333barEv)();
+extern void ABISELECT(_ZThn32_N9GG32131333barEv,_ZThn16_N9GG32131333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32131333barEv,_ZTv0_n12_N9GG32131333barEv)();
+extern void ABISELECT(_ZThn48_N9GG32131333barEv,_ZThn24_N9GG32131333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32131333fooEv,_ZTv0_n20_N9GG32131333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32131333fooEv,_ZThn32_N9GG32131333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32131333barEv,_ZTv0_n24_N9GG32131333barEv)();
+extern void ABISELECT(_ZThn64_N9GG32131333barEv,_ZThn32_N9GG32131333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32131333fooEv,_ZTv0_n12_N9GG32131333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG32131333fooEv,_ZThn40_N9GG32131333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3213133[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3213133[0]),
+ (VTBL_ENTRY)&_ZN9GG32131333fooEv,
+ (VTBL_ENTRY)&_ZN9GG32131333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3213133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32131333fooEv,_ZTv0_n20_N9GG32131333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3213133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32131333fooEv,_ZTv0_n12_N9GG32131333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32131333barEv,_ZTv0_n16_N9GG32131333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3213133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32131333barEv,_ZTv0_n12_N9GG32131333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3213133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32131333fooEv,_ZTv0_n20_N9GG32131333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32131333barEv,_ZTv0_n24_N9GG32131333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3213133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32131333fooEv,_ZTv0_n12_N9GG32131333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3213133[];
+extern void _ZN5EE3213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE321__9GG3213133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN5EE3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE321__9GG3213133[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE321__9GG3213133[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF3133fooEv();
+extern void _ZN5FF3133barEv();
+static VTBL_ENTRY _tg__ZTV5FF313__9GG3213133[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&_ZN5FF3133fooEv,
+ (VTBL_ENTRY)&_ZN5FF3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF313__9GG3213133[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF313__9GG3213133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+};
+static VTT_ENTRY vtt_GG3213133[] = {
+ {&(_ZTV9GG3213133[7]), 7,37},
+ {&(_ZTV9GG3213133[14]), 14,37},
+ {&(_ZTV9GG3213133[19]), 19,37},
+ {&(_ZTV9GG3213133[24]), 24,37},
+ {&(_ZTV9GG3213133[31]), 31,37},
+ {&(_ZTV9GG3213133[36]), 36,37},
+ {&(_tg__ZTV5EE321__9GG3213133[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE321__9GG3213133[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE321__9GG3213133[3]), 3,4},
+ {&(_tg__ZTV5FF313__9GG3213133[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF313__9GG3213133[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF313__9GG3213133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3213133[];
+extern VTBL_ENTRY _ZTV9GG3213133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3213133[];
+static VTBL_ENTRY alt_thunk_names863[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG32131333barEv,_ZTv0_n24_N9GG32131333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32131333barEv,_ZThn32_N9GG32131333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32131333barEv,_ZTv0_n12_N9GG32131333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32131333barEv,_ZThn24_N9GG32131333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32131333barEv,_ZTv0_n16_N9GG32131333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32131333barEv,_ZThn16_N9GG32131333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32131333fooEv,_ZTv0_n12_N9GG32131333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32131333fooEv,_ZThn40_N9GG32131333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32131333fooEv,_ZThn16_N9GG32131333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32131333fooEv,_ZTv0_n20_N9GG32131333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32131333fooEv,_ZThn32_N9GG32131333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32131333fooEv,_ZThn8_N9GG32131333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3213133 = { "GG3213133", // class name
+ bases_GG3213133, 5,
+ &(vtc_GG3213133[0]), // expected_vtbl_contents
+ &(vtt_GG3213133[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3213133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3213133),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3213133),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names863,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3213213 : virtual EE321 , virtual FF321 {
+ int pg;
+ virtual void foo(); // _ZN9GG32132133fooEv
+ virtual void bar(); // _ZN9GG32132133barEv
+ ~GG3213213(); // tgen
+ GG3213213(); // tgen
+};
+//SIG(1 GG3213213) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC3 VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG3213213 ::foo(){vfunc_called(this, "_ZN9GG32132133fooEv");}
+void GG3213213 ::bar(){vfunc_called(this, "_ZN9GG32132133barEv");}
+GG3213213 ::~GG3213213(){ note_dtor("GG3213213", this);} // tgen
+GG3213213 ::GG3213213(){ note_ctor("GG3213213", this);} // tgen
+
+static void Test_GG3213213()
+{
+ extern Class_Descriptor cd_GG3213213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG3213213, buf);
+ GG3213213 *dp, &lv = *(dp=new (buf) GG3213213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG3213213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3213213)");
+ check_base_class_offset(lv, (AA3*)(EE321*), ABISELECT(32,16), "GG3213213");
+ check_base_class_offset(lv, (AA3*)(FF321*), ABISELECT(32,16), "GG3213213");
+ check_base_class_offset(lv, (BB2*)(EE321*), ABISELECT(48,24), "GG3213213");
+ check_base_class_offset(lv, (BB2*)(FF321*), ABISELECT(48,24), "GG3213213");
+ check_base_class_offset(lv, (EE321*), ABISELECT(16,8), "GG3213213");
+ check_base_class_offset(lv, (FF321*), ABISELECT(64,32), "GG3213213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3213213.pg");
+ test_class_info(&lv, &cd_GG3213213);
+ dp->~GG3213213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3213213(Test_GG3213213, "GG3213213", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG3213213C1Ev();
+extern void _ZN9GG3213213D1Ev();
+Name_Map name_map_GG3213213[] = {
+ NSPAIR(_ZN9GG3213213C1Ev),
+ NSPAIR(_ZN9GG3213213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE321;
+extern VTBL_ENTRY _ZTI5EE321[];
+extern VTBL_ENTRY _ZTV5EE321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE321[];
+extern Class_Descriptor cd_FF321;
+extern VTBL_ENTRY _ZTI5FF321[];
+extern VTBL_ENTRY _ZTV5FF321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF321[];
+static Base_Class bases_GG3213213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE321, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF321, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3213213[];
+extern void _ZN9GG32132133fooEv();
+extern void _ZN9GG32132133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32132133fooEv,_ZTv0_n20_N9GG32132133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32132133fooEv,_ZThn8_N9GG32132133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32132133fooEv,_ZTv0_n12_N9GG32132133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32132133fooEv,_ZThn16_N9GG32132133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32132133barEv,_ZTv0_n16_N9GG32132133barEv)();
+extern void ABISELECT(_ZThn32_N9GG32132133barEv,_ZThn16_N9GG32132133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32132133barEv,_ZTv0_n12_N9GG32132133barEv)();
+extern void ABISELECT(_ZThn48_N9GG32132133barEv,_ZThn24_N9GG32132133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32132133fooEv,_ZTv0_n20_N9GG32132133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32132133fooEv,_ZThn32_N9GG32132133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3213213[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3213213[0]),
+ (VTBL_ENTRY)&_ZN9GG32132133fooEv,
+ (VTBL_ENTRY)&_ZN9GG32132133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3213213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32132133fooEv,_ZTv0_n20_N9GG32132133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3213213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32132133fooEv,_ZTv0_n12_N9GG32132133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32132133barEv,_ZTv0_n16_N9GG32132133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3213213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32132133barEv,_ZTv0_n12_N9GG32132133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3213213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32132133fooEv,_ZTv0_n20_N9GG32132133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3213213[];
+extern void _ZN5EE3213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE321__9GG3213213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN5EE3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE321__9GG3213213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE321__9GG3213213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF3213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF321__9GG3213213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN5FF3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv)();
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF321__9GG3213213[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF321__9GG3213213[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG3213213[] = {
+ {&(_ZTV9GG3213213[6]), 6,30},
+ {&(_ZTV9GG3213213[13]), 13,30},
+ {&(_ZTV9GG3213213[18]), 18,30},
+ {&(_ZTV9GG3213213[23]), 23,30},
+ {&(_ZTV9GG3213213[29]), 29,30},
+ {&(_tg__ZTV5EE321__9GG3213213[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE321__9GG3213213[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE321__9GG3213213[3]), 3,4},
+ {&(_tg__ZTV5FF321__9GG3213213[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF321__9GG3213213[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF321__9GG3213213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3213213[];
+extern VTBL_ENTRY _ZTV9GG3213213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3213213[];
+static VTBL_ENTRY alt_thunk_names864[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32132133barEv,_ZTv0_n12_N9GG32132133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32132133barEv,_ZThn24_N9GG32132133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32132133barEv,_ZTv0_n16_N9GG32132133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32132133barEv,_ZThn16_N9GG32132133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32132133fooEv,_ZTv0_n12_N9GG32132133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32132133fooEv,_ZThn16_N9GG32132133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32132133fooEv,_ZTv0_n20_N9GG32132133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32132133fooEv,_ZThn32_N9GG32132133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32132133fooEv,_ZThn8_N9GG32132133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3213213 = { "GG3213213", // class name
+ bases_GG3213213, 4,
+ &(vtc_GG3213213[0]), // expected_vtbl_contents
+ &(vtt_GG3213213[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG3213213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3213213),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3213213),11, //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 GG3213223 : virtual EE321 , virtual FF322 {
+ int pg;
+ virtual void foo(); // _ZN9GG32132233fooEv
+ virtual void bar(); // _ZN9GG32132233barEv
+ ~GG3213223(); // tgen
+ GG3213223(); // tgen
+};
+//SIG(1 GG3213223) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC3 VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG3213223 ::foo(){vfunc_called(this, "_ZN9GG32132233fooEv");}
+void GG3213223 ::bar(){vfunc_called(this, "_ZN9GG32132233barEv");}
+GG3213223 ::~GG3213223(){ note_dtor("GG3213223", this);} // tgen
+GG3213223 ::GG3213223(){ note_ctor("GG3213223", this);} // tgen
+
+static void Test_GG3213223()
+{
+ extern Class_Descriptor cd_GG3213223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG3213223, buf);
+ GG3213223 *dp, &lv = *(dp=new (buf) GG3213223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG3213223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3213223)");
+ check_base_class_offset(lv, (AA3*)(EE321*), ABISELECT(32,16), "GG3213223");
+ check_base_class_offset(lv, (AA3*)(FF322*), ABISELECT(32,16), "GG3213223");
+ check_base_class_offset(lv, (BB2*)(EE321*), ABISELECT(48,24), "GG3213223");
+ check_base_class_offset(lv, (BB2*)(FF322*), ABISELECT(48,24), "GG3213223");
+ check_base_class_offset(lv, (EE321*), ABISELECT(16,8), "GG3213223");
+ check_base_class_offset(lv, (FF322*), ABISELECT(64,32), "GG3213223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3213223.pg");
+ test_class_info(&lv, &cd_GG3213223);
+ dp->~GG3213223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3213223(Test_GG3213223, "GG3213223", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG3213223C1Ev();
+extern void _ZN9GG3213223D1Ev();
+Name_Map name_map_GG3213223[] = {
+ NSPAIR(_ZN9GG3213223C1Ev),
+ NSPAIR(_ZN9GG3213223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE321;
+extern VTBL_ENTRY _ZTI5EE321[];
+extern VTBL_ENTRY _ZTV5EE321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE321[];
+extern Class_Descriptor cd_FF322;
+extern VTBL_ENTRY _ZTI5FF322[];
+extern VTBL_ENTRY _ZTV5FF322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF322[];
+static Base_Class bases_GG3213223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE321, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF322, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3213223[];
+extern void _ZN9GG32132233fooEv();
+extern void _ZN9GG32132233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32132233fooEv,_ZTv0_n20_N9GG32132233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32132233fooEv,_ZThn8_N9GG32132233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32132233fooEv,_ZTv0_n12_N9GG32132233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32132233fooEv,_ZThn16_N9GG32132233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32132233barEv,_ZTv0_n16_N9GG32132233barEv)();
+extern void ABISELECT(_ZThn32_N9GG32132233barEv,_ZThn16_N9GG32132233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32132233barEv,_ZTv0_n12_N9GG32132233barEv)();
+extern void ABISELECT(_ZThn48_N9GG32132233barEv,_ZThn24_N9GG32132233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32132233barEv,_ZTv0_n20_N9GG32132233barEv)();
+extern void ABISELECT(_ZThn64_N9GG32132233barEv,_ZThn32_N9GG32132233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3213223[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3213223[0]),
+ (VTBL_ENTRY)&_ZN9GG32132233fooEv,
+ (VTBL_ENTRY)&_ZN9GG32132233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3213223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32132233fooEv,_ZTv0_n20_N9GG32132233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3213223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32132233fooEv,_ZTv0_n12_N9GG32132233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32132233barEv,_ZTv0_n16_N9GG32132233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3213223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32132233barEv,_ZTv0_n12_N9GG32132233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3213223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32132233barEv,_ZTv0_n20_N9GG32132233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3213223[];
+extern void _ZN5EE3213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE321__9GG3213223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN5EE3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE321__9GG3213223[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE321__9GG3213223[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF3223barEv();
+static VTBL_ENTRY _tg__ZTV5FF322__9GG3213223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN5FF3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF322__9GG3213223[] = {
+ ABISELECT(32,16),
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF322__9GG3213223[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv),
+};
+static VTT_ENTRY vtt_GG3213223[] = {
+ {&(_ZTV9GG3213223[6]), 6,30},
+ {&(_ZTV9GG3213223[13]), 13,30},
+ {&(_ZTV9GG3213223[18]), 18,30},
+ {&(_ZTV9GG3213223[23]), 23,30},
+ {&(_ZTV9GG3213223[29]), 29,30},
+ {&(_tg__ZTV5EE321__9GG3213223[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE321__9GG3213223[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE321__9GG3213223[3]), 3,4},
+ {&(_tg__ZTV5FF322__9GG3213223[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF322__9GG3213223[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF322__9GG3213223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3213223[];
+extern VTBL_ENTRY _ZTV9GG3213223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3213223[];
+static VTBL_ENTRY alt_thunk_names865[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32132233barEv,_ZTv0_n20_N9GG32132233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32132233barEv,_ZThn32_N9GG32132233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32132233barEv,_ZTv0_n12_N9GG32132233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32132233barEv,_ZThn24_N9GG32132233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32132233barEv,_ZTv0_n16_N9GG32132233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32132233barEv,_ZThn16_N9GG32132233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32132233fooEv,_ZTv0_n12_N9GG32132233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32132233fooEv,_ZThn16_N9GG32132233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32132233fooEv,_ZTv0_n20_N9GG32132233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32132233fooEv,_ZThn8_N9GG32132233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3213223 = { "GG3213223", // class name
+ bases_GG3213223, 4,
+ &(vtc_GG3213223[0]), // expected_vtbl_contents
+ &(vtt_GG3213223[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG3213223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3213223),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3213223),11, //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 GG3213233 : virtual EE321 , virtual FF323 {
+ int pg;
+ virtual void foo(); // _ZN9GG32132333fooEv
+ virtual void bar(); // _ZN9GG32132333barEv
+ ~GG3213233(); // tgen
+ GG3213233(); // tgen
+};
+//SIG(1 GG3213233) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC3 VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3213233 ::foo(){vfunc_called(this, "_ZN9GG32132333fooEv");}
+void GG3213233 ::bar(){vfunc_called(this, "_ZN9GG32132333barEv");}
+GG3213233 ::~GG3213233(){ note_dtor("GG3213233", this);} // tgen
+GG3213233 ::GG3213233(){ note_ctor("GG3213233", this);} // tgen
+
+static void Test_GG3213233()
+{
+ extern Class_Descriptor cd_GG3213233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG3213233, buf);
+ GG3213233 *dp, &lv = *(dp=new (buf) GG3213233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG3213233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3213233)");
+ check_base_class_offset(lv, (AA3*)(EE321*), ABISELECT(32,16), "GG3213233");
+ check_base_class_offset(lv, (AA3*)(FF323*), ABISELECT(32,16), "GG3213233");
+ check_base_class_offset(lv, (BB2*)(EE321*), ABISELECT(48,24), "GG3213233");
+ check_base_class_offset(lv, (BB2*)(FF323*), ABISELECT(48,24), "GG3213233");
+ check_base_class_offset(lv, (EE321*), ABISELECT(16,8), "GG3213233");
+ check_base_class_offset(lv, (FF323*), ABISELECT(64,32), "GG3213233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3213233.pg");
+ test_class_info(&lv, &cd_GG3213233);
+ dp->~GG3213233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3213233(Test_GG3213233, "GG3213233", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG3213233C1Ev();
+extern void _ZN9GG3213233D1Ev();
+Name_Map name_map_GG3213233[] = {
+ NSPAIR(_ZN9GG3213233C1Ev),
+ NSPAIR(_ZN9GG3213233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE321;
+extern VTBL_ENTRY _ZTI5EE321[];
+extern VTBL_ENTRY _ZTV5EE321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE321[];
+extern Class_Descriptor cd_FF323;
+extern VTBL_ENTRY _ZTI5FF323[];
+extern VTBL_ENTRY _ZTV5FF323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF323[];
+static Base_Class bases_GG3213233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE321, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF323, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3213233[];
+extern void _ZN9GG32132333fooEv();
+extern void _ZN9GG32132333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32132333fooEv,_ZTv0_n20_N9GG32132333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32132333fooEv,_ZThn8_N9GG32132333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32132333fooEv,_ZTv0_n12_N9GG32132333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32132333fooEv,_ZThn16_N9GG32132333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32132333barEv,_ZTv0_n16_N9GG32132333barEv)();
+extern void ABISELECT(_ZThn32_N9GG32132333barEv,_ZThn16_N9GG32132333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32132333barEv,_ZTv0_n12_N9GG32132333barEv)();
+extern void ABISELECT(_ZThn48_N9GG32132333barEv,_ZThn24_N9GG32132333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32132333fooEv,_ZTv0_n20_N9GG32132333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32132333fooEv,_ZThn32_N9GG32132333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32132333barEv,_ZTv0_n24_N9GG32132333barEv)();
+extern void ABISELECT(_ZThn64_N9GG32132333barEv,_ZThn32_N9GG32132333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3213233[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3213233[0]),
+ (VTBL_ENTRY)&_ZN9GG32132333fooEv,
+ (VTBL_ENTRY)&_ZN9GG32132333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3213233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32132333fooEv,_ZTv0_n20_N9GG32132333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3213233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32132333fooEv,_ZTv0_n12_N9GG32132333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32132333barEv,_ZTv0_n16_N9GG32132333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3213233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32132333barEv,_ZTv0_n12_N9GG32132333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3213233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32132333fooEv,_ZTv0_n20_N9GG32132333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32132333barEv,_ZTv0_n24_N9GG32132333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3213233[];
+extern void _ZN5EE3213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE321__9GG3213233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN5EE3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE321__9GG3213233[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE321__9GG3213233[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF3233fooEv();
+extern void _ZN5FF3233barEv();
+static VTBL_ENTRY _tg__ZTV5FF323__9GG3213233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&_ZN5FF3233fooEv,
+ (VTBL_ENTRY)&_ZN5FF3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF323__9GG3213233[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF323__9GG3213233[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv),
+};
+static VTT_ENTRY vtt_GG3213233[] = {
+ {&(_ZTV9GG3213233[6]), 6,32},
+ {&(_ZTV9GG3213233[13]), 13,32},
+ {&(_ZTV9GG3213233[18]), 18,32},
+ {&(_ZTV9GG3213233[23]), 23,32},
+ {&(_ZTV9GG3213233[30]), 30,32},
+ {&(_tg__ZTV5EE321__9GG3213233[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE321__9GG3213233[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE321__9GG3213233[3]), 3,4},
+ {&(_tg__ZTV5FF323__9GG3213233[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF323__9GG3213233[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF323__9GG3213233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3213233[];
+extern VTBL_ENTRY _ZTV9GG3213233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3213233[];
+static VTBL_ENTRY alt_thunk_names866[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG32132333barEv,_ZTv0_n24_N9GG32132333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32132333barEv,_ZThn32_N9GG32132333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32132333barEv,_ZTv0_n12_N9GG32132333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32132333barEv,_ZThn24_N9GG32132333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32132333barEv,_ZTv0_n16_N9GG32132333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32132333barEv,_ZThn16_N9GG32132333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32132333fooEv,_ZTv0_n12_N9GG32132333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32132333fooEv,_ZThn16_N9GG32132333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32132333fooEv,_ZTv0_n20_N9GG32132333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32132333fooEv,_ZThn32_N9GG32132333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32132333fooEv,_ZThn8_N9GG32132333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3213233 = { "GG3213233", // class name
+ bases_GG3213233, 4,
+ &(vtc_GG3213233[0]), // expected_vtbl_contents
+ &(vtt_GG3213233[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG3213233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3213233),32, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3213233),11, //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 GG3213313 : virtual EE321 , virtual FF331 {
+ int pg;
+ virtual void foo(); // _ZN9GG32133133fooEv
+ virtual void bar(); // _ZN9GG32133133barEv
+ ~GG3213313(); // tgen
+ GG3213313(); // tgen
+};
+//SIG(1 GG3213313) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3213313 ::foo(){vfunc_called(this, "_ZN9GG32133133fooEv");}
+void GG3213313 ::bar(){vfunc_called(this, "_ZN9GG32133133barEv");}
+GG3213313 ::~GG3213313(){ note_dtor("GG3213313", this);} // tgen
+GG3213313 ::GG3213313(){ note_ctor("GG3213313", this);} // tgen
+
+static void Test_GG3213313()
+{
+ extern Class_Descriptor cd_GG3213313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3213313, buf);
+ GG3213313 *dp, &lv = *(dp=new (buf) GG3213313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3213313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3213313)");
+ check_base_class_offset(lv, (AA3*)(EE321*), ABISELECT(32,16), "GG3213313");
+ check_base_class_offset(lv, (AA3*)(FF331*), ABISELECT(32,16), "GG3213313");
+ check_base_class_offset(lv, (BB2*)(EE321*), ABISELECT(48,24), "GG3213313");
+ check_base_class_offset(lv, (EE321*), ABISELECT(16,8), "GG3213313");
+ check_base_class_offset(lv, (BB3*)(FF331*), ABISELECT(80,40), "GG3213313");
+ check_base_class_offset(lv, (FF331*), ABISELECT(64,32), "GG3213313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3213313.pg");
+ test_class_info(&lv, &cd_GG3213313);
+ dp->~GG3213313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3213313(Test_GG3213313, "GG3213313", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3213313C1Ev();
+extern void _ZN9GG3213313D1Ev();
+Name_Map name_map_GG3213313[] = {
+ NSPAIR(_ZN9GG3213313C1Ev),
+ NSPAIR(_ZN9GG3213313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE321;
+extern VTBL_ENTRY _ZTI5EE321[];
+extern VTBL_ENTRY _ZTV5EE321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE321[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF331;
+extern VTBL_ENTRY _ZTI5FF331[];
+extern VTBL_ENTRY _ZTV5FF331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF331[];
+static Base_Class bases_GG3213313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE321, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF331, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3213313[];
+extern void _ZN9GG32133133fooEv();
+extern void _ZN9GG32133133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32133133fooEv,_ZTv0_n20_N9GG32133133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32133133fooEv,_ZThn8_N9GG32133133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32133133fooEv,_ZTv0_n12_N9GG32133133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32133133fooEv,_ZThn16_N9GG32133133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32133133barEv,_ZTv0_n16_N9GG32133133barEv)();
+extern void ABISELECT(_ZThn32_N9GG32133133barEv,_ZThn16_N9GG32133133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32133133barEv,_ZTv0_n12_N9GG32133133barEv)();
+extern void ABISELECT(_ZThn48_N9GG32133133barEv,_ZThn24_N9GG32133133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32133133fooEv,_ZTv0_n20_N9GG32133133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32133133fooEv,_ZThn32_N9GG32133133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32133133fooEv,_ZTv0_n12_N9GG32133133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG32133133fooEv,_ZThn40_N9GG32133133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32133133barEv,_ZTv0_n16_N9GG32133133barEv)();
+extern void ABISELECT(_ZThn80_N9GG32133133barEv,_ZThn40_N9GG32133133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3213313[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3213313[0]),
+ (VTBL_ENTRY)&_ZN9GG32133133fooEv,
+ (VTBL_ENTRY)&_ZN9GG32133133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3213313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32133133fooEv,_ZTv0_n20_N9GG32133133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3213313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32133133fooEv,_ZTv0_n12_N9GG32133133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32133133barEv,_ZTv0_n16_N9GG32133133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3213313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32133133barEv,_ZTv0_n12_N9GG32133133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3213313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32133133fooEv,_ZTv0_n20_N9GG32133133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3213313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32133133fooEv,_ZTv0_n12_N9GG32133133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32133133barEv,_ZTv0_n16_N9GG32133133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3213313[];
+extern void _ZN5EE3213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE321__9GG3213313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN5EE3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE321__9GG3213313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE321__9GG3213313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF3313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF331__9GG3213313[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&_ZN5FF3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF331__9GG3213313[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF331__9GG3213313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG3213313[] = {
+ {&(_ZTV9GG3213313[7]), 7,37},
+ {&(_ZTV9GG3213313[14]), 14,37},
+ {&(_ZTV9GG3213313[19]), 19,37},
+ {&(_ZTV9GG3213313[24]), 24,37},
+ {&(_ZTV9GG3213313[30]), 30,37},
+ {&(_ZTV9GG3213313[35]), 35,37},
+ {&(_tg__ZTV5EE321__9GG3213313[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE321__9GG3213313[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE321__9GG3213313[3]), 3,4},
+ {&(_tg__ZTV5FF331__9GG3213313[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF331__9GG3213313[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF331__9GG3213313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3213313[];
+extern VTBL_ENTRY _ZTV9GG3213313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3213313[];
+static VTBL_ENTRY alt_thunk_names867[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32133133barEv,_ZTv0_n12_N9GG32133133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32133133barEv,_ZThn24_N9GG32133133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32133133barEv,_ZTv0_n16_N9GG32133133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32133133barEv,_ZThn40_N9GG32133133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32133133barEv,_ZThn16_N9GG32133133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32133133fooEv,_ZTv0_n12_N9GG32133133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32133133fooEv,_ZThn40_N9GG32133133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32133133fooEv,_ZThn16_N9GG32133133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32133133fooEv,_ZTv0_n20_N9GG32133133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32133133fooEv,_ZThn32_N9GG32133133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32133133fooEv,_ZThn8_N9GG32133133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3213313 = { "GG3213313", // class name
+ bases_GG3213313, 5,
+ &(vtc_GG3213313[0]), // expected_vtbl_contents
+ &(vtt_GG3213313[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3213313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3213313),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3213313),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names867,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3213323 : virtual EE321 , virtual FF332 {
+ int pg;
+ virtual void foo(); // _ZN9GG32133233fooEv
+ virtual void bar(); // _ZN9GG32133233barEv
+ ~GG3213323(); // tgen
+ GG3213323(); // tgen
+};
+//SIG(1 GG3213323) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3213323 ::foo(){vfunc_called(this, "_ZN9GG32133233fooEv");}
+void GG3213323 ::bar(){vfunc_called(this, "_ZN9GG32133233barEv");}
+GG3213323 ::~GG3213323(){ note_dtor("GG3213323", this);} // tgen
+GG3213323 ::GG3213323(){ note_ctor("GG3213323", this);} // tgen
+
+static void Test_GG3213323()
+{
+ extern Class_Descriptor cd_GG3213323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3213323, buf);
+ GG3213323 *dp, &lv = *(dp=new (buf) GG3213323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3213323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3213323)");
+ check_base_class_offset(lv, (AA3*)(EE321*), ABISELECT(32,16), "GG3213323");
+ check_base_class_offset(lv, (AA3*)(FF332*), ABISELECT(32,16), "GG3213323");
+ check_base_class_offset(lv, (BB2*)(EE321*), ABISELECT(48,24), "GG3213323");
+ check_base_class_offset(lv, (EE321*), ABISELECT(16,8), "GG3213323");
+ check_base_class_offset(lv, (BB3*)(FF332*), ABISELECT(80,40), "GG3213323");
+ check_base_class_offset(lv, (FF332*), ABISELECT(64,32), "GG3213323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3213323.pg");
+ test_class_info(&lv, &cd_GG3213323);
+ dp->~GG3213323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3213323(Test_GG3213323, "GG3213323", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3213323C1Ev();
+extern void _ZN9GG3213323D1Ev();
+Name_Map name_map_GG3213323[] = {
+ NSPAIR(_ZN9GG3213323C1Ev),
+ NSPAIR(_ZN9GG3213323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE321;
+extern VTBL_ENTRY _ZTI5EE321[];
+extern VTBL_ENTRY _ZTV5EE321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE321[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF332;
+extern VTBL_ENTRY _ZTI5FF332[];
+extern VTBL_ENTRY _ZTV5FF332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF332[];
+static Base_Class bases_GG3213323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE321, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF332, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3213323[];
+extern void _ZN9GG32133233fooEv();
+extern void _ZN9GG32133233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32133233fooEv,_ZTv0_n20_N9GG32133233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32133233fooEv,_ZThn8_N9GG32133233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32133233fooEv,_ZTv0_n12_N9GG32133233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32133233fooEv,_ZThn16_N9GG32133233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32133233barEv,_ZTv0_n16_N9GG32133233barEv)();
+extern void ABISELECT(_ZThn32_N9GG32133233barEv,_ZThn16_N9GG32133233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32133233barEv,_ZTv0_n12_N9GG32133233barEv)();
+extern void ABISELECT(_ZThn48_N9GG32133233barEv,_ZThn24_N9GG32133233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32133233barEv,_ZTv0_n20_N9GG32133233barEv)();
+extern void ABISELECT(_ZThn64_N9GG32133233barEv,_ZThn32_N9GG32133233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32133233fooEv,_ZTv0_n12_N9GG32133233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG32133233fooEv,_ZThn40_N9GG32133233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32133233barEv,_ZTv0_n16_N9GG32133233barEv)();
+extern void ABISELECT(_ZThn80_N9GG32133233barEv,_ZThn40_N9GG32133233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3213323[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3213323[0]),
+ (VTBL_ENTRY)&_ZN9GG32133233fooEv,
+ (VTBL_ENTRY)&_ZN9GG32133233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3213323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32133233fooEv,_ZTv0_n20_N9GG32133233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3213323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32133233fooEv,_ZTv0_n12_N9GG32133233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32133233barEv,_ZTv0_n16_N9GG32133233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3213323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32133233barEv,_ZTv0_n12_N9GG32133233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3213323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32133233barEv,_ZTv0_n20_N9GG32133233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3213323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32133233fooEv,_ZTv0_n12_N9GG32133233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32133233barEv,_ZTv0_n16_N9GG32133233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3213323[];
+extern void _ZN5EE3213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE321__9GG3213323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN5EE3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE321__9GG3213323[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE321__9GG3213323[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF3323barEv();
+static VTBL_ENTRY _tg__ZTV5FF332__9GG3213323[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN5FF3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF332__9GG3213323[] = {
+ ABISELECT(32,16),
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+extern void ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF332__9GG3213323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+static VTT_ENTRY vtt_GG3213323[] = {
+ {&(_ZTV9GG3213323[7]), 7,37},
+ {&(_ZTV9GG3213323[14]), 14,37},
+ {&(_ZTV9GG3213323[19]), 19,37},
+ {&(_ZTV9GG3213323[24]), 24,37},
+ {&(_ZTV9GG3213323[30]), 30,37},
+ {&(_ZTV9GG3213323[35]), 35,37},
+ {&(_tg__ZTV5EE321__9GG3213323[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE321__9GG3213323[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE321__9GG3213323[3]), 3,4},
+ {&(_tg__ZTV5FF332__9GG3213323[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF332__9GG3213323[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF332__9GG3213323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3213323[];
+extern VTBL_ENTRY _ZTV9GG3213323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3213323[];
+static VTBL_ENTRY alt_thunk_names868[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32133233barEv,_ZTv0_n20_N9GG32133233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32133233barEv,_ZThn32_N9GG32133233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32133233barEv,_ZTv0_n12_N9GG32133233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32133233barEv,_ZThn24_N9GG32133233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32133233barEv,_ZTv0_n16_N9GG32133233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32133233barEv,_ZThn40_N9GG32133233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32133233barEv,_ZThn16_N9GG32133233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32133233fooEv,_ZTv0_n12_N9GG32133233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32133233fooEv,_ZThn40_N9GG32133233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32133233fooEv,_ZThn16_N9GG32133233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32133233fooEv,_ZTv0_n20_N9GG32133233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32133233fooEv,_ZThn8_N9GG32133233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3213323 = { "GG3213323", // class name
+ bases_GG3213323, 5,
+ &(vtc_GG3213323[0]), // expected_vtbl_contents
+ &(vtt_GG3213323[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3213323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3213323),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3213323),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names868,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3213333 : virtual EE321 , virtual FF333 {
+ int pg;
+ virtual void foo(); // _ZN9GG32133333fooEv
+ virtual void bar(); // _ZN9GG32133333barEv
+ ~GG3213333(); // tgen
+ GG3213333(); // tgen
+};
+//SIG(1 GG3213333) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3213333 ::foo(){vfunc_called(this, "_ZN9GG32133333fooEv");}
+void GG3213333 ::bar(){vfunc_called(this, "_ZN9GG32133333barEv");}
+GG3213333 ::~GG3213333(){ note_dtor("GG3213333", this);} // tgen
+GG3213333 ::GG3213333(){ note_ctor("GG3213333", this);} // tgen
+
+static void Test_GG3213333()
+{
+ extern Class_Descriptor cd_GG3213333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3213333, buf);
+ GG3213333 *dp, &lv = *(dp=new (buf) GG3213333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3213333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3213333)");
+ check_base_class_offset(lv, (AA3*)(EE321*), ABISELECT(32,16), "GG3213333");
+ check_base_class_offset(lv, (AA3*)(FF333*), ABISELECT(32,16), "GG3213333");
+ check_base_class_offset(lv, (BB2*)(EE321*), ABISELECT(48,24), "GG3213333");
+ check_base_class_offset(lv, (EE321*), ABISELECT(16,8), "GG3213333");
+ check_base_class_offset(lv, (BB3*)(FF333*), ABISELECT(80,40), "GG3213333");
+ check_base_class_offset(lv, (FF333*), ABISELECT(64,32), "GG3213333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3213333.pg");
+ test_class_info(&lv, &cd_GG3213333);
+ dp->~GG3213333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3213333(Test_GG3213333, "GG3213333", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3213333C1Ev();
+extern void _ZN9GG3213333D1Ev();
+Name_Map name_map_GG3213333[] = {
+ NSPAIR(_ZN9GG3213333C1Ev),
+ NSPAIR(_ZN9GG3213333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE321;
+extern VTBL_ENTRY _ZTI5EE321[];
+extern VTBL_ENTRY _ZTV5EE321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE321[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF333;
+extern VTBL_ENTRY _ZTI5FF333[];
+extern VTBL_ENTRY _ZTV5FF333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF333[];
+static Base_Class bases_GG3213333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE321, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF333, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3213333[];
+extern void _ZN9GG32133333fooEv();
+extern void _ZN9GG32133333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32133333fooEv,_ZTv0_n20_N9GG32133333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32133333fooEv,_ZThn8_N9GG32133333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32133333fooEv,_ZTv0_n12_N9GG32133333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32133333fooEv,_ZThn16_N9GG32133333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32133333barEv,_ZTv0_n16_N9GG32133333barEv)();
+extern void ABISELECT(_ZThn32_N9GG32133333barEv,_ZThn16_N9GG32133333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32133333barEv,_ZTv0_n12_N9GG32133333barEv)();
+extern void ABISELECT(_ZThn48_N9GG32133333barEv,_ZThn24_N9GG32133333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32133333fooEv,_ZTv0_n20_N9GG32133333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32133333fooEv,_ZThn32_N9GG32133333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32133333barEv,_ZTv0_n24_N9GG32133333barEv)();
+extern void ABISELECT(_ZThn64_N9GG32133333barEv,_ZThn32_N9GG32133333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32133333fooEv,_ZTv0_n12_N9GG32133333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG32133333fooEv,_ZThn40_N9GG32133333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32133333barEv,_ZTv0_n16_N9GG32133333barEv)();
+extern void ABISELECT(_ZThn80_N9GG32133333barEv,_ZThn40_N9GG32133333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3213333[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3213333[0]),
+ (VTBL_ENTRY)&_ZN9GG32133333fooEv,
+ (VTBL_ENTRY)&_ZN9GG32133333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3213333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32133333fooEv,_ZTv0_n20_N9GG32133333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3213333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32133333fooEv,_ZTv0_n12_N9GG32133333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32133333barEv,_ZTv0_n16_N9GG32133333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3213333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32133333barEv,_ZTv0_n12_N9GG32133333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3213333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32133333fooEv,_ZTv0_n20_N9GG32133333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32133333barEv,_ZTv0_n24_N9GG32133333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3213333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32133333fooEv,_ZTv0_n12_N9GG32133333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32133333barEv,_ZTv0_n16_N9GG32133333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3213333[];
+extern void _ZN5EE3213fooEv();
+static VTBL_ENTRY _tg__ZTV5EE321__9GG3213333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN5EE3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE321__9GG3213333[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5EE321__9GG3213333[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+extern void _ZN5FF3333fooEv();
+extern void _ZN5FF3333barEv();
+static VTBL_ENTRY _tg__ZTV5FF333__9GG3213333[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&_ZN5FF3333fooEv,
+ (VTBL_ENTRY)&_ZN5FF3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF333__9GG3213333[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+extern void ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF333__9GG3213333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+static VTT_ENTRY vtt_GG3213333[] = {
+ {&(_ZTV9GG3213333[7]), 7,39},
+ {&(_ZTV9GG3213333[14]), 14,39},
+ {&(_ZTV9GG3213333[19]), 19,39},
+ {&(_ZTV9GG3213333[24]), 24,39},
+ {&(_ZTV9GG3213333[31]), 31,39},
+ {&(_ZTV9GG3213333[37]), 37,39},
+ {&(_tg__ZTV5EE321__9GG3213333[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE321__9GG3213333[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE321__9GG3213333[3]), 3,4},
+ {&(_tg__ZTV5FF333__9GG3213333[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF333__9GG3213333[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF333__9GG3213333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3213333[];
+extern VTBL_ENTRY _ZTV9GG3213333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3213333[];
+static VTBL_ENTRY alt_thunk_names869[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3213fooEv,_ZTv0_n12_N5EE3213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3213fooEv,_ZThn8_N5EE3213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG32133333barEv,_ZTv0_n24_N9GG32133333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32133333barEv,_ZThn32_N9GG32133333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32133333barEv,_ZTv0_n12_N9GG32133333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32133333barEv,_ZThn24_N9GG32133333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32133333barEv,_ZTv0_n16_N9GG32133333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32133333barEv,_ZThn40_N9GG32133333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32133333barEv,_ZThn16_N9GG32133333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32133333fooEv,_ZTv0_n12_N9GG32133333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32133333fooEv,_ZThn40_N9GG32133333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32133333fooEv,_ZThn16_N9GG32133333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32133333fooEv,_ZTv0_n20_N9GG32133333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32133333fooEv,_ZThn32_N9GG32133333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32133333fooEv,_ZThn8_N9GG32133333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3213333 = { "GG3213333", // class name
+ bases_GG3213333, 5,
+ &(vtc_GG3213333[0]), // expected_vtbl_contents
+ &(vtt_GG3213333[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3213333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3213333),39, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3213333),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names869,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3221111 : virtual EE322 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG32211113fooEv
+ ~GG3221111(); // tgen
+ GG3221111(); // tgen
+};
+//SIG(1 GG3221111) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+void GG3221111 ::foo(){vfunc_called(this, "_ZN9GG32211113fooEv");}
+GG3221111 ::~GG3221111(){ note_dtor("GG3221111", this);} // tgen
+GG3221111 ::GG3221111(){ note_ctor("GG3221111", this);} // tgen
+
+static void Test_GG3221111()
+{
+ extern Class_Descriptor cd_GG3221111;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3221111, buf);
+ GG3221111 *dp, &lv = *(dp=new (buf) GG3221111());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3221111)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3221111)");
+ check_base_class_offset(lv, (AA3*)(EE322*), ABISELECT(32,16), "GG3221111");
+ check_base_class_offset(lv, (BB2*)(EE322*), ABISELECT(48,24), "GG3221111");
+ check_base_class_offset(lv, (EE322*), ABISELECT(16,8), "GG3221111");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(80,40), "GG3221111");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(96,48), "GG3221111");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG3221111");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3221111.pg");
+ test_class_info(&lv, &cd_GG3221111);
+ dp->~GG3221111();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3221111(Test_GG3221111, "GG3221111", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3221111C1Ev();
+extern void _ZN9GG3221111D1Ev();
+Name_Map name_map_GG3221111[] = {
+ NSPAIR(_ZN9GG3221111C1Ev),
+ NSPAIR(_ZN9GG3221111D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE322;
+extern VTBL_ENTRY _ZTI5EE322[];
+extern VTBL_ENTRY _ZTV5EE322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE322[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG3221111[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE322, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3221111[];
+extern void _ZN9GG32211113fooEv();
+extern void _ZN5EE3223barEv();
+extern void ABISELECT(_ZTv0_n24_N9GG32211113fooEv,_ZTv0_n12_N9GG32211113fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32211113fooEv,_ZThn16_N9GG32211113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv)();
+extern void ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv)();
+extern void ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32211113fooEv,_ZTv0_n20_N9GG32211113fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32211113fooEv,_ZThn32_N9GG32211113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32211113fooEv,_ZTv0_n12_N9GG32211113fooEv)();
+extern void ABISELECT(_ZThn80_N9GG32211113fooEv,_ZThn40_N9GG32211113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32211113fooEv,_ZTv0_n12_N9GG32211113fooEv)();
+extern void ABISELECT(_ZThn96_N9GG32211113fooEv,_ZThn48_N9GG32211113fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3221111[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3221111[0]),
+ (VTBL_ENTRY)&_ZN9GG32211113fooEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3221111[0]),
+ (VTBL_ENTRY)&_ZN5EE3223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3221111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32211113fooEv,_ZTv0_n12_N9GG32211113fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3221111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3221111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32211113fooEv,_ZTv0_n20_N9GG32211113fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3221111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32211113fooEv,_ZTv0_n12_N9GG32211113fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3221111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32211113fooEv,_ZTv0_n12_N9GG32211113fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3221111[];
+extern void _ZN5EE3223barEv();
+static VTBL_ENTRY _tg__ZTV5EE322__9GG3221111[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN5EE3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv)();
+extern void ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE322__9GG3221111[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv)();
+extern void ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE322__9GG3221111[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv),
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG3221111[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG3221111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG3221111[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG3221111[] = {
+ {&(_ZTV9GG3221111[8]), 8,39},
+ {&(_ZTV9GG3221111[14]), 14,39},
+ {&(_ZTV9GG3221111[19]), 19,39},
+ {&(_ZTV9GG3221111[24]), 24,39},
+ {&(_ZTV9GG3221111[30]), 30,39},
+ {&(_ZTV9GG3221111[34]), 34,39},
+ {&(_ZTV9GG3221111[38]), 38,39},
+ {&(_tg__ZTV5EE322__9GG3221111[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE322__9GG3221111[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE322__9GG3221111[3]), 3,4},
+ {&(_tg__ZTV5FF111__9GG3221111[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG3221111[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG3221111[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3221111[];
+extern VTBL_ENTRY _ZTV9GG3221111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3221111[];
+static VTBL_ENTRY alt_thunk_names870[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32211113fooEv,_ZTv0_n20_N9GG32211113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32211113fooEv,_ZThn32_N9GG32211113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32211113fooEv,_ZTv0_n12_N9GG32211113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32211113fooEv,_ZThn48_N9GG32211113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32211113fooEv,_ZThn40_N9GG32211113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32211113fooEv,_ZThn16_N9GG32211113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3221111 = { "GG3221111", // class name
+ bases_GG3221111, 6,
+ &(vtc_GG3221111[0]), // expected_vtbl_contents
+ &(vtt_GG3221111[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3221111),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3221111),39, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3221111),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names870,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3221113 : virtual EE322 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG32211133fooEv
+ virtual void bar(); // _ZN9GG32211133barEv
+ ~GG3221113(); // tgen
+ GG3221113(); // tgen
+};
+//SIG(1 GG3221113) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3221113 ::foo(){vfunc_called(this, "_ZN9GG32211133fooEv");}
+void GG3221113 ::bar(){vfunc_called(this, "_ZN9GG32211133barEv");}
+GG3221113 ::~GG3221113(){ note_dtor("GG3221113", this);} // tgen
+GG3221113 ::GG3221113(){ note_ctor("GG3221113", this);} // tgen
+
+static void Test_GG3221113()
+{
+ extern Class_Descriptor cd_GG3221113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3221113, buf);
+ GG3221113 *dp, &lv = *(dp=new (buf) GG3221113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3221113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3221113)");
+ check_base_class_offset(lv, (AA3*)(EE322*), ABISELECT(32,16), "GG3221113");
+ check_base_class_offset(lv, (BB2*)(EE322*), ABISELECT(48,24), "GG3221113");
+ check_base_class_offset(lv, (EE322*), ABISELECT(16,8), "GG3221113");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(80,40), "GG3221113");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(96,48), "GG3221113");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG3221113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3221113.pg");
+ test_class_info(&lv, &cd_GG3221113);
+ dp->~GG3221113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3221113(Test_GG3221113, "GG3221113", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3221113C1Ev();
+extern void _ZN9GG3221113D1Ev();
+Name_Map name_map_GG3221113[] = {
+ NSPAIR(_ZN9GG3221113C1Ev),
+ NSPAIR(_ZN9GG3221113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE322;
+extern VTBL_ENTRY _ZTI5EE322[];
+extern VTBL_ENTRY _ZTV5EE322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE322[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG3221113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE322, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3221113[];
+extern void _ZN9GG32211133fooEv();
+extern void _ZN9GG32211133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32211133barEv,_ZTv0_n20_N9GG32211133barEv)();
+extern void ABISELECT(_ZThn16_N9GG32211133barEv,_ZThn8_N9GG32211133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32211133fooEv,_ZTv0_n12_N9GG32211133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32211133fooEv,_ZThn16_N9GG32211133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32211133barEv,_ZTv0_n16_N9GG32211133barEv)();
+extern void ABISELECT(_ZThn32_N9GG32211133barEv,_ZThn16_N9GG32211133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32211133barEv,_ZTv0_n12_N9GG32211133barEv)();
+extern void ABISELECT(_ZThn48_N9GG32211133barEv,_ZThn24_N9GG32211133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32211133fooEv,_ZTv0_n20_N9GG32211133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32211133fooEv,_ZThn32_N9GG32211133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32211133fooEv,_ZTv0_n12_N9GG32211133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG32211133fooEv,_ZThn40_N9GG32211133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32211133fooEv,_ZTv0_n12_N9GG32211133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG32211133fooEv,_ZThn48_N9GG32211133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3221113[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3221113[0]),
+ (VTBL_ENTRY)&_ZN9GG32211133fooEv,
+ (VTBL_ENTRY)&_ZN9GG32211133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3221113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32211133barEv,_ZTv0_n20_N9GG32211133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3221113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32211133fooEv,_ZTv0_n12_N9GG32211133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32211133barEv,_ZTv0_n16_N9GG32211133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3221113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32211133barEv,_ZTv0_n12_N9GG32211133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3221113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32211133fooEv,_ZTv0_n20_N9GG32211133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3221113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32211133fooEv,_ZTv0_n12_N9GG32211133fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3221113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32211133fooEv,_ZTv0_n12_N9GG32211133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3221113[];
+extern void _ZN5EE3223barEv();
+static VTBL_ENTRY _tg__ZTV5EE322__9GG3221113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN5EE3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv)();
+extern void ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE322__9GG3221113[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv)();
+extern void ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE322__9GG3221113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv),
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG3221113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG3221113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG3221113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG3221113[] = {
+ {&(_ZTV9GG3221113[8]), 8,40},
+ {&(_ZTV9GG3221113[15]), 15,40},
+ {&(_ZTV9GG3221113[20]), 20,40},
+ {&(_ZTV9GG3221113[25]), 25,40},
+ {&(_ZTV9GG3221113[31]), 31,40},
+ {&(_ZTV9GG3221113[35]), 35,40},
+ {&(_ZTV9GG3221113[39]), 39,40},
+ {&(_tg__ZTV5EE322__9GG3221113[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE322__9GG3221113[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE322__9GG3221113[3]), 3,4},
+ {&(_tg__ZTV5FF111__9GG3221113[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG3221113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG3221113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3221113[];
+extern VTBL_ENTRY _ZTV9GG3221113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3221113[];
+static VTBL_ENTRY alt_thunk_names871[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32211133fooEv,_ZTv0_n20_N9GG32211133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32211133fooEv,_ZThn32_N9GG32211133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32211133barEv,_ZTv0_n12_N9GG32211133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32211133barEv,_ZThn24_N9GG32211133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32211133barEv,_ZTv0_n16_N9GG32211133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32211133barEv,_ZThn16_N9GG32211133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32211133fooEv,_ZTv0_n12_N9GG32211133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32211133fooEv,_ZThn48_N9GG32211133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32211133fooEv,_ZThn40_N9GG32211133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32211133fooEv,_ZThn16_N9GG32211133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32211133barEv,_ZTv0_n20_N9GG32211133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32211133barEv,_ZThn8_N9GG32211133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3221113 = { "GG3221113", // class name
+ bases_GG3221113, 6,
+ &(vtc_GG3221113[0]), // expected_vtbl_contents
+ &(vtt_GG3221113[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3221113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3221113),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3221113),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names871,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3221123 : virtual EE322 , virtual FF112 {
+ int pg;
+ virtual void foo(); // _ZN9GG32211233fooEv
+ virtual void bar(); // _ZN9GG32211233barEv
+ ~GG3221123(); // tgen
+ GG3221123(); // tgen
+};
+//SIG(1 GG3221123) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3221123 ::foo(){vfunc_called(this, "_ZN9GG32211233fooEv");}
+void GG3221123 ::bar(){vfunc_called(this, "_ZN9GG32211233barEv");}
+GG3221123 ::~GG3221123(){ note_dtor("GG3221123", this);} // tgen
+GG3221123 ::GG3221123(){ note_ctor("GG3221123", this);} // tgen
+
+static void Test_GG3221123()
+{
+ extern Class_Descriptor cd_GG3221123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3221123, buf);
+ GG3221123 *dp, &lv = *(dp=new (buf) GG3221123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3221123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3221123)");
+ check_base_class_offset(lv, (AA3*)(EE322*), ABISELECT(32,16), "GG3221123");
+ check_base_class_offset(lv, (BB2*)(EE322*), ABISELECT(48,24), "GG3221123");
+ check_base_class_offset(lv, (EE322*), ABISELECT(16,8), "GG3221123");
+ check_base_class_offset(lv, (AA1*)(FF112*), ABISELECT(80,40), "GG3221123");
+ check_base_class_offset(lv, (BB1*)(FF112*), ABISELECT(96,48), "GG3221123");
+ check_base_class_offset(lv, (FF112*), ABISELECT(64,32), "GG3221123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3221123.pg");
+ test_class_info(&lv, &cd_GG3221123);
+ dp->~GG3221123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3221123(Test_GG3221123, "GG3221123", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3221123C1Ev();
+extern void _ZN9GG3221123D1Ev();
+Name_Map name_map_GG3221123[] = {
+ NSPAIR(_ZN9GG3221123C1Ev),
+ NSPAIR(_ZN9GG3221123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE322;
+extern VTBL_ENTRY _ZTI5EE322[];
+extern VTBL_ENTRY _ZTV5EE322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE322[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF112;
+extern VTBL_ENTRY _ZTI5FF112[];
+extern VTBL_ENTRY _ZTV5FF112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF112[];
+static Base_Class bases_GG3221123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE322, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF112, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3221123[];
+extern void _ZN9GG32211233fooEv();
+extern void _ZN9GG32211233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32211233barEv,_ZTv0_n20_N9GG32211233barEv)();
+extern void ABISELECT(_ZThn16_N9GG32211233barEv,_ZThn8_N9GG32211233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32211233fooEv,_ZTv0_n12_N9GG32211233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32211233fooEv,_ZThn16_N9GG32211233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32211233barEv,_ZTv0_n16_N9GG32211233barEv)();
+extern void ABISELECT(_ZThn32_N9GG32211233barEv,_ZThn16_N9GG32211233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32211233barEv,_ZTv0_n12_N9GG32211233barEv)();
+extern void ABISELECT(_ZThn48_N9GG32211233barEv,_ZThn24_N9GG32211233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32211233barEv,_ZTv0_n20_N9GG32211233barEv)();
+extern void ABISELECT(_ZThn64_N9GG32211233barEv,_ZThn32_N9GG32211233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32211233fooEv,_ZTv0_n12_N9GG32211233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG32211233fooEv,_ZThn40_N9GG32211233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32211233fooEv,_ZTv0_n12_N9GG32211233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG32211233fooEv,_ZThn48_N9GG32211233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3221123[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3221123[0]),
+ (VTBL_ENTRY)&_ZN9GG32211233fooEv,
+ (VTBL_ENTRY)&_ZN9GG32211233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3221123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32211233barEv,_ZTv0_n20_N9GG32211233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3221123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32211233fooEv,_ZTv0_n12_N9GG32211233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32211233barEv,_ZTv0_n16_N9GG32211233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3221123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32211233barEv,_ZTv0_n12_N9GG32211233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3221123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32211233barEv,_ZTv0_n20_N9GG32211233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3221123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32211233fooEv,_ZTv0_n12_N9GG32211233fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3221123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32211233fooEv,_ZTv0_n12_N9GG32211233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3221123[];
+extern void _ZN5EE3223barEv();
+static VTBL_ENTRY _tg__ZTV5EE322__9GG3221123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN5EE3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv)();
+extern void ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE322__9GG3221123[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv)();
+extern void ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE322__9GG3221123[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv),
+};
+extern void _ZN5FF1123barEv();
+static VTBL_ENTRY _tg__ZTV5FF112__9GG3221123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN5FF1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF112__9GG3221123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF112__9GG3221123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG3221123[] = {
+ {&(_ZTV9GG3221123[8]), 8,40},
+ {&(_ZTV9GG3221123[15]), 15,40},
+ {&(_ZTV9GG3221123[20]), 20,40},
+ {&(_ZTV9GG3221123[25]), 25,40},
+ {&(_ZTV9GG3221123[31]), 31,40},
+ {&(_ZTV9GG3221123[35]), 35,40},
+ {&(_ZTV9GG3221123[39]), 39,40},
+ {&(_tg__ZTV5EE322__9GG3221123[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE322__9GG3221123[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE322__9GG3221123[3]), 3,4},
+ {&(_tg__ZTV5FF112__9GG3221123[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF112__9GG3221123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF112__9GG3221123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3221123[];
+extern VTBL_ENTRY _ZTV9GG3221123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3221123[];
+static VTBL_ENTRY alt_thunk_names872[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32211233barEv,_ZTv0_n12_N9GG32211233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32211233barEv,_ZThn24_N9GG32211233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32211233barEv,_ZTv0_n16_N9GG32211233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32211233barEv,_ZThn16_N9GG32211233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32211233fooEv,_ZTv0_n12_N9GG32211233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32211233fooEv,_ZThn48_N9GG32211233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32211233fooEv,_ZThn40_N9GG32211233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32211233fooEv,_ZThn16_N9GG32211233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32211233barEv,_ZTv0_n20_N9GG32211233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32211233barEv,_ZThn32_N9GG32211233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32211233barEv,_ZThn8_N9GG32211233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3221123 = { "GG3221123", // class name
+ bases_GG3221123, 6,
+ &(vtc_GG3221123[0]), // expected_vtbl_contents
+ &(vtt_GG3221123[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3221123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3221123),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3221123),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names872,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3221133 : virtual EE322 , virtual FF113 {
+ int pg;
+ virtual void foo(); // _ZN9GG32211333fooEv
+ virtual void bar(); // _ZN9GG32211333barEv
+ ~GG3221133(); // tgen
+ GG3221133(); // tgen
+};
+//SIG(1 GG3221133) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3221133 ::foo(){vfunc_called(this, "_ZN9GG32211333fooEv");}
+void GG3221133 ::bar(){vfunc_called(this, "_ZN9GG32211333barEv");}
+GG3221133 ::~GG3221133(){ note_dtor("GG3221133", this);} // tgen
+GG3221133 ::GG3221133(){ note_ctor("GG3221133", this);} // tgen
+
+static void Test_GG3221133()
+{
+ extern Class_Descriptor cd_GG3221133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3221133, buf);
+ GG3221133 *dp, &lv = *(dp=new (buf) GG3221133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3221133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3221133)");
+ check_base_class_offset(lv, (AA3*)(EE322*), ABISELECT(32,16), "GG3221133");
+ check_base_class_offset(lv, (BB2*)(EE322*), ABISELECT(48,24), "GG3221133");
+ check_base_class_offset(lv, (EE322*), ABISELECT(16,8), "GG3221133");
+ check_base_class_offset(lv, (AA1*)(FF113*), ABISELECT(80,40), "GG3221133");
+ check_base_class_offset(lv, (BB1*)(FF113*), ABISELECT(96,48), "GG3221133");
+ check_base_class_offset(lv, (FF113*), ABISELECT(64,32), "GG3221133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3221133.pg");
+ test_class_info(&lv, &cd_GG3221133);
+ dp->~GG3221133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3221133(Test_GG3221133, "GG3221133", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3221133C1Ev();
+extern void _ZN9GG3221133D1Ev();
+Name_Map name_map_GG3221133[] = {
+ NSPAIR(_ZN9GG3221133C1Ev),
+ NSPAIR(_ZN9GG3221133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE322;
+extern VTBL_ENTRY _ZTI5EE322[];
+extern VTBL_ENTRY _ZTV5EE322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE322[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF113;
+extern VTBL_ENTRY _ZTI5FF113[];
+extern VTBL_ENTRY _ZTV5FF113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF113[];
+static Base_Class bases_GG3221133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE322, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF113, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3221133[];
+extern void _ZN9GG32211333fooEv();
+extern void _ZN9GG32211333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32211333barEv,_ZTv0_n20_N9GG32211333barEv)();
+extern void ABISELECT(_ZThn16_N9GG32211333barEv,_ZThn8_N9GG32211333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32211333fooEv,_ZTv0_n12_N9GG32211333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32211333fooEv,_ZThn16_N9GG32211333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32211333barEv,_ZTv0_n16_N9GG32211333barEv)();
+extern void ABISELECT(_ZThn32_N9GG32211333barEv,_ZThn16_N9GG32211333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32211333barEv,_ZTv0_n12_N9GG32211333barEv)();
+extern void ABISELECT(_ZThn48_N9GG32211333barEv,_ZThn24_N9GG32211333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32211333fooEv,_ZTv0_n20_N9GG32211333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32211333fooEv,_ZThn32_N9GG32211333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32211333barEv,_ZTv0_n24_N9GG32211333barEv)();
+extern void ABISELECT(_ZThn64_N9GG32211333barEv,_ZThn32_N9GG32211333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32211333fooEv,_ZTv0_n12_N9GG32211333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG32211333fooEv,_ZThn40_N9GG32211333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32211333fooEv,_ZTv0_n12_N9GG32211333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG32211333fooEv,_ZThn48_N9GG32211333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3221133[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3221133[0]),
+ (VTBL_ENTRY)&_ZN9GG32211333fooEv,
+ (VTBL_ENTRY)&_ZN9GG32211333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3221133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32211333barEv,_ZTv0_n20_N9GG32211333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3221133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32211333fooEv,_ZTv0_n12_N9GG32211333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32211333barEv,_ZTv0_n16_N9GG32211333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3221133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32211333barEv,_ZTv0_n12_N9GG32211333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3221133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32211333fooEv,_ZTv0_n20_N9GG32211333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32211333barEv,_ZTv0_n24_N9GG32211333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3221133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32211333fooEv,_ZTv0_n12_N9GG32211333fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3221133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32211333fooEv,_ZTv0_n12_N9GG32211333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3221133[];
+extern void _ZN5EE3223barEv();
+static VTBL_ENTRY _tg__ZTV5EE322__9GG3221133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN5EE3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv)();
+extern void ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE322__9GG3221133[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv)();
+extern void ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE322__9GG3221133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv),
+};
+extern void _ZN5FF1133fooEv();
+extern void _ZN5FF1133barEv();
+static VTBL_ENTRY _tg__ZTV5FF113__9GG3221133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&_ZN5FF1133fooEv,
+ (VTBL_ENTRY)&_ZN5FF1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF113__9GG3221133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1133fooEv,_ZThn16_N5FF1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF113__9GG3221133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+static VTT_ENTRY vtt_GG3221133[] = {
+ {&(_ZTV9GG3221133[8]), 8,42},
+ {&(_ZTV9GG3221133[15]), 15,42},
+ {&(_ZTV9GG3221133[20]), 20,42},
+ {&(_ZTV9GG3221133[25]), 25,42},
+ {&(_ZTV9GG3221133[32]), 32,42},
+ {&(_ZTV9GG3221133[37]), 37,42},
+ {&(_ZTV9GG3221133[41]), 41,42},
+ {&(_tg__ZTV5EE322__9GG3221133[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE322__9GG3221133[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE322__9GG3221133[3]), 3,4},
+ {&(_tg__ZTV5FF113__9GG3221133[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF113__9GG3221133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF113__9GG3221133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3221133[];
+extern VTBL_ENTRY _ZTV9GG3221133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3221133[];
+static VTBL_ENTRY alt_thunk_names873[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1133fooEv,_ZThn16_N5FF1133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG32211333barEv,_ZTv0_n24_N9GG32211333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32211333barEv,_ZThn32_N9GG32211333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32211333fooEv,_ZTv0_n20_N9GG32211333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32211333fooEv,_ZThn32_N9GG32211333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32211333barEv,_ZTv0_n12_N9GG32211333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32211333barEv,_ZThn24_N9GG32211333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32211333barEv,_ZTv0_n16_N9GG32211333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32211333barEv,_ZThn16_N9GG32211333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32211333fooEv,_ZTv0_n12_N9GG32211333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32211333fooEv,_ZThn48_N9GG32211333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32211333fooEv,_ZThn40_N9GG32211333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32211333fooEv,_ZThn16_N9GG32211333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32211333barEv,_ZTv0_n20_N9GG32211333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32211333barEv,_ZThn8_N9GG32211333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3221133 = { "GG3221133", // class name
+ bases_GG3221133, 6,
+ &(vtc_GG3221133[0]), // expected_vtbl_contents
+ &(vtt_GG3221133[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3221133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3221133),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3221133),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names873,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3221213 : virtual EE322 , virtual FF121 {
+ int pg;
+ virtual void foo(); // _ZN9GG32212133fooEv
+ virtual void bar(); // _ZN9GG32212133barEv
+ ~GG3221213(); // tgen
+ GG3221213(); // tgen
+};
+//SIG(1 GG3221213) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG3221213 ::foo(){vfunc_called(this, "_ZN9GG32212133fooEv");}
+void GG3221213 ::bar(){vfunc_called(this, "_ZN9GG32212133barEv");}
+GG3221213 ::~GG3221213(){ note_dtor("GG3221213", this);} // tgen
+GG3221213 ::GG3221213(){ note_ctor("GG3221213", this);} // tgen
+
+static void Test_GG3221213()
+{
+ extern Class_Descriptor cd_GG3221213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3221213, buf);
+ GG3221213 *dp, &lv = *(dp=new (buf) GG3221213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3221213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3221213)");
+ check_base_class_offset(lv, (AA3*)(EE322*), ABISELECT(32,16), "GG3221213");
+ check_base_class_offset(lv, (BB2*)(EE322*), ABISELECT(48,24), "GG3221213");
+ check_base_class_offset(lv, (BB2*)(FF121*), ABISELECT(48,24), "GG3221213");
+ check_base_class_offset(lv, (EE322*), ABISELECT(16,8), "GG3221213");
+ check_base_class_offset(lv, (AA1*)(FF121*), ABISELECT(80,40), "GG3221213");
+ check_base_class_offset(lv, (FF121*), ABISELECT(64,32), "GG3221213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3221213.pg");
+ test_class_info(&lv, &cd_GG3221213);
+ dp->~GG3221213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3221213(Test_GG3221213, "GG3221213", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3221213C1Ev();
+extern void _ZN9GG3221213D1Ev();
+Name_Map name_map_GG3221213[] = {
+ NSPAIR(_ZN9GG3221213C1Ev),
+ NSPAIR(_ZN9GG3221213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE322;
+extern VTBL_ENTRY _ZTI5EE322[];
+extern VTBL_ENTRY _ZTV5EE322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE322[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF121;
+extern VTBL_ENTRY _ZTI5FF121[];
+extern VTBL_ENTRY _ZTV5FF121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF121[];
+static Base_Class bases_GG3221213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE322, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF121, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3221213[];
+extern void _ZN9GG32212133fooEv();
+extern void _ZN9GG32212133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32212133barEv,_ZTv0_n20_N9GG32212133barEv)();
+extern void ABISELECT(_ZThn16_N9GG32212133barEv,_ZThn8_N9GG32212133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32212133fooEv,_ZTv0_n12_N9GG32212133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32212133fooEv,_ZThn16_N9GG32212133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32212133barEv,_ZTv0_n16_N9GG32212133barEv)();
+extern void ABISELECT(_ZThn32_N9GG32212133barEv,_ZThn16_N9GG32212133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32212133barEv,_ZTv0_n12_N9GG32212133barEv)();
+extern void ABISELECT(_ZThn48_N9GG32212133barEv,_ZThn24_N9GG32212133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32212133fooEv,_ZTv0_n20_N9GG32212133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32212133fooEv,_ZThn32_N9GG32212133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32212133fooEv,_ZTv0_n12_N9GG32212133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG32212133fooEv,_ZThn40_N9GG32212133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3221213[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3221213[0]),
+ (VTBL_ENTRY)&_ZN9GG32212133fooEv,
+ (VTBL_ENTRY)&_ZN9GG32212133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3221213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32212133barEv,_ZTv0_n20_N9GG32212133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3221213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32212133fooEv,_ZTv0_n12_N9GG32212133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32212133barEv,_ZTv0_n16_N9GG32212133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3221213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32212133barEv,_ZTv0_n12_N9GG32212133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3221213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32212133fooEv,_ZTv0_n20_N9GG32212133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3221213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32212133fooEv,_ZTv0_n12_N9GG32212133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3221213[];
+extern void _ZN5EE3223barEv();
+static VTBL_ENTRY _tg__ZTV5EE322__9GG3221213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN5EE3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv)();
+extern void ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE322__9GG3221213[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv)();
+extern void ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE322__9GG3221213[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv),
+};
+extern void _ZN5FF1213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF121__9GG3221213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN5FF1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1213fooEv,_ZThn8_N5FF1213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF121__9GG3221213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF121__9GG3221213[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG3221213[] = {
+ {&(_ZTV9GG3221213[7]), 7,35},
+ {&(_ZTV9GG3221213[14]), 14,35},
+ {&(_ZTV9GG3221213[19]), 19,35},
+ {&(_ZTV9GG3221213[24]), 24,35},
+ {&(_ZTV9GG3221213[30]), 30,35},
+ {&(_ZTV9GG3221213[34]), 34,35},
+ {&(_tg__ZTV5EE322__9GG3221213[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE322__9GG3221213[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE322__9GG3221213[3]), 3,4},
+ {&(_tg__ZTV5FF121__9GG3221213[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF121__9GG3221213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF121__9GG3221213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3221213[];
+extern VTBL_ENTRY _ZTV9GG3221213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3221213[];
+static VTBL_ENTRY alt_thunk_names874[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1213fooEv,_ZThn8_N5FF1213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32212133fooEv,_ZTv0_n20_N9GG32212133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32212133fooEv,_ZThn32_N9GG32212133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32212133barEv,_ZTv0_n12_N9GG32212133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32212133barEv,_ZThn24_N9GG32212133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32212133barEv,_ZTv0_n16_N9GG32212133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32212133barEv,_ZThn16_N9GG32212133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32212133fooEv,_ZTv0_n12_N9GG32212133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32212133fooEv,_ZThn40_N9GG32212133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32212133fooEv,_ZThn16_N9GG32212133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32212133barEv,_ZTv0_n20_N9GG32212133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32212133barEv,_ZThn8_N9GG32212133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3221213 = { "GG3221213", // class name
+ bases_GG3221213, 5,
+ &(vtc_GG3221213[0]), // expected_vtbl_contents
+ &(vtt_GG3221213[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3221213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3221213),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3221213),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names874,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3221223 : virtual EE322 , virtual FF122 {
+ int pg;
+ virtual void foo(); // _ZN9GG32212233fooEv
+ virtual void bar(); // _ZN9GG32212233barEv
+ ~GG3221223(); // tgen
+ GG3221223(); // tgen
+};
+//SIG(1 GG3221223) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG3221223 ::foo(){vfunc_called(this, "_ZN9GG32212233fooEv");}
+void GG3221223 ::bar(){vfunc_called(this, "_ZN9GG32212233barEv");}
+GG3221223 ::~GG3221223(){ note_dtor("GG3221223", this);} // tgen
+GG3221223 ::GG3221223(){ note_ctor("GG3221223", this);} // tgen
+
+static void Test_GG3221223()
+{
+ extern Class_Descriptor cd_GG3221223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3221223, buf);
+ GG3221223 *dp, &lv = *(dp=new (buf) GG3221223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3221223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3221223)");
+ check_base_class_offset(lv, (AA3*)(EE322*), ABISELECT(32,16), "GG3221223");
+ check_base_class_offset(lv, (BB2*)(EE322*), ABISELECT(48,24), "GG3221223");
+ check_base_class_offset(lv, (BB2*)(FF122*), ABISELECT(48,24), "GG3221223");
+ check_base_class_offset(lv, (EE322*), ABISELECT(16,8), "GG3221223");
+ check_base_class_offset(lv, (AA1*)(FF122*), ABISELECT(80,40), "GG3221223");
+ check_base_class_offset(lv, (FF122*), ABISELECT(64,32), "GG3221223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3221223.pg");
+ test_class_info(&lv, &cd_GG3221223);
+ dp->~GG3221223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3221223(Test_GG3221223, "GG3221223", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3221223C1Ev();
+extern void _ZN9GG3221223D1Ev();
+Name_Map name_map_GG3221223[] = {
+ NSPAIR(_ZN9GG3221223C1Ev),
+ NSPAIR(_ZN9GG3221223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE322;
+extern VTBL_ENTRY _ZTI5EE322[];
+extern VTBL_ENTRY _ZTV5EE322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE322[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF122;
+extern VTBL_ENTRY _ZTI5FF122[];
+extern VTBL_ENTRY _ZTV5FF122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF122[];
+static Base_Class bases_GG3221223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE322, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF122, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3221223[];
+extern void _ZN9GG32212233fooEv();
+extern void _ZN9GG32212233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32212233barEv,_ZTv0_n20_N9GG32212233barEv)();
+extern void ABISELECT(_ZThn16_N9GG32212233barEv,_ZThn8_N9GG32212233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32212233fooEv,_ZTv0_n12_N9GG32212233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32212233fooEv,_ZThn16_N9GG32212233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32212233barEv,_ZTv0_n16_N9GG32212233barEv)();
+extern void ABISELECT(_ZThn32_N9GG32212233barEv,_ZThn16_N9GG32212233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32212233barEv,_ZTv0_n12_N9GG32212233barEv)();
+extern void ABISELECT(_ZThn48_N9GG32212233barEv,_ZThn24_N9GG32212233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32212233barEv,_ZTv0_n20_N9GG32212233barEv)();
+extern void ABISELECT(_ZThn64_N9GG32212233barEv,_ZThn32_N9GG32212233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32212233fooEv,_ZTv0_n12_N9GG32212233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG32212233fooEv,_ZThn40_N9GG32212233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3221223[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3221223[0]),
+ (VTBL_ENTRY)&_ZN9GG32212233fooEv,
+ (VTBL_ENTRY)&_ZN9GG32212233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3221223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32212233barEv,_ZTv0_n20_N9GG32212233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3221223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32212233fooEv,_ZTv0_n12_N9GG32212233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32212233barEv,_ZTv0_n16_N9GG32212233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3221223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32212233barEv,_ZTv0_n12_N9GG32212233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3221223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32212233barEv,_ZTv0_n20_N9GG32212233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3221223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32212233fooEv,_ZTv0_n12_N9GG32212233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3221223[];
+extern void _ZN5EE3223barEv();
+static VTBL_ENTRY _tg__ZTV5EE322__9GG3221223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN5EE3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv)();
+extern void ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE322__9GG3221223[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv)();
+extern void ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE322__9GG3221223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv),
+};
+extern void _ZN5FF1223barEv();
+static VTBL_ENTRY _tg__ZTV5FF122__9GG3221223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN5FF1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF122__9GG3221223[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF122__9GG3221223[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv),
+};
+static VTT_ENTRY vtt_GG3221223[] = {
+ {&(_ZTV9GG3221223[7]), 7,35},
+ {&(_ZTV9GG3221223[14]), 14,35},
+ {&(_ZTV9GG3221223[19]), 19,35},
+ {&(_ZTV9GG3221223[24]), 24,35},
+ {&(_ZTV9GG3221223[30]), 30,35},
+ {&(_ZTV9GG3221223[34]), 34,35},
+ {&(_tg__ZTV5EE322__9GG3221223[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE322__9GG3221223[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE322__9GG3221223[3]), 3,4},
+ {&(_tg__ZTV5FF122__9GG3221223[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF122__9GG3221223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF122__9GG3221223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3221223[];
+extern VTBL_ENTRY _ZTV9GG3221223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3221223[];
+static VTBL_ENTRY alt_thunk_names875[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32212233barEv,_ZTv0_n12_N9GG32212233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32212233barEv,_ZThn24_N9GG32212233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32212233barEv,_ZTv0_n16_N9GG32212233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32212233barEv,_ZThn16_N9GG32212233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32212233fooEv,_ZTv0_n12_N9GG32212233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32212233fooEv,_ZThn40_N9GG32212233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32212233fooEv,_ZThn16_N9GG32212233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32212233barEv,_ZTv0_n20_N9GG32212233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32212233barEv,_ZThn32_N9GG32212233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32212233barEv,_ZThn8_N9GG32212233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3221223 = { "GG3221223", // class name
+ bases_GG3221223, 5,
+ &(vtc_GG3221223[0]), // expected_vtbl_contents
+ &(vtt_GG3221223[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3221223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3221223),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3221223),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names875,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3221233 : virtual EE322 , virtual FF123 {
+ int pg;
+ virtual void foo(); // _ZN9GG32212333fooEv
+ virtual void bar(); // _ZN9GG32212333barEv
+ ~GG3221233(); // tgen
+ GG3221233(); // tgen
+};
+//SIG(1 GG3221233) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3221233 ::foo(){vfunc_called(this, "_ZN9GG32212333fooEv");}
+void GG3221233 ::bar(){vfunc_called(this, "_ZN9GG32212333barEv");}
+GG3221233 ::~GG3221233(){ note_dtor("GG3221233", this);} // tgen
+GG3221233 ::GG3221233(){ note_ctor("GG3221233", this);} // tgen
+
+static void Test_GG3221233()
+{
+ extern Class_Descriptor cd_GG3221233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3221233, buf);
+ GG3221233 *dp, &lv = *(dp=new (buf) GG3221233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3221233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3221233)");
+ check_base_class_offset(lv, (AA3*)(EE322*), ABISELECT(32,16), "GG3221233");
+ check_base_class_offset(lv, (BB2*)(EE322*), ABISELECT(48,24), "GG3221233");
+ check_base_class_offset(lv, (BB2*)(FF123*), ABISELECT(48,24), "GG3221233");
+ check_base_class_offset(lv, (EE322*), ABISELECT(16,8), "GG3221233");
+ check_base_class_offset(lv, (AA1*)(FF123*), ABISELECT(80,40), "GG3221233");
+ check_base_class_offset(lv, (FF123*), ABISELECT(64,32), "GG3221233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3221233.pg");
+ test_class_info(&lv, &cd_GG3221233);
+ dp->~GG3221233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3221233(Test_GG3221233, "GG3221233", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3221233C1Ev();
+extern void _ZN9GG3221233D1Ev();
+Name_Map name_map_GG3221233[] = {
+ NSPAIR(_ZN9GG3221233C1Ev),
+ NSPAIR(_ZN9GG3221233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE322;
+extern VTBL_ENTRY _ZTI5EE322[];
+extern VTBL_ENTRY _ZTV5EE322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE322[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF123;
+extern VTBL_ENTRY _ZTI5FF123[];
+extern VTBL_ENTRY _ZTV5FF123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF123[];
+static Base_Class bases_GG3221233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE322, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF123, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3221233[];
+extern void _ZN9GG32212333fooEv();
+extern void _ZN9GG32212333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32212333barEv,_ZTv0_n20_N9GG32212333barEv)();
+extern void ABISELECT(_ZThn16_N9GG32212333barEv,_ZThn8_N9GG32212333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32212333fooEv,_ZTv0_n12_N9GG32212333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32212333fooEv,_ZThn16_N9GG32212333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32212333barEv,_ZTv0_n16_N9GG32212333barEv)();
+extern void ABISELECT(_ZThn32_N9GG32212333barEv,_ZThn16_N9GG32212333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32212333barEv,_ZTv0_n12_N9GG32212333barEv)();
+extern void ABISELECT(_ZThn48_N9GG32212333barEv,_ZThn24_N9GG32212333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32212333fooEv,_ZTv0_n20_N9GG32212333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32212333fooEv,_ZThn32_N9GG32212333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32212333barEv,_ZTv0_n24_N9GG32212333barEv)();
+extern void ABISELECT(_ZThn64_N9GG32212333barEv,_ZThn32_N9GG32212333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32212333fooEv,_ZTv0_n12_N9GG32212333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG32212333fooEv,_ZThn40_N9GG32212333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3221233[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3221233[0]),
+ (VTBL_ENTRY)&_ZN9GG32212333fooEv,
+ (VTBL_ENTRY)&_ZN9GG32212333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3221233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32212333barEv,_ZTv0_n20_N9GG32212333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3221233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32212333fooEv,_ZTv0_n12_N9GG32212333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32212333barEv,_ZTv0_n16_N9GG32212333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3221233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32212333barEv,_ZTv0_n12_N9GG32212333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3221233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32212333fooEv,_ZTv0_n20_N9GG32212333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32212333barEv,_ZTv0_n24_N9GG32212333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3221233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32212333fooEv,_ZTv0_n12_N9GG32212333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3221233[];
+extern void _ZN5EE3223barEv();
+static VTBL_ENTRY _tg__ZTV5EE322__9GG3221233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN5EE3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv)();
+extern void ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE322__9GG3221233[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv)();
+extern void ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE322__9GG3221233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv),
+};
+extern void _ZN5FF1233fooEv();
+extern void _ZN5FF1233barEv();
+static VTBL_ENTRY _tg__ZTV5FF123__9GG3221233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&_ZN5FF1233fooEv,
+ (VTBL_ENTRY)&_ZN5FF1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1233fooEv,_ZThn8_N5FF1233fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF123__9GG3221233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF123__9GG3221233[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv),
+};
+static VTT_ENTRY vtt_GG3221233[] = {
+ {&(_ZTV9GG3221233[7]), 7,37},
+ {&(_ZTV9GG3221233[14]), 14,37},
+ {&(_ZTV9GG3221233[19]), 19,37},
+ {&(_ZTV9GG3221233[24]), 24,37},
+ {&(_ZTV9GG3221233[31]), 31,37},
+ {&(_ZTV9GG3221233[36]), 36,37},
+ {&(_tg__ZTV5EE322__9GG3221233[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE322__9GG3221233[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE322__9GG3221233[3]), 3,4},
+ {&(_tg__ZTV5FF123__9GG3221233[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF123__9GG3221233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF123__9GG3221233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3221233[];
+extern VTBL_ENTRY _ZTV9GG3221233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3221233[];
+static VTBL_ENTRY alt_thunk_names876[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1233fooEv,_ZThn8_N5FF1233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG32212333barEv,_ZTv0_n24_N9GG32212333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32212333barEv,_ZThn32_N9GG32212333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32212333fooEv,_ZTv0_n20_N9GG32212333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32212333fooEv,_ZThn32_N9GG32212333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32212333barEv,_ZTv0_n12_N9GG32212333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32212333barEv,_ZThn24_N9GG32212333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32212333barEv,_ZTv0_n16_N9GG32212333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32212333barEv,_ZThn16_N9GG32212333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32212333fooEv,_ZTv0_n12_N9GG32212333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32212333fooEv,_ZThn40_N9GG32212333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32212333fooEv,_ZThn16_N9GG32212333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32212333barEv,_ZTv0_n20_N9GG32212333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32212333barEv,_ZThn8_N9GG32212333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3221233 = { "GG3221233", // class name
+ bases_GG3221233, 5,
+ &(vtc_GG3221233[0]), // expected_vtbl_contents
+ &(vtt_GG3221233[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3221233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3221233),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3221233),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names876,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3221313 : virtual EE322 , virtual FF131 {
+ int pg;
+ virtual void foo(); // _ZN9GG32213133fooEv
+ virtual void bar(); // _ZN9GG32213133barEv
+ ~GG3221313(); // tgen
+ GG3221313(); // tgen
+};
+//SIG(1 GG3221313) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3221313 ::foo(){vfunc_called(this, "_ZN9GG32213133fooEv");}
+void GG3221313 ::bar(){vfunc_called(this, "_ZN9GG32213133barEv");}
+GG3221313 ::~GG3221313(){ note_dtor("GG3221313", this);} // tgen
+GG3221313 ::GG3221313(){ note_ctor("GG3221313", this);} // tgen
+
+static void Test_GG3221313()
+{
+ extern Class_Descriptor cd_GG3221313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3221313, buf);
+ GG3221313 *dp, &lv = *(dp=new (buf) GG3221313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3221313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3221313)");
+ check_base_class_offset(lv, (AA3*)(EE322*), ABISELECT(32,16), "GG3221313");
+ check_base_class_offset(lv, (BB2*)(EE322*), ABISELECT(48,24), "GG3221313");
+ check_base_class_offset(lv, (EE322*), ABISELECT(16,8), "GG3221313");
+ check_base_class_offset(lv, (AA1*)(FF131*), ABISELECT(80,40), "GG3221313");
+ check_base_class_offset(lv, (BB3*)(FF131*), ABISELECT(96,48), "GG3221313");
+ check_base_class_offset(lv, (FF131*), ABISELECT(64,32), "GG3221313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3221313.pg");
+ test_class_info(&lv, &cd_GG3221313);
+ dp->~GG3221313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3221313(Test_GG3221313, "GG3221313", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3221313C1Ev();
+extern void _ZN9GG3221313D1Ev();
+Name_Map name_map_GG3221313[] = {
+ NSPAIR(_ZN9GG3221313C1Ev),
+ NSPAIR(_ZN9GG3221313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE322;
+extern VTBL_ENTRY _ZTI5EE322[];
+extern VTBL_ENTRY _ZTV5EE322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE322[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF131;
+extern VTBL_ENTRY _ZTI5FF131[];
+extern VTBL_ENTRY _ZTV5FF131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF131[];
+static Base_Class bases_GG3221313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE322, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF131, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3221313[];
+extern void _ZN9GG32213133fooEv();
+extern void _ZN9GG32213133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32213133barEv,_ZTv0_n20_N9GG32213133barEv)();
+extern void ABISELECT(_ZThn16_N9GG32213133barEv,_ZThn8_N9GG32213133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32213133fooEv,_ZTv0_n12_N9GG32213133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32213133fooEv,_ZThn16_N9GG32213133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32213133barEv,_ZTv0_n16_N9GG32213133barEv)();
+extern void ABISELECT(_ZThn32_N9GG32213133barEv,_ZThn16_N9GG32213133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32213133barEv,_ZTv0_n12_N9GG32213133barEv)();
+extern void ABISELECT(_ZThn48_N9GG32213133barEv,_ZThn24_N9GG32213133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32213133fooEv,_ZTv0_n20_N9GG32213133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32213133fooEv,_ZThn32_N9GG32213133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32213133fooEv,_ZTv0_n12_N9GG32213133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG32213133fooEv,_ZThn40_N9GG32213133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32213133fooEv,_ZTv0_n12_N9GG32213133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG32213133fooEv,_ZThn48_N9GG32213133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32213133barEv,_ZTv0_n16_N9GG32213133barEv)();
+extern void ABISELECT(_ZThn96_N9GG32213133barEv,_ZThn48_N9GG32213133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3221313[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3221313[0]),
+ (VTBL_ENTRY)&_ZN9GG32213133fooEv,
+ (VTBL_ENTRY)&_ZN9GG32213133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3221313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32213133barEv,_ZTv0_n20_N9GG32213133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3221313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32213133fooEv,_ZTv0_n12_N9GG32213133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32213133barEv,_ZTv0_n16_N9GG32213133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3221313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32213133barEv,_ZTv0_n12_N9GG32213133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3221313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32213133fooEv,_ZTv0_n20_N9GG32213133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3221313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32213133fooEv,_ZTv0_n12_N9GG32213133fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3221313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32213133fooEv,_ZTv0_n12_N9GG32213133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32213133barEv,_ZTv0_n16_N9GG32213133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3221313[];
+extern void _ZN5EE3223barEv();
+static VTBL_ENTRY _tg__ZTV5EE322__9GG3221313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN5EE3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv)();
+extern void ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE322__9GG3221313[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv)();
+extern void ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE322__9GG3221313[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv),
+};
+extern void _ZN5FF1313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF131__9GG3221313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&_ZN5FF1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF131__9GG3221313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1313fooEv,_ZThn16_N5FF1313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF131__9GG3221313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG3221313[] = {
+ {&(_ZTV9GG3221313[8]), 8,42},
+ {&(_ZTV9GG3221313[15]), 15,42},
+ {&(_ZTV9GG3221313[20]), 20,42},
+ {&(_ZTV9GG3221313[25]), 25,42},
+ {&(_ZTV9GG3221313[31]), 31,42},
+ {&(_ZTV9GG3221313[35]), 35,42},
+ {&(_ZTV9GG3221313[40]), 40,42},
+ {&(_tg__ZTV5EE322__9GG3221313[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE322__9GG3221313[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE322__9GG3221313[3]), 3,4},
+ {&(_tg__ZTV5FF131__9GG3221313[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF131__9GG3221313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF131__9GG3221313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3221313[];
+extern VTBL_ENTRY _ZTV9GG3221313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3221313[];
+static VTBL_ENTRY alt_thunk_names877[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1313fooEv,_ZThn16_N5FF1313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32213133fooEv,_ZTv0_n20_N9GG32213133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32213133fooEv,_ZThn32_N9GG32213133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32213133barEv,_ZTv0_n12_N9GG32213133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32213133barEv,_ZThn24_N9GG32213133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32213133barEv,_ZTv0_n16_N9GG32213133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32213133barEv,_ZThn48_N9GG32213133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32213133barEv,_ZThn16_N9GG32213133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32213133fooEv,_ZTv0_n12_N9GG32213133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32213133fooEv,_ZThn48_N9GG32213133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32213133fooEv,_ZThn40_N9GG32213133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32213133fooEv,_ZThn16_N9GG32213133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32213133barEv,_ZTv0_n20_N9GG32213133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32213133barEv,_ZThn8_N9GG32213133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3221313 = { "GG3221313", // class name
+ bases_GG3221313, 6,
+ &(vtc_GG3221313[0]), // expected_vtbl_contents
+ &(vtt_GG3221313[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3221313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3221313),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3221313),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names877,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3221323 : virtual EE322 , virtual FF132 {
+ int pg;
+ virtual void foo(); // _ZN9GG32213233fooEv
+ virtual void bar(); // _ZN9GG32213233barEv
+ ~GG3221323(); // tgen
+ GG3221323(); // tgen
+};
+//SIG(1 GG3221323) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3221323 ::foo(){vfunc_called(this, "_ZN9GG32213233fooEv");}
+void GG3221323 ::bar(){vfunc_called(this, "_ZN9GG32213233barEv");}
+GG3221323 ::~GG3221323(){ note_dtor("GG3221323", this);} // tgen
+GG3221323 ::GG3221323(){ note_ctor("GG3221323", this);} // tgen
+
+static void Test_GG3221323()
+{
+ extern Class_Descriptor cd_GG3221323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3221323, buf);
+ GG3221323 *dp, &lv = *(dp=new (buf) GG3221323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3221323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3221323)");
+ check_base_class_offset(lv, (AA3*)(EE322*), ABISELECT(32,16), "GG3221323");
+ check_base_class_offset(lv, (BB2*)(EE322*), ABISELECT(48,24), "GG3221323");
+ check_base_class_offset(lv, (EE322*), ABISELECT(16,8), "GG3221323");
+ check_base_class_offset(lv, (AA1*)(FF132*), ABISELECT(80,40), "GG3221323");
+ check_base_class_offset(lv, (BB3*)(FF132*), ABISELECT(96,48), "GG3221323");
+ check_base_class_offset(lv, (FF132*), ABISELECT(64,32), "GG3221323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3221323.pg");
+ test_class_info(&lv, &cd_GG3221323);
+ dp->~GG3221323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3221323(Test_GG3221323, "GG3221323", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3221323C1Ev();
+extern void _ZN9GG3221323D1Ev();
+Name_Map name_map_GG3221323[] = {
+ NSPAIR(_ZN9GG3221323C1Ev),
+ NSPAIR(_ZN9GG3221323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE322;
+extern VTBL_ENTRY _ZTI5EE322[];
+extern VTBL_ENTRY _ZTV5EE322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE322[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF132;
+extern VTBL_ENTRY _ZTI5FF132[];
+extern VTBL_ENTRY _ZTV5FF132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF132[];
+static Base_Class bases_GG3221323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE322, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF132, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3221323[];
+extern void _ZN9GG32213233fooEv();
+extern void _ZN9GG32213233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32213233barEv,_ZTv0_n20_N9GG32213233barEv)();
+extern void ABISELECT(_ZThn16_N9GG32213233barEv,_ZThn8_N9GG32213233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32213233fooEv,_ZTv0_n12_N9GG32213233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32213233fooEv,_ZThn16_N9GG32213233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32213233barEv,_ZTv0_n16_N9GG32213233barEv)();
+extern void ABISELECT(_ZThn32_N9GG32213233barEv,_ZThn16_N9GG32213233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32213233barEv,_ZTv0_n12_N9GG32213233barEv)();
+extern void ABISELECT(_ZThn48_N9GG32213233barEv,_ZThn24_N9GG32213233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32213233barEv,_ZTv0_n20_N9GG32213233barEv)();
+extern void ABISELECT(_ZThn64_N9GG32213233barEv,_ZThn32_N9GG32213233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32213233fooEv,_ZTv0_n12_N9GG32213233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG32213233fooEv,_ZThn40_N9GG32213233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32213233fooEv,_ZTv0_n12_N9GG32213233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG32213233fooEv,_ZThn48_N9GG32213233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32213233barEv,_ZTv0_n16_N9GG32213233barEv)();
+extern void ABISELECT(_ZThn96_N9GG32213233barEv,_ZThn48_N9GG32213233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3221323[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3221323[0]),
+ (VTBL_ENTRY)&_ZN9GG32213233fooEv,
+ (VTBL_ENTRY)&_ZN9GG32213233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3221323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32213233barEv,_ZTv0_n20_N9GG32213233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3221323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32213233fooEv,_ZTv0_n12_N9GG32213233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32213233barEv,_ZTv0_n16_N9GG32213233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3221323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32213233barEv,_ZTv0_n12_N9GG32213233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3221323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32213233barEv,_ZTv0_n20_N9GG32213233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3221323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32213233fooEv,_ZTv0_n12_N9GG32213233fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3221323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32213233fooEv,_ZTv0_n12_N9GG32213233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32213233barEv,_ZTv0_n16_N9GG32213233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3221323[];
+extern void _ZN5EE3223barEv();
+static VTBL_ENTRY _tg__ZTV5EE322__9GG3221323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN5EE3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv)();
+extern void ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE322__9GG3221323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv)();
+extern void ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE322__9GG3221323[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv),
+};
+extern void _ZN5FF1323barEv();
+static VTBL_ENTRY _tg__ZTV5FF132__9GG3221323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN5FF1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF132__9GG3221323[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv)();
+extern void ABISELECT(_ZThn32_N5FF1323barEv,_ZThn16_N5FF1323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF132__9GG3221323[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv),
+};
+static VTT_ENTRY vtt_GG3221323[] = {
+ {&(_ZTV9GG3221323[8]), 8,42},
+ {&(_ZTV9GG3221323[15]), 15,42},
+ {&(_ZTV9GG3221323[20]), 20,42},
+ {&(_ZTV9GG3221323[25]), 25,42},
+ {&(_ZTV9GG3221323[31]), 31,42},
+ {&(_ZTV9GG3221323[35]), 35,42},
+ {&(_ZTV9GG3221323[40]), 40,42},
+ {&(_tg__ZTV5EE322__9GG3221323[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE322__9GG3221323[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE322__9GG3221323[3]), 3,4},
+ {&(_tg__ZTV5FF132__9GG3221323[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF132__9GG3221323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF132__9GG3221323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3221323[];
+extern VTBL_ENTRY _ZTV9GG3221323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3221323[];
+static VTBL_ENTRY alt_thunk_names878[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1323barEv,_ZThn16_N5FF1323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32213233barEv,_ZTv0_n12_N9GG32213233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32213233barEv,_ZThn24_N9GG32213233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32213233barEv,_ZTv0_n16_N9GG32213233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32213233barEv,_ZThn48_N9GG32213233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32213233barEv,_ZThn16_N9GG32213233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32213233fooEv,_ZTv0_n12_N9GG32213233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32213233fooEv,_ZThn48_N9GG32213233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32213233fooEv,_ZThn40_N9GG32213233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32213233fooEv,_ZThn16_N9GG32213233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32213233barEv,_ZTv0_n20_N9GG32213233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32213233barEv,_ZThn32_N9GG32213233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32213233barEv,_ZThn8_N9GG32213233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3221323 = { "GG3221323", // class name
+ bases_GG3221323, 6,
+ &(vtc_GG3221323[0]), // expected_vtbl_contents
+ &(vtt_GG3221323[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3221323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3221323),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3221323),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names878,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3221333 : virtual EE322 , virtual FF133 {
+ int pg;
+ virtual void foo(); // _ZN9GG32213333fooEv
+ virtual void bar(); // _ZN9GG32213333barEv
+ ~GG3221333(); // tgen
+ GG3221333(); // tgen
+};
+//SIG(1 GG3221333) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3221333 ::foo(){vfunc_called(this, "_ZN9GG32213333fooEv");}
+void GG3221333 ::bar(){vfunc_called(this, "_ZN9GG32213333barEv");}
+GG3221333 ::~GG3221333(){ note_dtor("GG3221333", this);} // tgen
+GG3221333 ::GG3221333(){ note_ctor("GG3221333", this);} // tgen
+
+static void Test_GG3221333()
+{
+ extern Class_Descriptor cd_GG3221333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3221333, buf);
+ GG3221333 *dp, &lv = *(dp=new (buf) GG3221333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3221333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3221333)");
+ check_base_class_offset(lv, (AA3*)(EE322*), ABISELECT(32,16), "GG3221333");
+ check_base_class_offset(lv, (BB2*)(EE322*), ABISELECT(48,24), "GG3221333");
+ check_base_class_offset(lv, (EE322*), ABISELECT(16,8), "GG3221333");
+ check_base_class_offset(lv, (AA1*)(FF133*), ABISELECT(80,40), "GG3221333");
+ check_base_class_offset(lv, (BB3*)(FF133*), ABISELECT(96,48), "GG3221333");
+ check_base_class_offset(lv, (FF133*), ABISELECT(64,32), "GG3221333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3221333.pg");
+ test_class_info(&lv, &cd_GG3221333);
+ dp->~GG3221333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3221333(Test_GG3221333, "GG3221333", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3221333C1Ev();
+extern void _ZN9GG3221333D1Ev();
+Name_Map name_map_GG3221333[] = {
+ NSPAIR(_ZN9GG3221333C1Ev),
+ NSPAIR(_ZN9GG3221333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE322;
+extern VTBL_ENTRY _ZTI5EE322[];
+extern VTBL_ENTRY _ZTV5EE322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE322[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF133;
+extern VTBL_ENTRY _ZTI5FF133[];
+extern VTBL_ENTRY _ZTV5FF133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF133[];
+static Base_Class bases_GG3221333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE322, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF133, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3221333[];
+extern void _ZN9GG32213333fooEv();
+extern void _ZN9GG32213333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32213333barEv,_ZTv0_n20_N9GG32213333barEv)();
+extern void ABISELECT(_ZThn16_N9GG32213333barEv,_ZThn8_N9GG32213333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32213333fooEv,_ZTv0_n12_N9GG32213333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32213333fooEv,_ZThn16_N9GG32213333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32213333barEv,_ZTv0_n16_N9GG32213333barEv)();
+extern void ABISELECT(_ZThn32_N9GG32213333barEv,_ZThn16_N9GG32213333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32213333barEv,_ZTv0_n12_N9GG32213333barEv)();
+extern void ABISELECT(_ZThn48_N9GG32213333barEv,_ZThn24_N9GG32213333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32213333fooEv,_ZTv0_n20_N9GG32213333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32213333fooEv,_ZThn32_N9GG32213333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32213333barEv,_ZTv0_n24_N9GG32213333barEv)();
+extern void ABISELECT(_ZThn64_N9GG32213333barEv,_ZThn32_N9GG32213333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32213333fooEv,_ZTv0_n12_N9GG32213333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG32213333fooEv,_ZThn40_N9GG32213333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32213333fooEv,_ZTv0_n12_N9GG32213333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG32213333fooEv,_ZThn48_N9GG32213333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32213333barEv,_ZTv0_n16_N9GG32213333barEv)();
+extern void ABISELECT(_ZThn96_N9GG32213333barEv,_ZThn48_N9GG32213333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3221333[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3221333[0]),
+ (VTBL_ENTRY)&_ZN9GG32213333fooEv,
+ (VTBL_ENTRY)&_ZN9GG32213333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3221333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32213333barEv,_ZTv0_n20_N9GG32213333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3221333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32213333fooEv,_ZTv0_n12_N9GG32213333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32213333barEv,_ZTv0_n16_N9GG32213333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3221333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32213333barEv,_ZTv0_n12_N9GG32213333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3221333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32213333fooEv,_ZTv0_n20_N9GG32213333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32213333barEv,_ZTv0_n24_N9GG32213333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3221333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32213333fooEv,_ZTv0_n12_N9GG32213333fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3221333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32213333fooEv,_ZTv0_n12_N9GG32213333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32213333barEv,_ZTv0_n16_N9GG32213333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3221333[];
+extern void _ZN5EE3223barEv();
+static VTBL_ENTRY _tg__ZTV5EE322__9GG3221333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN5EE3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv)();
+extern void ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE322__9GG3221333[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv)();
+extern void ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE322__9GG3221333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv),
+};
+extern void _ZN5FF1333fooEv();
+extern void _ZN5FF1333barEv();
+static VTBL_ENTRY _tg__ZTV5FF133__9GG3221333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&_ZN5FF1333fooEv,
+ (VTBL_ENTRY)&_ZN5FF1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF133__9GG3221333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1333fooEv,_ZThn16_N5FF1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv)();
+extern void ABISELECT(_ZThn32_N5FF1333barEv,_ZThn16_N5FF1333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF133__9GG3221333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv),
+};
+static VTT_ENTRY vtt_GG3221333[] = {
+ {&(_ZTV9GG3221333[8]), 8,44},
+ {&(_ZTV9GG3221333[15]), 15,44},
+ {&(_ZTV9GG3221333[20]), 20,44},
+ {&(_ZTV9GG3221333[25]), 25,44},
+ {&(_ZTV9GG3221333[32]), 32,44},
+ {&(_ZTV9GG3221333[37]), 37,44},
+ {&(_ZTV9GG3221333[42]), 42,44},
+ {&(_tg__ZTV5EE322__9GG3221333[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE322__9GG3221333[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE322__9GG3221333[3]), 3,4},
+ {&(_tg__ZTV5FF133__9GG3221333[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF133__9GG3221333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF133__9GG3221333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3221333[];
+extern VTBL_ENTRY _ZTV9GG3221333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3221333[];
+static VTBL_ENTRY alt_thunk_names879[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1333barEv,_ZThn16_N5FF1333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1333fooEv,_ZThn16_N5FF1333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG32213333barEv,_ZTv0_n24_N9GG32213333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32213333barEv,_ZThn32_N9GG32213333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32213333fooEv,_ZTv0_n20_N9GG32213333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32213333fooEv,_ZThn32_N9GG32213333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32213333barEv,_ZTv0_n12_N9GG32213333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32213333barEv,_ZThn24_N9GG32213333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32213333barEv,_ZTv0_n16_N9GG32213333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32213333barEv,_ZThn48_N9GG32213333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32213333barEv,_ZThn16_N9GG32213333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32213333fooEv,_ZTv0_n12_N9GG32213333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32213333fooEv,_ZThn48_N9GG32213333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32213333fooEv,_ZThn40_N9GG32213333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32213333fooEv,_ZThn16_N9GG32213333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32213333barEv,_ZTv0_n20_N9GG32213333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32213333barEv,_ZThn8_N9GG32213333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3221333 = { "GG3221333", // class name
+ bases_GG3221333, 6,
+ &(vtc_GG3221333[0]), // expected_vtbl_contents
+ &(vtt_GG3221333[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3221333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3221333),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3221333),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names879,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3222113 : virtual EE322 , virtual FF211 {
+ int pg;
+ virtual void foo(); // _ZN9GG32221133fooEv
+ virtual void bar(); // _ZN9GG32221133barEv
+ ~GG3222113(); // tgen
+ GG3222113(); // tgen
+};
+//SIG(1 GG3222113) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3222113 ::foo(){vfunc_called(this, "_ZN9GG32221133fooEv");}
+void GG3222113 ::bar(){vfunc_called(this, "_ZN9GG32221133barEv");}
+GG3222113 ::~GG3222113(){ note_dtor("GG3222113", this);} // tgen
+GG3222113 ::GG3222113(){ note_ctor("GG3222113", this);} // tgen
+
+static void Test_GG3222113()
+{
+ extern Class_Descriptor cd_GG3222113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3222113, buf);
+ GG3222113 *dp, &lv = *(dp=new (buf) GG3222113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3222113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3222113)");
+ check_base_class_offset(lv, (AA3*)(EE322*), ABISELECT(32,16), "GG3222113");
+ check_base_class_offset(lv, (BB2*)(EE322*), ABISELECT(48,24), "GG3222113");
+ check_base_class_offset(lv, (EE322*), ABISELECT(16,8), "GG3222113");
+ check_base_class_offset(lv, (AA2*)(FF211*), ABISELECT(80,40), "GG3222113");
+ check_base_class_offset(lv, (BB1*)(FF211*), ABISELECT(96,48), "GG3222113");
+ check_base_class_offset(lv, (FF211*), ABISELECT(64,32), "GG3222113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3222113.pg");
+ test_class_info(&lv, &cd_GG3222113);
+ dp->~GG3222113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3222113(Test_GG3222113, "GG3222113", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3222113C1Ev();
+extern void _ZN9GG3222113D1Ev();
+Name_Map name_map_GG3222113[] = {
+ NSPAIR(_ZN9GG3222113C1Ev),
+ NSPAIR(_ZN9GG3222113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE322;
+extern VTBL_ENTRY _ZTI5EE322[];
+extern VTBL_ENTRY _ZTV5EE322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE322[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF211;
+extern VTBL_ENTRY _ZTI5FF211[];
+extern VTBL_ENTRY _ZTV5FF211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF211[];
+static Base_Class bases_GG3222113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE322, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF211, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3222113[];
+extern void _ZN9GG32221133fooEv();
+extern void _ZN9GG32221133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32221133barEv,_ZTv0_n20_N9GG32221133barEv)();
+extern void ABISELECT(_ZThn16_N9GG32221133barEv,_ZThn8_N9GG32221133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32221133fooEv,_ZTv0_n12_N9GG32221133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32221133fooEv,_ZThn16_N9GG32221133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32221133barEv,_ZTv0_n16_N9GG32221133barEv)();
+extern void ABISELECT(_ZThn32_N9GG32221133barEv,_ZThn16_N9GG32221133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32221133barEv,_ZTv0_n12_N9GG32221133barEv)();
+extern void ABISELECT(_ZThn48_N9GG32221133barEv,_ZThn24_N9GG32221133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32221133fooEv,_ZTv0_n20_N9GG32221133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32221133fooEv,_ZThn32_N9GG32221133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32221133barEv,_ZTv0_n12_N9GG32221133barEv)();
+extern void ABISELECT(_ZThn80_N9GG32221133barEv,_ZThn40_N9GG32221133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32221133fooEv,_ZTv0_n12_N9GG32221133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG32221133fooEv,_ZThn48_N9GG32221133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3222113[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3222113[0]),
+ (VTBL_ENTRY)&_ZN9GG32221133fooEv,
+ (VTBL_ENTRY)&_ZN9GG32221133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3222113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32221133barEv,_ZTv0_n20_N9GG32221133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3222113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32221133fooEv,_ZTv0_n12_N9GG32221133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32221133barEv,_ZTv0_n16_N9GG32221133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3222113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32221133barEv,_ZTv0_n12_N9GG32221133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3222113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32221133fooEv,_ZTv0_n20_N9GG32221133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3222113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32221133barEv,_ZTv0_n12_N9GG32221133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3222113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32221133fooEv,_ZTv0_n12_N9GG32221133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3222113[];
+extern void _ZN5EE3223barEv();
+static VTBL_ENTRY _tg__ZTV5EE322__9GG3222113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN5EE3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv)();
+extern void ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE322__9GG3222113[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv)();
+extern void ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE322__9GG3222113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv),
+};
+extern void _ZN5FF2113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF211__9GG3222113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN5FF2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF211__9GG3222113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2113fooEv,_ZThn16_N5FF2113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF211__9GG3222113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv),
+};
+static VTT_ENTRY vtt_GG3222113[] = {
+ {&(_ZTV9GG3222113[8]), 8,40},
+ {&(_ZTV9GG3222113[15]), 15,40},
+ {&(_ZTV9GG3222113[20]), 20,40},
+ {&(_ZTV9GG3222113[25]), 25,40},
+ {&(_ZTV9GG3222113[31]), 31,40},
+ {&(_ZTV9GG3222113[35]), 35,40},
+ {&(_ZTV9GG3222113[39]), 39,40},
+ {&(_tg__ZTV5EE322__9GG3222113[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE322__9GG3222113[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE322__9GG3222113[3]), 3,4},
+ {&(_tg__ZTV5FF211__9GG3222113[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF211__9GG3222113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF211__9GG3222113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3222113[];
+extern VTBL_ENTRY _ZTV9GG3222113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3222113[];
+static VTBL_ENTRY alt_thunk_names880[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2113fooEv,_ZThn16_N5FF2113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32221133fooEv,_ZTv0_n20_N9GG32221133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32221133fooEv,_ZThn32_N9GG32221133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32221133barEv,_ZTv0_n12_N9GG32221133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32221133barEv,_ZThn40_N9GG32221133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32221133barEv,_ZThn24_N9GG32221133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32221133barEv,_ZTv0_n16_N9GG32221133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32221133barEv,_ZThn16_N9GG32221133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32221133fooEv,_ZTv0_n12_N9GG32221133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32221133fooEv,_ZThn48_N9GG32221133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32221133fooEv,_ZThn16_N9GG32221133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32221133barEv,_ZTv0_n20_N9GG32221133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32221133barEv,_ZThn8_N9GG32221133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3222113 = { "GG3222113", // class name
+ bases_GG3222113, 6,
+ &(vtc_GG3222113[0]), // expected_vtbl_contents
+ &(vtt_GG3222113[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3222113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3222113),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3222113),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names880,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3222123 : virtual EE322 , virtual FF212 {
+ int pg;
+ virtual void foo(); // _ZN9GG32221233fooEv
+ virtual void bar(); // _ZN9GG32221233barEv
+ ~GG3222123(); // tgen
+ GG3222123(); // tgen
+};
+//SIG(1 GG3222123) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3222123 ::foo(){vfunc_called(this, "_ZN9GG32221233fooEv");}
+void GG3222123 ::bar(){vfunc_called(this, "_ZN9GG32221233barEv");}
+GG3222123 ::~GG3222123(){ note_dtor("GG3222123", this);} // tgen
+GG3222123 ::GG3222123(){ note_ctor("GG3222123", this);} // tgen
+
+static void Test_GG3222123()
+{
+ extern Class_Descriptor cd_GG3222123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3222123, buf);
+ GG3222123 *dp, &lv = *(dp=new (buf) GG3222123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3222123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3222123)");
+ check_base_class_offset(lv, (AA3*)(EE322*), ABISELECT(32,16), "GG3222123");
+ check_base_class_offset(lv, (BB2*)(EE322*), ABISELECT(48,24), "GG3222123");
+ check_base_class_offset(lv, (EE322*), ABISELECT(16,8), "GG3222123");
+ check_base_class_offset(lv, (AA2*)(FF212*), ABISELECT(80,40), "GG3222123");
+ check_base_class_offset(lv, (BB1*)(FF212*), ABISELECT(96,48), "GG3222123");
+ check_base_class_offset(lv, (FF212*), ABISELECT(64,32), "GG3222123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3222123.pg");
+ test_class_info(&lv, &cd_GG3222123);
+ dp->~GG3222123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3222123(Test_GG3222123, "GG3222123", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3222123C1Ev();
+extern void _ZN9GG3222123D1Ev();
+Name_Map name_map_GG3222123[] = {
+ NSPAIR(_ZN9GG3222123C1Ev),
+ NSPAIR(_ZN9GG3222123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE322;
+extern VTBL_ENTRY _ZTI5EE322[];
+extern VTBL_ENTRY _ZTV5EE322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE322[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF212;
+extern VTBL_ENTRY _ZTI5FF212[];
+extern VTBL_ENTRY _ZTV5FF212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF212[];
+static Base_Class bases_GG3222123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE322, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF212, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3222123[];
+extern void _ZN9GG32221233fooEv();
+extern void _ZN9GG32221233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32221233barEv,_ZTv0_n20_N9GG32221233barEv)();
+extern void ABISELECT(_ZThn16_N9GG32221233barEv,_ZThn8_N9GG32221233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32221233fooEv,_ZTv0_n12_N9GG32221233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32221233fooEv,_ZThn16_N9GG32221233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32221233barEv,_ZTv0_n16_N9GG32221233barEv)();
+extern void ABISELECT(_ZThn32_N9GG32221233barEv,_ZThn16_N9GG32221233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32221233barEv,_ZTv0_n12_N9GG32221233barEv)();
+extern void ABISELECT(_ZThn48_N9GG32221233barEv,_ZThn24_N9GG32221233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32221233barEv,_ZTv0_n20_N9GG32221233barEv)();
+extern void ABISELECT(_ZThn64_N9GG32221233barEv,_ZThn32_N9GG32221233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32221233barEv,_ZTv0_n12_N9GG32221233barEv)();
+extern void ABISELECT(_ZThn80_N9GG32221233barEv,_ZThn40_N9GG32221233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32221233fooEv,_ZTv0_n12_N9GG32221233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG32221233fooEv,_ZThn48_N9GG32221233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3222123[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3222123[0]),
+ (VTBL_ENTRY)&_ZN9GG32221233fooEv,
+ (VTBL_ENTRY)&_ZN9GG32221233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3222123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32221233barEv,_ZTv0_n20_N9GG32221233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3222123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32221233fooEv,_ZTv0_n12_N9GG32221233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32221233barEv,_ZTv0_n16_N9GG32221233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3222123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32221233barEv,_ZTv0_n12_N9GG32221233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3222123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32221233barEv,_ZTv0_n20_N9GG32221233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3222123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32221233barEv,_ZTv0_n12_N9GG32221233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3222123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32221233fooEv,_ZTv0_n12_N9GG32221233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3222123[];
+extern void _ZN5EE3223barEv();
+static VTBL_ENTRY _tg__ZTV5EE322__9GG3222123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN5EE3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv)();
+extern void ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE322__9GG3222123[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv)();
+extern void ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE322__9GG3222123[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv),
+};
+extern void _ZN5FF2123barEv();
+static VTBL_ENTRY _tg__ZTV5FF212__9GG3222123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN5FF2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv)();
+extern void ABISELECT(_ZThn16_N5FF2123barEv,_ZThn8_N5FF2123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF212__9GG3222123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF212__9GG3222123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG3222123[] = {
+ {&(_ZTV9GG3222123[8]), 8,40},
+ {&(_ZTV9GG3222123[15]), 15,40},
+ {&(_ZTV9GG3222123[20]), 20,40},
+ {&(_ZTV9GG3222123[25]), 25,40},
+ {&(_ZTV9GG3222123[31]), 31,40},
+ {&(_ZTV9GG3222123[35]), 35,40},
+ {&(_ZTV9GG3222123[39]), 39,40},
+ {&(_tg__ZTV5EE322__9GG3222123[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE322__9GG3222123[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE322__9GG3222123[3]), 3,4},
+ {&(_tg__ZTV5FF212__9GG3222123[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF212__9GG3222123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF212__9GG3222123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3222123[];
+extern VTBL_ENTRY _ZTV9GG3222123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3222123[];
+static VTBL_ENTRY alt_thunk_names881[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2123barEv,_ZThn8_N5FF2123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32221233barEv,_ZTv0_n12_N9GG32221233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32221233barEv,_ZThn40_N9GG32221233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32221233barEv,_ZThn24_N9GG32221233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32221233barEv,_ZTv0_n16_N9GG32221233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32221233barEv,_ZThn16_N9GG32221233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32221233fooEv,_ZTv0_n12_N9GG32221233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32221233fooEv,_ZThn48_N9GG32221233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32221233fooEv,_ZThn16_N9GG32221233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32221233barEv,_ZTv0_n20_N9GG32221233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32221233barEv,_ZThn32_N9GG32221233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32221233barEv,_ZThn8_N9GG32221233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3222123 = { "GG3222123", // class name
+ bases_GG3222123, 6,
+ &(vtc_GG3222123[0]), // expected_vtbl_contents
+ &(vtt_GG3222123[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3222123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3222123),40, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3222123),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names881,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3222133 : virtual EE322 , virtual FF213 {
+ int pg;
+ virtual void foo(); // _ZN9GG32221333fooEv
+ virtual void bar(); // _ZN9GG32221333barEv
+ ~GG3222133(); // tgen
+ GG3222133(); // tgen
+};
+//SIG(1 GG3222133) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3222133 ::foo(){vfunc_called(this, "_ZN9GG32221333fooEv");}
+void GG3222133 ::bar(){vfunc_called(this, "_ZN9GG32221333barEv");}
+GG3222133 ::~GG3222133(){ note_dtor("GG3222133", this);} // tgen
+GG3222133 ::GG3222133(){ note_ctor("GG3222133", this);} // tgen
+
+static void Test_GG3222133()
+{
+ extern Class_Descriptor cd_GG3222133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3222133, buf);
+ GG3222133 *dp, &lv = *(dp=new (buf) GG3222133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3222133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3222133)");
+ check_base_class_offset(lv, (AA3*)(EE322*), ABISELECT(32,16), "GG3222133");
+ check_base_class_offset(lv, (BB2*)(EE322*), ABISELECT(48,24), "GG3222133");
+ check_base_class_offset(lv, (EE322*), ABISELECT(16,8), "GG3222133");
+ check_base_class_offset(lv, (AA2*)(FF213*), ABISELECT(80,40), "GG3222133");
+ check_base_class_offset(lv, (BB1*)(FF213*), ABISELECT(96,48), "GG3222133");
+ check_base_class_offset(lv, (FF213*), ABISELECT(64,32), "GG3222133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3222133.pg");
+ test_class_info(&lv, &cd_GG3222133);
+ dp->~GG3222133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3222133(Test_GG3222133, "GG3222133", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3222133C1Ev();
+extern void _ZN9GG3222133D1Ev();
+Name_Map name_map_GG3222133[] = {
+ NSPAIR(_ZN9GG3222133C1Ev),
+ NSPAIR(_ZN9GG3222133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE322;
+extern VTBL_ENTRY _ZTI5EE322[];
+extern VTBL_ENTRY _ZTV5EE322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE322[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF213;
+extern VTBL_ENTRY _ZTI5FF213[];
+extern VTBL_ENTRY _ZTV5FF213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF213[];
+static Base_Class bases_GG3222133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE322, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF213, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3222133[];
+extern void _ZN9GG32221333fooEv();
+extern void _ZN9GG32221333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32221333barEv,_ZTv0_n20_N9GG32221333barEv)();
+extern void ABISELECT(_ZThn16_N9GG32221333barEv,_ZThn8_N9GG32221333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32221333fooEv,_ZTv0_n12_N9GG32221333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32221333fooEv,_ZThn16_N9GG32221333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32221333barEv,_ZTv0_n16_N9GG32221333barEv)();
+extern void ABISELECT(_ZThn32_N9GG32221333barEv,_ZThn16_N9GG32221333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32221333barEv,_ZTv0_n12_N9GG32221333barEv)();
+extern void ABISELECT(_ZThn48_N9GG32221333barEv,_ZThn24_N9GG32221333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32221333fooEv,_ZTv0_n20_N9GG32221333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32221333fooEv,_ZThn32_N9GG32221333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32221333barEv,_ZTv0_n24_N9GG32221333barEv)();
+extern void ABISELECT(_ZThn64_N9GG32221333barEv,_ZThn32_N9GG32221333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32221333barEv,_ZTv0_n12_N9GG32221333barEv)();
+extern void ABISELECT(_ZThn80_N9GG32221333barEv,_ZThn40_N9GG32221333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32221333fooEv,_ZTv0_n12_N9GG32221333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG32221333fooEv,_ZThn48_N9GG32221333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3222133[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3222133[0]),
+ (VTBL_ENTRY)&_ZN9GG32221333fooEv,
+ (VTBL_ENTRY)&_ZN9GG32221333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3222133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32221333barEv,_ZTv0_n20_N9GG32221333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3222133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32221333fooEv,_ZTv0_n12_N9GG32221333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32221333barEv,_ZTv0_n16_N9GG32221333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3222133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32221333barEv,_ZTv0_n12_N9GG32221333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3222133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32221333fooEv,_ZTv0_n20_N9GG32221333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32221333barEv,_ZTv0_n24_N9GG32221333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3222133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32221333barEv,_ZTv0_n12_N9GG32221333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3222133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32221333fooEv,_ZTv0_n12_N9GG32221333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3222133[];
+extern void _ZN5EE3223barEv();
+static VTBL_ENTRY _tg__ZTV5EE322__9GG3222133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN5EE3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv)();
+extern void ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE322__9GG3222133[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv)();
+extern void ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE322__9GG3222133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv),
+};
+extern void _ZN5FF2133fooEv();
+extern void _ZN5FF2133barEv();
+static VTBL_ENTRY _tg__ZTV5FF213__9GG3222133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&_ZN5FF2133fooEv,
+ (VTBL_ENTRY)&_ZN5FF2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv)();
+extern void ABISELECT(_ZThn16_N5FF2133barEv,_ZThn8_N5FF2133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF213__9GG3222133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2133fooEv,_ZThn16_N5FF2133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF213__9GG3222133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv),
+};
+static VTT_ENTRY vtt_GG3222133[] = {
+ {&(_ZTV9GG3222133[8]), 8,42},
+ {&(_ZTV9GG3222133[15]), 15,42},
+ {&(_ZTV9GG3222133[20]), 20,42},
+ {&(_ZTV9GG3222133[25]), 25,42},
+ {&(_ZTV9GG3222133[32]), 32,42},
+ {&(_ZTV9GG3222133[37]), 37,42},
+ {&(_ZTV9GG3222133[41]), 41,42},
+ {&(_tg__ZTV5EE322__9GG3222133[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE322__9GG3222133[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE322__9GG3222133[3]), 3,4},
+ {&(_tg__ZTV5FF213__9GG3222133[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF213__9GG3222133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF213__9GG3222133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3222133[];
+extern VTBL_ENTRY _ZTV9GG3222133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3222133[];
+static VTBL_ENTRY alt_thunk_names882[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2133fooEv,_ZThn16_N5FF2133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2133barEv,_ZThn8_N5FF2133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG32221333barEv,_ZTv0_n24_N9GG32221333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32221333barEv,_ZThn32_N9GG32221333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32221333fooEv,_ZTv0_n20_N9GG32221333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32221333fooEv,_ZThn32_N9GG32221333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32221333barEv,_ZTv0_n12_N9GG32221333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32221333barEv,_ZThn40_N9GG32221333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32221333barEv,_ZThn24_N9GG32221333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32221333barEv,_ZTv0_n16_N9GG32221333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32221333barEv,_ZThn16_N9GG32221333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32221333fooEv,_ZTv0_n12_N9GG32221333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32221333fooEv,_ZThn48_N9GG32221333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32221333fooEv,_ZThn16_N9GG32221333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32221333barEv,_ZTv0_n20_N9GG32221333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32221333barEv,_ZThn8_N9GG32221333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3222133 = { "GG3222133", // class name
+ bases_GG3222133, 6,
+ &(vtc_GG3222133[0]), // expected_vtbl_contents
+ &(vtt_GG3222133[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3222133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3222133),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3222133),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names882,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3222213 : virtual EE322 , virtual FF221 {
+ int pg;
+ virtual void foo(); // _ZN9GG32222133fooEv
+ virtual void bar(); // _ZN9GG32222133barEv
+ ~GG3222213(); // tgen
+ GG3222213(); // tgen
+};
+//SIG(1 GG3222213) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG3222213 ::foo(){vfunc_called(this, "_ZN9GG32222133fooEv");}
+void GG3222213 ::bar(){vfunc_called(this, "_ZN9GG32222133barEv");}
+GG3222213 ::~GG3222213(){ note_dtor("GG3222213", this);} // tgen
+GG3222213 ::GG3222213(){ note_ctor("GG3222213", this);} // tgen
+
+static void Test_GG3222213()
+{
+ extern Class_Descriptor cd_GG3222213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3222213, buf);
+ GG3222213 *dp, &lv = *(dp=new (buf) GG3222213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3222213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3222213)");
+ check_base_class_offset(lv, (AA3*)(EE322*), ABISELECT(32,16), "GG3222213");
+ check_base_class_offset(lv, (BB2*)(EE322*), ABISELECT(48,24), "GG3222213");
+ check_base_class_offset(lv, (BB2*)(FF221*), ABISELECT(48,24), "GG3222213");
+ check_base_class_offset(lv, (EE322*), ABISELECT(16,8), "GG3222213");
+ check_base_class_offset(lv, (AA2*)(FF221*), ABISELECT(80,40), "GG3222213");
+ check_base_class_offset(lv, (FF221*), ABISELECT(64,32), "GG3222213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3222213.pg");
+ test_class_info(&lv, &cd_GG3222213);
+ dp->~GG3222213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3222213(Test_GG3222213, "GG3222213", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3222213C1Ev();
+extern void _ZN9GG3222213D1Ev();
+Name_Map name_map_GG3222213[] = {
+ NSPAIR(_ZN9GG3222213C1Ev),
+ NSPAIR(_ZN9GG3222213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE322;
+extern VTBL_ENTRY _ZTI5EE322[];
+extern VTBL_ENTRY _ZTV5EE322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE322[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF221;
+extern VTBL_ENTRY _ZTI5FF221[];
+extern VTBL_ENTRY _ZTV5FF221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF221[];
+static Base_Class bases_GG3222213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE322, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF221, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3222213[];
+extern void _ZN9GG32222133fooEv();
+extern void _ZN9GG32222133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32222133barEv,_ZTv0_n20_N9GG32222133barEv)();
+extern void ABISELECT(_ZThn16_N9GG32222133barEv,_ZThn8_N9GG32222133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32222133fooEv,_ZTv0_n12_N9GG32222133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32222133fooEv,_ZThn16_N9GG32222133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32222133barEv,_ZTv0_n16_N9GG32222133barEv)();
+extern void ABISELECT(_ZThn32_N9GG32222133barEv,_ZThn16_N9GG32222133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32222133barEv,_ZTv0_n12_N9GG32222133barEv)();
+extern void ABISELECT(_ZThn48_N9GG32222133barEv,_ZThn24_N9GG32222133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32222133fooEv,_ZTv0_n20_N9GG32222133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32222133fooEv,_ZThn32_N9GG32222133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32222133barEv,_ZTv0_n12_N9GG32222133barEv)();
+extern void ABISELECT(_ZThn80_N9GG32222133barEv,_ZThn40_N9GG32222133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3222213[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3222213[0]),
+ (VTBL_ENTRY)&_ZN9GG32222133fooEv,
+ (VTBL_ENTRY)&_ZN9GG32222133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3222213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32222133barEv,_ZTv0_n20_N9GG32222133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3222213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32222133fooEv,_ZTv0_n12_N9GG32222133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32222133barEv,_ZTv0_n16_N9GG32222133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3222213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32222133barEv,_ZTv0_n12_N9GG32222133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3222213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32222133fooEv,_ZTv0_n20_N9GG32222133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3222213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32222133barEv,_ZTv0_n12_N9GG32222133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3222213[];
+extern void _ZN5EE3223barEv();
+static VTBL_ENTRY _tg__ZTV5EE322__9GG3222213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN5EE3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv)();
+extern void ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE322__9GG3222213[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv)();
+extern void ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE322__9GG3222213[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv),
+};
+extern void _ZN5FF2213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF221__9GG3222213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN5FF2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF221__9GG3222213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF221__9GG3222213[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG3222213[] = {
+ {&(_ZTV9GG3222213[7]), 7,35},
+ {&(_ZTV9GG3222213[14]), 14,35},
+ {&(_ZTV9GG3222213[19]), 19,35},
+ {&(_ZTV9GG3222213[24]), 24,35},
+ {&(_ZTV9GG3222213[30]), 30,35},
+ {&(_ZTV9GG3222213[34]), 34,35},
+ {&(_tg__ZTV5EE322__9GG3222213[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE322__9GG3222213[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE322__9GG3222213[3]), 3,4},
+ {&(_tg__ZTV5FF221__9GG3222213[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF221__9GG3222213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF221__9GG3222213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3222213[];
+extern VTBL_ENTRY _ZTV9GG3222213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3222213[];
+static VTBL_ENTRY alt_thunk_names883[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32222133fooEv,_ZTv0_n20_N9GG32222133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32222133fooEv,_ZThn32_N9GG32222133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32222133barEv,_ZTv0_n12_N9GG32222133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32222133barEv,_ZThn40_N9GG32222133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32222133barEv,_ZThn24_N9GG32222133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32222133barEv,_ZTv0_n16_N9GG32222133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32222133barEv,_ZThn16_N9GG32222133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32222133fooEv,_ZTv0_n12_N9GG32222133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32222133fooEv,_ZThn16_N9GG32222133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32222133barEv,_ZTv0_n20_N9GG32222133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32222133barEv,_ZThn8_N9GG32222133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3222213 = { "GG3222213", // class name
+ bases_GG3222213, 5,
+ &(vtc_GG3222213[0]), // expected_vtbl_contents
+ &(vtt_GG3222213[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3222213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3222213),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3222213),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names883,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3222222 : virtual EE322 , virtual FF222 {
+ int pg;
+ virtual void bar(); // _ZN9GG32222223barEv
+ ~GG3222222(); // tgen
+ GG3222222(); // tgen
+};
+//SIG(1 GG3222222) C1{ VBC2{ VBC3{ v2 v1 Fi} VBC4{ v1 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v1 Fi} v1 Fi}
+
+
+void GG3222222 ::bar(){vfunc_called(this, "_ZN9GG32222223barEv");}
+GG3222222 ::~GG3222222(){ note_dtor("GG3222222", this);} // tgen
+GG3222222 ::GG3222222(){ note_ctor("GG3222222", this);} // tgen
+
+static void Test_GG3222222()
+{
+ extern Class_Descriptor cd_GG3222222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3222222, buf);
+ GG3222222 *dp, &lv = *(dp=new (buf) GG3222222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3222222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3222222)");
+ check_base_class_offset(lv, (AA3*)(EE322*), ABISELECT(32,16), "GG3222222");
+ check_base_class_offset(lv, (BB2*)(EE322*), ABISELECT(48,24), "GG3222222");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(48,24), "GG3222222");
+ check_base_class_offset(lv, (EE322*), ABISELECT(16,8), "GG3222222");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(80,40), "GG3222222");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG3222222");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3222222.pg");
+ test_class_info(&lv, &cd_GG3222222);
+ dp->~GG3222222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3222222(Test_GG3222222, "GG3222222", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3222222C1Ev();
+extern void _ZN9GG3222222D1Ev();
+Name_Map name_map_GG3222222[] = {
+ NSPAIR(_ZN9GG3222222C1Ev),
+ NSPAIR(_ZN9GG3222222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE322;
+extern VTBL_ENTRY _ZTI5EE322[];
+extern VTBL_ENTRY _ZTV5EE322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE322[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG3222222[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE322, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3222222[];
+extern void _ZN9GG32222223barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32222223barEv,_ZTv0_n20_N9GG32222223barEv)();
+extern void ABISELECT(_ZThn16_N9GG32222223barEv,_ZThn8_N9GG32222223barEv)() __attribute__((weak));
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N9GG32222223barEv,_ZTv0_n16_N9GG32222223barEv)();
+extern void ABISELECT(_ZThn32_N9GG32222223barEv,_ZThn16_N9GG32222223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32222223barEv,_ZTv0_n12_N9GG32222223barEv)();
+extern void ABISELECT(_ZThn48_N9GG32222223barEv,_ZThn24_N9GG32222223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32222223barEv,_ZTv0_n20_N9GG32222223barEv)();
+extern void ABISELECT(_ZThn64_N9GG32222223barEv,_ZThn32_N9GG32222223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32222223barEv,_ZTv0_n12_N9GG32222223barEv)();
+extern void ABISELECT(_ZThn80_N9GG32222223barEv,_ZThn40_N9GG32222223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3222222[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3222222[0]),
+ (VTBL_ENTRY)&_ZN9GG32222223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3222222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32222223barEv,_ZTv0_n20_N9GG32222223barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3222222[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32222223barEv,_ZTv0_n16_N9GG32222223barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3222222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32222223barEv,_ZTv0_n12_N9GG32222223barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3222222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32222223barEv,_ZTv0_n20_N9GG32222223barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3222222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32222223barEv,_ZTv0_n12_N9GG32222223barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3222222[];
+extern void _ZN5EE3223barEv();
+static VTBL_ENTRY _tg__ZTV5EE322__9GG3222222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN5EE3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv)();
+extern void ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE322__9GG3222222[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv)();
+extern void ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE322__9GG3222222[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv),
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG3222222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG3222222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG3222222[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG3222222[] = {
+ {&(_ZTV9GG3222222[7]), 7,34},
+ {&(_ZTV9GG3222222[13]), 13,34},
+ {&(_ZTV9GG3222222[18]), 18,34},
+ {&(_ZTV9GG3222222[23]), 23,34},
+ {&(_ZTV9GG3222222[29]), 29,34},
+ {&(_ZTV9GG3222222[33]), 33,34},
+ {&(_tg__ZTV5EE322__9GG3222222[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE322__9GG3222222[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE322__9GG3222222[3]), 3,4},
+ {&(_tg__ZTV5FF222__9GG3222222[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG3222222[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG3222222[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3222222[];
+extern VTBL_ENTRY _ZTV9GG3222222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3222222[];
+static VTBL_ENTRY alt_thunk_names884[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32222223barEv,_ZTv0_n12_N9GG32222223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32222223barEv,_ZThn40_N9GG32222223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32222223barEv,_ZThn24_N9GG32222223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32222223barEv,_ZTv0_n16_N9GG32222223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32222223barEv,_ZThn16_N9GG32222223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32222223barEv,_ZTv0_n20_N9GG32222223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32222223barEv,_ZThn32_N9GG32222223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32222223barEv,_ZThn8_N9GG32222223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3222222 = { "GG3222222", // class name
+ bases_GG3222222, 5,
+ &(vtc_GG3222222[0]), // expected_vtbl_contents
+ &(vtt_GG3222222[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3222222),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3222222),34, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3222222),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names884,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3222223 : virtual EE322 , virtual FF222 {
+ int pg;
+ virtual void foo(); // _ZN9GG32222233fooEv
+ virtual void bar(); // _ZN9GG32222233barEv
+ ~GG3222223(); // tgen
+ GG3222223(); // tgen
+};
+//SIG(1 GG3222223) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG3222223 ::foo(){vfunc_called(this, "_ZN9GG32222233fooEv");}
+void GG3222223 ::bar(){vfunc_called(this, "_ZN9GG32222233barEv");}
+GG3222223 ::~GG3222223(){ note_dtor("GG3222223", this);} // tgen
+GG3222223 ::GG3222223(){ note_ctor("GG3222223", this);} // tgen
+
+static void Test_GG3222223()
+{
+ extern Class_Descriptor cd_GG3222223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3222223, buf);
+ GG3222223 *dp, &lv = *(dp=new (buf) GG3222223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3222223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3222223)");
+ check_base_class_offset(lv, (AA3*)(EE322*), ABISELECT(32,16), "GG3222223");
+ check_base_class_offset(lv, (BB2*)(EE322*), ABISELECT(48,24), "GG3222223");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(48,24), "GG3222223");
+ check_base_class_offset(lv, (EE322*), ABISELECT(16,8), "GG3222223");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(80,40), "GG3222223");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG3222223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3222223.pg");
+ test_class_info(&lv, &cd_GG3222223);
+ dp->~GG3222223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3222223(Test_GG3222223, "GG3222223", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3222223C1Ev();
+extern void _ZN9GG3222223D1Ev();
+Name_Map name_map_GG3222223[] = {
+ NSPAIR(_ZN9GG3222223C1Ev),
+ NSPAIR(_ZN9GG3222223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE322;
+extern VTBL_ENTRY _ZTI5EE322[];
+extern VTBL_ENTRY _ZTV5EE322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE322[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG3222223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE322, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3222223[];
+extern void _ZN9GG32222233fooEv();
+extern void _ZN9GG32222233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32222233barEv,_ZTv0_n20_N9GG32222233barEv)();
+extern void ABISELECT(_ZThn16_N9GG32222233barEv,_ZThn8_N9GG32222233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32222233fooEv,_ZTv0_n12_N9GG32222233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32222233fooEv,_ZThn16_N9GG32222233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32222233barEv,_ZTv0_n16_N9GG32222233barEv)();
+extern void ABISELECT(_ZThn32_N9GG32222233barEv,_ZThn16_N9GG32222233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32222233barEv,_ZTv0_n12_N9GG32222233barEv)();
+extern void ABISELECT(_ZThn48_N9GG32222233barEv,_ZThn24_N9GG32222233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32222233barEv,_ZTv0_n20_N9GG32222233barEv)();
+extern void ABISELECT(_ZThn64_N9GG32222233barEv,_ZThn32_N9GG32222233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32222233barEv,_ZTv0_n12_N9GG32222233barEv)();
+extern void ABISELECT(_ZThn80_N9GG32222233barEv,_ZThn40_N9GG32222233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3222223[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3222223[0]),
+ (VTBL_ENTRY)&_ZN9GG32222233fooEv,
+ (VTBL_ENTRY)&_ZN9GG32222233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3222223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32222233barEv,_ZTv0_n20_N9GG32222233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3222223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32222233fooEv,_ZTv0_n12_N9GG32222233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32222233barEv,_ZTv0_n16_N9GG32222233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3222223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32222233barEv,_ZTv0_n12_N9GG32222233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3222223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32222233barEv,_ZTv0_n20_N9GG32222233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3222223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32222233barEv,_ZTv0_n12_N9GG32222233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3222223[];
+extern void _ZN5EE3223barEv();
+static VTBL_ENTRY _tg__ZTV5EE322__9GG3222223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN5EE3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv)();
+extern void ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE322__9GG3222223[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv)();
+extern void ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE322__9GG3222223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv),
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG3222223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG3222223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG3222223[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG3222223[] = {
+ {&(_ZTV9GG3222223[7]), 7,35},
+ {&(_ZTV9GG3222223[14]), 14,35},
+ {&(_ZTV9GG3222223[19]), 19,35},
+ {&(_ZTV9GG3222223[24]), 24,35},
+ {&(_ZTV9GG3222223[30]), 30,35},
+ {&(_ZTV9GG3222223[34]), 34,35},
+ {&(_tg__ZTV5EE322__9GG3222223[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE322__9GG3222223[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE322__9GG3222223[3]), 3,4},
+ {&(_tg__ZTV5FF222__9GG3222223[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG3222223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG3222223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3222223[];
+extern VTBL_ENTRY _ZTV9GG3222223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3222223[];
+static VTBL_ENTRY alt_thunk_names885[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32222233barEv,_ZTv0_n12_N9GG32222233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32222233barEv,_ZThn40_N9GG32222233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32222233barEv,_ZThn24_N9GG32222233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32222233barEv,_ZTv0_n16_N9GG32222233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32222233barEv,_ZThn16_N9GG32222233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32222233fooEv,_ZTv0_n12_N9GG32222233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32222233fooEv,_ZThn16_N9GG32222233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32222233barEv,_ZTv0_n20_N9GG32222233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32222233barEv,_ZThn32_N9GG32222233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32222233barEv,_ZThn8_N9GG32222233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3222223 = { "GG3222223", // class name
+ bases_GG3222223, 5,
+ &(vtc_GG3222223[0]), // expected_vtbl_contents
+ &(vtt_GG3222223[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3222223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3222223),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3222223),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names885,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3222233 : virtual EE322 , virtual FF223 {
+ int pg;
+ virtual void foo(); // _ZN9GG32222333fooEv
+ virtual void bar(); // _ZN9GG32222333barEv
+ ~GG3222233(); // tgen
+ GG3222233(); // tgen
+};
+//SIG(1 GG3222233) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3222233 ::foo(){vfunc_called(this, "_ZN9GG32222333fooEv");}
+void GG3222233 ::bar(){vfunc_called(this, "_ZN9GG32222333barEv");}
+GG3222233 ::~GG3222233(){ note_dtor("GG3222233", this);} // tgen
+GG3222233 ::GG3222233(){ note_ctor("GG3222233", this);} // tgen
+
+static void Test_GG3222233()
+{
+ extern Class_Descriptor cd_GG3222233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3222233, buf);
+ GG3222233 *dp, &lv = *(dp=new (buf) GG3222233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3222233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3222233)");
+ check_base_class_offset(lv, (AA3*)(EE322*), ABISELECT(32,16), "GG3222233");
+ check_base_class_offset(lv, (BB2*)(EE322*), ABISELECT(48,24), "GG3222233");
+ check_base_class_offset(lv, (BB2*)(FF223*), ABISELECT(48,24), "GG3222233");
+ check_base_class_offset(lv, (EE322*), ABISELECT(16,8), "GG3222233");
+ check_base_class_offset(lv, (AA2*)(FF223*), ABISELECT(80,40), "GG3222233");
+ check_base_class_offset(lv, (FF223*), ABISELECT(64,32), "GG3222233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3222233.pg");
+ test_class_info(&lv, &cd_GG3222233);
+ dp->~GG3222233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3222233(Test_GG3222233, "GG3222233", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3222233C1Ev();
+extern void _ZN9GG3222233D1Ev();
+Name_Map name_map_GG3222233[] = {
+ NSPAIR(_ZN9GG3222233C1Ev),
+ NSPAIR(_ZN9GG3222233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE322;
+extern VTBL_ENTRY _ZTI5EE322[];
+extern VTBL_ENTRY _ZTV5EE322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE322[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF223;
+extern VTBL_ENTRY _ZTI5FF223[];
+extern VTBL_ENTRY _ZTV5FF223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF223[];
+static Base_Class bases_GG3222233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE322, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF223, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3222233[];
+extern void _ZN9GG32222333fooEv();
+extern void _ZN9GG32222333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32222333barEv,_ZTv0_n20_N9GG32222333barEv)();
+extern void ABISELECT(_ZThn16_N9GG32222333barEv,_ZThn8_N9GG32222333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32222333fooEv,_ZTv0_n12_N9GG32222333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32222333fooEv,_ZThn16_N9GG32222333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32222333barEv,_ZTv0_n16_N9GG32222333barEv)();
+extern void ABISELECT(_ZThn32_N9GG32222333barEv,_ZThn16_N9GG32222333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32222333barEv,_ZTv0_n12_N9GG32222333barEv)();
+extern void ABISELECT(_ZThn48_N9GG32222333barEv,_ZThn24_N9GG32222333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32222333fooEv,_ZTv0_n20_N9GG32222333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32222333fooEv,_ZThn32_N9GG32222333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32222333barEv,_ZTv0_n24_N9GG32222333barEv)();
+extern void ABISELECT(_ZThn64_N9GG32222333barEv,_ZThn32_N9GG32222333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32222333barEv,_ZTv0_n12_N9GG32222333barEv)();
+extern void ABISELECT(_ZThn80_N9GG32222333barEv,_ZThn40_N9GG32222333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3222233[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3222233[0]),
+ (VTBL_ENTRY)&_ZN9GG32222333fooEv,
+ (VTBL_ENTRY)&_ZN9GG32222333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3222233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32222333barEv,_ZTv0_n20_N9GG32222333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3222233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32222333fooEv,_ZTv0_n12_N9GG32222333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32222333barEv,_ZTv0_n16_N9GG32222333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3222233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32222333barEv,_ZTv0_n12_N9GG32222333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3222233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32222333fooEv,_ZTv0_n20_N9GG32222333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32222333barEv,_ZTv0_n24_N9GG32222333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3222233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32222333barEv,_ZTv0_n12_N9GG32222333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3222233[];
+extern void _ZN5EE3223barEv();
+static VTBL_ENTRY _tg__ZTV5EE322__9GG3222233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN5EE3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv)();
+extern void ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE322__9GG3222233[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv)();
+extern void ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE322__9GG3222233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv),
+};
+extern void _ZN5FF2233fooEv();
+extern void _ZN5FF2233barEv();
+static VTBL_ENTRY _tg__ZTV5FF223__9GG3222233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&_ZN5FF2233fooEv,
+ (VTBL_ENTRY)&_ZN5FF2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+extern void ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF223__9GG3222233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF223__9GG3222233[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+static VTT_ENTRY vtt_GG3222233[] = {
+ {&(_ZTV9GG3222233[7]), 7,37},
+ {&(_ZTV9GG3222233[14]), 14,37},
+ {&(_ZTV9GG3222233[19]), 19,37},
+ {&(_ZTV9GG3222233[24]), 24,37},
+ {&(_ZTV9GG3222233[31]), 31,37},
+ {&(_ZTV9GG3222233[36]), 36,37},
+ {&(_tg__ZTV5EE322__9GG3222233[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE322__9GG3222233[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE322__9GG3222233[3]), 3,4},
+ {&(_tg__ZTV5FF223__9GG3222233[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF223__9GG3222233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF223__9GG3222233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3222233[];
+extern VTBL_ENTRY _ZTV9GG3222233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3222233[];
+static VTBL_ENTRY alt_thunk_names886[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG32222333barEv,_ZTv0_n24_N9GG32222333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32222333barEv,_ZThn32_N9GG32222333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32222333fooEv,_ZTv0_n20_N9GG32222333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32222333fooEv,_ZThn32_N9GG32222333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32222333barEv,_ZTv0_n12_N9GG32222333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32222333barEv,_ZThn40_N9GG32222333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32222333barEv,_ZThn24_N9GG32222333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32222333barEv,_ZTv0_n16_N9GG32222333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32222333barEv,_ZThn16_N9GG32222333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32222333fooEv,_ZTv0_n12_N9GG32222333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32222333fooEv,_ZThn16_N9GG32222333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32222333barEv,_ZTv0_n20_N9GG32222333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32222333barEv,_ZThn8_N9GG32222333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3222233 = { "GG3222233", // class name
+ bases_GG3222233, 5,
+ &(vtc_GG3222233[0]), // expected_vtbl_contents
+ &(vtt_GG3222233[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3222233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3222233),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3222233),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names886,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3222313 : virtual EE322 , virtual FF231 {
+ int pg;
+ virtual void foo(); // _ZN9GG32223133fooEv
+ virtual void bar(); // _ZN9GG32223133barEv
+ ~GG3222313(); // tgen
+ GG3222313(); // tgen
+};
+//SIG(1 GG3222313) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3222313 ::foo(){vfunc_called(this, "_ZN9GG32223133fooEv");}
+void GG3222313 ::bar(){vfunc_called(this, "_ZN9GG32223133barEv");}
+GG3222313 ::~GG3222313(){ note_dtor("GG3222313", this);} // tgen
+GG3222313 ::GG3222313(){ note_ctor("GG3222313", this);} // tgen
+
+static void Test_GG3222313()
+{
+ extern Class_Descriptor cd_GG3222313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3222313, buf);
+ GG3222313 *dp, &lv = *(dp=new (buf) GG3222313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3222313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3222313)");
+ check_base_class_offset(lv, (AA3*)(EE322*), ABISELECT(32,16), "GG3222313");
+ check_base_class_offset(lv, (BB2*)(EE322*), ABISELECT(48,24), "GG3222313");
+ check_base_class_offset(lv, (EE322*), ABISELECT(16,8), "GG3222313");
+ check_base_class_offset(lv, (AA2*)(FF231*), ABISELECT(80,40), "GG3222313");
+ check_base_class_offset(lv, (BB3*)(FF231*), ABISELECT(96,48), "GG3222313");
+ check_base_class_offset(lv, (FF231*), ABISELECT(64,32), "GG3222313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3222313.pg");
+ test_class_info(&lv, &cd_GG3222313);
+ dp->~GG3222313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3222313(Test_GG3222313, "GG3222313", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3222313C1Ev();
+extern void _ZN9GG3222313D1Ev();
+Name_Map name_map_GG3222313[] = {
+ NSPAIR(_ZN9GG3222313C1Ev),
+ NSPAIR(_ZN9GG3222313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE322;
+extern VTBL_ENTRY _ZTI5EE322[];
+extern VTBL_ENTRY _ZTV5EE322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE322[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF231;
+extern VTBL_ENTRY _ZTI5FF231[];
+extern VTBL_ENTRY _ZTV5FF231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF231[];
+static Base_Class bases_GG3222313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE322, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF231, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3222313[];
+extern void _ZN9GG32223133fooEv();
+extern void _ZN9GG32223133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32223133barEv,_ZTv0_n20_N9GG32223133barEv)();
+extern void ABISELECT(_ZThn16_N9GG32223133barEv,_ZThn8_N9GG32223133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32223133fooEv,_ZTv0_n12_N9GG32223133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32223133fooEv,_ZThn16_N9GG32223133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32223133barEv,_ZTv0_n16_N9GG32223133barEv)();
+extern void ABISELECT(_ZThn32_N9GG32223133barEv,_ZThn16_N9GG32223133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32223133barEv,_ZTv0_n12_N9GG32223133barEv)();
+extern void ABISELECT(_ZThn48_N9GG32223133barEv,_ZThn24_N9GG32223133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32223133fooEv,_ZTv0_n20_N9GG32223133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32223133fooEv,_ZThn32_N9GG32223133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32223133barEv,_ZTv0_n12_N9GG32223133barEv)();
+extern void ABISELECT(_ZThn80_N9GG32223133barEv,_ZThn40_N9GG32223133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32223133fooEv,_ZTv0_n12_N9GG32223133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG32223133fooEv,_ZThn48_N9GG32223133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32223133barEv,_ZTv0_n16_N9GG32223133barEv)();
+extern void ABISELECT(_ZThn96_N9GG32223133barEv,_ZThn48_N9GG32223133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3222313[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3222313[0]),
+ (VTBL_ENTRY)&_ZN9GG32223133fooEv,
+ (VTBL_ENTRY)&_ZN9GG32223133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3222313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32223133barEv,_ZTv0_n20_N9GG32223133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3222313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32223133fooEv,_ZTv0_n12_N9GG32223133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32223133barEv,_ZTv0_n16_N9GG32223133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3222313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32223133barEv,_ZTv0_n12_N9GG32223133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3222313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32223133fooEv,_ZTv0_n20_N9GG32223133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3222313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32223133barEv,_ZTv0_n12_N9GG32223133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3222313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32223133fooEv,_ZTv0_n12_N9GG32223133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32223133barEv,_ZTv0_n16_N9GG32223133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3222313[];
+extern void _ZN5EE3223barEv();
+static VTBL_ENTRY _tg__ZTV5EE322__9GG3222313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN5EE3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv)();
+extern void ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE322__9GG3222313[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv)();
+extern void ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE322__9GG3222313[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv),
+};
+extern void _ZN5FF2313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF231__9GG3222313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN5FF2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF231__9GG3222313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2313fooEv,_ZThn16_N5FF2313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF231__9GG3222313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG3222313[] = {
+ {&(_ZTV9GG3222313[8]), 8,42},
+ {&(_ZTV9GG3222313[15]), 15,42},
+ {&(_ZTV9GG3222313[20]), 20,42},
+ {&(_ZTV9GG3222313[25]), 25,42},
+ {&(_ZTV9GG3222313[31]), 31,42},
+ {&(_ZTV9GG3222313[35]), 35,42},
+ {&(_ZTV9GG3222313[40]), 40,42},
+ {&(_tg__ZTV5EE322__9GG3222313[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE322__9GG3222313[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE322__9GG3222313[3]), 3,4},
+ {&(_tg__ZTV5FF231__9GG3222313[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF231__9GG3222313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF231__9GG3222313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3222313[];
+extern VTBL_ENTRY _ZTV9GG3222313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3222313[];
+static VTBL_ENTRY alt_thunk_names887[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2313fooEv,_ZThn16_N5FF2313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32223133fooEv,_ZTv0_n20_N9GG32223133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32223133fooEv,_ZThn32_N9GG32223133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32223133barEv,_ZTv0_n12_N9GG32223133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32223133barEv,_ZThn40_N9GG32223133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32223133barEv,_ZThn24_N9GG32223133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32223133barEv,_ZTv0_n16_N9GG32223133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32223133barEv,_ZThn48_N9GG32223133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32223133barEv,_ZThn16_N9GG32223133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32223133fooEv,_ZTv0_n12_N9GG32223133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32223133fooEv,_ZThn48_N9GG32223133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32223133fooEv,_ZThn16_N9GG32223133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32223133barEv,_ZTv0_n20_N9GG32223133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32223133barEv,_ZThn8_N9GG32223133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3222313 = { "GG3222313", // class name
+ bases_GG3222313, 6,
+ &(vtc_GG3222313[0]), // expected_vtbl_contents
+ &(vtt_GG3222313[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3222313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3222313),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3222313),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names887,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3222323 : virtual EE322 , virtual FF232 {
+ int pg;
+ virtual void foo(); // _ZN9GG32223233fooEv
+ virtual void bar(); // _ZN9GG32223233barEv
+ ~GG3222323(); // tgen
+ GG3222323(); // tgen
+};
+//SIG(1 GG3222323) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3222323 ::foo(){vfunc_called(this, "_ZN9GG32223233fooEv");}
+void GG3222323 ::bar(){vfunc_called(this, "_ZN9GG32223233barEv");}
+GG3222323 ::~GG3222323(){ note_dtor("GG3222323", this);} // tgen
+GG3222323 ::GG3222323(){ note_ctor("GG3222323", this);} // tgen
+
+static void Test_GG3222323()
+{
+ extern Class_Descriptor cd_GG3222323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3222323, buf);
+ GG3222323 *dp, &lv = *(dp=new (buf) GG3222323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3222323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3222323)");
+ check_base_class_offset(lv, (AA3*)(EE322*), ABISELECT(32,16), "GG3222323");
+ check_base_class_offset(lv, (BB2*)(EE322*), ABISELECT(48,24), "GG3222323");
+ check_base_class_offset(lv, (EE322*), ABISELECT(16,8), "GG3222323");
+ check_base_class_offset(lv, (AA2*)(FF232*), ABISELECT(80,40), "GG3222323");
+ check_base_class_offset(lv, (BB3*)(FF232*), ABISELECT(96,48), "GG3222323");
+ check_base_class_offset(lv, (FF232*), ABISELECT(64,32), "GG3222323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3222323.pg");
+ test_class_info(&lv, &cd_GG3222323);
+ dp->~GG3222323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3222323(Test_GG3222323, "GG3222323", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3222323C1Ev();
+extern void _ZN9GG3222323D1Ev();
+Name_Map name_map_GG3222323[] = {
+ NSPAIR(_ZN9GG3222323C1Ev),
+ NSPAIR(_ZN9GG3222323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE322;
+extern VTBL_ENTRY _ZTI5EE322[];
+extern VTBL_ENTRY _ZTV5EE322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE322[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF232;
+extern VTBL_ENTRY _ZTI5FF232[];
+extern VTBL_ENTRY _ZTV5FF232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF232[];
+static Base_Class bases_GG3222323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE322, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF232, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3222323[];
+extern void _ZN9GG32223233fooEv();
+extern void _ZN9GG32223233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32223233barEv,_ZTv0_n20_N9GG32223233barEv)();
+extern void ABISELECT(_ZThn16_N9GG32223233barEv,_ZThn8_N9GG32223233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32223233fooEv,_ZTv0_n12_N9GG32223233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32223233fooEv,_ZThn16_N9GG32223233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32223233barEv,_ZTv0_n16_N9GG32223233barEv)();
+extern void ABISELECT(_ZThn32_N9GG32223233barEv,_ZThn16_N9GG32223233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32223233barEv,_ZTv0_n12_N9GG32223233barEv)();
+extern void ABISELECT(_ZThn48_N9GG32223233barEv,_ZThn24_N9GG32223233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32223233barEv,_ZTv0_n20_N9GG32223233barEv)();
+extern void ABISELECT(_ZThn64_N9GG32223233barEv,_ZThn32_N9GG32223233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32223233barEv,_ZTv0_n12_N9GG32223233barEv)();
+extern void ABISELECT(_ZThn80_N9GG32223233barEv,_ZThn40_N9GG32223233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32223233fooEv,_ZTv0_n12_N9GG32223233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG32223233fooEv,_ZThn48_N9GG32223233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32223233barEv,_ZTv0_n16_N9GG32223233barEv)();
+extern void ABISELECT(_ZThn96_N9GG32223233barEv,_ZThn48_N9GG32223233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3222323[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3222323[0]),
+ (VTBL_ENTRY)&_ZN9GG32223233fooEv,
+ (VTBL_ENTRY)&_ZN9GG32223233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3222323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32223233barEv,_ZTv0_n20_N9GG32223233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3222323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32223233fooEv,_ZTv0_n12_N9GG32223233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32223233barEv,_ZTv0_n16_N9GG32223233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3222323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32223233barEv,_ZTv0_n12_N9GG32223233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3222323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32223233barEv,_ZTv0_n20_N9GG32223233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3222323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32223233barEv,_ZTv0_n12_N9GG32223233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3222323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32223233fooEv,_ZTv0_n12_N9GG32223233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32223233barEv,_ZTv0_n16_N9GG32223233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3222323[];
+extern void _ZN5EE3223barEv();
+static VTBL_ENTRY _tg__ZTV5EE322__9GG3222323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN5EE3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv)();
+extern void ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE322__9GG3222323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv)();
+extern void ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE322__9GG3222323[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv),
+};
+extern void _ZN5FF2323barEv();
+static VTBL_ENTRY _tg__ZTV5FF232__9GG3222323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN5FF2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv)();
+extern void ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF232__9GG3222323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv)();
+extern void ABISELECT(_ZThn32_N5FF2323barEv,_ZThn16_N5FF2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF232__9GG3222323[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv),
+};
+static VTT_ENTRY vtt_GG3222323[] = {
+ {&(_ZTV9GG3222323[8]), 8,42},
+ {&(_ZTV9GG3222323[15]), 15,42},
+ {&(_ZTV9GG3222323[20]), 20,42},
+ {&(_ZTV9GG3222323[25]), 25,42},
+ {&(_ZTV9GG3222323[31]), 31,42},
+ {&(_ZTV9GG3222323[35]), 35,42},
+ {&(_ZTV9GG3222323[40]), 40,42},
+ {&(_tg__ZTV5EE322__9GG3222323[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE322__9GG3222323[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE322__9GG3222323[3]), 3,4},
+ {&(_tg__ZTV5FF232__9GG3222323[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF232__9GG3222323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF232__9GG3222323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3222323[];
+extern VTBL_ENTRY _ZTV9GG3222323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3222323[];
+static VTBL_ENTRY alt_thunk_names888[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2323barEv,_ZThn16_N5FF2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32223233barEv,_ZTv0_n12_N9GG32223233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32223233barEv,_ZThn40_N9GG32223233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32223233barEv,_ZThn24_N9GG32223233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32223233barEv,_ZTv0_n16_N9GG32223233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32223233barEv,_ZThn48_N9GG32223233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32223233barEv,_ZThn16_N9GG32223233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32223233fooEv,_ZTv0_n12_N9GG32223233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32223233fooEv,_ZThn48_N9GG32223233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32223233fooEv,_ZThn16_N9GG32223233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32223233barEv,_ZTv0_n20_N9GG32223233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32223233barEv,_ZThn32_N9GG32223233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32223233barEv,_ZThn8_N9GG32223233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3222323 = { "GG3222323", // class name
+ bases_GG3222323, 6,
+ &(vtc_GG3222323[0]), // expected_vtbl_contents
+ &(vtt_GG3222323[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3222323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3222323),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3222323),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names888,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3222333 : virtual EE322 , virtual FF233 {
+ int pg;
+ virtual void foo(); // _ZN9GG32223333fooEv
+ virtual void bar(); // _ZN9GG32223333barEv
+ ~GG3222333(); // tgen
+ GG3222333(); // tgen
+};
+//SIG(1 GG3222333) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3222333 ::foo(){vfunc_called(this, "_ZN9GG32223333fooEv");}
+void GG3222333 ::bar(){vfunc_called(this, "_ZN9GG32223333barEv");}
+GG3222333 ::~GG3222333(){ note_dtor("GG3222333", this);} // tgen
+GG3222333 ::GG3222333(){ note_ctor("GG3222333", this);} // tgen
+
+static void Test_GG3222333()
+{
+ extern Class_Descriptor cd_GG3222333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3222333, buf);
+ GG3222333 *dp, &lv = *(dp=new (buf) GG3222333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3222333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3222333)");
+ check_base_class_offset(lv, (AA3*)(EE322*), ABISELECT(32,16), "GG3222333");
+ check_base_class_offset(lv, (BB2*)(EE322*), ABISELECT(48,24), "GG3222333");
+ check_base_class_offset(lv, (EE322*), ABISELECT(16,8), "GG3222333");
+ check_base_class_offset(lv, (AA2*)(FF233*), ABISELECT(80,40), "GG3222333");
+ check_base_class_offset(lv, (BB3*)(FF233*), ABISELECT(96,48), "GG3222333");
+ check_base_class_offset(lv, (FF233*), ABISELECT(64,32), "GG3222333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3222333.pg");
+ test_class_info(&lv, &cd_GG3222333);
+ dp->~GG3222333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3222333(Test_GG3222333, "GG3222333", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3222333C1Ev();
+extern void _ZN9GG3222333D1Ev();
+Name_Map name_map_GG3222333[] = {
+ NSPAIR(_ZN9GG3222333C1Ev),
+ NSPAIR(_ZN9GG3222333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE322;
+extern VTBL_ENTRY _ZTI5EE322[];
+extern VTBL_ENTRY _ZTV5EE322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE322[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF233;
+extern VTBL_ENTRY _ZTI5FF233[];
+extern VTBL_ENTRY _ZTV5FF233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF233[];
+static Base_Class bases_GG3222333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE322, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF233, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3222333[];
+extern void _ZN9GG32223333fooEv();
+extern void _ZN9GG32223333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32223333barEv,_ZTv0_n20_N9GG32223333barEv)();
+extern void ABISELECT(_ZThn16_N9GG32223333barEv,_ZThn8_N9GG32223333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32223333fooEv,_ZTv0_n12_N9GG32223333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32223333fooEv,_ZThn16_N9GG32223333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32223333barEv,_ZTv0_n16_N9GG32223333barEv)();
+extern void ABISELECT(_ZThn32_N9GG32223333barEv,_ZThn16_N9GG32223333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32223333barEv,_ZTv0_n12_N9GG32223333barEv)();
+extern void ABISELECT(_ZThn48_N9GG32223333barEv,_ZThn24_N9GG32223333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32223333fooEv,_ZTv0_n20_N9GG32223333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32223333fooEv,_ZThn32_N9GG32223333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32223333barEv,_ZTv0_n24_N9GG32223333barEv)();
+extern void ABISELECT(_ZThn64_N9GG32223333barEv,_ZThn32_N9GG32223333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32223333barEv,_ZTv0_n12_N9GG32223333barEv)();
+extern void ABISELECT(_ZThn80_N9GG32223333barEv,_ZThn40_N9GG32223333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32223333fooEv,_ZTv0_n12_N9GG32223333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG32223333fooEv,_ZThn48_N9GG32223333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32223333barEv,_ZTv0_n16_N9GG32223333barEv)();
+extern void ABISELECT(_ZThn96_N9GG32223333barEv,_ZThn48_N9GG32223333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3222333[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3222333[0]),
+ (VTBL_ENTRY)&_ZN9GG32223333fooEv,
+ (VTBL_ENTRY)&_ZN9GG32223333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3222333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32223333barEv,_ZTv0_n20_N9GG32223333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3222333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32223333fooEv,_ZTv0_n12_N9GG32223333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32223333barEv,_ZTv0_n16_N9GG32223333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3222333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32223333barEv,_ZTv0_n12_N9GG32223333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3222333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32223333fooEv,_ZTv0_n20_N9GG32223333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32223333barEv,_ZTv0_n24_N9GG32223333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3222333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32223333barEv,_ZTv0_n12_N9GG32223333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3222333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32223333fooEv,_ZTv0_n12_N9GG32223333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32223333barEv,_ZTv0_n16_N9GG32223333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3222333[];
+extern void _ZN5EE3223barEv();
+static VTBL_ENTRY _tg__ZTV5EE322__9GG3222333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN5EE3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv)();
+extern void ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE322__9GG3222333[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv)();
+extern void ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE322__9GG3222333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv),
+};
+extern void _ZN5FF2333fooEv();
+extern void _ZN5FF2333barEv();
+static VTBL_ENTRY _tg__ZTV5FF233__9GG3222333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&_ZN5FF2333fooEv,
+ (VTBL_ENTRY)&_ZN5FF2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv)();
+extern void ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF233__9GG3222333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2333fooEv,_ZThn16_N5FF2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv)();
+extern void ABISELECT(_ZThn32_N5FF2333barEv,_ZThn16_N5FF2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF233__9GG3222333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv),
+};
+static VTT_ENTRY vtt_GG3222333[] = {
+ {&(_ZTV9GG3222333[8]), 8,44},
+ {&(_ZTV9GG3222333[15]), 15,44},
+ {&(_ZTV9GG3222333[20]), 20,44},
+ {&(_ZTV9GG3222333[25]), 25,44},
+ {&(_ZTV9GG3222333[32]), 32,44},
+ {&(_ZTV9GG3222333[37]), 37,44},
+ {&(_ZTV9GG3222333[42]), 42,44},
+ {&(_tg__ZTV5EE322__9GG3222333[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE322__9GG3222333[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE322__9GG3222333[3]), 3,4},
+ {&(_tg__ZTV5FF233__9GG3222333[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF233__9GG3222333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF233__9GG3222333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3222333[];
+extern VTBL_ENTRY _ZTV9GG3222333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3222333[];
+static VTBL_ENTRY alt_thunk_names889[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2333barEv,_ZThn16_N5FF2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2333fooEv,_ZThn16_N5FF2333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG32223333barEv,_ZTv0_n24_N9GG32223333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32223333barEv,_ZThn32_N9GG32223333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32223333fooEv,_ZTv0_n20_N9GG32223333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32223333fooEv,_ZThn32_N9GG32223333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32223333barEv,_ZTv0_n12_N9GG32223333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32223333barEv,_ZThn40_N9GG32223333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32223333barEv,_ZThn24_N9GG32223333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32223333barEv,_ZTv0_n16_N9GG32223333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32223333barEv,_ZThn48_N9GG32223333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32223333barEv,_ZThn16_N9GG32223333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32223333fooEv,_ZTv0_n12_N9GG32223333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32223333fooEv,_ZThn48_N9GG32223333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32223333fooEv,_ZThn16_N9GG32223333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32223333barEv,_ZTv0_n20_N9GG32223333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32223333barEv,_ZThn8_N9GG32223333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3222333 = { "GG3222333", // class name
+ bases_GG3222333, 6,
+ &(vtc_GG3222333[0]), // expected_vtbl_contents
+ &(vtt_GG3222333[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3222333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3222333),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3222333),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names889,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3223113 : virtual EE322 , virtual FF311 {
+ int pg;
+ virtual void foo(); // _ZN9GG32231133fooEv
+ virtual void bar(); // _ZN9GG32231133barEv
+ ~GG3223113(); // tgen
+ GG3223113(); // tgen
+};
+//SIG(1 GG3223113) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3223113 ::foo(){vfunc_called(this, "_ZN9GG32231133fooEv");}
+void GG3223113 ::bar(){vfunc_called(this, "_ZN9GG32231133barEv");}
+GG3223113 ::~GG3223113(){ note_dtor("GG3223113", this);} // tgen
+GG3223113 ::GG3223113(){ note_ctor("GG3223113", this);} // tgen
+
+static void Test_GG3223113()
+{
+ extern Class_Descriptor cd_GG3223113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3223113, buf);
+ GG3223113 *dp, &lv = *(dp=new (buf) GG3223113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3223113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3223113)");
+ check_base_class_offset(lv, (AA3*)(EE322*), ABISELECT(32,16), "GG3223113");
+ check_base_class_offset(lv, (AA3*)(FF311*), ABISELECT(32,16), "GG3223113");
+ check_base_class_offset(lv, (BB2*)(EE322*), ABISELECT(48,24), "GG3223113");
+ check_base_class_offset(lv, (EE322*), ABISELECT(16,8), "GG3223113");
+ check_base_class_offset(lv, (BB1*)(FF311*), ABISELECT(80,40), "GG3223113");
+ check_base_class_offset(lv, (FF311*), ABISELECT(64,32), "GG3223113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3223113.pg");
+ test_class_info(&lv, &cd_GG3223113);
+ dp->~GG3223113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3223113(Test_GG3223113, "GG3223113", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3223113C1Ev();
+extern void _ZN9GG3223113D1Ev();
+Name_Map name_map_GG3223113[] = {
+ NSPAIR(_ZN9GG3223113C1Ev),
+ NSPAIR(_ZN9GG3223113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE322;
+extern VTBL_ENTRY _ZTI5EE322[];
+extern VTBL_ENTRY _ZTV5EE322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE322[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF311;
+extern VTBL_ENTRY _ZTI5FF311[];
+extern VTBL_ENTRY _ZTV5FF311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF311[];
+static Base_Class bases_GG3223113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE322, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF311, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3223113[];
+extern void _ZN9GG32231133fooEv();
+extern void _ZN9GG32231133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32231133barEv,_ZTv0_n20_N9GG32231133barEv)();
+extern void ABISELECT(_ZThn16_N9GG32231133barEv,_ZThn8_N9GG32231133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32231133fooEv,_ZTv0_n12_N9GG32231133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32231133fooEv,_ZThn16_N9GG32231133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32231133barEv,_ZTv0_n16_N9GG32231133barEv)();
+extern void ABISELECT(_ZThn32_N9GG32231133barEv,_ZThn16_N9GG32231133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32231133barEv,_ZTv0_n12_N9GG32231133barEv)();
+extern void ABISELECT(_ZThn48_N9GG32231133barEv,_ZThn24_N9GG32231133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32231133fooEv,_ZTv0_n20_N9GG32231133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32231133fooEv,_ZThn32_N9GG32231133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32231133fooEv,_ZTv0_n12_N9GG32231133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG32231133fooEv,_ZThn40_N9GG32231133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3223113[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3223113[0]),
+ (VTBL_ENTRY)&_ZN9GG32231133fooEv,
+ (VTBL_ENTRY)&_ZN9GG32231133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3223113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32231133barEv,_ZTv0_n20_N9GG32231133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3223113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32231133fooEv,_ZTv0_n12_N9GG32231133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32231133barEv,_ZTv0_n16_N9GG32231133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3223113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32231133barEv,_ZTv0_n12_N9GG32231133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3223113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32231133fooEv,_ZTv0_n20_N9GG32231133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3223113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32231133fooEv,_ZTv0_n12_N9GG32231133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3223113[];
+extern void _ZN5EE3223barEv();
+static VTBL_ENTRY _tg__ZTV5EE322__9GG3223113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN5EE3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv)();
+extern void ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE322__9GG3223113[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv)();
+extern void ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE322__9GG3223113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv),
+};
+extern void _ZN5FF3113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF311__9GG3223113[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&_ZN5FF3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF311__9GG3223113[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF311__9GG3223113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+};
+static VTT_ENTRY vtt_GG3223113[] = {
+ {&(_ZTV9GG3223113[7]), 7,35},
+ {&(_ZTV9GG3223113[14]), 14,35},
+ {&(_ZTV9GG3223113[19]), 19,35},
+ {&(_ZTV9GG3223113[24]), 24,35},
+ {&(_ZTV9GG3223113[30]), 30,35},
+ {&(_ZTV9GG3223113[34]), 34,35},
+ {&(_tg__ZTV5EE322__9GG3223113[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE322__9GG3223113[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE322__9GG3223113[3]), 3,4},
+ {&(_tg__ZTV5FF311__9GG3223113[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF311__9GG3223113[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF311__9GG3223113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3223113[];
+extern VTBL_ENTRY _ZTV9GG3223113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3223113[];
+static VTBL_ENTRY alt_thunk_names890[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32231133fooEv,_ZTv0_n20_N9GG32231133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32231133fooEv,_ZThn32_N9GG32231133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32231133barEv,_ZTv0_n12_N9GG32231133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32231133barEv,_ZThn24_N9GG32231133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32231133barEv,_ZTv0_n16_N9GG32231133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32231133barEv,_ZThn16_N9GG32231133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32231133fooEv,_ZTv0_n12_N9GG32231133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32231133fooEv,_ZThn40_N9GG32231133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32231133fooEv,_ZThn16_N9GG32231133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32231133barEv,_ZTv0_n20_N9GG32231133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32231133barEv,_ZThn8_N9GG32231133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3223113 = { "GG3223113", // class name
+ bases_GG3223113, 5,
+ &(vtc_GG3223113[0]), // expected_vtbl_contents
+ &(vtt_GG3223113[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3223113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3223113),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3223113),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names890,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3223123 : virtual EE322 , virtual FF312 {
+ int pg;
+ virtual void foo(); // _ZN9GG32231233fooEv
+ virtual void bar(); // _ZN9GG32231233barEv
+ ~GG3223123(); // tgen
+ GG3223123(); // tgen
+};
+//SIG(1 GG3223123) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3223123 ::foo(){vfunc_called(this, "_ZN9GG32231233fooEv");}
+void GG3223123 ::bar(){vfunc_called(this, "_ZN9GG32231233barEv");}
+GG3223123 ::~GG3223123(){ note_dtor("GG3223123", this);} // tgen
+GG3223123 ::GG3223123(){ note_ctor("GG3223123", this);} // tgen
+
+static void Test_GG3223123()
+{
+ extern Class_Descriptor cd_GG3223123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3223123, buf);
+ GG3223123 *dp, &lv = *(dp=new (buf) GG3223123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3223123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3223123)");
+ check_base_class_offset(lv, (AA3*)(EE322*), ABISELECT(32,16), "GG3223123");
+ check_base_class_offset(lv, (AA3*)(FF312*), ABISELECT(32,16), "GG3223123");
+ check_base_class_offset(lv, (BB2*)(EE322*), ABISELECT(48,24), "GG3223123");
+ check_base_class_offset(lv, (EE322*), ABISELECT(16,8), "GG3223123");
+ check_base_class_offset(lv, (BB1*)(FF312*), ABISELECT(80,40), "GG3223123");
+ check_base_class_offset(lv, (FF312*), ABISELECT(64,32), "GG3223123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3223123.pg");
+ test_class_info(&lv, &cd_GG3223123);
+ dp->~GG3223123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3223123(Test_GG3223123, "GG3223123", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3223123C1Ev();
+extern void _ZN9GG3223123D1Ev();
+Name_Map name_map_GG3223123[] = {
+ NSPAIR(_ZN9GG3223123C1Ev),
+ NSPAIR(_ZN9GG3223123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE322;
+extern VTBL_ENTRY _ZTI5EE322[];
+extern VTBL_ENTRY _ZTV5EE322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE322[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF312;
+extern VTBL_ENTRY _ZTI5FF312[];
+extern VTBL_ENTRY _ZTV5FF312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF312[];
+static Base_Class bases_GG3223123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE322, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF312, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3223123[];
+extern void _ZN9GG32231233fooEv();
+extern void _ZN9GG32231233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32231233barEv,_ZTv0_n20_N9GG32231233barEv)();
+extern void ABISELECT(_ZThn16_N9GG32231233barEv,_ZThn8_N9GG32231233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32231233fooEv,_ZTv0_n12_N9GG32231233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32231233fooEv,_ZThn16_N9GG32231233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32231233barEv,_ZTv0_n16_N9GG32231233barEv)();
+extern void ABISELECT(_ZThn32_N9GG32231233barEv,_ZThn16_N9GG32231233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32231233barEv,_ZTv0_n12_N9GG32231233barEv)();
+extern void ABISELECT(_ZThn48_N9GG32231233barEv,_ZThn24_N9GG32231233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32231233barEv,_ZTv0_n20_N9GG32231233barEv)();
+extern void ABISELECT(_ZThn64_N9GG32231233barEv,_ZThn32_N9GG32231233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32231233fooEv,_ZTv0_n12_N9GG32231233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG32231233fooEv,_ZThn40_N9GG32231233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3223123[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3223123[0]),
+ (VTBL_ENTRY)&_ZN9GG32231233fooEv,
+ (VTBL_ENTRY)&_ZN9GG32231233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3223123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32231233barEv,_ZTv0_n20_N9GG32231233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3223123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32231233fooEv,_ZTv0_n12_N9GG32231233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32231233barEv,_ZTv0_n16_N9GG32231233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3223123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32231233barEv,_ZTv0_n12_N9GG32231233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3223123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32231233barEv,_ZTv0_n20_N9GG32231233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3223123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32231233fooEv,_ZTv0_n12_N9GG32231233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3223123[];
+extern void _ZN5EE3223barEv();
+static VTBL_ENTRY _tg__ZTV5EE322__9GG3223123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN5EE3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv)();
+extern void ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE322__9GG3223123[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv)();
+extern void ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE322__9GG3223123[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv),
+};
+extern void _ZN5FF3123barEv();
+static VTBL_ENTRY _tg__ZTV5FF312__9GG3223123[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN5FF3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF312__9GG3223123[] = {
+ ABISELECT(32,16),
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF312__9GG3223123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG3223123[] = {
+ {&(_ZTV9GG3223123[7]), 7,35},
+ {&(_ZTV9GG3223123[14]), 14,35},
+ {&(_ZTV9GG3223123[19]), 19,35},
+ {&(_ZTV9GG3223123[24]), 24,35},
+ {&(_ZTV9GG3223123[30]), 30,35},
+ {&(_ZTV9GG3223123[34]), 34,35},
+ {&(_tg__ZTV5EE322__9GG3223123[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE322__9GG3223123[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE322__9GG3223123[3]), 3,4},
+ {&(_tg__ZTV5FF312__9GG3223123[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF312__9GG3223123[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF312__9GG3223123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3223123[];
+extern VTBL_ENTRY _ZTV9GG3223123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3223123[];
+static VTBL_ENTRY alt_thunk_names891[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32231233barEv,_ZTv0_n12_N9GG32231233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32231233barEv,_ZThn24_N9GG32231233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32231233barEv,_ZTv0_n16_N9GG32231233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32231233barEv,_ZThn16_N9GG32231233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32231233fooEv,_ZTv0_n12_N9GG32231233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32231233fooEv,_ZThn40_N9GG32231233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32231233fooEv,_ZThn16_N9GG32231233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32231233barEv,_ZTv0_n20_N9GG32231233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32231233barEv,_ZThn32_N9GG32231233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32231233barEv,_ZThn8_N9GG32231233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3223123 = { "GG3223123", // class name
+ bases_GG3223123, 5,
+ &(vtc_GG3223123[0]), // expected_vtbl_contents
+ &(vtt_GG3223123[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3223123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3223123),35, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3223123),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names891,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3223133 : virtual EE322 , virtual FF313 {
+ int pg;
+ virtual void foo(); // _ZN9GG32231333fooEv
+ virtual void bar(); // _ZN9GG32231333barEv
+ ~GG3223133(); // tgen
+ GG3223133(); // tgen
+};
+//SIG(1 GG3223133) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3223133 ::foo(){vfunc_called(this, "_ZN9GG32231333fooEv");}
+void GG3223133 ::bar(){vfunc_called(this, "_ZN9GG32231333barEv");}
+GG3223133 ::~GG3223133(){ note_dtor("GG3223133", this);} // tgen
+GG3223133 ::GG3223133(){ note_ctor("GG3223133", this);} // tgen
+
+static void Test_GG3223133()
+{
+ extern Class_Descriptor cd_GG3223133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3223133, buf);
+ GG3223133 *dp, &lv = *(dp=new (buf) GG3223133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3223133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3223133)");
+ check_base_class_offset(lv, (AA3*)(EE322*), ABISELECT(32,16), "GG3223133");
+ check_base_class_offset(lv, (AA3*)(FF313*), ABISELECT(32,16), "GG3223133");
+ check_base_class_offset(lv, (BB2*)(EE322*), ABISELECT(48,24), "GG3223133");
+ check_base_class_offset(lv, (EE322*), ABISELECT(16,8), "GG3223133");
+ check_base_class_offset(lv, (BB1*)(FF313*), ABISELECT(80,40), "GG3223133");
+ check_base_class_offset(lv, (FF313*), ABISELECT(64,32), "GG3223133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3223133.pg");
+ test_class_info(&lv, &cd_GG3223133);
+ dp->~GG3223133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3223133(Test_GG3223133, "GG3223133", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3223133C1Ev();
+extern void _ZN9GG3223133D1Ev();
+Name_Map name_map_GG3223133[] = {
+ NSPAIR(_ZN9GG3223133C1Ev),
+ NSPAIR(_ZN9GG3223133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE322;
+extern VTBL_ENTRY _ZTI5EE322[];
+extern VTBL_ENTRY _ZTV5EE322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE322[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF313;
+extern VTBL_ENTRY _ZTI5FF313[];
+extern VTBL_ENTRY _ZTV5FF313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF313[];
+static Base_Class bases_GG3223133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE322, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF313, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3223133[];
+extern void _ZN9GG32231333fooEv();
+extern void _ZN9GG32231333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32231333barEv,_ZTv0_n20_N9GG32231333barEv)();
+extern void ABISELECT(_ZThn16_N9GG32231333barEv,_ZThn8_N9GG32231333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32231333fooEv,_ZTv0_n12_N9GG32231333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32231333fooEv,_ZThn16_N9GG32231333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32231333barEv,_ZTv0_n16_N9GG32231333barEv)();
+extern void ABISELECT(_ZThn32_N9GG32231333barEv,_ZThn16_N9GG32231333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32231333barEv,_ZTv0_n12_N9GG32231333barEv)();
+extern void ABISELECT(_ZThn48_N9GG32231333barEv,_ZThn24_N9GG32231333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32231333fooEv,_ZTv0_n20_N9GG32231333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32231333fooEv,_ZThn32_N9GG32231333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32231333barEv,_ZTv0_n24_N9GG32231333barEv)();
+extern void ABISELECT(_ZThn64_N9GG32231333barEv,_ZThn32_N9GG32231333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32231333fooEv,_ZTv0_n12_N9GG32231333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG32231333fooEv,_ZThn40_N9GG32231333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3223133[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3223133[0]),
+ (VTBL_ENTRY)&_ZN9GG32231333fooEv,
+ (VTBL_ENTRY)&_ZN9GG32231333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3223133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32231333barEv,_ZTv0_n20_N9GG32231333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3223133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32231333fooEv,_ZTv0_n12_N9GG32231333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32231333barEv,_ZTv0_n16_N9GG32231333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3223133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32231333barEv,_ZTv0_n12_N9GG32231333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3223133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32231333fooEv,_ZTv0_n20_N9GG32231333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32231333barEv,_ZTv0_n24_N9GG32231333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3223133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32231333fooEv,_ZTv0_n12_N9GG32231333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3223133[];
+extern void _ZN5EE3223barEv();
+static VTBL_ENTRY _tg__ZTV5EE322__9GG3223133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN5EE3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv)();
+extern void ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE322__9GG3223133[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv)();
+extern void ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE322__9GG3223133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv),
+};
+extern void _ZN5FF3133fooEv();
+extern void _ZN5FF3133barEv();
+static VTBL_ENTRY _tg__ZTV5FF313__9GG3223133[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&_ZN5FF3133fooEv,
+ (VTBL_ENTRY)&_ZN5FF3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF313__9GG3223133[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF313__9GG3223133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+};
+static VTT_ENTRY vtt_GG3223133[] = {
+ {&(_ZTV9GG3223133[7]), 7,37},
+ {&(_ZTV9GG3223133[14]), 14,37},
+ {&(_ZTV9GG3223133[19]), 19,37},
+ {&(_ZTV9GG3223133[24]), 24,37},
+ {&(_ZTV9GG3223133[31]), 31,37},
+ {&(_ZTV9GG3223133[36]), 36,37},
+ {&(_tg__ZTV5EE322__9GG3223133[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE322__9GG3223133[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE322__9GG3223133[3]), 3,4},
+ {&(_tg__ZTV5FF313__9GG3223133[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF313__9GG3223133[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF313__9GG3223133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3223133[];
+extern VTBL_ENTRY _ZTV9GG3223133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3223133[];
+static VTBL_ENTRY alt_thunk_names892[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG32231333barEv,_ZTv0_n24_N9GG32231333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32231333barEv,_ZThn32_N9GG32231333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32231333fooEv,_ZTv0_n20_N9GG32231333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32231333fooEv,_ZThn32_N9GG32231333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32231333barEv,_ZTv0_n12_N9GG32231333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32231333barEv,_ZThn24_N9GG32231333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32231333barEv,_ZTv0_n16_N9GG32231333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32231333barEv,_ZThn16_N9GG32231333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32231333fooEv,_ZTv0_n12_N9GG32231333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32231333fooEv,_ZThn40_N9GG32231333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32231333fooEv,_ZThn16_N9GG32231333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32231333barEv,_ZTv0_n20_N9GG32231333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32231333barEv,_ZThn8_N9GG32231333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3223133 = { "GG3223133", // class name
+ bases_GG3223133, 5,
+ &(vtc_GG3223133[0]), // expected_vtbl_contents
+ &(vtt_GG3223133[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3223133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3223133),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3223133),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names892,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3223213 : virtual EE322 , virtual FF321 {
+ int pg;
+ virtual void foo(); // _ZN9GG32232133fooEv
+ virtual void bar(); // _ZN9GG32232133barEv
+ ~GG3223213(); // tgen
+ GG3223213(); // tgen
+};
+//SIG(1 GG3223213) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC3 VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG3223213 ::foo(){vfunc_called(this, "_ZN9GG32232133fooEv");}
+void GG3223213 ::bar(){vfunc_called(this, "_ZN9GG32232133barEv");}
+GG3223213 ::~GG3223213(){ note_dtor("GG3223213", this);} // tgen
+GG3223213 ::GG3223213(){ note_ctor("GG3223213", this);} // tgen
+
+static void Test_GG3223213()
+{
+ extern Class_Descriptor cd_GG3223213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG3223213, buf);
+ GG3223213 *dp, &lv = *(dp=new (buf) GG3223213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG3223213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3223213)");
+ check_base_class_offset(lv, (AA3*)(EE322*), ABISELECT(32,16), "GG3223213");
+ check_base_class_offset(lv, (AA3*)(FF321*), ABISELECT(32,16), "GG3223213");
+ check_base_class_offset(lv, (BB2*)(EE322*), ABISELECT(48,24), "GG3223213");
+ check_base_class_offset(lv, (BB2*)(FF321*), ABISELECT(48,24), "GG3223213");
+ check_base_class_offset(lv, (EE322*), ABISELECT(16,8), "GG3223213");
+ check_base_class_offset(lv, (FF321*), ABISELECT(64,32), "GG3223213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3223213.pg");
+ test_class_info(&lv, &cd_GG3223213);
+ dp->~GG3223213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3223213(Test_GG3223213, "GG3223213", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG3223213C1Ev();
+extern void _ZN9GG3223213D1Ev();
+Name_Map name_map_GG3223213[] = {
+ NSPAIR(_ZN9GG3223213C1Ev),
+ NSPAIR(_ZN9GG3223213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE322;
+extern VTBL_ENTRY _ZTI5EE322[];
+extern VTBL_ENTRY _ZTV5EE322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE322[];
+extern Class_Descriptor cd_FF321;
+extern VTBL_ENTRY _ZTI5FF321[];
+extern VTBL_ENTRY _ZTV5FF321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF321[];
+static Base_Class bases_GG3223213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE322, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF321, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3223213[];
+extern void _ZN9GG32232133fooEv();
+extern void _ZN9GG32232133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32232133barEv,_ZTv0_n20_N9GG32232133barEv)();
+extern void ABISELECT(_ZThn16_N9GG32232133barEv,_ZThn8_N9GG32232133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32232133fooEv,_ZTv0_n12_N9GG32232133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32232133fooEv,_ZThn16_N9GG32232133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32232133barEv,_ZTv0_n16_N9GG32232133barEv)();
+extern void ABISELECT(_ZThn32_N9GG32232133barEv,_ZThn16_N9GG32232133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32232133barEv,_ZTv0_n12_N9GG32232133barEv)();
+extern void ABISELECT(_ZThn48_N9GG32232133barEv,_ZThn24_N9GG32232133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32232133fooEv,_ZTv0_n20_N9GG32232133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32232133fooEv,_ZThn32_N9GG32232133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3223213[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3223213[0]),
+ (VTBL_ENTRY)&_ZN9GG32232133fooEv,
+ (VTBL_ENTRY)&_ZN9GG32232133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3223213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32232133barEv,_ZTv0_n20_N9GG32232133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3223213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32232133fooEv,_ZTv0_n12_N9GG32232133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32232133barEv,_ZTv0_n16_N9GG32232133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3223213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32232133barEv,_ZTv0_n12_N9GG32232133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3223213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32232133fooEv,_ZTv0_n20_N9GG32232133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3223213[];
+extern void _ZN5EE3223barEv();
+static VTBL_ENTRY _tg__ZTV5EE322__9GG3223213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN5EE3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv)();
+extern void ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE322__9GG3223213[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv)();
+extern void ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE322__9GG3223213[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv),
+};
+extern void _ZN5FF3213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF321__9GG3223213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN5FF3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv)();
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF321__9GG3223213[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF321__9GG3223213[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG3223213[] = {
+ {&(_ZTV9GG3223213[6]), 6,30},
+ {&(_ZTV9GG3223213[13]), 13,30},
+ {&(_ZTV9GG3223213[18]), 18,30},
+ {&(_ZTV9GG3223213[23]), 23,30},
+ {&(_ZTV9GG3223213[29]), 29,30},
+ {&(_tg__ZTV5EE322__9GG3223213[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE322__9GG3223213[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE322__9GG3223213[3]), 3,4},
+ {&(_tg__ZTV5FF321__9GG3223213[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF321__9GG3223213[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF321__9GG3223213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3223213[];
+extern VTBL_ENTRY _ZTV9GG3223213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3223213[];
+static VTBL_ENTRY alt_thunk_names893[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32232133fooEv,_ZTv0_n20_N9GG32232133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32232133fooEv,_ZThn32_N9GG32232133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32232133barEv,_ZTv0_n12_N9GG32232133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32232133barEv,_ZThn24_N9GG32232133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32232133barEv,_ZTv0_n16_N9GG32232133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32232133barEv,_ZThn16_N9GG32232133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32232133fooEv,_ZTv0_n12_N9GG32232133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32232133fooEv,_ZThn16_N9GG32232133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32232133barEv,_ZTv0_n20_N9GG32232133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32232133barEv,_ZThn8_N9GG32232133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3223213 = { "GG3223213", // class name
+ bases_GG3223213, 4,
+ &(vtc_GG3223213[0]), // expected_vtbl_contents
+ &(vtt_GG3223213[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG3223213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3223213),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3223213),11, //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 GG3223223 : virtual EE322 , virtual FF322 {
+ int pg;
+ virtual void foo(); // _ZN9GG32232233fooEv
+ virtual void bar(); // _ZN9GG32232233barEv
+ ~GG3223223(); // tgen
+ GG3223223(); // tgen
+};
+//SIG(1 GG3223223) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC3 VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG3223223 ::foo(){vfunc_called(this, "_ZN9GG32232233fooEv");}
+void GG3223223 ::bar(){vfunc_called(this, "_ZN9GG32232233barEv");}
+GG3223223 ::~GG3223223(){ note_dtor("GG3223223", this);} // tgen
+GG3223223 ::GG3223223(){ note_ctor("GG3223223", this);} // tgen
+
+static void Test_GG3223223()
+{
+ extern Class_Descriptor cd_GG3223223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG3223223, buf);
+ GG3223223 *dp, &lv = *(dp=new (buf) GG3223223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG3223223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3223223)");
+ check_base_class_offset(lv, (AA3*)(EE322*), ABISELECT(32,16), "GG3223223");
+ check_base_class_offset(lv, (AA3*)(FF322*), ABISELECT(32,16), "GG3223223");
+ check_base_class_offset(lv, (BB2*)(EE322*), ABISELECT(48,24), "GG3223223");
+ check_base_class_offset(lv, (BB2*)(FF322*), ABISELECT(48,24), "GG3223223");
+ check_base_class_offset(lv, (EE322*), ABISELECT(16,8), "GG3223223");
+ check_base_class_offset(lv, (FF322*), ABISELECT(64,32), "GG3223223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3223223.pg");
+ test_class_info(&lv, &cd_GG3223223);
+ dp->~GG3223223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3223223(Test_GG3223223, "GG3223223", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG3223223C1Ev();
+extern void _ZN9GG3223223D1Ev();
+Name_Map name_map_GG3223223[] = {
+ NSPAIR(_ZN9GG3223223C1Ev),
+ NSPAIR(_ZN9GG3223223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE322;
+extern VTBL_ENTRY _ZTI5EE322[];
+extern VTBL_ENTRY _ZTV5EE322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE322[];
+extern Class_Descriptor cd_FF322;
+extern VTBL_ENTRY _ZTI5FF322[];
+extern VTBL_ENTRY _ZTV5FF322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF322[];
+static Base_Class bases_GG3223223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE322, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF322, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3223223[];
+extern void _ZN9GG32232233fooEv();
+extern void _ZN9GG32232233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32232233barEv,_ZTv0_n20_N9GG32232233barEv)();
+extern void ABISELECT(_ZThn16_N9GG32232233barEv,_ZThn8_N9GG32232233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32232233fooEv,_ZTv0_n12_N9GG32232233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32232233fooEv,_ZThn16_N9GG32232233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32232233barEv,_ZTv0_n16_N9GG32232233barEv)();
+extern void ABISELECT(_ZThn32_N9GG32232233barEv,_ZThn16_N9GG32232233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32232233barEv,_ZTv0_n12_N9GG32232233barEv)();
+extern void ABISELECT(_ZThn48_N9GG32232233barEv,_ZThn24_N9GG32232233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32232233barEv,_ZTv0_n20_N9GG32232233barEv)();
+extern void ABISELECT(_ZThn64_N9GG32232233barEv,_ZThn32_N9GG32232233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3223223[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3223223[0]),
+ (VTBL_ENTRY)&_ZN9GG32232233fooEv,
+ (VTBL_ENTRY)&_ZN9GG32232233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3223223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32232233barEv,_ZTv0_n20_N9GG32232233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3223223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32232233fooEv,_ZTv0_n12_N9GG32232233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32232233barEv,_ZTv0_n16_N9GG32232233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3223223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32232233barEv,_ZTv0_n12_N9GG32232233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3223223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32232233barEv,_ZTv0_n20_N9GG32232233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3223223[];
+extern void _ZN5EE3223barEv();
+static VTBL_ENTRY _tg__ZTV5EE322__9GG3223223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN5EE3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv)();
+extern void ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE322__9GG3223223[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv)();
+extern void ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE322__9GG3223223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv),
+};
+extern void _ZN5FF3223barEv();
+static VTBL_ENTRY _tg__ZTV5FF322__9GG3223223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN5FF3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF322__9GG3223223[] = {
+ ABISELECT(32,16),
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF322__9GG3223223[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv),
+};
+static VTT_ENTRY vtt_GG3223223[] = {
+ {&(_ZTV9GG3223223[6]), 6,30},
+ {&(_ZTV9GG3223223[13]), 13,30},
+ {&(_ZTV9GG3223223[18]), 18,30},
+ {&(_ZTV9GG3223223[23]), 23,30},
+ {&(_ZTV9GG3223223[29]), 29,30},
+ {&(_tg__ZTV5EE322__9GG3223223[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE322__9GG3223223[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE322__9GG3223223[3]), 3,4},
+ {&(_tg__ZTV5FF322__9GG3223223[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF322__9GG3223223[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF322__9GG3223223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3223223[];
+extern VTBL_ENTRY _ZTV9GG3223223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3223223[];
+static VTBL_ENTRY alt_thunk_names894[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32232233barEv,_ZTv0_n12_N9GG32232233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32232233barEv,_ZThn24_N9GG32232233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32232233barEv,_ZTv0_n16_N9GG32232233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32232233barEv,_ZThn16_N9GG32232233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32232233fooEv,_ZTv0_n12_N9GG32232233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32232233fooEv,_ZThn16_N9GG32232233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32232233barEv,_ZTv0_n20_N9GG32232233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32232233barEv,_ZThn32_N9GG32232233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32232233barEv,_ZThn8_N9GG32232233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3223223 = { "GG3223223", // class name
+ bases_GG3223223, 4,
+ &(vtc_GG3223223[0]), // expected_vtbl_contents
+ &(vtt_GG3223223[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG3223223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3223223),30, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3223223),11, //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 GG3223233 : virtual EE322 , virtual FF323 {
+ int pg;
+ virtual void foo(); // _ZN9GG32232333fooEv
+ virtual void bar(); // _ZN9GG32232333barEv
+ ~GG3223233(); // tgen
+ GG3223233(); // tgen
+};
+//SIG(1 GG3223233) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC3 VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3223233 ::foo(){vfunc_called(this, "_ZN9GG32232333fooEv");}
+void GG3223233 ::bar(){vfunc_called(this, "_ZN9GG32232333barEv");}
+GG3223233 ::~GG3223233(){ note_dtor("GG3223233", this);} // tgen
+GG3223233 ::GG3223233(){ note_ctor("GG3223233", this);} // tgen
+
+static void Test_GG3223233()
+{
+ extern Class_Descriptor cd_GG3223233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG3223233, buf);
+ GG3223233 *dp, &lv = *(dp=new (buf) GG3223233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG3223233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3223233)");
+ check_base_class_offset(lv, (AA3*)(EE322*), ABISELECT(32,16), "GG3223233");
+ check_base_class_offset(lv, (AA3*)(FF323*), ABISELECT(32,16), "GG3223233");
+ check_base_class_offset(lv, (BB2*)(EE322*), ABISELECT(48,24), "GG3223233");
+ check_base_class_offset(lv, (BB2*)(FF323*), ABISELECT(48,24), "GG3223233");
+ check_base_class_offset(lv, (EE322*), ABISELECT(16,8), "GG3223233");
+ check_base_class_offset(lv, (FF323*), ABISELECT(64,32), "GG3223233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3223233.pg");
+ test_class_info(&lv, &cd_GG3223233);
+ dp->~GG3223233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3223233(Test_GG3223233, "GG3223233", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG3223233C1Ev();
+extern void _ZN9GG3223233D1Ev();
+Name_Map name_map_GG3223233[] = {
+ NSPAIR(_ZN9GG3223233C1Ev),
+ NSPAIR(_ZN9GG3223233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE322;
+extern VTBL_ENTRY _ZTI5EE322[];
+extern VTBL_ENTRY _ZTV5EE322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE322[];
+extern Class_Descriptor cd_FF323;
+extern VTBL_ENTRY _ZTI5FF323[];
+extern VTBL_ENTRY _ZTV5FF323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF323[];
+static Base_Class bases_GG3223233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 20, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE322, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF323, ABISELECT(64,32), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3223233[];
+extern void _ZN9GG32232333fooEv();
+extern void _ZN9GG32232333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32232333barEv,_ZTv0_n20_N9GG32232333barEv)();
+extern void ABISELECT(_ZThn16_N9GG32232333barEv,_ZThn8_N9GG32232333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32232333fooEv,_ZTv0_n12_N9GG32232333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32232333fooEv,_ZThn16_N9GG32232333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32232333barEv,_ZTv0_n16_N9GG32232333barEv)();
+extern void ABISELECT(_ZThn32_N9GG32232333barEv,_ZThn16_N9GG32232333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32232333barEv,_ZTv0_n12_N9GG32232333barEv)();
+extern void ABISELECT(_ZThn48_N9GG32232333barEv,_ZThn24_N9GG32232333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32232333fooEv,_ZTv0_n20_N9GG32232333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32232333fooEv,_ZThn32_N9GG32232333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32232333barEv,_ZTv0_n24_N9GG32232333barEv)();
+extern void ABISELECT(_ZThn64_N9GG32232333barEv,_ZThn32_N9GG32232333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3223233[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3223233[0]),
+ (VTBL_ENTRY)&_ZN9GG32232333fooEv,
+ (VTBL_ENTRY)&_ZN9GG32232333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3223233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32232333barEv,_ZTv0_n20_N9GG32232333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3223233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32232333fooEv,_ZTv0_n12_N9GG32232333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32232333barEv,_ZTv0_n16_N9GG32232333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3223233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32232333barEv,_ZTv0_n12_N9GG32232333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3223233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32232333fooEv,_ZTv0_n20_N9GG32232333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32232333barEv,_ZTv0_n24_N9GG32232333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3223233[];
+extern void _ZN5EE3223barEv();
+static VTBL_ENTRY _tg__ZTV5EE322__9GG3223233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN5EE3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv)();
+extern void ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE322__9GG3223233[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv)();
+extern void ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE322__9GG3223233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv),
+};
+extern void _ZN5FF3233fooEv();
+extern void _ZN5FF3233barEv();
+static VTBL_ENTRY _tg__ZTV5FF323__9GG3223233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&_ZN5FF3233fooEv,
+ (VTBL_ENTRY)&_ZN5FF3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF323__9GG3223233[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF323__9GG3223233[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv),
+};
+static VTT_ENTRY vtt_GG3223233[] = {
+ {&(_ZTV9GG3223233[6]), 6,32},
+ {&(_ZTV9GG3223233[13]), 13,32},
+ {&(_ZTV9GG3223233[18]), 18,32},
+ {&(_ZTV9GG3223233[23]), 23,32},
+ {&(_ZTV9GG3223233[30]), 30,32},
+ {&(_tg__ZTV5EE322__9GG3223233[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE322__9GG3223233[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE322__9GG3223233[3]), 3,4},
+ {&(_tg__ZTV5FF323__9GG3223233[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF323__9GG3223233[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF323__9GG3223233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3223233[];
+extern VTBL_ENTRY _ZTV9GG3223233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3223233[];
+static VTBL_ENTRY alt_thunk_names895[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG32232333barEv,_ZTv0_n24_N9GG32232333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32232333barEv,_ZThn32_N9GG32232333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32232333fooEv,_ZTv0_n20_N9GG32232333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32232333fooEv,_ZThn32_N9GG32232333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32232333barEv,_ZTv0_n12_N9GG32232333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32232333barEv,_ZThn24_N9GG32232333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32232333barEv,_ZTv0_n16_N9GG32232333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32232333barEv,_ZThn16_N9GG32232333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32232333fooEv,_ZTv0_n12_N9GG32232333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32232333fooEv,_ZThn16_N9GG32232333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32232333barEv,_ZTv0_n20_N9GG32232333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32232333barEv,_ZThn8_N9GG32232333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3223233 = { "GG3223233", // class name
+ bases_GG3223233, 4,
+ &(vtc_GG3223233[0]), // expected_vtbl_contents
+ &(vtt_GG3223233[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG3223233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3223233),32, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3223233),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names895,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3223313 : virtual EE322 , virtual FF331 {
+ int pg;
+ virtual void foo(); // _ZN9GG32233133fooEv
+ virtual void bar(); // _ZN9GG32233133barEv
+ ~GG3223313(); // tgen
+ GG3223313(); // tgen
+};
+//SIG(1 GG3223313) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3223313 ::foo(){vfunc_called(this, "_ZN9GG32233133fooEv");}
+void GG3223313 ::bar(){vfunc_called(this, "_ZN9GG32233133barEv");}
+GG3223313 ::~GG3223313(){ note_dtor("GG3223313", this);} // tgen
+GG3223313 ::GG3223313(){ note_ctor("GG3223313", this);} // tgen
+
+static void Test_GG3223313()
+{
+ extern Class_Descriptor cd_GG3223313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3223313, buf);
+ GG3223313 *dp, &lv = *(dp=new (buf) GG3223313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3223313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3223313)");
+ check_base_class_offset(lv, (AA3*)(EE322*), ABISELECT(32,16), "GG3223313");
+ check_base_class_offset(lv, (AA3*)(FF331*), ABISELECT(32,16), "GG3223313");
+ check_base_class_offset(lv, (BB2*)(EE322*), ABISELECT(48,24), "GG3223313");
+ check_base_class_offset(lv, (EE322*), ABISELECT(16,8), "GG3223313");
+ check_base_class_offset(lv, (BB3*)(FF331*), ABISELECT(80,40), "GG3223313");
+ check_base_class_offset(lv, (FF331*), ABISELECT(64,32), "GG3223313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3223313.pg");
+ test_class_info(&lv, &cd_GG3223313);
+ dp->~GG3223313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3223313(Test_GG3223313, "GG3223313", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3223313C1Ev();
+extern void _ZN9GG3223313D1Ev();
+Name_Map name_map_GG3223313[] = {
+ NSPAIR(_ZN9GG3223313C1Ev),
+ NSPAIR(_ZN9GG3223313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE322;
+extern VTBL_ENTRY _ZTI5EE322[];
+extern VTBL_ENTRY _ZTV5EE322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE322[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF331;
+extern VTBL_ENTRY _ZTI5FF331[];
+extern VTBL_ENTRY _ZTV5FF331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF331[];
+static Base_Class bases_GG3223313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE322, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF331, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3223313[];
+extern void _ZN9GG32233133fooEv();
+extern void _ZN9GG32233133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32233133barEv,_ZTv0_n20_N9GG32233133barEv)();
+extern void ABISELECT(_ZThn16_N9GG32233133barEv,_ZThn8_N9GG32233133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32233133fooEv,_ZTv0_n12_N9GG32233133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32233133fooEv,_ZThn16_N9GG32233133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32233133barEv,_ZTv0_n16_N9GG32233133barEv)();
+extern void ABISELECT(_ZThn32_N9GG32233133barEv,_ZThn16_N9GG32233133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32233133barEv,_ZTv0_n12_N9GG32233133barEv)();
+extern void ABISELECT(_ZThn48_N9GG32233133barEv,_ZThn24_N9GG32233133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32233133fooEv,_ZTv0_n20_N9GG32233133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32233133fooEv,_ZThn32_N9GG32233133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32233133fooEv,_ZTv0_n12_N9GG32233133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG32233133fooEv,_ZThn40_N9GG32233133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32233133barEv,_ZTv0_n16_N9GG32233133barEv)();
+extern void ABISELECT(_ZThn80_N9GG32233133barEv,_ZThn40_N9GG32233133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3223313[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3223313[0]),
+ (VTBL_ENTRY)&_ZN9GG32233133fooEv,
+ (VTBL_ENTRY)&_ZN9GG32233133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3223313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32233133barEv,_ZTv0_n20_N9GG32233133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3223313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32233133fooEv,_ZTv0_n12_N9GG32233133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32233133barEv,_ZTv0_n16_N9GG32233133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3223313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32233133barEv,_ZTv0_n12_N9GG32233133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3223313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32233133fooEv,_ZTv0_n20_N9GG32233133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3223313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32233133fooEv,_ZTv0_n12_N9GG32233133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32233133barEv,_ZTv0_n16_N9GG32233133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3223313[];
+extern void _ZN5EE3223barEv();
+static VTBL_ENTRY _tg__ZTV5EE322__9GG3223313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN5EE3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv)();
+extern void ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE322__9GG3223313[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv)();
+extern void ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE322__9GG3223313[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv),
+};
+extern void _ZN5FF3313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF331__9GG3223313[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&_ZN5FF3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF331__9GG3223313[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF331__9GG3223313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG3223313[] = {
+ {&(_ZTV9GG3223313[7]), 7,37},
+ {&(_ZTV9GG3223313[14]), 14,37},
+ {&(_ZTV9GG3223313[19]), 19,37},
+ {&(_ZTV9GG3223313[24]), 24,37},
+ {&(_ZTV9GG3223313[30]), 30,37},
+ {&(_ZTV9GG3223313[35]), 35,37},
+ {&(_tg__ZTV5EE322__9GG3223313[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE322__9GG3223313[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE322__9GG3223313[3]), 3,4},
+ {&(_tg__ZTV5FF331__9GG3223313[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF331__9GG3223313[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF331__9GG3223313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3223313[];
+extern VTBL_ENTRY _ZTV9GG3223313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3223313[];
+static VTBL_ENTRY alt_thunk_names896[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32233133fooEv,_ZTv0_n20_N9GG32233133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32233133fooEv,_ZThn32_N9GG32233133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32233133barEv,_ZTv0_n12_N9GG32233133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32233133barEv,_ZThn24_N9GG32233133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32233133barEv,_ZTv0_n16_N9GG32233133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32233133barEv,_ZThn40_N9GG32233133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32233133barEv,_ZThn16_N9GG32233133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32233133fooEv,_ZTv0_n12_N9GG32233133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32233133fooEv,_ZThn40_N9GG32233133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32233133fooEv,_ZThn16_N9GG32233133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32233133barEv,_ZTv0_n20_N9GG32233133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32233133barEv,_ZThn8_N9GG32233133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3223313 = { "GG3223313", // class name
+ bases_GG3223313, 5,
+ &(vtc_GG3223313[0]), // expected_vtbl_contents
+ &(vtt_GG3223313[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3223313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3223313),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3223313),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names896,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3223323 : virtual EE322 , virtual FF332 {
+ int pg;
+ virtual void foo(); // _ZN9GG32233233fooEv
+ virtual void bar(); // _ZN9GG32233233barEv
+ ~GG3223323(); // tgen
+ GG3223323(); // tgen
+};
+//SIG(1 GG3223323) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3223323 ::foo(){vfunc_called(this, "_ZN9GG32233233fooEv");}
+void GG3223323 ::bar(){vfunc_called(this, "_ZN9GG32233233barEv");}
+GG3223323 ::~GG3223323(){ note_dtor("GG3223323", this);} // tgen
+GG3223323 ::GG3223323(){ note_ctor("GG3223323", this);} // tgen
+
+static void Test_GG3223323()
+{
+ extern Class_Descriptor cd_GG3223323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3223323, buf);
+ GG3223323 *dp, &lv = *(dp=new (buf) GG3223323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3223323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3223323)");
+ check_base_class_offset(lv, (AA3*)(EE322*), ABISELECT(32,16), "GG3223323");
+ check_base_class_offset(lv, (AA3*)(FF332*), ABISELECT(32,16), "GG3223323");
+ check_base_class_offset(lv, (BB2*)(EE322*), ABISELECT(48,24), "GG3223323");
+ check_base_class_offset(lv, (EE322*), ABISELECT(16,8), "GG3223323");
+ check_base_class_offset(lv, (BB3*)(FF332*), ABISELECT(80,40), "GG3223323");
+ check_base_class_offset(lv, (FF332*), ABISELECT(64,32), "GG3223323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3223323.pg");
+ test_class_info(&lv, &cd_GG3223323);
+ dp->~GG3223323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3223323(Test_GG3223323, "GG3223323", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3223323C1Ev();
+extern void _ZN9GG3223323D1Ev();
+Name_Map name_map_GG3223323[] = {
+ NSPAIR(_ZN9GG3223323C1Ev),
+ NSPAIR(_ZN9GG3223323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE322;
+extern VTBL_ENTRY _ZTI5EE322[];
+extern VTBL_ENTRY _ZTV5EE322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE322[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF332;
+extern VTBL_ENTRY _ZTI5FF332[];
+extern VTBL_ENTRY _ZTV5FF332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF332[];
+static Base_Class bases_GG3223323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE322, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 31, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF332, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3223323[];
+extern void _ZN9GG32233233fooEv();
+extern void _ZN9GG32233233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32233233barEv,_ZTv0_n20_N9GG32233233barEv)();
+extern void ABISELECT(_ZThn16_N9GG32233233barEv,_ZThn8_N9GG32233233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32233233fooEv,_ZTv0_n12_N9GG32233233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32233233fooEv,_ZThn16_N9GG32233233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32233233barEv,_ZTv0_n16_N9GG32233233barEv)();
+extern void ABISELECT(_ZThn32_N9GG32233233barEv,_ZThn16_N9GG32233233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32233233barEv,_ZTv0_n12_N9GG32233233barEv)();
+extern void ABISELECT(_ZThn48_N9GG32233233barEv,_ZThn24_N9GG32233233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32233233barEv,_ZTv0_n20_N9GG32233233barEv)();
+extern void ABISELECT(_ZThn64_N9GG32233233barEv,_ZThn32_N9GG32233233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32233233fooEv,_ZTv0_n12_N9GG32233233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG32233233fooEv,_ZThn40_N9GG32233233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32233233barEv,_ZTv0_n16_N9GG32233233barEv)();
+extern void ABISELECT(_ZThn80_N9GG32233233barEv,_ZThn40_N9GG32233233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3223323[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3223323[0]),
+ (VTBL_ENTRY)&_ZN9GG32233233fooEv,
+ (VTBL_ENTRY)&_ZN9GG32233233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3223323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32233233barEv,_ZTv0_n20_N9GG32233233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3223323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32233233fooEv,_ZTv0_n12_N9GG32233233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32233233barEv,_ZTv0_n16_N9GG32233233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3223323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32233233barEv,_ZTv0_n12_N9GG32233233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3223323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32233233barEv,_ZTv0_n20_N9GG32233233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3223323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32233233fooEv,_ZTv0_n12_N9GG32233233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32233233barEv,_ZTv0_n16_N9GG32233233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3223323[];
+extern void _ZN5EE3223barEv();
+static VTBL_ENTRY _tg__ZTV5EE322__9GG3223323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN5EE3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv)();
+extern void ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE322__9GG3223323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv)();
+extern void ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE322__9GG3223323[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv),
+};
+extern void _ZN5FF3323barEv();
+static VTBL_ENTRY _tg__ZTV5FF332__9GG3223323[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN5FF3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF332__9GG3223323[] = {
+ ABISELECT(32,16),
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+extern void ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF332__9GG3223323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+static VTT_ENTRY vtt_GG3223323[] = {
+ {&(_ZTV9GG3223323[7]), 7,37},
+ {&(_ZTV9GG3223323[14]), 14,37},
+ {&(_ZTV9GG3223323[19]), 19,37},
+ {&(_ZTV9GG3223323[24]), 24,37},
+ {&(_ZTV9GG3223323[30]), 30,37},
+ {&(_ZTV9GG3223323[35]), 35,37},
+ {&(_tg__ZTV5EE322__9GG3223323[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE322__9GG3223323[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE322__9GG3223323[3]), 3,4},
+ {&(_tg__ZTV5FF332__9GG3223323[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF332__9GG3223323[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF332__9GG3223323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3223323[];
+extern VTBL_ENTRY _ZTV9GG3223323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3223323[];
+static VTBL_ENTRY alt_thunk_names897[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32233233barEv,_ZTv0_n12_N9GG32233233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32233233barEv,_ZThn24_N9GG32233233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32233233barEv,_ZTv0_n16_N9GG32233233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32233233barEv,_ZThn40_N9GG32233233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32233233barEv,_ZThn16_N9GG32233233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32233233fooEv,_ZTv0_n12_N9GG32233233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32233233fooEv,_ZThn40_N9GG32233233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32233233fooEv,_ZThn16_N9GG32233233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32233233barEv,_ZTv0_n20_N9GG32233233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32233233barEv,_ZThn32_N9GG32233233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32233233barEv,_ZThn8_N9GG32233233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3223323 = { "GG3223323", // class name
+ bases_GG3223323, 5,
+ &(vtc_GG3223323[0]), // expected_vtbl_contents
+ &(vtt_GG3223323[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3223323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3223323),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3223323),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names897,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3223333 : virtual EE322 , virtual FF333 {
+ int pg;
+ virtual void foo(); // _ZN9GG32233333fooEv
+ virtual void bar(); // _ZN9GG32233333barEv
+ ~GG3223333(); // tgen
+ GG3223333(); // tgen
+};
+//SIG(1 GG3223333) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3223333 ::foo(){vfunc_called(this, "_ZN9GG32233333fooEv");}
+void GG3223333 ::bar(){vfunc_called(this, "_ZN9GG32233333barEv");}
+GG3223333 ::~GG3223333(){ note_dtor("GG3223333", this);} // tgen
+GG3223333 ::GG3223333(){ note_ctor("GG3223333", this);} // tgen
+
+static void Test_GG3223333()
+{
+ extern Class_Descriptor cd_GG3223333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3223333, buf);
+ GG3223333 *dp, &lv = *(dp=new (buf) GG3223333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3223333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3223333)");
+ check_base_class_offset(lv, (AA3*)(EE322*), ABISELECT(32,16), "GG3223333");
+ check_base_class_offset(lv, (AA3*)(FF333*), ABISELECT(32,16), "GG3223333");
+ check_base_class_offset(lv, (BB2*)(EE322*), ABISELECT(48,24), "GG3223333");
+ check_base_class_offset(lv, (EE322*), ABISELECT(16,8), "GG3223333");
+ check_base_class_offset(lv, (BB3*)(FF333*), ABISELECT(80,40), "GG3223333");
+ check_base_class_offset(lv, (FF333*), ABISELECT(64,32), "GG3223333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3223333.pg");
+ test_class_info(&lv, &cd_GG3223333);
+ dp->~GG3223333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3223333(Test_GG3223333, "GG3223333", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3223333C1Ev();
+extern void _ZN9GG3223333D1Ev();
+Name_Map name_map_GG3223333[] = {
+ NSPAIR(_ZN9GG3223333C1Ev),
+ NSPAIR(_ZN9GG3223333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE322;
+extern VTBL_ENTRY _ZTI5EE322[];
+extern VTBL_ENTRY _ZTV5EE322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE322[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF333;
+extern VTBL_ENTRY _ZTI5FF333[];
+extern VTBL_ENTRY _ZTV5FF333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF333[];
+static Base_Class bases_GG3223333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 21, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE322, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF333, ABISELECT(64,32), //bcp->offset
+ 25, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3223333[];
+extern void _ZN9GG32233333fooEv();
+extern void _ZN9GG32233333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32233333barEv,_ZTv0_n20_N9GG32233333barEv)();
+extern void ABISELECT(_ZThn16_N9GG32233333barEv,_ZThn8_N9GG32233333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32233333fooEv,_ZTv0_n12_N9GG32233333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32233333fooEv,_ZThn16_N9GG32233333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32233333barEv,_ZTv0_n16_N9GG32233333barEv)();
+extern void ABISELECT(_ZThn32_N9GG32233333barEv,_ZThn16_N9GG32233333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32233333barEv,_ZTv0_n12_N9GG32233333barEv)();
+extern void ABISELECT(_ZThn48_N9GG32233333barEv,_ZThn24_N9GG32233333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32233333fooEv,_ZTv0_n20_N9GG32233333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32233333fooEv,_ZThn32_N9GG32233333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32233333barEv,_ZTv0_n24_N9GG32233333barEv)();
+extern void ABISELECT(_ZThn64_N9GG32233333barEv,_ZThn32_N9GG32233333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32233333fooEv,_ZTv0_n12_N9GG32233333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG32233333fooEv,_ZThn40_N9GG32233333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32233333barEv,_ZTv0_n16_N9GG32233333barEv)();
+extern void ABISELECT(_ZThn80_N9GG32233333barEv,_ZThn40_N9GG32233333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3223333[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3223333[0]),
+ (VTBL_ENTRY)&_ZN9GG32233333fooEv,
+ (VTBL_ENTRY)&_ZN9GG32233333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3223333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32233333barEv,_ZTv0_n20_N9GG32233333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3223333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32233333fooEv,_ZTv0_n12_N9GG32233333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32233333barEv,_ZTv0_n16_N9GG32233333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3223333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32233333barEv,_ZTv0_n12_N9GG32233333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3223333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32233333fooEv,_ZTv0_n20_N9GG32233333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32233333barEv,_ZTv0_n24_N9GG32233333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3223333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32233333fooEv,_ZTv0_n12_N9GG32233333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32233333barEv,_ZTv0_n16_N9GG32233333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3223333[];
+extern void _ZN5EE3223barEv();
+static VTBL_ENTRY _tg__ZTV5EE322__9GG3223333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN5EE3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv)();
+extern void ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE322__9GG3223333[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv)();
+extern void ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE322__9GG3223333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv),
+};
+extern void _ZN5FF3333fooEv();
+extern void _ZN5FF3333barEv();
+static VTBL_ENTRY _tg__ZTV5FF333__9GG3223333[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&_ZN5FF3333fooEv,
+ (VTBL_ENTRY)&_ZN5FF3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF333__9GG3223333[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+extern void ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF333__9GG3223333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+static VTT_ENTRY vtt_GG3223333[] = {
+ {&(_ZTV9GG3223333[7]), 7,39},
+ {&(_ZTV9GG3223333[14]), 14,39},
+ {&(_ZTV9GG3223333[19]), 19,39},
+ {&(_ZTV9GG3223333[24]), 24,39},
+ {&(_ZTV9GG3223333[31]), 31,39},
+ {&(_ZTV9GG3223333[37]), 37,39},
+ {&(_tg__ZTV5EE322__9GG3223333[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE322__9GG3223333[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE322__9GG3223333[3]), 3,4},
+ {&(_tg__ZTV5FF333__9GG3223333[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF333__9GG3223333[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF333__9GG3223333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3223333[];
+extern VTBL_ENTRY _ZTV9GG3223333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3223333[];
+static VTBL_ENTRY alt_thunk_names898[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3223barEv,_ZTv0_n12_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3223barEv,_ZThn16_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3223barEv,_ZTv0_n16_N5EE3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3223barEv,_ZThn8_N5EE3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG32233333barEv,_ZTv0_n24_N9GG32233333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32233333barEv,_ZThn32_N9GG32233333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32233333fooEv,_ZTv0_n20_N9GG32233333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32233333fooEv,_ZThn32_N9GG32233333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32233333barEv,_ZTv0_n12_N9GG32233333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32233333barEv,_ZThn24_N9GG32233333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32233333barEv,_ZTv0_n16_N9GG32233333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32233333barEv,_ZThn40_N9GG32233333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32233333barEv,_ZThn16_N9GG32233333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32233333fooEv,_ZTv0_n12_N9GG32233333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32233333fooEv,_ZThn40_N9GG32233333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32233333fooEv,_ZThn16_N9GG32233333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32233333barEv,_ZTv0_n20_N9GG32233333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32233333barEv,_ZThn8_N9GG32233333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3223333 = { "GG3223333", // class name
+ bases_GG3223333, 5,
+ &(vtc_GG3223333[0]), // expected_vtbl_contents
+ &(vtt_GG3223333[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3223333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3223333),39, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3223333),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names898,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3231111 : virtual EE323 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG32311113fooEv
+ ~GG3231111(); // tgen
+ GG3231111(); // tgen
+};
+//SIG(1 GG3231111) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+void GG3231111 ::foo(){vfunc_called(this, "_ZN9GG32311113fooEv");}
+GG3231111 ::~GG3231111(){ note_dtor("GG3231111", this);} // tgen
+GG3231111 ::GG3231111(){ note_ctor("GG3231111", this);} // tgen
+
+static void Test_GG3231111()
+{
+ extern Class_Descriptor cd_GG3231111;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3231111, buf);
+ GG3231111 *dp, &lv = *(dp=new (buf) GG3231111());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3231111)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3231111)");
+ check_base_class_offset(lv, (AA3*)(EE323*), ABISELECT(32,16), "GG3231111");
+ check_base_class_offset(lv, (BB2*)(EE323*), ABISELECT(48,24), "GG3231111");
+ check_base_class_offset(lv, (EE323*), ABISELECT(16,8), "GG3231111");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(80,40), "GG3231111");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(96,48), "GG3231111");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG3231111");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3231111.pg");
+ test_class_info(&lv, &cd_GG3231111);
+ dp->~GG3231111();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3231111(Test_GG3231111, "GG3231111", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3231111C1Ev();
+extern void _ZN9GG3231111D1Ev();
+Name_Map name_map_GG3231111[] = {
+ NSPAIR(_ZN9GG3231111C1Ev),
+ NSPAIR(_ZN9GG3231111D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE323;
+extern VTBL_ENTRY _ZTI5EE323[];
+extern VTBL_ENTRY _ZTV5EE323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE323[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG3231111[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE323, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 37, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3231111[];
+extern void _ZN9GG32311113fooEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32311113fooEv,_ZTv0_n20_N9GG32311113fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32311113fooEv,_ZThn8_N9GG32311113fooEv)() __attribute__((weak));
+extern void _ZN5EE3233barEv();
+extern void ABISELECT(_ZTv0_n24_N9GG32311113fooEv,_ZTv0_n12_N9GG32311113fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32311113fooEv,_ZThn16_N9GG32311113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv)();
+extern void ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv)();
+extern void ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32311113fooEv,_ZTv0_n20_N9GG32311113fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32311113fooEv,_ZThn32_N9GG32311113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32311113fooEv,_ZTv0_n12_N9GG32311113fooEv)();
+extern void ABISELECT(_ZThn80_N9GG32311113fooEv,_ZThn40_N9GG32311113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32311113fooEv,_ZTv0_n12_N9GG32311113fooEv)();
+extern void ABISELECT(_ZThn96_N9GG32311113fooEv,_ZThn48_N9GG32311113fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3231111[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3231111[0]),
+ (VTBL_ENTRY)&_ZN9GG32311113fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3231111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32311113fooEv,_ZTv0_n20_N9GG32311113fooEv),
+ (VTBL_ENTRY)&_ZN5EE3233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3231111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32311113fooEv,_ZTv0_n12_N9GG32311113fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3231111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3231111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32311113fooEv,_ZTv0_n20_N9GG32311113fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3231111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32311113fooEv,_ZTv0_n12_N9GG32311113fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3231111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32311113fooEv,_ZTv0_n12_N9GG32311113fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3231111[];
+extern void _ZN5EE3233fooEv();
+extern void _ZN5EE3233barEv();
+static VTBL_ENTRY _tg__ZTV5EE323__9GG3231111[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&_ZN5EE3233fooEv,
+ (VTBL_ENTRY)&_ZN5EE3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv)();
+extern void ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE323__9GG3231111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv)();
+extern void ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE323__9GG3231111[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv),
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG3231111[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG3231111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG3231111[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG3231111[] = {
+ {&(_ZTV9GG3231111[8]), 8,41},
+ {&(_ZTV9GG3231111[15]), 15,41},
+ {&(_ZTV9GG3231111[21]), 21,41},
+ {&(_ZTV9GG3231111[26]), 26,41},
+ {&(_ZTV9GG3231111[32]), 32,41},
+ {&(_ZTV9GG3231111[36]), 36,41},
+ {&(_ZTV9GG3231111[40]), 40,41},
+ {&(_tg__ZTV5EE323__9GG3231111[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE323__9GG3231111[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE323__9GG3231111[3]), 3,4},
+ {&(_tg__ZTV5FF111__9GG3231111[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG3231111[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG3231111[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3231111[];
+extern VTBL_ENTRY _ZTV9GG3231111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3231111[];
+static VTBL_ENTRY alt_thunk_names899[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32311113fooEv,_ZTv0_n12_N9GG32311113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32311113fooEv,_ZThn48_N9GG32311113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32311113fooEv,_ZThn40_N9GG32311113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32311113fooEv,_ZThn16_N9GG32311113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32311113fooEv,_ZTv0_n20_N9GG32311113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32311113fooEv,_ZThn32_N9GG32311113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32311113fooEv,_ZThn8_N9GG32311113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3231111 = { "GG3231111", // class name
+ bases_GG3231111, 6,
+ &(vtc_GG3231111[0]), // expected_vtbl_contents
+ &(vtt_GG3231111[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3231111),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3231111),41, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3231111),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names899,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3231113 : virtual EE323 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG32311133fooEv
+ virtual void bar(); // _ZN9GG32311133barEv
+ ~GG3231113(); // tgen
+ GG3231113(); // tgen
+};
+//SIG(1 GG3231113) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3231113 ::foo(){vfunc_called(this, "_ZN9GG32311133fooEv");}
+void GG3231113 ::bar(){vfunc_called(this, "_ZN9GG32311133barEv");}
+GG3231113 ::~GG3231113(){ note_dtor("GG3231113", this);} // tgen
+GG3231113 ::GG3231113(){ note_ctor("GG3231113", this);} // tgen
+
+static void Test_GG3231113()
+{
+ extern Class_Descriptor cd_GG3231113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3231113, buf);
+ GG3231113 *dp, &lv = *(dp=new (buf) GG3231113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3231113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3231113)");
+ check_base_class_offset(lv, (AA3*)(EE323*), ABISELECT(32,16), "GG3231113");
+ check_base_class_offset(lv, (BB2*)(EE323*), ABISELECT(48,24), "GG3231113");
+ check_base_class_offset(lv, (EE323*), ABISELECT(16,8), "GG3231113");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(80,40), "GG3231113");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(96,48), "GG3231113");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG3231113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3231113.pg");
+ test_class_info(&lv, &cd_GG3231113);
+ dp->~GG3231113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3231113(Test_GG3231113, "GG3231113", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3231113C1Ev();
+extern void _ZN9GG3231113D1Ev();
+Name_Map name_map_GG3231113[] = {
+ NSPAIR(_ZN9GG3231113C1Ev),
+ NSPAIR(_ZN9GG3231113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE323;
+extern VTBL_ENTRY _ZTI5EE323[];
+extern VTBL_ENTRY _ZTV5EE323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE323[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG3231113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_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_BB2, ABISELECT(48,24), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE323, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3231113[];
+extern void _ZN9GG32311133fooEv();
+extern void _ZN9GG32311133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32311133fooEv,_ZTv0_n20_N9GG32311133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32311133fooEv,_ZThn8_N9GG32311133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32311133barEv,_ZTv0_n24_N9GG32311133barEv)();
+extern void ABISELECT(_ZThn16_N9GG32311133barEv,_ZThn8_N9GG32311133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32311133fooEv,_ZTv0_n12_N9GG32311133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32311133fooEv,_ZThn16_N9GG32311133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32311133barEv,_ZTv0_n16_N9GG32311133barEv)();
+extern void ABISELECT(_ZThn32_N9GG32311133barEv,_ZThn16_N9GG32311133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32311133barEv,_ZTv0_n12_N9GG32311133barEv)();
+extern void ABISELECT(_ZThn48_N9GG32311133barEv,_ZThn24_N9GG32311133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32311133fooEv,_ZTv0_n20_N9GG32311133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32311133fooEv,_ZThn32_N9GG32311133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32311133fooEv,_ZTv0_n12_N9GG32311133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG32311133fooEv,_ZThn40_N9GG32311133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32311133fooEv,_ZTv0_n12_N9GG32311133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG32311133fooEv,_ZThn48_N9GG32311133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3231113[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3231113[0]),
+ (VTBL_ENTRY)&_ZN9GG32311133fooEv,
+ (VTBL_ENTRY)&_ZN9GG32311133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3231113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32311133fooEv,_ZTv0_n20_N9GG32311133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32311133barEv,_ZTv0_n24_N9GG32311133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3231113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32311133fooEv,_ZTv0_n12_N9GG32311133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32311133barEv,_ZTv0_n16_N9GG32311133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3231113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32311133barEv,_ZTv0_n12_N9GG32311133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3231113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32311133fooEv,_ZTv0_n20_N9GG32311133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3231113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32311133fooEv,_ZTv0_n12_N9GG32311133fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3231113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32311133fooEv,_ZTv0_n12_N9GG32311133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3231113[];
+extern void _ZN5EE3233fooEv();
+extern void _ZN5EE3233barEv();
+static VTBL_ENTRY _tg__ZTV5EE323__9GG3231113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&_ZN5EE3233fooEv,
+ (VTBL_ENTRY)&_ZN5EE3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv)();
+extern void ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE323__9GG3231113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv)();
+extern void ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE323__9GG3231113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv),
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG3231113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG3231113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG3231113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG3231113[] = {
+ {&(_ZTV9GG3231113[8]), 8,42},
+ {&(_ZTV9GG3231113[16]), 16,42},
+ {&(_ZTV9GG3231113[22]), 22,42},
+ {&(_ZTV9GG3231113[27]), 27,42},
+ {&(_ZTV9GG3231113[33]), 33,42},
+ {&(_ZTV9GG3231113[37]), 37,42},
+ {&(_ZTV9GG3231113[41]), 41,42},
+ {&(_tg__ZTV5EE323__9GG3231113[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE323__9GG3231113[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE323__9GG3231113[3]), 3,4},
+ {&(_tg__ZTV5FF111__9GG3231113[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG3231113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG3231113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3231113[];
+extern VTBL_ENTRY _ZTV9GG3231113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3231113[];
+static VTBL_ENTRY alt_thunk_names900[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32311133barEv,_ZTv0_n12_N9GG32311133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32311133barEv,_ZThn24_N9GG32311133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32311133barEv,_ZTv0_n16_N9GG32311133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32311133barEv,_ZThn16_N9GG32311133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32311133fooEv,_ZTv0_n12_N9GG32311133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32311133fooEv,_ZThn48_N9GG32311133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32311133fooEv,_ZThn40_N9GG32311133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32311133fooEv,_ZThn16_N9GG32311133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG32311133barEv,_ZTv0_n24_N9GG32311133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32311133barEv,_ZThn8_N9GG32311133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32311133fooEv,_ZTv0_n20_N9GG32311133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32311133fooEv,_ZThn32_N9GG32311133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32311133fooEv,_ZThn8_N9GG32311133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3231113 = { "GG3231113", // class name
+ bases_GG3231113, 6,
+ &(vtc_GG3231113[0]), // expected_vtbl_contents
+ &(vtt_GG3231113[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3231113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3231113),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3231113),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names900,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3231123 : virtual EE323 , virtual FF112 {
+ int pg;
+ virtual void foo(); // _ZN9GG32311233fooEv
+ virtual void bar(); // _ZN9GG32311233barEv
+ ~GG3231123(); // tgen
+ GG3231123(); // tgen
+};
+//SIG(1 GG3231123) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3231123 ::foo(){vfunc_called(this, "_ZN9GG32311233fooEv");}
+void GG3231123 ::bar(){vfunc_called(this, "_ZN9GG32311233barEv");}
+GG3231123 ::~GG3231123(){ note_dtor("GG3231123", this);} // tgen
+GG3231123 ::GG3231123(){ note_ctor("GG3231123", this);} // tgen
+
+static void Test_GG3231123()
+{
+ extern Class_Descriptor cd_GG3231123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3231123, buf);
+ GG3231123 *dp, &lv = *(dp=new (buf) GG3231123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3231123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3231123)");
+ check_base_class_offset(lv, (AA3*)(EE323*), ABISELECT(32,16), "GG3231123");
+ check_base_class_offset(lv, (BB2*)(EE323*), ABISELECT(48,24), "GG3231123");
+ check_base_class_offset(lv, (EE323*), ABISELECT(16,8), "GG3231123");
+ check_base_class_offset(lv, (AA1*)(FF112*), ABISELECT(80,40), "GG3231123");
+ check_base_class_offset(lv, (BB1*)(FF112*), ABISELECT(96,48), "GG3231123");
+ check_base_class_offset(lv, (FF112*), ABISELECT(64,32), "GG3231123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3231123.pg");
+ test_class_info(&lv, &cd_GG3231123);
+ dp->~GG3231123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3231123(Test_GG3231123, "GG3231123", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3231123C1Ev();
+extern void _ZN9GG3231123D1Ev();
+Name_Map name_map_GG3231123[] = {
+ NSPAIR(_ZN9GG3231123C1Ev),
+ NSPAIR(_ZN9GG3231123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE323;
+extern VTBL_ENTRY _ZTI5EE323[];
+extern VTBL_ENTRY _ZTV5EE323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE323[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF112;
+extern VTBL_ENTRY _ZTI5FF112[];
+extern VTBL_ENTRY _ZTV5FF112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF112[];
+static Base_Class bases_GG3231123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_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_BB2, ABISELECT(48,24), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE323, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF112, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3231123[];
+extern void _ZN9GG32311233fooEv();
+extern void _ZN9GG32311233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32311233fooEv,_ZTv0_n20_N9GG32311233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32311233fooEv,_ZThn8_N9GG32311233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32311233barEv,_ZTv0_n24_N9GG32311233barEv)();
+extern void ABISELECT(_ZThn16_N9GG32311233barEv,_ZThn8_N9GG32311233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32311233fooEv,_ZTv0_n12_N9GG32311233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32311233fooEv,_ZThn16_N9GG32311233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32311233barEv,_ZTv0_n16_N9GG32311233barEv)();
+extern void ABISELECT(_ZThn32_N9GG32311233barEv,_ZThn16_N9GG32311233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32311233barEv,_ZTv0_n12_N9GG32311233barEv)();
+extern void ABISELECT(_ZThn48_N9GG32311233barEv,_ZThn24_N9GG32311233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32311233barEv,_ZTv0_n20_N9GG32311233barEv)();
+extern void ABISELECT(_ZThn64_N9GG32311233barEv,_ZThn32_N9GG32311233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32311233fooEv,_ZTv0_n12_N9GG32311233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG32311233fooEv,_ZThn40_N9GG32311233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32311233fooEv,_ZTv0_n12_N9GG32311233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG32311233fooEv,_ZThn48_N9GG32311233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3231123[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3231123[0]),
+ (VTBL_ENTRY)&_ZN9GG32311233fooEv,
+ (VTBL_ENTRY)&_ZN9GG32311233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3231123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32311233fooEv,_ZTv0_n20_N9GG32311233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32311233barEv,_ZTv0_n24_N9GG32311233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3231123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32311233fooEv,_ZTv0_n12_N9GG32311233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32311233barEv,_ZTv0_n16_N9GG32311233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3231123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32311233barEv,_ZTv0_n12_N9GG32311233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3231123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32311233barEv,_ZTv0_n20_N9GG32311233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3231123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32311233fooEv,_ZTv0_n12_N9GG32311233fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3231123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32311233fooEv,_ZTv0_n12_N9GG32311233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3231123[];
+extern void _ZN5EE3233fooEv();
+extern void _ZN5EE3233barEv();
+static VTBL_ENTRY _tg__ZTV5EE323__9GG3231123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&_ZN5EE3233fooEv,
+ (VTBL_ENTRY)&_ZN5EE3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv)();
+extern void ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE323__9GG3231123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv)();
+extern void ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE323__9GG3231123[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv),
+};
+extern void _ZN5FF1123barEv();
+static VTBL_ENTRY _tg__ZTV5FF112__9GG3231123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN5FF1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF112__9GG3231123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF112__9GG3231123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG3231123[] = {
+ {&(_ZTV9GG3231123[8]), 8,42},
+ {&(_ZTV9GG3231123[16]), 16,42},
+ {&(_ZTV9GG3231123[22]), 22,42},
+ {&(_ZTV9GG3231123[27]), 27,42},
+ {&(_ZTV9GG3231123[33]), 33,42},
+ {&(_ZTV9GG3231123[37]), 37,42},
+ {&(_ZTV9GG3231123[41]), 41,42},
+ {&(_tg__ZTV5EE323__9GG3231123[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE323__9GG3231123[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE323__9GG3231123[3]), 3,4},
+ {&(_tg__ZTV5FF112__9GG3231123[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF112__9GG3231123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF112__9GG3231123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3231123[];
+extern VTBL_ENTRY _ZTV9GG3231123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3231123[];
+static VTBL_ENTRY alt_thunk_names901[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32311233barEv,_ZTv0_n20_N9GG32311233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32311233barEv,_ZThn32_N9GG32311233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32311233barEv,_ZTv0_n12_N9GG32311233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32311233barEv,_ZThn24_N9GG32311233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32311233barEv,_ZTv0_n16_N9GG32311233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32311233barEv,_ZThn16_N9GG32311233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32311233fooEv,_ZTv0_n12_N9GG32311233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32311233fooEv,_ZThn48_N9GG32311233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32311233fooEv,_ZThn40_N9GG32311233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32311233fooEv,_ZThn16_N9GG32311233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG32311233barEv,_ZTv0_n24_N9GG32311233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32311233barEv,_ZThn8_N9GG32311233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32311233fooEv,_ZTv0_n20_N9GG32311233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32311233fooEv,_ZThn8_N9GG32311233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3231123 = { "GG3231123", // class name
+ bases_GG3231123, 6,
+ &(vtc_GG3231123[0]), // expected_vtbl_contents
+ &(vtt_GG3231123[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3231123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3231123),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3231123),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names901,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3231133 : virtual EE323 , virtual FF113 {
+ int pg;
+ virtual void foo(); // _ZN9GG32311333fooEv
+ virtual void bar(); // _ZN9GG32311333barEv
+ ~GG3231133(); // tgen
+ GG3231133(); // tgen
+};
+//SIG(1 GG3231133) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3231133 ::foo(){vfunc_called(this, "_ZN9GG32311333fooEv");}
+void GG3231133 ::bar(){vfunc_called(this, "_ZN9GG32311333barEv");}
+GG3231133 ::~GG3231133(){ note_dtor("GG3231133", this);} // tgen
+GG3231133 ::GG3231133(){ note_ctor("GG3231133", this);} // tgen
+
+static void Test_GG3231133()
+{
+ extern Class_Descriptor cd_GG3231133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3231133, buf);
+ GG3231133 *dp, &lv = *(dp=new (buf) GG3231133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3231133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3231133)");
+ check_base_class_offset(lv, (AA3*)(EE323*), ABISELECT(32,16), "GG3231133");
+ check_base_class_offset(lv, (BB2*)(EE323*), ABISELECT(48,24), "GG3231133");
+ check_base_class_offset(lv, (EE323*), ABISELECT(16,8), "GG3231133");
+ check_base_class_offset(lv, (AA1*)(FF113*), ABISELECT(80,40), "GG3231133");
+ check_base_class_offset(lv, (BB1*)(FF113*), ABISELECT(96,48), "GG3231133");
+ check_base_class_offset(lv, (FF113*), ABISELECT(64,32), "GG3231133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3231133.pg");
+ test_class_info(&lv, &cd_GG3231133);
+ dp->~GG3231133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3231133(Test_GG3231133, "GG3231133", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3231133C1Ev();
+extern void _ZN9GG3231133D1Ev();
+Name_Map name_map_GG3231133[] = {
+ NSPAIR(_ZN9GG3231133C1Ev),
+ NSPAIR(_ZN9GG3231133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE323;
+extern VTBL_ENTRY _ZTI5EE323[];
+extern VTBL_ENTRY _ZTV5EE323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE323[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF113;
+extern VTBL_ENTRY _ZTI5FF113[];
+extern VTBL_ENTRY _ZTV5FF113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF113[];
+static Base_Class bases_GG3231133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_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_BB2, ABISELECT(48,24), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE323, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 40, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF113, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3231133[];
+extern void _ZN9GG32311333fooEv();
+extern void _ZN9GG32311333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32311333fooEv,_ZTv0_n20_N9GG32311333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32311333fooEv,_ZThn8_N9GG32311333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32311333barEv,_ZTv0_n24_N9GG32311333barEv)();
+extern void ABISELECT(_ZThn16_N9GG32311333barEv,_ZThn8_N9GG32311333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32311333fooEv,_ZTv0_n12_N9GG32311333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32311333fooEv,_ZThn16_N9GG32311333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32311333barEv,_ZTv0_n16_N9GG32311333barEv)();
+extern void ABISELECT(_ZThn32_N9GG32311333barEv,_ZThn16_N9GG32311333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32311333barEv,_ZTv0_n12_N9GG32311333barEv)();
+extern void ABISELECT(_ZThn48_N9GG32311333barEv,_ZThn24_N9GG32311333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32311333fooEv,_ZTv0_n20_N9GG32311333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32311333fooEv,_ZThn32_N9GG32311333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32311333barEv,_ZTv0_n24_N9GG32311333barEv)();
+extern void ABISELECT(_ZThn64_N9GG32311333barEv,_ZThn32_N9GG32311333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32311333fooEv,_ZTv0_n12_N9GG32311333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG32311333fooEv,_ZThn40_N9GG32311333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32311333fooEv,_ZTv0_n12_N9GG32311333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG32311333fooEv,_ZThn48_N9GG32311333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3231133[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3231133[0]),
+ (VTBL_ENTRY)&_ZN9GG32311333fooEv,
+ (VTBL_ENTRY)&_ZN9GG32311333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3231133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32311333fooEv,_ZTv0_n20_N9GG32311333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32311333barEv,_ZTv0_n24_N9GG32311333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3231133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32311333fooEv,_ZTv0_n12_N9GG32311333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32311333barEv,_ZTv0_n16_N9GG32311333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3231133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32311333barEv,_ZTv0_n12_N9GG32311333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3231133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32311333fooEv,_ZTv0_n20_N9GG32311333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32311333barEv,_ZTv0_n24_N9GG32311333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3231133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32311333fooEv,_ZTv0_n12_N9GG32311333fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3231133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32311333fooEv,_ZTv0_n12_N9GG32311333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3231133[];
+extern void _ZN5EE3233fooEv();
+extern void _ZN5EE3233barEv();
+static VTBL_ENTRY _tg__ZTV5EE323__9GG3231133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&_ZN5EE3233fooEv,
+ (VTBL_ENTRY)&_ZN5EE3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv)();
+extern void ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE323__9GG3231133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv)();
+extern void ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE323__9GG3231133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv),
+};
+extern void _ZN5FF1133fooEv();
+extern void _ZN5FF1133barEv();
+static VTBL_ENTRY _tg__ZTV5FF113__9GG3231133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&_ZN5FF1133fooEv,
+ (VTBL_ENTRY)&_ZN5FF1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF113__9GG3231133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1133fooEv,_ZThn16_N5FF1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF113__9GG3231133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+static VTT_ENTRY vtt_GG3231133[] = {
+ {&(_ZTV9GG3231133[8]), 8,44},
+ {&(_ZTV9GG3231133[16]), 16,44},
+ {&(_ZTV9GG3231133[22]), 22,44},
+ {&(_ZTV9GG3231133[27]), 27,44},
+ {&(_ZTV9GG3231133[34]), 34,44},
+ {&(_ZTV9GG3231133[39]), 39,44},
+ {&(_ZTV9GG3231133[43]), 43,44},
+ {&(_tg__ZTV5EE323__9GG3231133[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE323__9GG3231133[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE323__9GG3231133[3]), 3,4},
+ {&(_tg__ZTV5FF113__9GG3231133[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF113__9GG3231133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF113__9GG3231133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3231133[];
+extern VTBL_ENTRY _ZTV9GG3231133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3231133[];
+static VTBL_ENTRY alt_thunk_names902[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1133fooEv,_ZThn16_N5FF1133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32311333barEv,_ZTv0_n12_N9GG32311333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32311333barEv,_ZThn24_N9GG32311333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32311333barEv,_ZTv0_n16_N9GG32311333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32311333barEv,_ZThn16_N9GG32311333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32311333fooEv,_ZTv0_n12_N9GG32311333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32311333fooEv,_ZThn48_N9GG32311333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32311333fooEv,_ZThn40_N9GG32311333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32311333fooEv,_ZThn16_N9GG32311333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG32311333barEv,_ZTv0_n24_N9GG32311333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32311333barEv,_ZThn32_N9GG32311333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32311333barEv,_ZThn8_N9GG32311333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32311333fooEv,_ZTv0_n20_N9GG32311333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32311333fooEv,_ZThn32_N9GG32311333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32311333fooEv,_ZThn8_N9GG32311333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3231133 = { "GG3231133", // class name
+ bases_GG3231133, 6,
+ &(vtc_GG3231133[0]), // expected_vtbl_contents
+ &(vtt_GG3231133[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3231133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3231133),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3231133),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names902,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3231213 : virtual EE323 , virtual FF121 {
+ int pg;
+ virtual void foo(); // _ZN9GG32312133fooEv
+ virtual void bar(); // _ZN9GG32312133barEv
+ ~GG3231213(); // tgen
+ GG3231213(); // tgen
+};
+//SIG(1 GG3231213) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG3231213 ::foo(){vfunc_called(this, "_ZN9GG32312133fooEv");}
+void GG3231213 ::bar(){vfunc_called(this, "_ZN9GG32312133barEv");}
+GG3231213 ::~GG3231213(){ note_dtor("GG3231213", this);} // tgen
+GG3231213 ::GG3231213(){ note_ctor("GG3231213", this);} // tgen
+
+static void Test_GG3231213()
+{
+ extern Class_Descriptor cd_GG3231213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3231213, buf);
+ GG3231213 *dp, &lv = *(dp=new (buf) GG3231213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3231213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3231213)");
+ check_base_class_offset(lv, (AA3*)(EE323*), ABISELECT(32,16), "GG3231213");
+ check_base_class_offset(lv, (BB2*)(EE323*), ABISELECT(48,24), "GG3231213");
+ check_base_class_offset(lv, (BB2*)(FF121*), ABISELECT(48,24), "GG3231213");
+ check_base_class_offset(lv, (EE323*), ABISELECT(16,8), "GG3231213");
+ check_base_class_offset(lv, (AA1*)(FF121*), ABISELECT(80,40), "GG3231213");
+ check_base_class_offset(lv, (FF121*), ABISELECT(64,32), "GG3231213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3231213.pg");
+ test_class_info(&lv, &cd_GG3231213);
+ dp->~GG3231213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3231213(Test_GG3231213, "GG3231213", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3231213C1Ev();
+extern void _ZN9GG3231213D1Ev();
+Name_Map name_map_GG3231213[] = {
+ NSPAIR(_ZN9GG3231213C1Ev),
+ NSPAIR(_ZN9GG3231213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE323;
+extern VTBL_ENTRY _ZTI5EE323[];
+extern VTBL_ENTRY _ZTV5EE323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE323[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF121;
+extern VTBL_ENTRY _ZTI5FF121[];
+extern VTBL_ENTRY _ZTV5FF121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF121[];
+static Base_Class bases_GG3231213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE323, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF121, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3231213[];
+extern void _ZN9GG32312133fooEv();
+extern void _ZN9GG32312133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32312133fooEv,_ZTv0_n20_N9GG32312133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32312133fooEv,_ZThn8_N9GG32312133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32312133barEv,_ZTv0_n24_N9GG32312133barEv)();
+extern void ABISELECT(_ZThn16_N9GG32312133barEv,_ZThn8_N9GG32312133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32312133fooEv,_ZTv0_n12_N9GG32312133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32312133fooEv,_ZThn16_N9GG32312133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32312133barEv,_ZTv0_n16_N9GG32312133barEv)();
+extern void ABISELECT(_ZThn32_N9GG32312133barEv,_ZThn16_N9GG32312133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32312133barEv,_ZTv0_n12_N9GG32312133barEv)();
+extern void ABISELECT(_ZThn48_N9GG32312133barEv,_ZThn24_N9GG32312133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32312133fooEv,_ZTv0_n20_N9GG32312133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32312133fooEv,_ZThn32_N9GG32312133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32312133fooEv,_ZTv0_n12_N9GG32312133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG32312133fooEv,_ZThn40_N9GG32312133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3231213[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3231213[0]),
+ (VTBL_ENTRY)&_ZN9GG32312133fooEv,
+ (VTBL_ENTRY)&_ZN9GG32312133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3231213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32312133fooEv,_ZTv0_n20_N9GG32312133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32312133barEv,_ZTv0_n24_N9GG32312133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3231213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32312133fooEv,_ZTv0_n12_N9GG32312133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32312133barEv,_ZTv0_n16_N9GG32312133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3231213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32312133barEv,_ZTv0_n12_N9GG32312133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3231213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32312133fooEv,_ZTv0_n20_N9GG32312133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3231213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32312133fooEv,_ZTv0_n12_N9GG32312133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3231213[];
+extern void _ZN5EE3233fooEv();
+extern void _ZN5EE3233barEv();
+static VTBL_ENTRY _tg__ZTV5EE323__9GG3231213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&_ZN5EE3233fooEv,
+ (VTBL_ENTRY)&_ZN5EE3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv)();
+extern void ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE323__9GG3231213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv)();
+extern void ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE323__9GG3231213[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv),
+};
+extern void _ZN5FF1213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF121__9GG3231213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN5FF1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1213fooEv,_ZThn8_N5FF1213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF121__9GG3231213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF121__9GG3231213[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG3231213[] = {
+ {&(_ZTV9GG3231213[7]), 7,37},
+ {&(_ZTV9GG3231213[15]), 15,37},
+ {&(_ZTV9GG3231213[21]), 21,37},
+ {&(_ZTV9GG3231213[26]), 26,37},
+ {&(_ZTV9GG3231213[32]), 32,37},
+ {&(_ZTV9GG3231213[36]), 36,37},
+ {&(_tg__ZTV5EE323__9GG3231213[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE323__9GG3231213[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE323__9GG3231213[3]), 3,4},
+ {&(_tg__ZTV5FF121__9GG3231213[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF121__9GG3231213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF121__9GG3231213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3231213[];
+extern VTBL_ENTRY _ZTV9GG3231213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3231213[];
+static VTBL_ENTRY alt_thunk_names903[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1213fooEv,_ZThn8_N5FF1213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32312133barEv,_ZTv0_n12_N9GG32312133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32312133barEv,_ZThn24_N9GG32312133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32312133barEv,_ZTv0_n16_N9GG32312133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32312133barEv,_ZThn16_N9GG32312133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32312133fooEv,_ZTv0_n12_N9GG32312133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32312133fooEv,_ZThn40_N9GG32312133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32312133fooEv,_ZThn16_N9GG32312133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG32312133barEv,_ZTv0_n24_N9GG32312133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32312133barEv,_ZThn8_N9GG32312133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32312133fooEv,_ZTv0_n20_N9GG32312133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32312133fooEv,_ZThn32_N9GG32312133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32312133fooEv,_ZThn8_N9GG32312133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3231213 = { "GG3231213", // class name
+ bases_GG3231213, 5,
+ &(vtc_GG3231213[0]), // expected_vtbl_contents
+ &(vtt_GG3231213[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3231213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3231213),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3231213),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names903,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3231223 : virtual EE323 , virtual FF122 {
+ int pg;
+ virtual void foo(); // _ZN9GG32312233fooEv
+ virtual void bar(); // _ZN9GG32312233barEv
+ ~GG3231223(); // tgen
+ GG3231223(); // tgen
+};
+//SIG(1 GG3231223) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG3231223 ::foo(){vfunc_called(this, "_ZN9GG32312233fooEv");}
+void GG3231223 ::bar(){vfunc_called(this, "_ZN9GG32312233barEv");}
+GG3231223 ::~GG3231223(){ note_dtor("GG3231223", this);} // tgen
+GG3231223 ::GG3231223(){ note_ctor("GG3231223", this);} // tgen
+
+static void Test_GG3231223()
+{
+ extern Class_Descriptor cd_GG3231223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3231223, buf);
+ GG3231223 *dp, &lv = *(dp=new (buf) GG3231223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3231223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3231223)");
+ check_base_class_offset(lv, (AA3*)(EE323*), ABISELECT(32,16), "GG3231223");
+ check_base_class_offset(lv, (BB2*)(EE323*), ABISELECT(48,24), "GG3231223");
+ check_base_class_offset(lv, (BB2*)(FF122*), ABISELECT(48,24), "GG3231223");
+ check_base_class_offset(lv, (EE323*), ABISELECT(16,8), "GG3231223");
+ check_base_class_offset(lv, (AA1*)(FF122*), ABISELECT(80,40), "GG3231223");
+ check_base_class_offset(lv, (FF122*), ABISELECT(64,32), "GG3231223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3231223.pg");
+ test_class_info(&lv, &cd_GG3231223);
+ dp->~GG3231223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3231223(Test_GG3231223, "GG3231223", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3231223C1Ev();
+extern void _ZN9GG3231223D1Ev();
+Name_Map name_map_GG3231223[] = {
+ NSPAIR(_ZN9GG3231223C1Ev),
+ NSPAIR(_ZN9GG3231223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE323;
+extern VTBL_ENTRY _ZTI5EE323[];
+extern VTBL_ENTRY _ZTV5EE323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE323[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF122;
+extern VTBL_ENTRY _ZTI5FF122[];
+extern VTBL_ENTRY _ZTV5FF122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF122[];
+static Base_Class bases_GG3231223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE323, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF122, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3231223[];
+extern void _ZN9GG32312233fooEv();
+extern void _ZN9GG32312233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32312233fooEv,_ZTv0_n20_N9GG32312233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32312233fooEv,_ZThn8_N9GG32312233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32312233barEv,_ZTv0_n24_N9GG32312233barEv)();
+extern void ABISELECT(_ZThn16_N9GG32312233barEv,_ZThn8_N9GG32312233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32312233fooEv,_ZTv0_n12_N9GG32312233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32312233fooEv,_ZThn16_N9GG32312233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32312233barEv,_ZTv0_n16_N9GG32312233barEv)();
+extern void ABISELECT(_ZThn32_N9GG32312233barEv,_ZThn16_N9GG32312233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32312233barEv,_ZTv0_n12_N9GG32312233barEv)();
+extern void ABISELECT(_ZThn48_N9GG32312233barEv,_ZThn24_N9GG32312233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32312233barEv,_ZTv0_n20_N9GG32312233barEv)();
+extern void ABISELECT(_ZThn64_N9GG32312233barEv,_ZThn32_N9GG32312233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32312233fooEv,_ZTv0_n12_N9GG32312233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG32312233fooEv,_ZThn40_N9GG32312233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3231223[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3231223[0]),
+ (VTBL_ENTRY)&_ZN9GG32312233fooEv,
+ (VTBL_ENTRY)&_ZN9GG32312233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3231223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32312233fooEv,_ZTv0_n20_N9GG32312233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32312233barEv,_ZTv0_n24_N9GG32312233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3231223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32312233fooEv,_ZTv0_n12_N9GG32312233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32312233barEv,_ZTv0_n16_N9GG32312233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3231223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32312233barEv,_ZTv0_n12_N9GG32312233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3231223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32312233barEv,_ZTv0_n20_N9GG32312233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3231223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32312233fooEv,_ZTv0_n12_N9GG32312233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3231223[];
+extern void _ZN5EE3233fooEv();
+extern void _ZN5EE3233barEv();
+static VTBL_ENTRY _tg__ZTV5EE323__9GG3231223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&_ZN5EE3233fooEv,
+ (VTBL_ENTRY)&_ZN5EE3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv)();
+extern void ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE323__9GG3231223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv)();
+extern void ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE323__9GG3231223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv),
+};
+extern void _ZN5FF1223barEv();
+static VTBL_ENTRY _tg__ZTV5FF122__9GG3231223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN5FF1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF122__9GG3231223[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF122__9GG3231223[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv),
+};
+static VTT_ENTRY vtt_GG3231223[] = {
+ {&(_ZTV9GG3231223[7]), 7,37},
+ {&(_ZTV9GG3231223[15]), 15,37},
+ {&(_ZTV9GG3231223[21]), 21,37},
+ {&(_ZTV9GG3231223[26]), 26,37},
+ {&(_ZTV9GG3231223[32]), 32,37},
+ {&(_ZTV9GG3231223[36]), 36,37},
+ {&(_tg__ZTV5EE323__9GG3231223[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE323__9GG3231223[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE323__9GG3231223[3]), 3,4},
+ {&(_tg__ZTV5FF122__9GG3231223[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF122__9GG3231223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF122__9GG3231223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3231223[];
+extern VTBL_ENTRY _ZTV9GG3231223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3231223[];
+static VTBL_ENTRY alt_thunk_names904[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32312233barEv,_ZTv0_n20_N9GG32312233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32312233barEv,_ZThn32_N9GG32312233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32312233barEv,_ZTv0_n12_N9GG32312233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32312233barEv,_ZThn24_N9GG32312233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32312233barEv,_ZTv0_n16_N9GG32312233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32312233barEv,_ZThn16_N9GG32312233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32312233fooEv,_ZTv0_n12_N9GG32312233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32312233fooEv,_ZThn40_N9GG32312233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32312233fooEv,_ZThn16_N9GG32312233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG32312233barEv,_ZTv0_n24_N9GG32312233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32312233barEv,_ZThn8_N9GG32312233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32312233fooEv,_ZTv0_n20_N9GG32312233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32312233fooEv,_ZThn8_N9GG32312233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3231223 = { "GG3231223", // class name
+ bases_GG3231223, 5,
+ &(vtc_GG3231223[0]), // expected_vtbl_contents
+ &(vtt_GG3231223[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3231223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3231223),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3231223),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names904,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3231233 : virtual EE323 , virtual FF123 {
+ int pg;
+ virtual void foo(); // _ZN9GG32312333fooEv
+ virtual void bar(); // _ZN9GG32312333barEv
+ ~GG3231233(); // tgen
+ GG3231233(); // tgen
+};
+//SIG(1 GG3231233) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3231233 ::foo(){vfunc_called(this, "_ZN9GG32312333fooEv");}
+void GG3231233 ::bar(){vfunc_called(this, "_ZN9GG32312333barEv");}
+GG3231233 ::~GG3231233(){ note_dtor("GG3231233", this);} // tgen
+GG3231233 ::GG3231233(){ note_ctor("GG3231233", this);} // tgen
+
+static void Test_GG3231233()
+{
+ extern Class_Descriptor cd_GG3231233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3231233, buf);
+ GG3231233 *dp, &lv = *(dp=new (buf) GG3231233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3231233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3231233)");
+ check_base_class_offset(lv, (AA3*)(EE323*), ABISELECT(32,16), "GG3231233");
+ check_base_class_offset(lv, (BB2*)(EE323*), ABISELECT(48,24), "GG3231233");
+ check_base_class_offset(lv, (BB2*)(FF123*), ABISELECT(48,24), "GG3231233");
+ check_base_class_offset(lv, (EE323*), ABISELECT(16,8), "GG3231233");
+ check_base_class_offset(lv, (AA1*)(FF123*), ABISELECT(80,40), "GG3231233");
+ check_base_class_offset(lv, (FF123*), ABISELECT(64,32), "GG3231233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3231233.pg");
+ test_class_info(&lv, &cd_GG3231233);
+ dp->~GG3231233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3231233(Test_GG3231233, "GG3231233", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3231233C1Ev();
+extern void _ZN9GG3231233D1Ev();
+Name_Map name_map_GG3231233[] = {
+ NSPAIR(_ZN9GG3231233C1Ev),
+ NSPAIR(_ZN9GG3231233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE323;
+extern VTBL_ENTRY _ZTI5EE323[];
+extern VTBL_ENTRY _ZTV5EE323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE323[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF123;
+extern VTBL_ENTRY _ZTI5FF123[];
+extern VTBL_ENTRY _ZTV5FF123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF123[];
+static Base_Class bases_GG3231233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE323, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF123, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3231233[];
+extern void _ZN9GG32312333fooEv();
+extern void _ZN9GG32312333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32312333fooEv,_ZTv0_n20_N9GG32312333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32312333fooEv,_ZThn8_N9GG32312333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32312333barEv,_ZTv0_n24_N9GG32312333barEv)();
+extern void ABISELECT(_ZThn16_N9GG32312333barEv,_ZThn8_N9GG32312333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32312333fooEv,_ZTv0_n12_N9GG32312333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32312333fooEv,_ZThn16_N9GG32312333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32312333barEv,_ZTv0_n16_N9GG32312333barEv)();
+extern void ABISELECT(_ZThn32_N9GG32312333barEv,_ZThn16_N9GG32312333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32312333barEv,_ZTv0_n12_N9GG32312333barEv)();
+extern void ABISELECT(_ZThn48_N9GG32312333barEv,_ZThn24_N9GG32312333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32312333fooEv,_ZTv0_n20_N9GG32312333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32312333fooEv,_ZThn32_N9GG32312333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32312333barEv,_ZTv0_n24_N9GG32312333barEv)();
+extern void ABISELECT(_ZThn64_N9GG32312333barEv,_ZThn32_N9GG32312333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32312333fooEv,_ZTv0_n12_N9GG32312333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG32312333fooEv,_ZThn40_N9GG32312333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3231233[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3231233[0]),
+ (VTBL_ENTRY)&_ZN9GG32312333fooEv,
+ (VTBL_ENTRY)&_ZN9GG32312333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3231233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32312333fooEv,_ZTv0_n20_N9GG32312333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32312333barEv,_ZTv0_n24_N9GG32312333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3231233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32312333fooEv,_ZTv0_n12_N9GG32312333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32312333barEv,_ZTv0_n16_N9GG32312333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3231233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32312333barEv,_ZTv0_n12_N9GG32312333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3231233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32312333fooEv,_ZTv0_n20_N9GG32312333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32312333barEv,_ZTv0_n24_N9GG32312333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3231233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32312333fooEv,_ZTv0_n12_N9GG32312333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3231233[];
+extern void _ZN5EE3233fooEv();
+extern void _ZN5EE3233barEv();
+static VTBL_ENTRY _tg__ZTV5EE323__9GG3231233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&_ZN5EE3233fooEv,
+ (VTBL_ENTRY)&_ZN5EE3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv)();
+extern void ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE323__9GG3231233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv)();
+extern void ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE323__9GG3231233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv),
+};
+extern void _ZN5FF1233fooEv();
+extern void _ZN5FF1233barEv();
+static VTBL_ENTRY _tg__ZTV5FF123__9GG3231233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&_ZN5FF1233fooEv,
+ (VTBL_ENTRY)&_ZN5FF1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1233fooEv,_ZThn8_N5FF1233fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF123__9GG3231233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF123__9GG3231233[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv),
+};
+static VTT_ENTRY vtt_GG3231233[] = {
+ {&(_ZTV9GG3231233[7]), 7,39},
+ {&(_ZTV9GG3231233[15]), 15,39},
+ {&(_ZTV9GG3231233[21]), 21,39},
+ {&(_ZTV9GG3231233[26]), 26,39},
+ {&(_ZTV9GG3231233[33]), 33,39},
+ {&(_ZTV9GG3231233[38]), 38,39},
+ {&(_tg__ZTV5EE323__9GG3231233[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE323__9GG3231233[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE323__9GG3231233[3]), 3,4},
+ {&(_tg__ZTV5FF123__9GG3231233[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF123__9GG3231233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF123__9GG3231233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3231233[];
+extern VTBL_ENTRY _ZTV9GG3231233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3231233[];
+static VTBL_ENTRY alt_thunk_names905[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1233fooEv,_ZThn8_N5FF1233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32312333barEv,_ZTv0_n12_N9GG32312333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32312333barEv,_ZThn24_N9GG32312333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32312333barEv,_ZTv0_n16_N9GG32312333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32312333barEv,_ZThn16_N9GG32312333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32312333fooEv,_ZTv0_n12_N9GG32312333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32312333fooEv,_ZThn40_N9GG32312333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32312333fooEv,_ZThn16_N9GG32312333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG32312333barEv,_ZTv0_n24_N9GG32312333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32312333barEv,_ZThn32_N9GG32312333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32312333barEv,_ZThn8_N9GG32312333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32312333fooEv,_ZTv0_n20_N9GG32312333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32312333fooEv,_ZThn32_N9GG32312333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32312333fooEv,_ZThn8_N9GG32312333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3231233 = { "GG3231233", // class name
+ bases_GG3231233, 5,
+ &(vtc_GG3231233[0]), // expected_vtbl_contents
+ &(vtt_GG3231233[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3231233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3231233),39, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3231233),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names905,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3231313 : virtual EE323 , virtual FF131 {
+ int pg;
+ virtual void foo(); // _ZN9GG32313133fooEv
+ virtual void bar(); // _ZN9GG32313133barEv
+ ~GG3231313(); // tgen
+ GG3231313(); // tgen
+};
+//SIG(1 GG3231313) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3231313 ::foo(){vfunc_called(this, "_ZN9GG32313133fooEv");}
+void GG3231313 ::bar(){vfunc_called(this, "_ZN9GG32313133barEv");}
+GG3231313 ::~GG3231313(){ note_dtor("GG3231313", this);} // tgen
+GG3231313 ::GG3231313(){ note_ctor("GG3231313", this);} // tgen
+
+static void Test_GG3231313()
+{
+ extern Class_Descriptor cd_GG3231313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3231313, buf);
+ GG3231313 *dp, &lv = *(dp=new (buf) GG3231313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3231313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3231313)");
+ check_base_class_offset(lv, (AA3*)(EE323*), ABISELECT(32,16), "GG3231313");
+ check_base_class_offset(lv, (BB2*)(EE323*), ABISELECT(48,24), "GG3231313");
+ check_base_class_offset(lv, (EE323*), ABISELECT(16,8), "GG3231313");
+ check_base_class_offset(lv, (AA1*)(FF131*), ABISELECT(80,40), "GG3231313");
+ check_base_class_offset(lv, (BB3*)(FF131*), ABISELECT(96,48), "GG3231313");
+ check_base_class_offset(lv, (FF131*), ABISELECT(64,32), "GG3231313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3231313.pg");
+ test_class_info(&lv, &cd_GG3231313);
+ dp->~GG3231313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3231313(Test_GG3231313, "GG3231313", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3231313C1Ev();
+extern void _ZN9GG3231313D1Ev();
+Name_Map name_map_GG3231313[] = {
+ NSPAIR(_ZN9GG3231313C1Ev),
+ NSPAIR(_ZN9GG3231313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE323;
+extern VTBL_ENTRY _ZTI5EE323[];
+extern VTBL_ENTRY _ZTV5EE323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE323[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF131;
+extern VTBL_ENTRY _ZTI5FF131[];
+extern VTBL_ENTRY _ZTV5FF131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF131[];
+static Base_Class bases_GG3231313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_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_BB2, ABISELECT(48,24), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE323, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF131, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3231313[];
+extern void _ZN9GG32313133fooEv();
+extern void _ZN9GG32313133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32313133fooEv,_ZTv0_n20_N9GG32313133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32313133fooEv,_ZThn8_N9GG32313133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32313133barEv,_ZTv0_n24_N9GG32313133barEv)();
+extern void ABISELECT(_ZThn16_N9GG32313133barEv,_ZThn8_N9GG32313133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32313133fooEv,_ZTv0_n12_N9GG32313133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32313133fooEv,_ZThn16_N9GG32313133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32313133barEv,_ZTv0_n16_N9GG32313133barEv)();
+extern void ABISELECT(_ZThn32_N9GG32313133barEv,_ZThn16_N9GG32313133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32313133barEv,_ZTv0_n12_N9GG32313133barEv)();
+extern void ABISELECT(_ZThn48_N9GG32313133barEv,_ZThn24_N9GG32313133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32313133fooEv,_ZTv0_n20_N9GG32313133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32313133fooEv,_ZThn32_N9GG32313133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32313133fooEv,_ZTv0_n12_N9GG32313133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG32313133fooEv,_ZThn40_N9GG32313133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32313133fooEv,_ZTv0_n12_N9GG32313133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG32313133fooEv,_ZThn48_N9GG32313133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32313133barEv,_ZTv0_n16_N9GG32313133barEv)();
+extern void ABISELECT(_ZThn96_N9GG32313133barEv,_ZThn48_N9GG32313133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3231313[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3231313[0]),
+ (VTBL_ENTRY)&_ZN9GG32313133fooEv,
+ (VTBL_ENTRY)&_ZN9GG32313133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3231313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32313133fooEv,_ZTv0_n20_N9GG32313133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32313133barEv,_ZTv0_n24_N9GG32313133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3231313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32313133fooEv,_ZTv0_n12_N9GG32313133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32313133barEv,_ZTv0_n16_N9GG32313133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3231313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32313133barEv,_ZTv0_n12_N9GG32313133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3231313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32313133fooEv,_ZTv0_n20_N9GG32313133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3231313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32313133fooEv,_ZTv0_n12_N9GG32313133fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3231313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32313133fooEv,_ZTv0_n12_N9GG32313133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32313133barEv,_ZTv0_n16_N9GG32313133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3231313[];
+extern void _ZN5EE3233fooEv();
+extern void _ZN5EE3233barEv();
+static VTBL_ENTRY _tg__ZTV5EE323__9GG3231313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&_ZN5EE3233fooEv,
+ (VTBL_ENTRY)&_ZN5EE3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv)();
+extern void ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE323__9GG3231313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv)();
+extern void ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE323__9GG3231313[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv),
+};
+extern void _ZN5FF1313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF131__9GG3231313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&_ZN5FF1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF131__9GG3231313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1313fooEv,_ZThn16_N5FF1313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF131__9GG3231313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG3231313[] = {
+ {&(_ZTV9GG3231313[8]), 8,44},
+ {&(_ZTV9GG3231313[16]), 16,44},
+ {&(_ZTV9GG3231313[22]), 22,44},
+ {&(_ZTV9GG3231313[27]), 27,44},
+ {&(_ZTV9GG3231313[33]), 33,44},
+ {&(_ZTV9GG3231313[37]), 37,44},
+ {&(_ZTV9GG3231313[42]), 42,44},
+ {&(_tg__ZTV5EE323__9GG3231313[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE323__9GG3231313[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE323__9GG3231313[3]), 3,4},
+ {&(_tg__ZTV5FF131__9GG3231313[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF131__9GG3231313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF131__9GG3231313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3231313[];
+extern VTBL_ENTRY _ZTV9GG3231313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3231313[];
+static VTBL_ENTRY alt_thunk_names906[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1313fooEv,_ZThn16_N5FF1313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32313133barEv,_ZTv0_n12_N9GG32313133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32313133barEv,_ZThn24_N9GG32313133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32313133barEv,_ZTv0_n16_N9GG32313133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32313133barEv,_ZThn48_N9GG32313133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32313133barEv,_ZThn16_N9GG32313133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32313133fooEv,_ZTv0_n12_N9GG32313133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32313133fooEv,_ZThn48_N9GG32313133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32313133fooEv,_ZThn40_N9GG32313133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32313133fooEv,_ZThn16_N9GG32313133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG32313133barEv,_ZTv0_n24_N9GG32313133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32313133barEv,_ZThn8_N9GG32313133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32313133fooEv,_ZTv0_n20_N9GG32313133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32313133fooEv,_ZThn32_N9GG32313133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32313133fooEv,_ZThn8_N9GG32313133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3231313 = { "GG3231313", // class name
+ bases_GG3231313, 6,
+ &(vtc_GG3231313[0]), // expected_vtbl_contents
+ &(vtt_GG3231313[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3231313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3231313),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3231313),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names906,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3231323 : virtual EE323 , virtual FF132 {
+ int pg;
+ virtual void foo(); // _ZN9GG32313233fooEv
+ virtual void bar(); // _ZN9GG32313233barEv
+ ~GG3231323(); // tgen
+ GG3231323(); // tgen
+};
+//SIG(1 GG3231323) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3231323 ::foo(){vfunc_called(this, "_ZN9GG32313233fooEv");}
+void GG3231323 ::bar(){vfunc_called(this, "_ZN9GG32313233barEv");}
+GG3231323 ::~GG3231323(){ note_dtor("GG3231323", this);} // tgen
+GG3231323 ::GG3231323(){ note_ctor("GG3231323", this);} // tgen
+
+static void Test_GG3231323()
+{
+ extern Class_Descriptor cd_GG3231323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3231323, buf);
+ GG3231323 *dp, &lv = *(dp=new (buf) GG3231323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3231323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3231323)");
+ check_base_class_offset(lv, (AA3*)(EE323*), ABISELECT(32,16), "GG3231323");
+ check_base_class_offset(lv, (BB2*)(EE323*), ABISELECT(48,24), "GG3231323");
+ check_base_class_offset(lv, (EE323*), ABISELECT(16,8), "GG3231323");
+ check_base_class_offset(lv, (AA1*)(FF132*), ABISELECT(80,40), "GG3231323");
+ check_base_class_offset(lv, (BB3*)(FF132*), ABISELECT(96,48), "GG3231323");
+ check_base_class_offset(lv, (FF132*), ABISELECT(64,32), "GG3231323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3231323.pg");
+ test_class_info(&lv, &cd_GG3231323);
+ dp->~GG3231323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3231323(Test_GG3231323, "GG3231323", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3231323C1Ev();
+extern void _ZN9GG3231323D1Ev();
+Name_Map name_map_GG3231323[] = {
+ NSPAIR(_ZN9GG3231323C1Ev),
+ NSPAIR(_ZN9GG3231323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE323;
+extern VTBL_ENTRY _ZTI5EE323[];
+extern VTBL_ENTRY _ZTV5EE323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE323[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF132;
+extern VTBL_ENTRY _ZTI5FF132[];
+extern VTBL_ENTRY _ZTV5FF132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF132[];
+static Base_Class bases_GG3231323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_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_BB2, ABISELECT(48,24), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE323, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF132, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3231323[];
+extern void _ZN9GG32313233fooEv();
+extern void _ZN9GG32313233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32313233fooEv,_ZTv0_n20_N9GG32313233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32313233fooEv,_ZThn8_N9GG32313233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32313233barEv,_ZTv0_n24_N9GG32313233barEv)();
+extern void ABISELECT(_ZThn16_N9GG32313233barEv,_ZThn8_N9GG32313233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32313233fooEv,_ZTv0_n12_N9GG32313233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32313233fooEv,_ZThn16_N9GG32313233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32313233barEv,_ZTv0_n16_N9GG32313233barEv)();
+extern void ABISELECT(_ZThn32_N9GG32313233barEv,_ZThn16_N9GG32313233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32313233barEv,_ZTv0_n12_N9GG32313233barEv)();
+extern void ABISELECT(_ZThn48_N9GG32313233barEv,_ZThn24_N9GG32313233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32313233barEv,_ZTv0_n20_N9GG32313233barEv)();
+extern void ABISELECT(_ZThn64_N9GG32313233barEv,_ZThn32_N9GG32313233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32313233fooEv,_ZTv0_n12_N9GG32313233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG32313233fooEv,_ZThn40_N9GG32313233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32313233fooEv,_ZTv0_n12_N9GG32313233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG32313233fooEv,_ZThn48_N9GG32313233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32313233barEv,_ZTv0_n16_N9GG32313233barEv)();
+extern void ABISELECT(_ZThn96_N9GG32313233barEv,_ZThn48_N9GG32313233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3231323[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3231323[0]),
+ (VTBL_ENTRY)&_ZN9GG32313233fooEv,
+ (VTBL_ENTRY)&_ZN9GG32313233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3231323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32313233fooEv,_ZTv0_n20_N9GG32313233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32313233barEv,_ZTv0_n24_N9GG32313233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3231323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32313233fooEv,_ZTv0_n12_N9GG32313233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32313233barEv,_ZTv0_n16_N9GG32313233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3231323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32313233barEv,_ZTv0_n12_N9GG32313233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3231323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32313233barEv,_ZTv0_n20_N9GG32313233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3231323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32313233fooEv,_ZTv0_n12_N9GG32313233fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3231323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32313233fooEv,_ZTv0_n12_N9GG32313233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32313233barEv,_ZTv0_n16_N9GG32313233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3231323[];
+extern void _ZN5EE3233fooEv();
+extern void _ZN5EE3233barEv();
+static VTBL_ENTRY _tg__ZTV5EE323__9GG3231323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&_ZN5EE3233fooEv,
+ (VTBL_ENTRY)&_ZN5EE3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv)();
+extern void ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE323__9GG3231323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv)();
+extern void ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE323__9GG3231323[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv),
+};
+extern void _ZN5FF1323barEv();
+static VTBL_ENTRY _tg__ZTV5FF132__9GG3231323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN5FF1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF132__9GG3231323[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv)();
+extern void ABISELECT(_ZThn32_N5FF1323barEv,_ZThn16_N5FF1323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF132__9GG3231323[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv),
+};
+static VTT_ENTRY vtt_GG3231323[] = {
+ {&(_ZTV9GG3231323[8]), 8,44},
+ {&(_ZTV9GG3231323[16]), 16,44},
+ {&(_ZTV9GG3231323[22]), 22,44},
+ {&(_ZTV9GG3231323[27]), 27,44},
+ {&(_ZTV9GG3231323[33]), 33,44},
+ {&(_ZTV9GG3231323[37]), 37,44},
+ {&(_ZTV9GG3231323[42]), 42,44},
+ {&(_tg__ZTV5EE323__9GG3231323[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE323__9GG3231323[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE323__9GG3231323[3]), 3,4},
+ {&(_tg__ZTV5FF132__9GG3231323[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF132__9GG3231323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF132__9GG3231323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3231323[];
+extern VTBL_ENTRY _ZTV9GG3231323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3231323[];
+static VTBL_ENTRY alt_thunk_names907[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1323barEv,_ZThn16_N5FF1323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32313233barEv,_ZTv0_n20_N9GG32313233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32313233barEv,_ZThn32_N9GG32313233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32313233barEv,_ZTv0_n12_N9GG32313233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32313233barEv,_ZThn24_N9GG32313233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32313233barEv,_ZTv0_n16_N9GG32313233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32313233barEv,_ZThn48_N9GG32313233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32313233barEv,_ZThn16_N9GG32313233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32313233fooEv,_ZTv0_n12_N9GG32313233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32313233fooEv,_ZThn48_N9GG32313233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32313233fooEv,_ZThn40_N9GG32313233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32313233fooEv,_ZThn16_N9GG32313233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG32313233barEv,_ZTv0_n24_N9GG32313233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32313233barEv,_ZThn8_N9GG32313233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32313233fooEv,_ZTv0_n20_N9GG32313233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32313233fooEv,_ZThn8_N9GG32313233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3231323 = { "GG3231323", // class name
+ bases_GG3231323, 6,
+ &(vtc_GG3231323[0]), // expected_vtbl_contents
+ &(vtt_GG3231323[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3231323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3231323),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3231323),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names907,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3231333 : virtual EE323 , virtual FF133 {
+ int pg;
+ virtual void foo(); // _ZN9GG32313333fooEv
+ virtual void bar(); // _ZN9GG32313333barEv
+ ~GG3231333(); // tgen
+ GG3231333(); // tgen
+};
+//SIG(1 GG3231333) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3231333 ::foo(){vfunc_called(this, "_ZN9GG32313333fooEv");}
+void GG3231333 ::bar(){vfunc_called(this, "_ZN9GG32313333barEv");}
+GG3231333 ::~GG3231333(){ note_dtor("GG3231333", this);} // tgen
+GG3231333 ::GG3231333(){ note_ctor("GG3231333", this);} // tgen
+
+static void Test_GG3231333()
+{
+ extern Class_Descriptor cd_GG3231333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3231333, buf);
+ GG3231333 *dp, &lv = *(dp=new (buf) GG3231333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3231333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3231333)");
+ check_base_class_offset(lv, (AA3*)(EE323*), ABISELECT(32,16), "GG3231333");
+ check_base_class_offset(lv, (BB2*)(EE323*), ABISELECT(48,24), "GG3231333");
+ check_base_class_offset(lv, (EE323*), ABISELECT(16,8), "GG3231333");
+ check_base_class_offset(lv, (AA1*)(FF133*), ABISELECT(80,40), "GG3231333");
+ check_base_class_offset(lv, (BB3*)(FF133*), ABISELECT(96,48), "GG3231333");
+ check_base_class_offset(lv, (FF133*), ABISELECT(64,32), "GG3231333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3231333.pg");
+ test_class_info(&lv, &cd_GG3231333);
+ dp->~GG3231333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3231333(Test_GG3231333, "GG3231333", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3231333C1Ev();
+extern void _ZN9GG3231333D1Ev();
+Name_Map name_map_GG3231333[] = {
+ NSPAIR(_ZN9GG3231333C1Ev),
+ NSPAIR(_ZN9GG3231333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE323;
+extern VTBL_ENTRY _ZTI5EE323[];
+extern VTBL_ENTRY _ZTV5EE323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE323[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF133;
+extern VTBL_ENTRY _ZTI5FF133[];
+extern VTBL_ENTRY _ZTV5FF133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF133[];
+static Base_Class bases_GG3231333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_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_BB2, ABISELECT(48,24), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE323, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 40, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF133, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3231333[];
+extern void _ZN9GG32313333fooEv();
+extern void _ZN9GG32313333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32313333fooEv,_ZTv0_n20_N9GG32313333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32313333fooEv,_ZThn8_N9GG32313333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32313333barEv,_ZTv0_n24_N9GG32313333barEv)();
+extern void ABISELECT(_ZThn16_N9GG32313333barEv,_ZThn8_N9GG32313333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32313333fooEv,_ZTv0_n12_N9GG32313333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32313333fooEv,_ZThn16_N9GG32313333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32313333barEv,_ZTv0_n16_N9GG32313333barEv)();
+extern void ABISELECT(_ZThn32_N9GG32313333barEv,_ZThn16_N9GG32313333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32313333barEv,_ZTv0_n12_N9GG32313333barEv)();
+extern void ABISELECT(_ZThn48_N9GG32313333barEv,_ZThn24_N9GG32313333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32313333fooEv,_ZTv0_n20_N9GG32313333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32313333fooEv,_ZThn32_N9GG32313333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32313333barEv,_ZTv0_n24_N9GG32313333barEv)();
+extern void ABISELECT(_ZThn64_N9GG32313333barEv,_ZThn32_N9GG32313333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32313333fooEv,_ZTv0_n12_N9GG32313333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG32313333fooEv,_ZThn40_N9GG32313333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32313333fooEv,_ZTv0_n12_N9GG32313333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG32313333fooEv,_ZThn48_N9GG32313333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32313333barEv,_ZTv0_n16_N9GG32313333barEv)();
+extern void ABISELECT(_ZThn96_N9GG32313333barEv,_ZThn48_N9GG32313333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3231333[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3231333[0]),
+ (VTBL_ENTRY)&_ZN9GG32313333fooEv,
+ (VTBL_ENTRY)&_ZN9GG32313333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3231333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32313333fooEv,_ZTv0_n20_N9GG32313333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32313333barEv,_ZTv0_n24_N9GG32313333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3231333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32313333fooEv,_ZTv0_n12_N9GG32313333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32313333barEv,_ZTv0_n16_N9GG32313333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3231333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32313333barEv,_ZTv0_n12_N9GG32313333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3231333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32313333fooEv,_ZTv0_n20_N9GG32313333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32313333barEv,_ZTv0_n24_N9GG32313333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3231333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32313333fooEv,_ZTv0_n12_N9GG32313333fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3231333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32313333fooEv,_ZTv0_n12_N9GG32313333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32313333barEv,_ZTv0_n16_N9GG32313333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3231333[];
+extern void _ZN5EE3233fooEv();
+extern void _ZN5EE3233barEv();
+static VTBL_ENTRY _tg__ZTV5EE323__9GG3231333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&_ZN5EE3233fooEv,
+ (VTBL_ENTRY)&_ZN5EE3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv)();
+extern void ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE323__9GG3231333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv)();
+extern void ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE323__9GG3231333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv),
+};
+extern void _ZN5FF1333fooEv();
+extern void _ZN5FF1333barEv();
+static VTBL_ENTRY _tg__ZTV5FF133__9GG3231333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&_ZN5FF1333fooEv,
+ (VTBL_ENTRY)&_ZN5FF1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF133__9GG3231333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1333fooEv,_ZThn16_N5FF1333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv)();
+extern void ABISELECT(_ZThn32_N5FF1333barEv,_ZThn16_N5FF1333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF133__9GG3231333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv),
+};
+static VTT_ENTRY vtt_GG3231333[] = {
+ {&(_ZTV9GG3231333[8]), 8,46},
+ {&(_ZTV9GG3231333[16]), 16,46},
+ {&(_ZTV9GG3231333[22]), 22,46},
+ {&(_ZTV9GG3231333[27]), 27,46},
+ {&(_ZTV9GG3231333[34]), 34,46},
+ {&(_ZTV9GG3231333[39]), 39,46},
+ {&(_ZTV9GG3231333[44]), 44,46},
+ {&(_tg__ZTV5EE323__9GG3231333[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE323__9GG3231333[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE323__9GG3231333[3]), 3,4},
+ {&(_tg__ZTV5FF133__9GG3231333[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF133__9GG3231333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF133__9GG3231333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3231333[];
+extern VTBL_ENTRY _ZTV9GG3231333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3231333[];
+static VTBL_ENTRY alt_thunk_names908[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1333barEv,_ZThn16_N5FF1333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1333fooEv,_ZThn16_N5FF1333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32313333barEv,_ZTv0_n12_N9GG32313333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32313333barEv,_ZThn24_N9GG32313333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32313333barEv,_ZTv0_n16_N9GG32313333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32313333barEv,_ZThn48_N9GG32313333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32313333barEv,_ZThn16_N9GG32313333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32313333fooEv,_ZTv0_n12_N9GG32313333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32313333fooEv,_ZThn48_N9GG32313333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32313333fooEv,_ZThn40_N9GG32313333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32313333fooEv,_ZThn16_N9GG32313333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG32313333barEv,_ZTv0_n24_N9GG32313333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32313333barEv,_ZThn32_N9GG32313333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32313333barEv,_ZThn8_N9GG32313333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32313333fooEv,_ZTv0_n20_N9GG32313333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32313333fooEv,_ZThn32_N9GG32313333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32313333fooEv,_ZThn8_N9GG32313333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3231333 = { "GG3231333", // class name
+ bases_GG3231333, 6,
+ &(vtc_GG3231333[0]), // expected_vtbl_contents
+ &(vtt_GG3231333[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3231333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3231333),46, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3231333),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names908,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3232113 : virtual EE323 , virtual FF211 {
+ int pg;
+ virtual void foo(); // _ZN9GG32321133fooEv
+ virtual void bar(); // _ZN9GG32321133barEv
+ ~GG3232113(); // tgen
+ GG3232113(); // tgen
+};
+//SIG(1 GG3232113) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3232113 ::foo(){vfunc_called(this, "_ZN9GG32321133fooEv");}
+void GG3232113 ::bar(){vfunc_called(this, "_ZN9GG32321133barEv");}
+GG3232113 ::~GG3232113(){ note_dtor("GG3232113", this);} // tgen
+GG3232113 ::GG3232113(){ note_ctor("GG3232113", this);} // tgen
+
+static void Test_GG3232113()
+{
+ extern Class_Descriptor cd_GG3232113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3232113, buf);
+ GG3232113 *dp, &lv = *(dp=new (buf) GG3232113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3232113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3232113)");
+ check_base_class_offset(lv, (AA3*)(EE323*), ABISELECT(32,16), "GG3232113");
+ check_base_class_offset(lv, (BB2*)(EE323*), ABISELECT(48,24), "GG3232113");
+ check_base_class_offset(lv, (EE323*), ABISELECT(16,8), "GG3232113");
+ check_base_class_offset(lv, (AA2*)(FF211*), ABISELECT(80,40), "GG3232113");
+ check_base_class_offset(lv, (BB1*)(FF211*), ABISELECT(96,48), "GG3232113");
+ check_base_class_offset(lv, (FF211*), ABISELECT(64,32), "GG3232113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3232113.pg");
+ test_class_info(&lv, &cd_GG3232113);
+ dp->~GG3232113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3232113(Test_GG3232113, "GG3232113", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3232113C1Ev();
+extern void _ZN9GG3232113D1Ev();
+Name_Map name_map_GG3232113[] = {
+ NSPAIR(_ZN9GG3232113C1Ev),
+ NSPAIR(_ZN9GG3232113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE323;
+extern VTBL_ENTRY _ZTI5EE323[];
+extern VTBL_ENTRY _ZTV5EE323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE323[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF211;
+extern VTBL_ENTRY _ZTI5FF211[];
+extern VTBL_ENTRY _ZTV5FF211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF211[];
+static Base_Class bases_GG3232113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_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_BB2, ABISELECT(48,24), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE323, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF211, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3232113[];
+extern void _ZN9GG32321133fooEv();
+extern void _ZN9GG32321133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32321133fooEv,_ZTv0_n20_N9GG32321133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32321133fooEv,_ZThn8_N9GG32321133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32321133barEv,_ZTv0_n24_N9GG32321133barEv)();
+extern void ABISELECT(_ZThn16_N9GG32321133barEv,_ZThn8_N9GG32321133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32321133fooEv,_ZTv0_n12_N9GG32321133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32321133fooEv,_ZThn16_N9GG32321133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32321133barEv,_ZTv0_n16_N9GG32321133barEv)();
+extern void ABISELECT(_ZThn32_N9GG32321133barEv,_ZThn16_N9GG32321133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32321133barEv,_ZTv0_n12_N9GG32321133barEv)();
+extern void ABISELECT(_ZThn48_N9GG32321133barEv,_ZThn24_N9GG32321133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32321133fooEv,_ZTv0_n20_N9GG32321133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32321133fooEv,_ZThn32_N9GG32321133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32321133barEv,_ZTv0_n12_N9GG32321133barEv)();
+extern void ABISELECT(_ZThn80_N9GG32321133barEv,_ZThn40_N9GG32321133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32321133fooEv,_ZTv0_n12_N9GG32321133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG32321133fooEv,_ZThn48_N9GG32321133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3232113[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3232113[0]),
+ (VTBL_ENTRY)&_ZN9GG32321133fooEv,
+ (VTBL_ENTRY)&_ZN9GG32321133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3232113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32321133fooEv,_ZTv0_n20_N9GG32321133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32321133barEv,_ZTv0_n24_N9GG32321133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3232113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32321133fooEv,_ZTv0_n12_N9GG32321133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32321133barEv,_ZTv0_n16_N9GG32321133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3232113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32321133barEv,_ZTv0_n12_N9GG32321133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3232113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32321133fooEv,_ZTv0_n20_N9GG32321133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3232113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32321133barEv,_ZTv0_n12_N9GG32321133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3232113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32321133fooEv,_ZTv0_n12_N9GG32321133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3232113[];
+extern void _ZN5EE3233fooEv();
+extern void _ZN5EE3233barEv();
+static VTBL_ENTRY _tg__ZTV5EE323__9GG3232113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&_ZN5EE3233fooEv,
+ (VTBL_ENTRY)&_ZN5EE3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv)();
+extern void ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE323__9GG3232113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv)();
+extern void ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE323__9GG3232113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv),
+};
+extern void _ZN5FF2113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF211__9GG3232113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN5FF2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF211__9GG3232113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2113fooEv,_ZThn16_N5FF2113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF211__9GG3232113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv),
+};
+static VTT_ENTRY vtt_GG3232113[] = {
+ {&(_ZTV9GG3232113[8]), 8,42},
+ {&(_ZTV9GG3232113[16]), 16,42},
+ {&(_ZTV9GG3232113[22]), 22,42},
+ {&(_ZTV9GG3232113[27]), 27,42},
+ {&(_ZTV9GG3232113[33]), 33,42},
+ {&(_ZTV9GG3232113[37]), 37,42},
+ {&(_ZTV9GG3232113[41]), 41,42},
+ {&(_tg__ZTV5EE323__9GG3232113[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE323__9GG3232113[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE323__9GG3232113[3]), 3,4},
+ {&(_tg__ZTV5FF211__9GG3232113[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF211__9GG3232113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF211__9GG3232113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3232113[];
+extern VTBL_ENTRY _ZTV9GG3232113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3232113[];
+static VTBL_ENTRY alt_thunk_names909[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2113fooEv,_ZThn16_N5FF2113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32321133barEv,_ZTv0_n12_N9GG32321133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32321133barEv,_ZThn40_N9GG32321133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32321133barEv,_ZThn24_N9GG32321133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32321133barEv,_ZTv0_n16_N9GG32321133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32321133barEv,_ZThn16_N9GG32321133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32321133fooEv,_ZTv0_n12_N9GG32321133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32321133fooEv,_ZThn48_N9GG32321133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32321133fooEv,_ZThn16_N9GG32321133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG32321133barEv,_ZTv0_n24_N9GG32321133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32321133barEv,_ZThn8_N9GG32321133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32321133fooEv,_ZTv0_n20_N9GG32321133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32321133fooEv,_ZThn32_N9GG32321133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32321133fooEv,_ZThn8_N9GG32321133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3232113 = { "GG3232113", // class name
+ bases_GG3232113, 6,
+ &(vtc_GG3232113[0]), // expected_vtbl_contents
+ &(vtt_GG3232113[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3232113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3232113),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3232113),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names909,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3232123 : virtual EE323 , virtual FF212 {
+ int pg;
+ virtual void foo(); // _ZN9GG32321233fooEv
+ virtual void bar(); // _ZN9GG32321233barEv
+ ~GG3232123(); // tgen
+ GG3232123(); // tgen
+};
+//SIG(1 GG3232123) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3232123 ::foo(){vfunc_called(this, "_ZN9GG32321233fooEv");}
+void GG3232123 ::bar(){vfunc_called(this, "_ZN9GG32321233barEv");}
+GG3232123 ::~GG3232123(){ note_dtor("GG3232123", this);} // tgen
+GG3232123 ::GG3232123(){ note_ctor("GG3232123", this);} // tgen
+
+static void Test_GG3232123()
+{
+ extern Class_Descriptor cd_GG3232123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3232123, buf);
+ GG3232123 *dp, &lv = *(dp=new (buf) GG3232123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3232123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3232123)");
+ check_base_class_offset(lv, (AA3*)(EE323*), ABISELECT(32,16), "GG3232123");
+ check_base_class_offset(lv, (BB2*)(EE323*), ABISELECT(48,24), "GG3232123");
+ check_base_class_offset(lv, (EE323*), ABISELECT(16,8), "GG3232123");
+ check_base_class_offset(lv, (AA2*)(FF212*), ABISELECT(80,40), "GG3232123");
+ check_base_class_offset(lv, (BB1*)(FF212*), ABISELECT(96,48), "GG3232123");
+ check_base_class_offset(lv, (FF212*), ABISELECT(64,32), "GG3232123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3232123.pg");
+ test_class_info(&lv, &cd_GG3232123);
+ dp->~GG3232123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3232123(Test_GG3232123, "GG3232123", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3232123C1Ev();
+extern void _ZN9GG3232123D1Ev();
+Name_Map name_map_GG3232123[] = {
+ NSPAIR(_ZN9GG3232123C1Ev),
+ NSPAIR(_ZN9GG3232123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE323;
+extern VTBL_ENTRY _ZTI5EE323[];
+extern VTBL_ENTRY _ZTV5EE323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE323[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF212;
+extern VTBL_ENTRY _ZTI5FF212[];
+extern VTBL_ENTRY _ZTV5FF212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF212[];
+static Base_Class bases_GG3232123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_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_BB2, ABISELECT(48,24), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE323, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF212, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3232123[];
+extern void _ZN9GG32321233fooEv();
+extern void _ZN9GG32321233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32321233fooEv,_ZTv0_n20_N9GG32321233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32321233fooEv,_ZThn8_N9GG32321233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32321233barEv,_ZTv0_n24_N9GG32321233barEv)();
+extern void ABISELECT(_ZThn16_N9GG32321233barEv,_ZThn8_N9GG32321233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32321233fooEv,_ZTv0_n12_N9GG32321233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32321233fooEv,_ZThn16_N9GG32321233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32321233barEv,_ZTv0_n16_N9GG32321233barEv)();
+extern void ABISELECT(_ZThn32_N9GG32321233barEv,_ZThn16_N9GG32321233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32321233barEv,_ZTv0_n12_N9GG32321233barEv)();
+extern void ABISELECT(_ZThn48_N9GG32321233barEv,_ZThn24_N9GG32321233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32321233barEv,_ZTv0_n20_N9GG32321233barEv)();
+extern void ABISELECT(_ZThn64_N9GG32321233barEv,_ZThn32_N9GG32321233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32321233barEv,_ZTv0_n12_N9GG32321233barEv)();
+extern void ABISELECT(_ZThn80_N9GG32321233barEv,_ZThn40_N9GG32321233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32321233fooEv,_ZTv0_n12_N9GG32321233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG32321233fooEv,_ZThn48_N9GG32321233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3232123[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3232123[0]),
+ (VTBL_ENTRY)&_ZN9GG32321233fooEv,
+ (VTBL_ENTRY)&_ZN9GG32321233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3232123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32321233fooEv,_ZTv0_n20_N9GG32321233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32321233barEv,_ZTv0_n24_N9GG32321233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3232123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32321233fooEv,_ZTv0_n12_N9GG32321233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32321233barEv,_ZTv0_n16_N9GG32321233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3232123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32321233barEv,_ZTv0_n12_N9GG32321233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3232123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32321233barEv,_ZTv0_n20_N9GG32321233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3232123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32321233barEv,_ZTv0_n12_N9GG32321233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3232123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32321233fooEv,_ZTv0_n12_N9GG32321233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3232123[];
+extern void _ZN5EE3233fooEv();
+extern void _ZN5EE3233barEv();
+static VTBL_ENTRY _tg__ZTV5EE323__9GG3232123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&_ZN5EE3233fooEv,
+ (VTBL_ENTRY)&_ZN5EE3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv)();
+extern void ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE323__9GG3232123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv)();
+extern void ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE323__9GG3232123[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv),
+};
+extern void _ZN5FF2123barEv();
+static VTBL_ENTRY _tg__ZTV5FF212__9GG3232123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN5FF2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv)();
+extern void ABISELECT(_ZThn16_N5FF2123barEv,_ZThn8_N5FF2123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF212__9GG3232123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF212__9GG3232123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG3232123[] = {
+ {&(_ZTV9GG3232123[8]), 8,42},
+ {&(_ZTV9GG3232123[16]), 16,42},
+ {&(_ZTV9GG3232123[22]), 22,42},
+ {&(_ZTV9GG3232123[27]), 27,42},
+ {&(_ZTV9GG3232123[33]), 33,42},
+ {&(_ZTV9GG3232123[37]), 37,42},
+ {&(_ZTV9GG3232123[41]), 41,42},
+ {&(_tg__ZTV5EE323__9GG3232123[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE323__9GG3232123[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE323__9GG3232123[3]), 3,4},
+ {&(_tg__ZTV5FF212__9GG3232123[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF212__9GG3232123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF212__9GG3232123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3232123[];
+extern VTBL_ENTRY _ZTV9GG3232123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3232123[];
+static VTBL_ENTRY alt_thunk_names910[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2123barEv,_ZThn8_N5FF2123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32321233barEv,_ZTv0_n20_N9GG32321233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32321233barEv,_ZThn32_N9GG32321233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32321233barEv,_ZTv0_n12_N9GG32321233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32321233barEv,_ZThn40_N9GG32321233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32321233barEv,_ZThn24_N9GG32321233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32321233barEv,_ZTv0_n16_N9GG32321233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32321233barEv,_ZThn16_N9GG32321233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32321233fooEv,_ZTv0_n12_N9GG32321233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32321233fooEv,_ZThn48_N9GG32321233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32321233fooEv,_ZThn16_N9GG32321233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG32321233barEv,_ZTv0_n24_N9GG32321233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32321233barEv,_ZThn8_N9GG32321233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32321233fooEv,_ZTv0_n20_N9GG32321233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32321233fooEv,_ZThn8_N9GG32321233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3232123 = { "GG3232123", // class name
+ bases_GG3232123, 6,
+ &(vtc_GG3232123[0]), // expected_vtbl_contents
+ &(vtt_GG3232123[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3232123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3232123),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3232123),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names910,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3232133 : virtual EE323 , virtual FF213 {
+ int pg;
+ virtual void foo(); // _ZN9GG32321333fooEv
+ virtual void bar(); // _ZN9GG32321333barEv
+ ~GG3232133(); // tgen
+ GG3232133(); // tgen
+};
+//SIG(1 GG3232133) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3232133 ::foo(){vfunc_called(this, "_ZN9GG32321333fooEv");}
+void GG3232133 ::bar(){vfunc_called(this, "_ZN9GG32321333barEv");}
+GG3232133 ::~GG3232133(){ note_dtor("GG3232133", this);} // tgen
+GG3232133 ::GG3232133(){ note_ctor("GG3232133", this);} // tgen
+
+static void Test_GG3232133()
+{
+ extern Class_Descriptor cd_GG3232133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3232133, buf);
+ GG3232133 *dp, &lv = *(dp=new (buf) GG3232133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3232133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3232133)");
+ check_base_class_offset(lv, (AA3*)(EE323*), ABISELECT(32,16), "GG3232133");
+ check_base_class_offset(lv, (BB2*)(EE323*), ABISELECT(48,24), "GG3232133");
+ check_base_class_offset(lv, (EE323*), ABISELECT(16,8), "GG3232133");
+ check_base_class_offset(lv, (AA2*)(FF213*), ABISELECT(80,40), "GG3232133");
+ check_base_class_offset(lv, (BB1*)(FF213*), ABISELECT(96,48), "GG3232133");
+ check_base_class_offset(lv, (FF213*), ABISELECT(64,32), "GG3232133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3232133.pg");
+ test_class_info(&lv, &cd_GG3232133);
+ dp->~GG3232133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3232133(Test_GG3232133, "GG3232133", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3232133C1Ev();
+extern void _ZN9GG3232133D1Ev();
+Name_Map name_map_GG3232133[] = {
+ NSPAIR(_ZN9GG3232133C1Ev),
+ NSPAIR(_ZN9GG3232133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE323;
+extern VTBL_ENTRY _ZTI5EE323[];
+extern VTBL_ENTRY _ZTV5EE323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE323[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF213;
+extern VTBL_ENTRY _ZTI5FF213[];
+extern VTBL_ENTRY _ZTV5FF213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF213[];
+static Base_Class bases_GG3232133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_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_BB2, ABISELECT(48,24), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE323, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 40, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF213, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3232133[];
+extern void _ZN9GG32321333fooEv();
+extern void _ZN9GG32321333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32321333fooEv,_ZTv0_n20_N9GG32321333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32321333fooEv,_ZThn8_N9GG32321333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32321333barEv,_ZTv0_n24_N9GG32321333barEv)();
+extern void ABISELECT(_ZThn16_N9GG32321333barEv,_ZThn8_N9GG32321333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32321333fooEv,_ZTv0_n12_N9GG32321333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32321333fooEv,_ZThn16_N9GG32321333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32321333barEv,_ZTv0_n16_N9GG32321333barEv)();
+extern void ABISELECT(_ZThn32_N9GG32321333barEv,_ZThn16_N9GG32321333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32321333barEv,_ZTv0_n12_N9GG32321333barEv)();
+extern void ABISELECT(_ZThn48_N9GG32321333barEv,_ZThn24_N9GG32321333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32321333fooEv,_ZTv0_n20_N9GG32321333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32321333fooEv,_ZThn32_N9GG32321333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32321333barEv,_ZTv0_n24_N9GG32321333barEv)();
+extern void ABISELECT(_ZThn64_N9GG32321333barEv,_ZThn32_N9GG32321333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32321333barEv,_ZTv0_n12_N9GG32321333barEv)();
+extern void ABISELECT(_ZThn80_N9GG32321333barEv,_ZThn40_N9GG32321333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32321333fooEv,_ZTv0_n12_N9GG32321333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG32321333fooEv,_ZThn48_N9GG32321333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3232133[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3232133[0]),
+ (VTBL_ENTRY)&_ZN9GG32321333fooEv,
+ (VTBL_ENTRY)&_ZN9GG32321333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3232133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32321333fooEv,_ZTv0_n20_N9GG32321333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32321333barEv,_ZTv0_n24_N9GG32321333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3232133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32321333fooEv,_ZTv0_n12_N9GG32321333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32321333barEv,_ZTv0_n16_N9GG32321333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3232133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32321333barEv,_ZTv0_n12_N9GG32321333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3232133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32321333fooEv,_ZTv0_n20_N9GG32321333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32321333barEv,_ZTv0_n24_N9GG32321333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3232133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32321333barEv,_ZTv0_n12_N9GG32321333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3232133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32321333fooEv,_ZTv0_n12_N9GG32321333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3232133[];
+extern void _ZN5EE3233fooEv();
+extern void _ZN5EE3233barEv();
+static VTBL_ENTRY _tg__ZTV5EE323__9GG3232133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&_ZN5EE3233fooEv,
+ (VTBL_ENTRY)&_ZN5EE3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv)();
+extern void ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE323__9GG3232133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv)();
+extern void ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE323__9GG3232133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv),
+};
+extern void _ZN5FF2133fooEv();
+extern void _ZN5FF2133barEv();
+static VTBL_ENTRY _tg__ZTV5FF213__9GG3232133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&_ZN5FF2133fooEv,
+ (VTBL_ENTRY)&_ZN5FF2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv)();
+extern void ABISELECT(_ZThn16_N5FF2133barEv,_ZThn8_N5FF2133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF213__9GG3232133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2133fooEv,_ZThn16_N5FF2133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF213__9GG3232133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv),
+};
+static VTT_ENTRY vtt_GG3232133[] = {
+ {&(_ZTV9GG3232133[8]), 8,44},
+ {&(_ZTV9GG3232133[16]), 16,44},
+ {&(_ZTV9GG3232133[22]), 22,44},
+ {&(_ZTV9GG3232133[27]), 27,44},
+ {&(_ZTV9GG3232133[34]), 34,44},
+ {&(_ZTV9GG3232133[39]), 39,44},
+ {&(_ZTV9GG3232133[43]), 43,44},
+ {&(_tg__ZTV5EE323__9GG3232133[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE323__9GG3232133[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE323__9GG3232133[3]), 3,4},
+ {&(_tg__ZTV5FF213__9GG3232133[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF213__9GG3232133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF213__9GG3232133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3232133[];
+extern VTBL_ENTRY _ZTV9GG3232133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3232133[];
+static VTBL_ENTRY alt_thunk_names911[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2133fooEv,_ZThn16_N5FF2133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2133barEv,_ZThn8_N5FF2133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32321333barEv,_ZTv0_n12_N9GG32321333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32321333barEv,_ZThn40_N9GG32321333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32321333barEv,_ZThn24_N9GG32321333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32321333barEv,_ZTv0_n16_N9GG32321333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32321333barEv,_ZThn16_N9GG32321333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32321333fooEv,_ZTv0_n12_N9GG32321333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32321333fooEv,_ZThn48_N9GG32321333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32321333fooEv,_ZThn16_N9GG32321333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG32321333barEv,_ZTv0_n24_N9GG32321333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32321333barEv,_ZThn32_N9GG32321333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32321333barEv,_ZThn8_N9GG32321333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32321333fooEv,_ZTv0_n20_N9GG32321333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32321333fooEv,_ZThn32_N9GG32321333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32321333fooEv,_ZThn8_N9GG32321333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3232133 = { "GG3232133", // class name
+ bases_GG3232133, 6,
+ &(vtc_GG3232133[0]), // expected_vtbl_contents
+ &(vtt_GG3232133[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3232133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3232133),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3232133),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names911,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3232213 : virtual EE323 , virtual FF221 {
+ int pg;
+ virtual void foo(); // _ZN9GG32322133fooEv
+ virtual void bar(); // _ZN9GG32322133barEv
+ ~GG3232213(); // tgen
+ GG3232213(); // tgen
+};
+//SIG(1 GG3232213) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG3232213 ::foo(){vfunc_called(this, "_ZN9GG32322133fooEv");}
+void GG3232213 ::bar(){vfunc_called(this, "_ZN9GG32322133barEv");}
+GG3232213 ::~GG3232213(){ note_dtor("GG3232213", this);} // tgen
+GG3232213 ::GG3232213(){ note_ctor("GG3232213", this);} // tgen
+
+static void Test_GG3232213()
+{
+ extern Class_Descriptor cd_GG3232213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3232213, buf);
+ GG3232213 *dp, &lv = *(dp=new (buf) GG3232213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3232213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3232213)");
+ check_base_class_offset(lv, (AA3*)(EE323*), ABISELECT(32,16), "GG3232213");
+ check_base_class_offset(lv, (BB2*)(EE323*), ABISELECT(48,24), "GG3232213");
+ check_base_class_offset(lv, (BB2*)(FF221*), ABISELECT(48,24), "GG3232213");
+ check_base_class_offset(lv, (EE323*), ABISELECT(16,8), "GG3232213");
+ check_base_class_offset(lv, (AA2*)(FF221*), ABISELECT(80,40), "GG3232213");
+ check_base_class_offset(lv, (FF221*), ABISELECT(64,32), "GG3232213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3232213.pg");
+ test_class_info(&lv, &cd_GG3232213);
+ dp->~GG3232213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3232213(Test_GG3232213, "GG3232213", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3232213C1Ev();
+extern void _ZN9GG3232213D1Ev();
+Name_Map name_map_GG3232213[] = {
+ NSPAIR(_ZN9GG3232213C1Ev),
+ NSPAIR(_ZN9GG3232213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE323;
+extern VTBL_ENTRY _ZTI5EE323[];
+extern VTBL_ENTRY _ZTV5EE323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE323[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF221;
+extern VTBL_ENTRY _ZTI5FF221[];
+extern VTBL_ENTRY _ZTV5FF221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF221[];
+static Base_Class bases_GG3232213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE323, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF221, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3232213[];
+extern void _ZN9GG32322133fooEv();
+extern void _ZN9GG32322133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32322133fooEv,_ZTv0_n20_N9GG32322133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32322133fooEv,_ZThn8_N9GG32322133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32322133barEv,_ZTv0_n24_N9GG32322133barEv)();
+extern void ABISELECT(_ZThn16_N9GG32322133barEv,_ZThn8_N9GG32322133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32322133fooEv,_ZTv0_n12_N9GG32322133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32322133fooEv,_ZThn16_N9GG32322133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32322133barEv,_ZTv0_n16_N9GG32322133barEv)();
+extern void ABISELECT(_ZThn32_N9GG32322133barEv,_ZThn16_N9GG32322133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32322133barEv,_ZTv0_n12_N9GG32322133barEv)();
+extern void ABISELECT(_ZThn48_N9GG32322133barEv,_ZThn24_N9GG32322133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32322133fooEv,_ZTv0_n20_N9GG32322133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32322133fooEv,_ZThn32_N9GG32322133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32322133barEv,_ZTv0_n12_N9GG32322133barEv)();
+extern void ABISELECT(_ZThn80_N9GG32322133barEv,_ZThn40_N9GG32322133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3232213[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3232213[0]),
+ (VTBL_ENTRY)&_ZN9GG32322133fooEv,
+ (VTBL_ENTRY)&_ZN9GG32322133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3232213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32322133fooEv,_ZTv0_n20_N9GG32322133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32322133barEv,_ZTv0_n24_N9GG32322133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3232213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32322133fooEv,_ZTv0_n12_N9GG32322133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32322133barEv,_ZTv0_n16_N9GG32322133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3232213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32322133barEv,_ZTv0_n12_N9GG32322133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3232213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32322133fooEv,_ZTv0_n20_N9GG32322133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3232213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32322133barEv,_ZTv0_n12_N9GG32322133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3232213[];
+extern void _ZN5EE3233fooEv();
+extern void _ZN5EE3233barEv();
+static VTBL_ENTRY _tg__ZTV5EE323__9GG3232213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&_ZN5EE3233fooEv,
+ (VTBL_ENTRY)&_ZN5EE3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv)();
+extern void ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE323__9GG3232213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv)();
+extern void ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE323__9GG3232213[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv),
+};
+extern void _ZN5FF2213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF221__9GG3232213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN5FF2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF221__9GG3232213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF221__9GG3232213[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG3232213[] = {
+ {&(_ZTV9GG3232213[7]), 7,37},
+ {&(_ZTV9GG3232213[15]), 15,37},
+ {&(_ZTV9GG3232213[21]), 21,37},
+ {&(_ZTV9GG3232213[26]), 26,37},
+ {&(_ZTV9GG3232213[32]), 32,37},
+ {&(_ZTV9GG3232213[36]), 36,37},
+ {&(_tg__ZTV5EE323__9GG3232213[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE323__9GG3232213[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE323__9GG3232213[3]), 3,4},
+ {&(_tg__ZTV5FF221__9GG3232213[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF221__9GG3232213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF221__9GG3232213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3232213[];
+extern VTBL_ENTRY _ZTV9GG3232213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3232213[];
+static VTBL_ENTRY alt_thunk_names912[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32322133barEv,_ZTv0_n12_N9GG32322133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32322133barEv,_ZThn40_N9GG32322133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32322133barEv,_ZThn24_N9GG32322133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32322133barEv,_ZTv0_n16_N9GG32322133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32322133barEv,_ZThn16_N9GG32322133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32322133fooEv,_ZTv0_n12_N9GG32322133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32322133fooEv,_ZThn16_N9GG32322133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG32322133barEv,_ZTv0_n24_N9GG32322133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32322133barEv,_ZThn8_N9GG32322133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32322133fooEv,_ZTv0_n20_N9GG32322133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32322133fooEv,_ZThn32_N9GG32322133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32322133fooEv,_ZThn8_N9GG32322133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3232213 = { "GG3232213", // class name
+ bases_GG3232213, 5,
+ &(vtc_GG3232213[0]), // expected_vtbl_contents
+ &(vtt_GG3232213[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3232213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3232213),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3232213),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names912,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3232222 : virtual EE323 , virtual FF222 {
+ int pg;
+ virtual void bar(); // _ZN9GG32322223barEv
+ ~GG3232222(); // tgen
+ GG3232222(); // tgen
+};
+//SIG(1 GG3232222) C1{ VBC2{ VBC3{ v2 v1 Fi} VBC4{ v1 Fi} v2 v1 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v1 Fi} v1 Fi}
+
+
+void GG3232222 ::bar(){vfunc_called(this, "_ZN9GG32322223barEv");}
+GG3232222 ::~GG3232222(){ note_dtor("GG3232222", this);} // tgen
+GG3232222 ::GG3232222(){ note_ctor("GG3232222", this);} // tgen
+
+static void Test_GG3232222()
+{
+ extern Class_Descriptor cd_GG3232222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3232222, buf);
+ GG3232222 *dp, &lv = *(dp=new (buf) GG3232222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3232222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3232222)");
+ check_base_class_offset(lv, (AA3*)(EE323*), ABISELECT(32,16), "GG3232222");
+ check_base_class_offset(lv, (BB2*)(EE323*), ABISELECT(48,24), "GG3232222");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(48,24), "GG3232222");
+ check_base_class_offset(lv, (EE323*), ABISELECT(16,8), "GG3232222");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(80,40), "GG3232222");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG3232222");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3232222.pg");
+ test_class_info(&lv, &cd_GG3232222);
+ dp->~GG3232222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3232222(Test_GG3232222, "GG3232222", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3232222C1Ev();
+extern void _ZN9GG3232222D1Ev();
+Name_Map name_map_GG3232222[] = {
+ NSPAIR(_ZN9GG3232222C1Ev),
+ NSPAIR(_ZN9GG3232222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE323;
+extern VTBL_ENTRY _ZTI5EE323[];
+extern VTBL_ENTRY _ZTV5EE323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE323[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG3232222[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE323, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 32, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3232222[];
+extern void _ZN9GG32322223barEv();
+extern void _ZN5EE3233fooEv();
+extern void ABISELECT(_ZTv0_n48_N9GG32322223barEv,_ZTv0_n24_N9GG32322223barEv)();
+extern void ABISELECT(_ZThn16_N9GG32322223barEv,_ZThn8_N9GG32322223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32322223barEv,_ZTv0_n16_N9GG32322223barEv)();
+extern void ABISELECT(_ZThn32_N9GG32322223barEv,_ZThn16_N9GG32322223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32322223barEv,_ZTv0_n12_N9GG32322223barEv)();
+extern void ABISELECT(_ZThn48_N9GG32322223barEv,_ZThn24_N9GG32322223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32322223barEv,_ZTv0_n20_N9GG32322223barEv)();
+extern void ABISELECT(_ZThn64_N9GG32322223barEv,_ZThn32_N9GG32322223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32322223barEv,_ZTv0_n12_N9GG32322223barEv)();
+extern void ABISELECT(_ZThn80_N9GG32322223barEv,_ZThn40_N9GG32322223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3232222[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3232222[0]),
+ (VTBL_ENTRY)&_ZN9GG32322223barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3232222[0]),
+ (VTBL_ENTRY)&_ZN5EE3233fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32322223barEv,_ZTv0_n24_N9GG32322223barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3232222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32322223barEv,_ZTv0_n16_N9GG32322223barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3232222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32322223barEv,_ZTv0_n12_N9GG32322223barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3232222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32322223barEv,_ZTv0_n20_N9GG32322223barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3232222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32322223barEv,_ZTv0_n12_N9GG32322223barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3232222[];
+extern void _ZN5EE3233fooEv();
+extern void _ZN5EE3233barEv();
+static VTBL_ENTRY _tg__ZTV5EE323__9GG3232222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&_ZN5EE3233fooEv,
+ (VTBL_ENTRY)&_ZN5EE3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv)();
+extern void ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE323__9GG3232222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv)();
+extern void ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE323__9GG3232222[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv),
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG3232222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG3232222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG3232222[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG3232222[] = {
+ {&(_ZTV9GG3232222[7]), 7,36},
+ {&(_ZTV9GG3232222[14]), 14,36},
+ {&(_ZTV9GG3232222[20]), 20,36},
+ {&(_ZTV9GG3232222[25]), 25,36},
+ {&(_ZTV9GG3232222[31]), 31,36},
+ {&(_ZTV9GG3232222[35]), 35,36},
+ {&(_tg__ZTV5EE323__9GG3232222[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE323__9GG3232222[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE323__9GG3232222[3]), 3,4},
+ {&(_tg__ZTV5FF222__9GG3232222[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG3232222[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG3232222[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3232222[];
+extern VTBL_ENTRY _ZTV9GG3232222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3232222[];
+static VTBL_ENTRY alt_thunk_names913[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32322223barEv,_ZTv0_n20_N9GG32322223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32322223barEv,_ZThn32_N9GG32322223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32322223barEv,_ZTv0_n12_N9GG32322223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32322223barEv,_ZThn40_N9GG32322223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32322223barEv,_ZThn24_N9GG32322223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32322223barEv,_ZTv0_n16_N9GG32322223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32322223barEv,_ZThn16_N9GG32322223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG32322223barEv,_ZTv0_n24_N9GG32322223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32322223barEv,_ZThn8_N9GG32322223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3232222 = { "GG3232222", // class name
+ bases_GG3232222, 5,
+ &(vtc_GG3232222[0]), // expected_vtbl_contents
+ &(vtt_GG3232222[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3232222),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3232222),36, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3232222),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names913,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3232223 : virtual EE323 , virtual FF222 {
+ int pg;
+ virtual void foo(); // _ZN9GG32322233fooEv
+ virtual void bar(); // _ZN9GG32322233barEv
+ ~GG3232223(); // tgen
+ GG3232223(); // tgen
+};
+//SIG(1 GG3232223) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG3232223 ::foo(){vfunc_called(this, "_ZN9GG32322233fooEv");}
+void GG3232223 ::bar(){vfunc_called(this, "_ZN9GG32322233barEv");}
+GG3232223 ::~GG3232223(){ note_dtor("GG3232223", this);} // tgen
+GG3232223 ::GG3232223(){ note_ctor("GG3232223", this);} // tgen
+
+static void Test_GG3232223()
+{
+ extern Class_Descriptor cd_GG3232223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3232223, buf);
+ GG3232223 *dp, &lv = *(dp=new (buf) GG3232223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3232223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3232223)");
+ check_base_class_offset(lv, (AA3*)(EE323*), ABISELECT(32,16), "GG3232223");
+ check_base_class_offset(lv, (BB2*)(EE323*), ABISELECT(48,24), "GG3232223");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(48,24), "GG3232223");
+ check_base_class_offset(lv, (EE323*), ABISELECT(16,8), "GG3232223");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(80,40), "GG3232223");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG3232223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3232223.pg");
+ test_class_info(&lv, &cd_GG3232223);
+ dp->~GG3232223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3232223(Test_GG3232223, "GG3232223", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3232223C1Ev();
+extern void _ZN9GG3232223D1Ev();
+Name_Map name_map_GG3232223[] = {
+ NSPAIR(_ZN9GG3232223C1Ev),
+ NSPAIR(_ZN9GG3232223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE323;
+extern VTBL_ENTRY _ZTI5EE323[];
+extern VTBL_ENTRY _ZTV5EE323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE323[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG3232223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE323, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3232223[];
+extern void _ZN9GG32322233fooEv();
+extern void _ZN9GG32322233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32322233fooEv,_ZTv0_n20_N9GG32322233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32322233fooEv,_ZThn8_N9GG32322233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32322233barEv,_ZTv0_n24_N9GG32322233barEv)();
+extern void ABISELECT(_ZThn16_N9GG32322233barEv,_ZThn8_N9GG32322233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32322233fooEv,_ZTv0_n12_N9GG32322233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32322233fooEv,_ZThn16_N9GG32322233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32322233barEv,_ZTv0_n16_N9GG32322233barEv)();
+extern void ABISELECT(_ZThn32_N9GG32322233barEv,_ZThn16_N9GG32322233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32322233barEv,_ZTv0_n12_N9GG32322233barEv)();
+extern void ABISELECT(_ZThn48_N9GG32322233barEv,_ZThn24_N9GG32322233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32322233barEv,_ZTv0_n20_N9GG32322233barEv)();
+extern void ABISELECT(_ZThn64_N9GG32322233barEv,_ZThn32_N9GG32322233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32322233barEv,_ZTv0_n12_N9GG32322233barEv)();
+extern void ABISELECT(_ZThn80_N9GG32322233barEv,_ZThn40_N9GG32322233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3232223[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3232223[0]),
+ (VTBL_ENTRY)&_ZN9GG32322233fooEv,
+ (VTBL_ENTRY)&_ZN9GG32322233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3232223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32322233fooEv,_ZTv0_n20_N9GG32322233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32322233barEv,_ZTv0_n24_N9GG32322233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3232223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32322233fooEv,_ZTv0_n12_N9GG32322233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32322233barEv,_ZTv0_n16_N9GG32322233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3232223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32322233barEv,_ZTv0_n12_N9GG32322233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3232223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32322233barEv,_ZTv0_n20_N9GG32322233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3232223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32322233barEv,_ZTv0_n12_N9GG32322233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3232223[];
+extern void _ZN5EE3233fooEv();
+extern void _ZN5EE3233barEv();
+static VTBL_ENTRY _tg__ZTV5EE323__9GG3232223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&_ZN5EE3233fooEv,
+ (VTBL_ENTRY)&_ZN5EE3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv)();
+extern void ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE323__9GG3232223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv)();
+extern void ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE323__9GG3232223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv),
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG3232223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG3232223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG3232223[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG3232223[] = {
+ {&(_ZTV9GG3232223[7]), 7,37},
+ {&(_ZTV9GG3232223[15]), 15,37},
+ {&(_ZTV9GG3232223[21]), 21,37},
+ {&(_ZTV9GG3232223[26]), 26,37},
+ {&(_ZTV9GG3232223[32]), 32,37},
+ {&(_ZTV9GG3232223[36]), 36,37},
+ {&(_tg__ZTV5EE323__9GG3232223[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE323__9GG3232223[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE323__9GG3232223[3]), 3,4},
+ {&(_tg__ZTV5FF222__9GG3232223[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG3232223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG3232223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3232223[];
+extern VTBL_ENTRY _ZTV9GG3232223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3232223[];
+static VTBL_ENTRY alt_thunk_names914[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32322233barEv,_ZTv0_n20_N9GG32322233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32322233barEv,_ZThn32_N9GG32322233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32322233barEv,_ZTv0_n12_N9GG32322233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32322233barEv,_ZThn40_N9GG32322233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32322233barEv,_ZThn24_N9GG32322233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32322233barEv,_ZTv0_n16_N9GG32322233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32322233barEv,_ZThn16_N9GG32322233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32322233fooEv,_ZTv0_n12_N9GG32322233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32322233fooEv,_ZThn16_N9GG32322233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG32322233barEv,_ZTv0_n24_N9GG32322233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32322233barEv,_ZThn8_N9GG32322233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32322233fooEv,_ZTv0_n20_N9GG32322233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32322233fooEv,_ZThn8_N9GG32322233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3232223 = { "GG3232223", // class name
+ bases_GG3232223, 5,
+ &(vtc_GG3232223[0]), // expected_vtbl_contents
+ &(vtt_GG3232223[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3232223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3232223),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3232223),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names914,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3232233 : virtual EE323 , virtual FF223 {
+ int pg;
+ virtual void foo(); // _ZN9GG32322333fooEv
+ virtual void bar(); // _ZN9GG32322333barEv
+ ~GG3232233(); // tgen
+ GG3232233(); // tgen
+};
+//SIG(1 GG3232233) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3232233 ::foo(){vfunc_called(this, "_ZN9GG32322333fooEv");}
+void GG3232233 ::bar(){vfunc_called(this, "_ZN9GG32322333barEv");}
+GG3232233 ::~GG3232233(){ note_dtor("GG3232233", this);} // tgen
+GG3232233 ::GG3232233(){ note_ctor("GG3232233", this);} // tgen
+
+static void Test_GG3232233()
+{
+ extern Class_Descriptor cd_GG3232233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3232233, buf);
+ GG3232233 *dp, &lv = *(dp=new (buf) GG3232233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3232233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3232233)");
+ check_base_class_offset(lv, (AA3*)(EE323*), ABISELECT(32,16), "GG3232233");
+ check_base_class_offset(lv, (BB2*)(EE323*), ABISELECT(48,24), "GG3232233");
+ check_base_class_offset(lv, (BB2*)(FF223*), ABISELECT(48,24), "GG3232233");
+ check_base_class_offset(lv, (EE323*), ABISELECT(16,8), "GG3232233");
+ check_base_class_offset(lv, (AA2*)(FF223*), ABISELECT(80,40), "GG3232233");
+ check_base_class_offset(lv, (FF223*), ABISELECT(64,32), "GG3232233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3232233.pg");
+ test_class_info(&lv, &cd_GG3232233);
+ dp->~GG3232233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3232233(Test_GG3232233, "GG3232233", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3232233C1Ev();
+extern void _ZN9GG3232233D1Ev();
+Name_Map name_map_GG3232233[] = {
+ NSPAIR(_ZN9GG3232233C1Ev),
+ NSPAIR(_ZN9GG3232233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE323;
+extern VTBL_ENTRY _ZTI5EE323[];
+extern VTBL_ENTRY _ZTV5EE323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE323[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF223;
+extern VTBL_ENTRY _ZTI5FF223[];
+extern VTBL_ENTRY _ZTV5FF223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF223[];
+static Base_Class bases_GG3232233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE323, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF223, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3232233[];
+extern void _ZN9GG32322333fooEv();
+extern void _ZN9GG32322333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32322333fooEv,_ZTv0_n20_N9GG32322333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32322333fooEv,_ZThn8_N9GG32322333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32322333barEv,_ZTv0_n24_N9GG32322333barEv)();
+extern void ABISELECT(_ZThn16_N9GG32322333barEv,_ZThn8_N9GG32322333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32322333fooEv,_ZTv0_n12_N9GG32322333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32322333fooEv,_ZThn16_N9GG32322333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32322333barEv,_ZTv0_n16_N9GG32322333barEv)();
+extern void ABISELECT(_ZThn32_N9GG32322333barEv,_ZThn16_N9GG32322333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32322333barEv,_ZTv0_n12_N9GG32322333barEv)();
+extern void ABISELECT(_ZThn48_N9GG32322333barEv,_ZThn24_N9GG32322333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32322333fooEv,_ZTv0_n20_N9GG32322333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32322333fooEv,_ZThn32_N9GG32322333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32322333barEv,_ZTv0_n24_N9GG32322333barEv)();
+extern void ABISELECT(_ZThn64_N9GG32322333barEv,_ZThn32_N9GG32322333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32322333barEv,_ZTv0_n12_N9GG32322333barEv)();
+extern void ABISELECT(_ZThn80_N9GG32322333barEv,_ZThn40_N9GG32322333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3232233[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3232233[0]),
+ (VTBL_ENTRY)&_ZN9GG32322333fooEv,
+ (VTBL_ENTRY)&_ZN9GG32322333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3232233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32322333fooEv,_ZTv0_n20_N9GG32322333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32322333barEv,_ZTv0_n24_N9GG32322333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3232233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32322333fooEv,_ZTv0_n12_N9GG32322333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32322333barEv,_ZTv0_n16_N9GG32322333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3232233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32322333barEv,_ZTv0_n12_N9GG32322333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3232233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32322333fooEv,_ZTv0_n20_N9GG32322333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32322333barEv,_ZTv0_n24_N9GG32322333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3232233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32322333barEv,_ZTv0_n12_N9GG32322333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3232233[];
+extern void _ZN5EE3233fooEv();
+extern void _ZN5EE3233barEv();
+static VTBL_ENTRY _tg__ZTV5EE323__9GG3232233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&_ZN5EE3233fooEv,
+ (VTBL_ENTRY)&_ZN5EE3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv)();
+extern void ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE323__9GG3232233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv)();
+extern void ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE323__9GG3232233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv),
+};
+extern void _ZN5FF2233fooEv();
+extern void _ZN5FF2233barEv();
+static VTBL_ENTRY _tg__ZTV5FF223__9GG3232233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&_ZN5FF2233fooEv,
+ (VTBL_ENTRY)&_ZN5FF2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+extern void ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF223__9GG3232233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF223__9GG3232233[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+static VTT_ENTRY vtt_GG3232233[] = {
+ {&(_ZTV9GG3232233[7]), 7,39},
+ {&(_ZTV9GG3232233[15]), 15,39},
+ {&(_ZTV9GG3232233[21]), 21,39},
+ {&(_ZTV9GG3232233[26]), 26,39},
+ {&(_ZTV9GG3232233[33]), 33,39},
+ {&(_ZTV9GG3232233[38]), 38,39},
+ {&(_tg__ZTV5EE323__9GG3232233[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE323__9GG3232233[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE323__9GG3232233[3]), 3,4},
+ {&(_tg__ZTV5FF223__9GG3232233[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF223__9GG3232233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF223__9GG3232233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3232233[];
+extern VTBL_ENTRY _ZTV9GG3232233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3232233[];
+static VTBL_ENTRY alt_thunk_names915[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32322333barEv,_ZTv0_n12_N9GG32322333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32322333barEv,_ZThn40_N9GG32322333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32322333barEv,_ZThn24_N9GG32322333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32322333barEv,_ZTv0_n16_N9GG32322333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32322333barEv,_ZThn16_N9GG32322333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32322333fooEv,_ZTv0_n12_N9GG32322333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32322333fooEv,_ZThn16_N9GG32322333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG32322333barEv,_ZTv0_n24_N9GG32322333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32322333barEv,_ZThn32_N9GG32322333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32322333barEv,_ZThn8_N9GG32322333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32322333fooEv,_ZTv0_n20_N9GG32322333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32322333fooEv,_ZThn32_N9GG32322333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32322333fooEv,_ZThn8_N9GG32322333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3232233 = { "GG3232233", // class name
+ bases_GG3232233, 5,
+ &(vtc_GG3232233[0]), // expected_vtbl_contents
+ &(vtt_GG3232233[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3232233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3232233),39, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3232233),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names915,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3232313 : virtual EE323 , virtual FF231 {
+ int pg;
+ virtual void foo(); // _ZN9GG32323133fooEv
+ virtual void bar(); // _ZN9GG32323133barEv
+ ~GG3232313(); // tgen
+ GG3232313(); // tgen
+};
+//SIG(1 GG3232313) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3232313 ::foo(){vfunc_called(this, "_ZN9GG32323133fooEv");}
+void GG3232313 ::bar(){vfunc_called(this, "_ZN9GG32323133barEv");}
+GG3232313 ::~GG3232313(){ note_dtor("GG3232313", this);} // tgen
+GG3232313 ::GG3232313(){ note_ctor("GG3232313", this);} // tgen
+
+static void Test_GG3232313()
+{
+ extern Class_Descriptor cd_GG3232313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3232313, buf);
+ GG3232313 *dp, &lv = *(dp=new (buf) GG3232313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3232313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3232313)");
+ check_base_class_offset(lv, (AA3*)(EE323*), ABISELECT(32,16), "GG3232313");
+ check_base_class_offset(lv, (BB2*)(EE323*), ABISELECT(48,24), "GG3232313");
+ check_base_class_offset(lv, (EE323*), ABISELECT(16,8), "GG3232313");
+ check_base_class_offset(lv, (AA2*)(FF231*), ABISELECT(80,40), "GG3232313");
+ check_base_class_offset(lv, (BB3*)(FF231*), ABISELECT(96,48), "GG3232313");
+ check_base_class_offset(lv, (FF231*), ABISELECT(64,32), "GG3232313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3232313.pg");
+ test_class_info(&lv, &cd_GG3232313);
+ dp->~GG3232313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3232313(Test_GG3232313, "GG3232313", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3232313C1Ev();
+extern void _ZN9GG3232313D1Ev();
+Name_Map name_map_GG3232313[] = {
+ NSPAIR(_ZN9GG3232313C1Ev),
+ NSPAIR(_ZN9GG3232313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE323;
+extern VTBL_ENTRY _ZTI5EE323[];
+extern VTBL_ENTRY _ZTV5EE323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE323[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF231;
+extern VTBL_ENTRY _ZTI5FF231[];
+extern VTBL_ENTRY _ZTV5FF231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF231[];
+static Base_Class bases_GG3232313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_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_BB2, ABISELECT(48,24), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE323, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF231, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3232313[];
+extern void _ZN9GG32323133fooEv();
+extern void _ZN9GG32323133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32323133fooEv,_ZTv0_n20_N9GG32323133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32323133fooEv,_ZThn8_N9GG32323133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32323133barEv,_ZTv0_n24_N9GG32323133barEv)();
+extern void ABISELECT(_ZThn16_N9GG32323133barEv,_ZThn8_N9GG32323133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32323133fooEv,_ZTv0_n12_N9GG32323133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32323133fooEv,_ZThn16_N9GG32323133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32323133barEv,_ZTv0_n16_N9GG32323133barEv)();
+extern void ABISELECT(_ZThn32_N9GG32323133barEv,_ZThn16_N9GG32323133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32323133barEv,_ZTv0_n12_N9GG32323133barEv)();
+extern void ABISELECT(_ZThn48_N9GG32323133barEv,_ZThn24_N9GG32323133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32323133fooEv,_ZTv0_n20_N9GG32323133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32323133fooEv,_ZThn32_N9GG32323133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32323133barEv,_ZTv0_n12_N9GG32323133barEv)();
+extern void ABISELECT(_ZThn80_N9GG32323133barEv,_ZThn40_N9GG32323133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32323133fooEv,_ZTv0_n12_N9GG32323133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG32323133fooEv,_ZThn48_N9GG32323133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32323133barEv,_ZTv0_n16_N9GG32323133barEv)();
+extern void ABISELECT(_ZThn96_N9GG32323133barEv,_ZThn48_N9GG32323133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3232313[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3232313[0]),
+ (VTBL_ENTRY)&_ZN9GG32323133fooEv,
+ (VTBL_ENTRY)&_ZN9GG32323133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3232313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32323133fooEv,_ZTv0_n20_N9GG32323133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32323133barEv,_ZTv0_n24_N9GG32323133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3232313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32323133fooEv,_ZTv0_n12_N9GG32323133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32323133barEv,_ZTv0_n16_N9GG32323133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3232313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32323133barEv,_ZTv0_n12_N9GG32323133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3232313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32323133fooEv,_ZTv0_n20_N9GG32323133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3232313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32323133barEv,_ZTv0_n12_N9GG32323133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3232313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32323133fooEv,_ZTv0_n12_N9GG32323133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32323133barEv,_ZTv0_n16_N9GG32323133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3232313[];
+extern void _ZN5EE3233fooEv();
+extern void _ZN5EE3233barEv();
+static VTBL_ENTRY _tg__ZTV5EE323__9GG3232313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&_ZN5EE3233fooEv,
+ (VTBL_ENTRY)&_ZN5EE3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv)();
+extern void ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE323__9GG3232313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv)();
+extern void ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE323__9GG3232313[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv),
+};
+extern void _ZN5FF2313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF231__9GG3232313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN5FF2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF231__9GG3232313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2313fooEv,_ZThn16_N5FF2313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF231__9GG3232313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG3232313[] = {
+ {&(_ZTV9GG3232313[8]), 8,44},
+ {&(_ZTV9GG3232313[16]), 16,44},
+ {&(_ZTV9GG3232313[22]), 22,44},
+ {&(_ZTV9GG3232313[27]), 27,44},
+ {&(_ZTV9GG3232313[33]), 33,44},
+ {&(_ZTV9GG3232313[37]), 37,44},
+ {&(_ZTV9GG3232313[42]), 42,44},
+ {&(_tg__ZTV5EE323__9GG3232313[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE323__9GG3232313[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE323__9GG3232313[3]), 3,4},
+ {&(_tg__ZTV5FF231__9GG3232313[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF231__9GG3232313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF231__9GG3232313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3232313[];
+extern VTBL_ENTRY _ZTV9GG3232313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3232313[];
+static VTBL_ENTRY alt_thunk_names916[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2313fooEv,_ZThn16_N5FF2313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32323133barEv,_ZTv0_n12_N9GG32323133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32323133barEv,_ZThn40_N9GG32323133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32323133barEv,_ZThn24_N9GG32323133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32323133barEv,_ZTv0_n16_N9GG32323133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32323133barEv,_ZThn48_N9GG32323133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32323133barEv,_ZThn16_N9GG32323133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32323133fooEv,_ZTv0_n12_N9GG32323133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32323133fooEv,_ZThn48_N9GG32323133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32323133fooEv,_ZThn16_N9GG32323133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG32323133barEv,_ZTv0_n24_N9GG32323133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32323133barEv,_ZThn8_N9GG32323133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32323133fooEv,_ZTv0_n20_N9GG32323133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32323133fooEv,_ZThn32_N9GG32323133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32323133fooEv,_ZThn8_N9GG32323133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3232313 = { "GG3232313", // class name
+ bases_GG3232313, 6,
+ &(vtc_GG3232313[0]), // expected_vtbl_contents
+ &(vtt_GG3232313[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3232313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3232313),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3232313),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names916,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3232323 : virtual EE323 , virtual FF232 {
+ int pg;
+ virtual void foo(); // _ZN9GG32323233fooEv
+ virtual void bar(); // _ZN9GG32323233barEv
+ ~GG3232323(); // tgen
+ GG3232323(); // tgen
+};
+//SIG(1 GG3232323) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3232323 ::foo(){vfunc_called(this, "_ZN9GG32323233fooEv");}
+void GG3232323 ::bar(){vfunc_called(this, "_ZN9GG32323233barEv");}
+GG3232323 ::~GG3232323(){ note_dtor("GG3232323", this);} // tgen
+GG3232323 ::GG3232323(){ note_ctor("GG3232323", this);} // tgen
+
+static void Test_GG3232323()
+{
+ extern Class_Descriptor cd_GG3232323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3232323, buf);
+ GG3232323 *dp, &lv = *(dp=new (buf) GG3232323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3232323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3232323)");
+ check_base_class_offset(lv, (AA3*)(EE323*), ABISELECT(32,16), "GG3232323");
+ check_base_class_offset(lv, (BB2*)(EE323*), ABISELECT(48,24), "GG3232323");
+ check_base_class_offset(lv, (EE323*), ABISELECT(16,8), "GG3232323");
+ check_base_class_offset(lv, (AA2*)(FF232*), ABISELECT(80,40), "GG3232323");
+ check_base_class_offset(lv, (BB3*)(FF232*), ABISELECT(96,48), "GG3232323");
+ check_base_class_offset(lv, (FF232*), ABISELECT(64,32), "GG3232323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3232323.pg");
+ test_class_info(&lv, &cd_GG3232323);
+ dp->~GG3232323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3232323(Test_GG3232323, "GG3232323", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3232323C1Ev();
+extern void _ZN9GG3232323D1Ev();
+Name_Map name_map_GG3232323[] = {
+ NSPAIR(_ZN9GG3232323C1Ev),
+ NSPAIR(_ZN9GG3232323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE323;
+extern VTBL_ENTRY _ZTI5EE323[];
+extern VTBL_ENTRY _ZTV5EE323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE323[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF232;
+extern VTBL_ENTRY _ZTI5FF232[];
+extern VTBL_ENTRY _ZTV5FF232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF232[];
+static Base_Class bases_GG3232323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_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_BB2, ABISELECT(48,24), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE323, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF232, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3232323[];
+extern void _ZN9GG32323233fooEv();
+extern void _ZN9GG32323233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32323233fooEv,_ZTv0_n20_N9GG32323233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32323233fooEv,_ZThn8_N9GG32323233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32323233barEv,_ZTv0_n24_N9GG32323233barEv)();
+extern void ABISELECT(_ZThn16_N9GG32323233barEv,_ZThn8_N9GG32323233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32323233fooEv,_ZTv0_n12_N9GG32323233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32323233fooEv,_ZThn16_N9GG32323233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32323233barEv,_ZTv0_n16_N9GG32323233barEv)();
+extern void ABISELECT(_ZThn32_N9GG32323233barEv,_ZThn16_N9GG32323233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32323233barEv,_ZTv0_n12_N9GG32323233barEv)();
+extern void ABISELECT(_ZThn48_N9GG32323233barEv,_ZThn24_N9GG32323233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32323233barEv,_ZTv0_n20_N9GG32323233barEv)();
+extern void ABISELECT(_ZThn64_N9GG32323233barEv,_ZThn32_N9GG32323233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32323233barEv,_ZTv0_n12_N9GG32323233barEv)();
+extern void ABISELECT(_ZThn80_N9GG32323233barEv,_ZThn40_N9GG32323233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32323233fooEv,_ZTv0_n12_N9GG32323233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG32323233fooEv,_ZThn48_N9GG32323233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32323233barEv,_ZTv0_n16_N9GG32323233barEv)();
+extern void ABISELECT(_ZThn96_N9GG32323233barEv,_ZThn48_N9GG32323233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3232323[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3232323[0]),
+ (VTBL_ENTRY)&_ZN9GG32323233fooEv,
+ (VTBL_ENTRY)&_ZN9GG32323233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3232323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32323233fooEv,_ZTv0_n20_N9GG32323233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32323233barEv,_ZTv0_n24_N9GG32323233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3232323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32323233fooEv,_ZTv0_n12_N9GG32323233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32323233barEv,_ZTv0_n16_N9GG32323233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3232323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32323233barEv,_ZTv0_n12_N9GG32323233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3232323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32323233barEv,_ZTv0_n20_N9GG32323233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3232323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32323233barEv,_ZTv0_n12_N9GG32323233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3232323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32323233fooEv,_ZTv0_n12_N9GG32323233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32323233barEv,_ZTv0_n16_N9GG32323233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3232323[];
+extern void _ZN5EE3233fooEv();
+extern void _ZN5EE3233barEv();
+static VTBL_ENTRY _tg__ZTV5EE323__9GG3232323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&_ZN5EE3233fooEv,
+ (VTBL_ENTRY)&_ZN5EE3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv)();
+extern void ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE323__9GG3232323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv)();
+extern void ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE323__9GG3232323[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv),
+};
+extern void _ZN5FF2323barEv();
+static VTBL_ENTRY _tg__ZTV5FF232__9GG3232323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN5FF2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv)();
+extern void ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF232__9GG3232323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv)();
+extern void ABISELECT(_ZThn32_N5FF2323barEv,_ZThn16_N5FF2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF232__9GG3232323[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv),
+};
+static VTT_ENTRY vtt_GG3232323[] = {
+ {&(_ZTV9GG3232323[8]), 8,44},
+ {&(_ZTV9GG3232323[16]), 16,44},
+ {&(_ZTV9GG3232323[22]), 22,44},
+ {&(_ZTV9GG3232323[27]), 27,44},
+ {&(_ZTV9GG3232323[33]), 33,44},
+ {&(_ZTV9GG3232323[37]), 37,44},
+ {&(_ZTV9GG3232323[42]), 42,44},
+ {&(_tg__ZTV5EE323__9GG3232323[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE323__9GG3232323[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE323__9GG3232323[3]), 3,4},
+ {&(_tg__ZTV5FF232__9GG3232323[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF232__9GG3232323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF232__9GG3232323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3232323[];
+extern VTBL_ENTRY _ZTV9GG3232323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3232323[];
+static VTBL_ENTRY alt_thunk_names917[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2323barEv,_ZThn16_N5FF2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32323233barEv,_ZTv0_n20_N9GG32323233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32323233barEv,_ZThn32_N9GG32323233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32323233barEv,_ZTv0_n12_N9GG32323233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32323233barEv,_ZThn40_N9GG32323233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32323233barEv,_ZThn24_N9GG32323233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32323233barEv,_ZTv0_n16_N9GG32323233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32323233barEv,_ZThn48_N9GG32323233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32323233barEv,_ZThn16_N9GG32323233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32323233fooEv,_ZTv0_n12_N9GG32323233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32323233fooEv,_ZThn48_N9GG32323233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32323233fooEv,_ZThn16_N9GG32323233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG32323233barEv,_ZTv0_n24_N9GG32323233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32323233barEv,_ZThn8_N9GG32323233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32323233fooEv,_ZTv0_n20_N9GG32323233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32323233fooEv,_ZThn8_N9GG32323233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3232323 = { "GG3232323", // class name
+ bases_GG3232323, 6,
+ &(vtc_GG3232323[0]), // expected_vtbl_contents
+ &(vtt_GG3232323[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3232323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3232323),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3232323),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names917,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3232333 : virtual EE323 , virtual FF233 {
+ int pg;
+ virtual void foo(); // _ZN9GG32323333fooEv
+ virtual void bar(); // _ZN9GG32323333barEv
+ ~GG3232333(); // tgen
+ GG3232333(); // tgen
+};
+//SIG(1 GG3232333) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3232333 ::foo(){vfunc_called(this, "_ZN9GG32323333fooEv");}
+void GG3232333 ::bar(){vfunc_called(this, "_ZN9GG32323333barEv");}
+GG3232333 ::~GG3232333(){ note_dtor("GG3232333", this);} // tgen
+GG3232333 ::GG3232333(){ note_ctor("GG3232333", this);} // tgen
+
+static void Test_GG3232333()
+{
+ extern Class_Descriptor cd_GG3232333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3232333, buf);
+ GG3232333 *dp, &lv = *(dp=new (buf) GG3232333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3232333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3232333)");
+ check_base_class_offset(lv, (AA3*)(EE323*), ABISELECT(32,16), "GG3232333");
+ check_base_class_offset(lv, (BB2*)(EE323*), ABISELECT(48,24), "GG3232333");
+ check_base_class_offset(lv, (EE323*), ABISELECT(16,8), "GG3232333");
+ check_base_class_offset(lv, (AA2*)(FF233*), ABISELECT(80,40), "GG3232333");
+ check_base_class_offset(lv, (BB3*)(FF233*), ABISELECT(96,48), "GG3232333");
+ check_base_class_offset(lv, (FF233*), ABISELECT(64,32), "GG3232333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3232333.pg");
+ test_class_info(&lv, &cd_GG3232333);
+ dp->~GG3232333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3232333(Test_GG3232333, "GG3232333", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3232333C1Ev();
+extern void _ZN9GG3232333D1Ev();
+Name_Map name_map_GG3232333[] = {
+ NSPAIR(_ZN9GG3232333C1Ev),
+ NSPAIR(_ZN9GG3232333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE323;
+extern VTBL_ENTRY _ZTI5EE323[];
+extern VTBL_ENTRY _ZTV5EE323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE323[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF233;
+extern VTBL_ENTRY _ZTI5FF233[];
+extern VTBL_ENTRY _ZTV5FF233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF233[];
+static Base_Class bases_GG3232333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_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_BB2, ABISELECT(48,24), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE323, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(96,48), //bcp->offset
+ 40, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF233, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3232333[];
+extern void _ZN9GG32323333fooEv();
+extern void _ZN9GG32323333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32323333fooEv,_ZTv0_n20_N9GG32323333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32323333fooEv,_ZThn8_N9GG32323333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32323333barEv,_ZTv0_n24_N9GG32323333barEv)();
+extern void ABISELECT(_ZThn16_N9GG32323333barEv,_ZThn8_N9GG32323333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32323333fooEv,_ZTv0_n12_N9GG32323333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32323333fooEv,_ZThn16_N9GG32323333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32323333barEv,_ZTv0_n16_N9GG32323333barEv)();
+extern void ABISELECT(_ZThn32_N9GG32323333barEv,_ZThn16_N9GG32323333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32323333barEv,_ZTv0_n12_N9GG32323333barEv)();
+extern void ABISELECT(_ZThn48_N9GG32323333barEv,_ZThn24_N9GG32323333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32323333fooEv,_ZTv0_n20_N9GG32323333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32323333fooEv,_ZThn32_N9GG32323333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32323333barEv,_ZTv0_n24_N9GG32323333barEv)();
+extern void ABISELECT(_ZThn64_N9GG32323333barEv,_ZThn32_N9GG32323333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32323333barEv,_ZTv0_n12_N9GG32323333barEv)();
+extern void ABISELECT(_ZThn80_N9GG32323333barEv,_ZThn40_N9GG32323333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32323333fooEv,_ZTv0_n12_N9GG32323333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG32323333fooEv,_ZThn48_N9GG32323333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32323333barEv,_ZTv0_n16_N9GG32323333barEv)();
+extern void ABISELECT(_ZThn96_N9GG32323333barEv,_ZThn48_N9GG32323333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3232333[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3232333[0]),
+ (VTBL_ENTRY)&_ZN9GG32323333fooEv,
+ (VTBL_ENTRY)&_ZN9GG32323333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3232333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32323333fooEv,_ZTv0_n20_N9GG32323333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32323333barEv,_ZTv0_n24_N9GG32323333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3232333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32323333fooEv,_ZTv0_n12_N9GG32323333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32323333barEv,_ZTv0_n16_N9GG32323333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3232333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32323333barEv,_ZTv0_n12_N9GG32323333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3232333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32323333fooEv,_ZTv0_n20_N9GG32323333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32323333barEv,_ZTv0_n24_N9GG32323333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3232333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32323333barEv,_ZTv0_n12_N9GG32323333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3232333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32323333fooEv,_ZTv0_n12_N9GG32323333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32323333barEv,_ZTv0_n16_N9GG32323333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3232333[];
+extern void _ZN5EE3233fooEv();
+extern void _ZN5EE3233barEv();
+static VTBL_ENTRY _tg__ZTV5EE323__9GG3232333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&_ZN5EE3233fooEv,
+ (VTBL_ENTRY)&_ZN5EE3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv)();
+extern void ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE323__9GG3232333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv)();
+extern void ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE323__9GG3232333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv),
+};
+extern void _ZN5FF2333fooEv();
+extern void _ZN5FF2333barEv();
+static VTBL_ENTRY _tg__ZTV5FF233__9GG3232333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&_ZN5FF2333fooEv,
+ (VTBL_ENTRY)&_ZN5FF2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv)();
+extern void ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF233__9GG3232333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2333fooEv,_ZThn16_N5FF2333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv)();
+extern void ABISELECT(_ZThn32_N5FF2333barEv,_ZThn16_N5FF2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF233__9GG3232333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv),
+};
+static VTT_ENTRY vtt_GG3232333[] = {
+ {&(_ZTV9GG3232333[8]), 8,46},
+ {&(_ZTV9GG3232333[16]), 16,46},
+ {&(_ZTV9GG3232333[22]), 22,46},
+ {&(_ZTV9GG3232333[27]), 27,46},
+ {&(_ZTV9GG3232333[34]), 34,46},
+ {&(_ZTV9GG3232333[39]), 39,46},
+ {&(_ZTV9GG3232333[44]), 44,46},
+ {&(_tg__ZTV5EE323__9GG3232333[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE323__9GG3232333[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE323__9GG3232333[3]), 3,4},
+ {&(_tg__ZTV5FF233__9GG3232333[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF233__9GG3232333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF233__9GG3232333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3232333[];
+extern VTBL_ENTRY _ZTV9GG3232333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3232333[];
+static VTBL_ENTRY alt_thunk_names918[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2333barEv,_ZThn16_N5FF2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2333fooEv,_ZThn16_N5FF2333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32323333barEv,_ZTv0_n12_N9GG32323333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32323333barEv,_ZThn40_N9GG32323333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32323333barEv,_ZThn24_N9GG32323333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32323333barEv,_ZTv0_n16_N9GG32323333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32323333barEv,_ZThn48_N9GG32323333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32323333barEv,_ZThn16_N9GG32323333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32323333fooEv,_ZTv0_n12_N9GG32323333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG32323333fooEv,_ZThn48_N9GG32323333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32323333fooEv,_ZThn16_N9GG32323333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG32323333barEv,_ZTv0_n24_N9GG32323333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32323333barEv,_ZThn32_N9GG32323333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32323333barEv,_ZThn8_N9GG32323333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32323333fooEv,_ZTv0_n20_N9GG32323333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32323333fooEv,_ZThn32_N9GG32323333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32323333fooEv,_ZThn8_N9GG32323333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3232333 = { "GG3232333", // class name
+ bases_GG3232333, 6,
+ &(vtc_GG3232333[0]), // expected_vtbl_contents
+ &(vtt_GG3232333[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3232333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3232333),46, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3232333),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names918,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3233113 : virtual EE323 , virtual FF311 {
+ int pg;
+ virtual void foo(); // _ZN9GG32331133fooEv
+ virtual void bar(); // _ZN9GG32331133barEv
+ ~GG3233113(); // tgen
+ GG3233113(); // tgen
+};
+//SIG(1 GG3233113) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3233113 ::foo(){vfunc_called(this, "_ZN9GG32331133fooEv");}
+void GG3233113 ::bar(){vfunc_called(this, "_ZN9GG32331133barEv");}
+GG3233113 ::~GG3233113(){ note_dtor("GG3233113", this);} // tgen
+GG3233113 ::GG3233113(){ note_ctor("GG3233113", this);} // tgen
+
+static void Test_GG3233113()
+{
+ extern Class_Descriptor cd_GG3233113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3233113, buf);
+ GG3233113 *dp, &lv = *(dp=new (buf) GG3233113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3233113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3233113)");
+ check_base_class_offset(lv, (AA3*)(EE323*), ABISELECT(32,16), "GG3233113");
+ check_base_class_offset(lv, (AA3*)(FF311*), ABISELECT(32,16), "GG3233113");
+ check_base_class_offset(lv, (BB2*)(EE323*), ABISELECT(48,24), "GG3233113");
+ check_base_class_offset(lv, (EE323*), ABISELECT(16,8), "GG3233113");
+ check_base_class_offset(lv, (BB1*)(FF311*), ABISELECT(80,40), "GG3233113");
+ check_base_class_offset(lv, (FF311*), ABISELECT(64,32), "GG3233113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3233113.pg");
+ test_class_info(&lv, &cd_GG3233113);
+ dp->~GG3233113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3233113(Test_GG3233113, "GG3233113", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3233113C1Ev();
+extern void _ZN9GG3233113D1Ev();
+Name_Map name_map_GG3233113[] = {
+ NSPAIR(_ZN9GG3233113C1Ev),
+ NSPAIR(_ZN9GG3233113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE323;
+extern VTBL_ENTRY _ZTI5EE323[];
+extern VTBL_ENTRY _ZTV5EE323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE323[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF311;
+extern VTBL_ENTRY _ZTI5FF311[];
+extern VTBL_ENTRY _ZTV5FF311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF311[];
+static Base_Class bases_GG3233113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE323, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF311, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3233113[];
+extern void _ZN9GG32331133fooEv();
+extern void _ZN9GG32331133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32331133fooEv,_ZTv0_n20_N9GG32331133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32331133fooEv,_ZThn8_N9GG32331133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32331133barEv,_ZTv0_n24_N9GG32331133barEv)();
+extern void ABISELECT(_ZThn16_N9GG32331133barEv,_ZThn8_N9GG32331133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32331133fooEv,_ZTv0_n12_N9GG32331133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32331133fooEv,_ZThn16_N9GG32331133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32331133barEv,_ZTv0_n16_N9GG32331133barEv)();
+extern void ABISELECT(_ZThn32_N9GG32331133barEv,_ZThn16_N9GG32331133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32331133barEv,_ZTv0_n12_N9GG32331133barEv)();
+extern void ABISELECT(_ZThn48_N9GG32331133barEv,_ZThn24_N9GG32331133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32331133fooEv,_ZTv0_n20_N9GG32331133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32331133fooEv,_ZThn32_N9GG32331133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32331133fooEv,_ZTv0_n12_N9GG32331133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG32331133fooEv,_ZThn40_N9GG32331133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3233113[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3233113[0]),
+ (VTBL_ENTRY)&_ZN9GG32331133fooEv,
+ (VTBL_ENTRY)&_ZN9GG32331133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3233113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32331133fooEv,_ZTv0_n20_N9GG32331133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32331133barEv,_ZTv0_n24_N9GG32331133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3233113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32331133fooEv,_ZTv0_n12_N9GG32331133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32331133barEv,_ZTv0_n16_N9GG32331133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3233113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32331133barEv,_ZTv0_n12_N9GG32331133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3233113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32331133fooEv,_ZTv0_n20_N9GG32331133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3233113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32331133fooEv,_ZTv0_n12_N9GG32331133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3233113[];
+extern void _ZN5EE3233fooEv();
+extern void _ZN5EE3233barEv();
+static VTBL_ENTRY _tg__ZTV5EE323__9GG3233113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&_ZN5EE3233fooEv,
+ (VTBL_ENTRY)&_ZN5EE3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv)();
+extern void ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE323__9GG3233113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv)();
+extern void ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE323__9GG3233113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv),
+};
+extern void _ZN5FF3113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF311__9GG3233113[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&_ZN5FF3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF311__9GG3233113[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF311__9GG3233113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+};
+static VTT_ENTRY vtt_GG3233113[] = {
+ {&(_ZTV9GG3233113[7]), 7,37},
+ {&(_ZTV9GG3233113[15]), 15,37},
+ {&(_ZTV9GG3233113[21]), 21,37},
+ {&(_ZTV9GG3233113[26]), 26,37},
+ {&(_ZTV9GG3233113[32]), 32,37},
+ {&(_ZTV9GG3233113[36]), 36,37},
+ {&(_tg__ZTV5EE323__9GG3233113[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE323__9GG3233113[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE323__9GG3233113[3]), 3,4},
+ {&(_tg__ZTV5FF311__9GG3233113[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF311__9GG3233113[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF311__9GG3233113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3233113[];
+extern VTBL_ENTRY _ZTV9GG3233113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3233113[];
+static VTBL_ENTRY alt_thunk_names919[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32331133barEv,_ZTv0_n12_N9GG32331133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32331133barEv,_ZThn24_N9GG32331133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32331133barEv,_ZTv0_n16_N9GG32331133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32331133barEv,_ZThn16_N9GG32331133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32331133fooEv,_ZTv0_n12_N9GG32331133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32331133fooEv,_ZThn40_N9GG32331133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32331133fooEv,_ZThn16_N9GG32331133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG32331133barEv,_ZTv0_n24_N9GG32331133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32331133barEv,_ZThn8_N9GG32331133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32331133fooEv,_ZTv0_n20_N9GG32331133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32331133fooEv,_ZThn32_N9GG32331133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32331133fooEv,_ZThn8_N9GG32331133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3233113 = { "GG3233113", // class name
+ bases_GG3233113, 5,
+ &(vtc_GG3233113[0]), // expected_vtbl_contents
+ &(vtt_GG3233113[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3233113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3233113),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3233113),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names919,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3233123 : virtual EE323 , virtual FF312 {
+ int pg;
+ virtual void foo(); // _ZN9GG32331233fooEv
+ virtual void bar(); // _ZN9GG32331233barEv
+ ~GG3233123(); // tgen
+ GG3233123(); // tgen
+};
+//SIG(1 GG3233123) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3233123 ::foo(){vfunc_called(this, "_ZN9GG32331233fooEv");}
+void GG3233123 ::bar(){vfunc_called(this, "_ZN9GG32331233barEv");}
+GG3233123 ::~GG3233123(){ note_dtor("GG3233123", this);} // tgen
+GG3233123 ::GG3233123(){ note_ctor("GG3233123", this);} // tgen
+
+static void Test_GG3233123()
+{
+ extern Class_Descriptor cd_GG3233123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3233123, buf);
+ GG3233123 *dp, &lv = *(dp=new (buf) GG3233123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3233123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3233123)");
+ check_base_class_offset(lv, (AA3*)(EE323*), ABISELECT(32,16), "GG3233123");
+ check_base_class_offset(lv, (AA3*)(FF312*), ABISELECT(32,16), "GG3233123");
+ check_base_class_offset(lv, (BB2*)(EE323*), ABISELECT(48,24), "GG3233123");
+ check_base_class_offset(lv, (EE323*), ABISELECT(16,8), "GG3233123");
+ check_base_class_offset(lv, (BB1*)(FF312*), ABISELECT(80,40), "GG3233123");
+ check_base_class_offset(lv, (FF312*), ABISELECT(64,32), "GG3233123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3233123.pg");
+ test_class_info(&lv, &cd_GG3233123);
+ dp->~GG3233123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3233123(Test_GG3233123, "GG3233123", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3233123C1Ev();
+extern void _ZN9GG3233123D1Ev();
+Name_Map name_map_GG3233123[] = {
+ NSPAIR(_ZN9GG3233123C1Ev),
+ NSPAIR(_ZN9GG3233123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE323;
+extern VTBL_ENTRY _ZTI5EE323[];
+extern VTBL_ENTRY _ZTV5EE323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE323[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF312;
+extern VTBL_ENTRY _ZTI5FF312[];
+extern VTBL_ENTRY _ZTV5FF312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF312[];
+static Base_Class bases_GG3233123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE323, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF312, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3233123[];
+extern void _ZN9GG32331233fooEv();
+extern void _ZN9GG32331233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32331233fooEv,_ZTv0_n20_N9GG32331233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32331233fooEv,_ZThn8_N9GG32331233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32331233barEv,_ZTv0_n24_N9GG32331233barEv)();
+extern void ABISELECT(_ZThn16_N9GG32331233barEv,_ZThn8_N9GG32331233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32331233fooEv,_ZTv0_n12_N9GG32331233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32331233fooEv,_ZThn16_N9GG32331233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32331233barEv,_ZTv0_n16_N9GG32331233barEv)();
+extern void ABISELECT(_ZThn32_N9GG32331233barEv,_ZThn16_N9GG32331233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32331233barEv,_ZTv0_n12_N9GG32331233barEv)();
+extern void ABISELECT(_ZThn48_N9GG32331233barEv,_ZThn24_N9GG32331233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32331233barEv,_ZTv0_n20_N9GG32331233barEv)();
+extern void ABISELECT(_ZThn64_N9GG32331233barEv,_ZThn32_N9GG32331233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32331233fooEv,_ZTv0_n12_N9GG32331233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG32331233fooEv,_ZThn40_N9GG32331233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3233123[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3233123[0]),
+ (VTBL_ENTRY)&_ZN9GG32331233fooEv,
+ (VTBL_ENTRY)&_ZN9GG32331233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3233123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32331233fooEv,_ZTv0_n20_N9GG32331233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32331233barEv,_ZTv0_n24_N9GG32331233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3233123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32331233fooEv,_ZTv0_n12_N9GG32331233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32331233barEv,_ZTv0_n16_N9GG32331233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3233123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32331233barEv,_ZTv0_n12_N9GG32331233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3233123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32331233barEv,_ZTv0_n20_N9GG32331233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3233123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32331233fooEv,_ZTv0_n12_N9GG32331233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3233123[];
+extern void _ZN5EE3233fooEv();
+extern void _ZN5EE3233barEv();
+static VTBL_ENTRY _tg__ZTV5EE323__9GG3233123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&_ZN5EE3233fooEv,
+ (VTBL_ENTRY)&_ZN5EE3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv)();
+extern void ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE323__9GG3233123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv)();
+extern void ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE323__9GG3233123[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv),
+};
+extern void _ZN5FF3123barEv();
+static VTBL_ENTRY _tg__ZTV5FF312__9GG3233123[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN5FF3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF312__9GG3233123[] = {
+ ABISELECT(32,16),
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF312__9GG3233123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG3233123[] = {
+ {&(_ZTV9GG3233123[7]), 7,37},
+ {&(_ZTV9GG3233123[15]), 15,37},
+ {&(_ZTV9GG3233123[21]), 21,37},
+ {&(_ZTV9GG3233123[26]), 26,37},
+ {&(_ZTV9GG3233123[32]), 32,37},
+ {&(_ZTV9GG3233123[36]), 36,37},
+ {&(_tg__ZTV5EE323__9GG3233123[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE323__9GG3233123[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE323__9GG3233123[3]), 3,4},
+ {&(_tg__ZTV5FF312__9GG3233123[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF312__9GG3233123[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF312__9GG3233123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3233123[];
+extern VTBL_ENTRY _ZTV9GG3233123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3233123[];
+static VTBL_ENTRY alt_thunk_names920[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32331233barEv,_ZTv0_n20_N9GG32331233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32331233barEv,_ZThn32_N9GG32331233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32331233barEv,_ZTv0_n12_N9GG32331233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32331233barEv,_ZThn24_N9GG32331233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32331233barEv,_ZTv0_n16_N9GG32331233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32331233barEv,_ZThn16_N9GG32331233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32331233fooEv,_ZTv0_n12_N9GG32331233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32331233fooEv,_ZThn40_N9GG32331233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32331233fooEv,_ZThn16_N9GG32331233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG32331233barEv,_ZTv0_n24_N9GG32331233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32331233barEv,_ZThn8_N9GG32331233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32331233fooEv,_ZTv0_n20_N9GG32331233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32331233fooEv,_ZThn8_N9GG32331233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3233123 = { "GG3233123", // class name
+ bases_GG3233123, 5,
+ &(vtc_GG3233123[0]), // expected_vtbl_contents
+ &(vtt_GG3233123[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3233123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3233123),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3233123),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names920,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3233133 : virtual EE323 , virtual FF313 {
+ int pg;
+ virtual void foo(); // _ZN9GG32331333fooEv
+ virtual void bar(); // _ZN9GG32331333barEv
+ ~GG3233133(); // tgen
+ GG3233133(); // tgen
+};
+//SIG(1 GG3233133) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3233133 ::foo(){vfunc_called(this, "_ZN9GG32331333fooEv");}
+void GG3233133 ::bar(){vfunc_called(this, "_ZN9GG32331333barEv");}
+GG3233133 ::~GG3233133(){ note_dtor("GG3233133", this);} // tgen
+GG3233133 ::GG3233133(){ note_ctor("GG3233133", this);} // tgen
+
+static void Test_GG3233133()
+{
+ extern Class_Descriptor cd_GG3233133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3233133, buf);
+ GG3233133 *dp, &lv = *(dp=new (buf) GG3233133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3233133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3233133)");
+ check_base_class_offset(lv, (AA3*)(EE323*), ABISELECT(32,16), "GG3233133");
+ check_base_class_offset(lv, (AA3*)(FF313*), ABISELECT(32,16), "GG3233133");
+ check_base_class_offset(lv, (BB2*)(EE323*), ABISELECT(48,24), "GG3233133");
+ check_base_class_offset(lv, (EE323*), ABISELECT(16,8), "GG3233133");
+ check_base_class_offset(lv, (BB1*)(FF313*), ABISELECT(80,40), "GG3233133");
+ check_base_class_offset(lv, (FF313*), ABISELECT(64,32), "GG3233133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3233133.pg");
+ test_class_info(&lv, &cd_GG3233133);
+ dp->~GG3233133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3233133(Test_GG3233133, "GG3233133", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3233133C1Ev();
+extern void _ZN9GG3233133D1Ev();
+Name_Map name_map_GG3233133[] = {
+ NSPAIR(_ZN9GG3233133C1Ev),
+ NSPAIR(_ZN9GG3233133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE323;
+extern VTBL_ENTRY _ZTI5EE323[];
+extern VTBL_ENTRY _ZTV5EE323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE323[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF313;
+extern VTBL_ENTRY _ZTI5FF313[];
+extern VTBL_ENTRY _ZTV5FF313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF313[];
+static Base_Class bases_GG3233133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE323, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF313, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3233133[];
+extern void _ZN9GG32331333fooEv();
+extern void _ZN9GG32331333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32331333fooEv,_ZTv0_n20_N9GG32331333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32331333fooEv,_ZThn8_N9GG32331333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32331333barEv,_ZTv0_n24_N9GG32331333barEv)();
+extern void ABISELECT(_ZThn16_N9GG32331333barEv,_ZThn8_N9GG32331333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32331333fooEv,_ZTv0_n12_N9GG32331333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32331333fooEv,_ZThn16_N9GG32331333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32331333barEv,_ZTv0_n16_N9GG32331333barEv)();
+extern void ABISELECT(_ZThn32_N9GG32331333barEv,_ZThn16_N9GG32331333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32331333barEv,_ZTv0_n12_N9GG32331333barEv)();
+extern void ABISELECT(_ZThn48_N9GG32331333barEv,_ZThn24_N9GG32331333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32331333fooEv,_ZTv0_n20_N9GG32331333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32331333fooEv,_ZThn32_N9GG32331333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32331333barEv,_ZTv0_n24_N9GG32331333barEv)();
+extern void ABISELECT(_ZThn64_N9GG32331333barEv,_ZThn32_N9GG32331333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32331333fooEv,_ZTv0_n12_N9GG32331333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG32331333fooEv,_ZThn40_N9GG32331333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3233133[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3233133[0]),
+ (VTBL_ENTRY)&_ZN9GG32331333fooEv,
+ (VTBL_ENTRY)&_ZN9GG32331333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3233133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32331333fooEv,_ZTv0_n20_N9GG32331333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32331333barEv,_ZTv0_n24_N9GG32331333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3233133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32331333fooEv,_ZTv0_n12_N9GG32331333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32331333barEv,_ZTv0_n16_N9GG32331333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3233133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32331333barEv,_ZTv0_n12_N9GG32331333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3233133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32331333fooEv,_ZTv0_n20_N9GG32331333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32331333barEv,_ZTv0_n24_N9GG32331333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3233133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32331333fooEv,_ZTv0_n12_N9GG32331333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3233133[];
+extern void _ZN5EE3233fooEv();
+extern void _ZN5EE3233barEv();
+static VTBL_ENTRY _tg__ZTV5EE323__9GG3233133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&_ZN5EE3233fooEv,
+ (VTBL_ENTRY)&_ZN5EE3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv)();
+extern void ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE323__9GG3233133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv)();
+extern void ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE323__9GG3233133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv),
+};
+extern void _ZN5FF3133fooEv();
+extern void _ZN5FF3133barEv();
+static VTBL_ENTRY _tg__ZTV5FF313__9GG3233133[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&_ZN5FF3133fooEv,
+ (VTBL_ENTRY)&_ZN5FF3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF313__9GG3233133[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF313__9GG3233133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+};
+static VTT_ENTRY vtt_GG3233133[] = {
+ {&(_ZTV9GG3233133[7]), 7,39},
+ {&(_ZTV9GG3233133[15]), 15,39},
+ {&(_ZTV9GG3233133[21]), 21,39},
+ {&(_ZTV9GG3233133[26]), 26,39},
+ {&(_ZTV9GG3233133[33]), 33,39},
+ {&(_ZTV9GG3233133[38]), 38,39},
+ {&(_tg__ZTV5EE323__9GG3233133[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE323__9GG3233133[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE323__9GG3233133[3]), 3,4},
+ {&(_tg__ZTV5FF313__9GG3233133[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF313__9GG3233133[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF313__9GG3233133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3233133[];
+extern VTBL_ENTRY _ZTV9GG3233133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3233133[];
+static VTBL_ENTRY alt_thunk_names921[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32331333barEv,_ZTv0_n12_N9GG32331333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32331333barEv,_ZThn24_N9GG32331333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32331333barEv,_ZTv0_n16_N9GG32331333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32331333barEv,_ZThn16_N9GG32331333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32331333fooEv,_ZTv0_n12_N9GG32331333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32331333fooEv,_ZThn40_N9GG32331333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32331333fooEv,_ZThn16_N9GG32331333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG32331333barEv,_ZTv0_n24_N9GG32331333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32331333barEv,_ZThn32_N9GG32331333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32331333barEv,_ZThn8_N9GG32331333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32331333fooEv,_ZTv0_n20_N9GG32331333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32331333fooEv,_ZThn32_N9GG32331333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32331333fooEv,_ZThn8_N9GG32331333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3233133 = { "GG3233133", // class name
+ bases_GG3233133, 5,
+ &(vtc_GG3233133[0]), // expected_vtbl_contents
+ &(vtt_GG3233133[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3233133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3233133),39, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3233133),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names921,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3233213 : virtual EE323 , virtual FF321 {
+ int pg;
+ virtual void foo(); // _ZN9GG32332133fooEv
+ virtual void bar(); // _ZN9GG32332133barEv
+ ~GG3233213(); // tgen
+ GG3233213(); // tgen
+};
+//SIG(1 GG3233213) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG3233213 ::foo(){vfunc_called(this, "_ZN9GG32332133fooEv");}
+void GG3233213 ::bar(){vfunc_called(this, "_ZN9GG32332133barEv");}
+GG3233213 ::~GG3233213(){ note_dtor("GG3233213", this);} // tgen
+GG3233213 ::GG3233213(){ note_ctor("GG3233213", this);} // tgen
+
+static void Test_GG3233213()
+{
+ extern Class_Descriptor cd_GG3233213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG3233213, buf);
+ GG3233213 *dp, &lv = *(dp=new (buf) GG3233213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG3233213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3233213)");
+ check_base_class_offset(lv, (AA3*)(EE323*), ABISELECT(32,16), "GG3233213");
+ check_base_class_offset(lv, (AA3*)(FF321*), ABISELECT(32,16), "GG3233213");
+ check_base_class_offset(lv, (BB2*)(EE323*), ABISELECT(48,24), "GG3233213");
+ check_base_class_offset(lv, (BB2*)(FF321*), ABISELECT(48,24), "GG3233213");
+ check_base_class_offset(lv, (EE323*), ABISELECT(16,8), "GG3233213");
+ check_base_class_offset(lv, (FF321*), ABISELECT(64,32), "GG3233213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3233213.pg");
+ test_class_info(&lv, &cd_GG3233213);
+ dp->~GG3233213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3233213(Test_GG3233213, "GG3233213", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG3233213C1Ev();
+extern void _ZN9GG3233213D1Ev();
+Name_Map name_map_GG3233213[] = {
+ NSPAIR(_ZN9GG3233213C1Ev),
+ NSPAIR(_ZN9GG3233213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE323;
+extern VTBL_ENTRY _ZTI5EE323[];
+extern VTBL_ENTRY _ZTV5EE323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE323[];
+extern Class_Descriptor cd_FF321;
+extern VTBL_ENTRY _ZTI5FF321[];
+extern VTBL_ENTRY _ZTV5FF321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF321[];
+static Base_Class bases_GG3233213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE323, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF321, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3233213[];
+extern void _ZN9GG32332133fooEv();
+extern void _ZN9GG32332133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32332133fooEv,_ZTv0_n20_N9GG32332133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32332133fooEv,_ZThn8_N9GG32332133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32332133barEv,_ZTv0_n24_N9GG32332133barEv)();
+extern void ABISELECT(_ZThn16_N9GG32332133barEv,_ZThn8_N9GG32332133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32332133fooEv,_ZTv0_n12_N9GG32332133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32332133fooEv,_ZThn16_N9GG32332133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32332133barEv,_ZTv0_n16_N9GG32332133barEv)();
+extern void ABISELECT(_ZThn32_N9GG32332133barEv,_ZThn16_N9GG32332133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32332133barEv,_ZTv0_n12_N9GG32332133barEv)();
+extern void ABISELECT(_ZThn48_N9GG32332133barEv,_ZThn24_N9GG32332133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32332133fooEv,_ZTv0_n20_N9GG32332133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32332133fooEv,_ZThn32_N9GG32332133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3233213[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3233213[0]),
+ (VTBL_ENTRY)&_ZN9GG32332133fooEv,
+ (VTBL_ENTRY)&_ZN9GG32332133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3233213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32332133fooEv,_ZTv0_n20_N9GG32332133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32332133barEv,_ZTv0_n24_N9GG32332133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3233213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32332133fooEv,_ZTv0_n12_N9GG32332133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32332133barEv,_ZTv0_n16_N9GG32332133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3233213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32332133barEv,_ZTv0_n12_N9GG32332133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3233213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32332133fooEv,_ZTv0_n20_N9GG32332133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3233213[];
+extern void _ZN5EE3233fooEv();
+extern void _ZN5EE3233barEv();
+static VTBL_ENTRY _tg__ZTV5EE323__9GG3233213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&_ZN5EE3233fooEv,
+ (VTBL_ENTRY)&_ZN5EE3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv)();
+extern void ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE323__9GG3233213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv)();
+extern void ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE323__9GG3233213[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv),
+};
+extern void _ZN5FF3213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF321__9GG3233213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN5FF3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv)();
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF321__9GG3233213[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF321__9GG3233213[] = {
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG3233213[] = {
+ {&(_ZTV9GG3233213[6]), 6,32},
+ {&(_ZTV9GG3233213[14]), 14,32},
+ {&(_ZTV9GG3233213[20]), 20,32},
+ {&(_ZTV9GG3233213[25]), 25,32},
+ {&(_ZTV9GG3233213[31]), 31,32},
+ {&(_tg__ZTV5EE323__9GG3233213[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE323__9GG3233213[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE323__9GG3233213[3]), 3,4},
+ {&(_tg__ZTV5FF321__9GG3233213[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF321__9GG3233213[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF321__9GG3233213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3233213[];
+extern VTBL_ENTRY _ZTV9GG3233213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3233213[];
+static VTBL_ENTRY alt_thunk_names922[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32332133barEv,_ZTv0_n12_N9GG32332133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32332133barEv,_ZThn24_N9GG32332133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32332133barEv,_ZTv0_n16_N9GG32332133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32332133barEv,_ZThn16_N9GG32332133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32332133fooEv,_ZTv0_n12_N9GG32332133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32332133fooEv,_ZThn16_N9GG32332133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG32332133barEv,_ZTv0_n24_N9GG32332133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32332133barEv,_ZThn8_N9GG32332133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32332133fooEv,_ZTv0_n20_N9GG32332133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32332133fooEv,_ZThn32_N9GG32332133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32332133fooEv,_ZThn8_N9GG32332133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3233213 = { "GG3233213", // class name
+ bases_GG3233213, 4,
+ &(vtc_GG3233213[0]), // expected_vtbl_contents
+ &(vtt_GG3233213[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG3233213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3233213),32, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3233213),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names922,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3233223 : virtual EE323 , virtual FF322 {
+ int pg;
+ virtual void foo(); // _ZN9GG32332233fooEv
+ virtual void bar(); // _ZN9GG32332233barEv
+ ~GG3233223(); // tgen
+ GG3233223(); // tgen
+};
+//SIG(1 GG3233223) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG3233223 ::foo(){vfunc_called(this, "_ZN9GG32332233fooEv");}
+void GG3233223 ::bar(){vfunc_called(this, "_ZN9GG32332233barEv");}
+GG3233223 ::~GG3233223(){ note_dtor("GG3233223", this);} // tgen
+GG3233223 ::GG3233223(){ note_ctor("GG3233223", this);} // tgen
+
+static void Test_GG3233223()
+{
+ extern Class_Descriptor cd_GG3233223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG3233223, buf);
+ GG3233223 *dp, &lv = *(dp=new (buf) GG3233223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG3233223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3233223)");
+ check_base_class_offset(lv, (AA3*)(EE323*), ABISELECT(32,16), "GG3233223");
+ check_base_class_offset(lv, (AA3*)(FF322*), ABISELECT(32,16), "GG3233223");
+ check_base_class_offset(lv, (BB2*)(EE323*), ABISELECT(48,24), "GG3233223");
+ check_base_class_offset(lv, (BB2*)(FF322*), ABISELECT(48,24), "GG3233223");
+ check_base_class_offset(lv, (EE323*), ABISELECT(16,8), "GG3233223");
+ check_base_class_offset(lv, (FF322*), ABISELECT(64,32), "GG3233223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3233223.pg");
+ test_class_info(&lv, &cd_GG3233223);
+ dp->~GG3233223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3233223(Test_GG3233223, "GG3233223", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG3233223C1Ev();
+extern void _ZN9GG3233223D1Ev();
+Name_Map name_map_GG3233223[] = {
+ NSPAIR(_ZN9GG3233223C1Ev),
+ NSPAIR(_ZN9GG3233223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE323;
+extern VTBL_ENTRY _ZTI5EE323[];
+extern VTBL_ENTRY _ZTV5EE323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE323[];
+extern Class_Descriptor cd_FF322;
+extern VTBL_ENTRY _ZTI5FF322[];
+extern VTBL_ENTRY _ZTV5FF322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF322[];
+static Base_Class bases_GG3233223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE323, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF322, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3233223[];
+extern void _ZN9GG32332233fooEv();
+extern void _ZN9GG32332233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32332233fooEv,_ZTv0_n20_N9GG32332233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32332233fooEv,_ZThn8_N9GG32332233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32332233barEv,_ZTv0_n24_N9GG32332233barEv)();
+extern void ABISELECT(_ZThn16_N9GG32332233barEv,_ZThn8_N9GG32332233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32332233fooEv,_ZTv0_n12_N9GG32332233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32332233fooEv,_ZThn16_N9GG32332233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32332233barEv,_ZTv0_n16_N9GG32332233barEv)();
+extern void ABISELECT(_ZThn32_N9GG32332233barEv,_ZThn16_N9GG32332233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32332233barEv,_ZTv0_n12_N9GG32332233barEv)();
+extern void ABISELECT(_ZThn48_N9GG32332233barEv,_ZThn24_N9GG32332233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32332233barEv,_ZTv0_n20_N9GG32332233barEv)();
+extern void ABISELECT(_ZThn64_N9GG32332233barEv,_ZThn32_N9GG32332233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3233223[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3233223[0]),
+ (VTBL_ENTRY)&_ZN9GG32332233fooEv,
+ (VTBL_ENTRY)&_ZN9GG32332233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3233223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32332233fooEv,_ZTv0_n20_N9GG32332233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32332233barEv,_ZTv0_n24_N9GG32332233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3233223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32332233fooEv,_ZTv0_n12_N9GG32332233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32332233barEv,_ZTv0_n16_N9GG32332233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3233223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32332233barEv,_ZTv0_n12_N9GG32332233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3233223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32332233barEv,_ZTv0_n20_N9GG32332233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3233223[];
+extern void _ZN5EE3233fooEv();
+extern void _ZN5EE3233barEv();
+static VTBL_ENTRY _tg__ZTV5EE323__9GG3233223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&_ZN5EE3233fooEv,
+ (VTBL_ENTRY)&_ZN5EE3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv)();
+extern void ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE323__9GG3233223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv)();
+extern void ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE323__9GG3233223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv),
+};
+extern void _ZN5FF3223barEv();
+static VTBL_ENTRY _tg__ZTV5FF322__9GG3233223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN5FF3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF322__9GG3233223[] = {
+ ABISELECT(32,16),
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF322__9GG3233223[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv),
+};
+static VTT_ENTRY vtt_GG3233223[] = {
+ {&(_ZTV9GG3233223[6]), 6,32},
+ {&(_ZTV9GG3233223[14]), 14,32},
+ {&(_ZTV9GG3233223[20]), 20,32},
+ {&(_ZTV9GG3233223[25]), 25,32},
+ {&(_ZTV9GG3233223[31]), 31,32},
+ {&(_tg__ZTV5EE323__9GG3233223[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE323__9GG3233223[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE323__9GG3233223[3]), 3,4},
+ {&(_tg__ZTV5FF322__9GG3233223[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF322__9GG3233223[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF322__9GG3233223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3233223[];
+extern VTBL_ENTRY _ZTV9GG3233223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3233223[];
+static VTBL_ENTRY alt_thunk_names923[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32332233barEv,_ZTv0_n20_N9GG32332233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32332233barEv,_ZThn32_N9GG32332233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32332233barEv,_ZTv0_n12_N9GG32332233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32332233barEv,_ZThn24_N9GG32332233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32332233barEv,_ZTv0_n16_N9GG32332233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32332233barEv,_ZThn16_N9GG32332233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32332233fooEv,_ZTv0_n12_N9GG32332233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32332233fooEv,_ZThn16_N9GG32332233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG32332233barEv,_ZTv0_n24_N9GG32332233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32332233barEv,_ZThn8_N9GG32332233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32332233fooEv,_ZTv0_n20_N9GG32332233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32332233fooEv,_ZThn8_N9GG32332233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3233223 = { "GG3233223", // class name
+ bases_GG3233223, 4,
+ &(vtc_GG3233223[0]), // expected_vtbl_contents
+ &(vtt_GG3233223[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG3233223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3233223),32, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3233223),11, //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 GG3233233 : virtual EE323 , virtual FF323 {
+ int pg;
+ virtual void foo(); // _ZN9GG32332333fooEv
+ virtual void bar(); // _ZN9GG32332333barEv
+ ~GG3233233(); // tgen
+ GG3233233(); // tgen
+};
+//SIG(1 GG3233233) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3233233 ::foo(){vfunc_called(this, "_ZN9GG32332333fooEv");}
+void GG3233233 ::bar(){vfunc_called(this, "_ZN9GG32332333barEv");}
+GG3233233 ::~GG3233233(){ note_dtor("GG3233233", this);} // tgen
+GG3233233 ::GG3233233(){ note_ctor("GG3233233", this);} // tgen
+
+static void Test_GG3233233()
+{
+ extern Class_Descriptor cd_GG3233233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG3233233, buf);
+ GG3233233 *dp, &lv = *(dp=new (buf) GG3233233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG3233233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3233233)");
+ check_base_class_offset(lv, (AA3*)(EE323*), ABISELECT(32,16), "GG3233233");
+ check_base_class_offset(lv, (AA3*)(FF323*), ABISELECT(32,16), "GG3233233");
+ check_base_class_offset(lv, (BB2*)(EE323*), ABISELECT(48,24), "GG3233233");
+ check_base_class_offset(lv, (BB2*)(FF323*), ABISELECT(48,24), "GG3233233");
+ check_base_class_offset(lv, (EE323*), ABISELECT(16,8), "GG3233233");
+ check_base_class_offset(lv, (FF323*), ABISELECT(64,32), "GG3233233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3233233.pg");
+ test_class_info(&lv, &cd_GG3233233);
+ dp->~GG3233233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3233233(Test_GG3233233, "GG3233233", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG3233233C1Ev();
+extern void _ZN9GG3233233D1Ev();
+Name_Map name_map_GG3233233[] = {
+ NSPAIR(_ZN9GG3233233C1Ev),
+ NSPAIR(_ZN9GG3233233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE323;
+extern VTBL_ENTRY _ZTI5EE323[];
+extern VTBL_ENTRY _ZTV5EE323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE323[];
+extern Class_Descriptor cd_FF323;
+extern VTBL_ENTRY _ZTI5FF323[];
+extern VTBL_ENTRY _ZTV5FF323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF323[];
+static Base_Class bases_GG3233233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 22, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE323, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF323, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3233233[];
+extern void _ZN9GG32332333fooEv();
+extern void _ZN9GG32332333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32332333fooEv,_ZTv0_n20_N9GG32332333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32332333fooEv,_ZThn8_N9GG32332333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32332333barEv,_ZTv0_n24_N9GG32332333barEv)();
+extern void ABISELECT(_ZThn16_N9GG32332333barEv,_ZThn8_N9GG32332333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32332333fooEv,_ZTv0_n12_N9GG32332333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32332333fooEv,_ZThn16_N9GG32332333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32332333barEv,_ZTv0_n16_N9GG32332333barEv)();
+extern void ABISELECT(_ZThn32_N9GG32332333barEv,_ZThn16_N9GG32332333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32332333barEv,_ZTv0_n12_N9GG32332333barEv)();
+extern void ABISELECT(_ZThn48_N9GG32332333barEv,_ZThn24_N9GG32332333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32332333fooEv,_ZTv0_n20_N9GG32332333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32332333fooEv,_ZThn32_N9GG32332333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32332333barEv,_ZTv0_n24_N9GG32332333barEv)();
+extern void ABISELECT(_ZThn64_N9GG32332333barEv,_ZThn32_N9GG32332333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3233233[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3233233[0]),
+ (VTBL_ENTRY)&_ZN9GG32332333fooEv,
+ (VTBL_ENTRY)&_ZN9GG32332333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3233233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32332333fooEv,_ZTv0_n20_N9GG32332333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32332333barEv,_ZTv0_n24_N9GG32332333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3233233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32332333fooEv,_ZTv0_n12_N9GG32332333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32332333barEv,_ZTv0_n16_N9GG32332333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3233233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32332333barEv,_ZTv0_n12_N9GG32332333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3233233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32332333fooEv,_ZTv0_n20_N9GG32332333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32332333barEv,_ZTv0_n24_N9GG32332333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3233233[];
+extern void _ZN5EE3233fooEv();
+extern void _ZN5EE3233barEv();
+static VTBL_ENTRY _tg__ZTV5EE323__9GG3233233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&_ZN5EE3233fooEv,
+ (VTBL_ENTRY)&_ZN5EE3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv)();
+extern void ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE323__9GG3233233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv)();
+extern void ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE323__9GG3233233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv),
+};
+extern void _ZN5FF3233fooEv();
+extern void _ZN5FF3233barEv();
+static VTBL_ENTRY _tg__ZTV5FF323__9GG3233233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&_ZN5FF3233fooEv,
+ (VTBL_ENTRY)&_ZN5FF3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF323__9GG3233233[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv)();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF323__9GG3233233[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv),
+};
+static VTT_ENTRY vtt_GG3233233[] = {
+ {&(_ZTV9GG3233233[6]), 6,34},
+ {&(_ZTV9GG3233233[14]), 14,34},
+ {&(_ZTV9GG3233233[20]), 20,34},
+ {&(_ZTV9GG3233233[25]), 25,34},
+ {&(_ZTV9GG3233233[32]), 32,34},
+ {&(_tg__ZTV5EE323__9GG3233233[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE323__9GG3233233[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE323__9GG3233233[3]), 3,4},
+ {&(_tg__ZTV5FF323__9GG3233233[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF323__9GG3233233[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF323__9GG3233233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3233233[];
+extern VTBL_ENTRY _ZTV9GG3233233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3233233[];
+static VTBL_ENTRY alt_thunk_names924[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32332333barEv,_ZTv0_n12_N9GG32332333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32332333barEv,_ZThn24_N9GG32332333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32332333barEv,_ZTv0_n16_N9GG32332333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32332333barEv,_ZThn16_N9GG32332333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32332333fooEv,_ZTv0_n12_N9GG32332333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32332333fooEv,_ZThn16_N9GG32332333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG32332333barEv,_ZTv0_n24_N9GG32332333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32332333barEv,_ZThn32_N9GG32332333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32332333barEv,_ZThn8_N9GG32332333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32332333fooEv,_ZTv0_n20_N9GG32332333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32332333fooEv,_ZThn32_N9GG32332333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32332333fooEv,_ZThn8_N9GG32332333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3233233 = { "GG3233233", // class name
+ bases_GG3233233, 4,
+ &(vtc_GG3233233[0]), // expected_vtbl_contents
+ &(vtt_GG3233233[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG3233233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3233233),34, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3233233),11, //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 GG3233313 : virtual EE323 , virtual FF331 {
+ int pg;
+ virtual void foo(); // _ZN9GG32333133fooEv
+ virtual void bar(); // _ZN9GG32333133barEv
+ ~GG3233313(); // tgen
+ GG3233313(); // tgen
+};
+//SIG(1 GG3233313) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3233313 ::foo(){vfunc_called(this, "_ZN9GG32333133fooEv");}
+void GG3233313 ::bar(){vfunc_called(this, "_ZN9GG32333133barEv");}
+GG3233313 ::~GG3233313(){ note_dtor("GG3233313", this);} // tgen
+GG3233313 ::GG3233313(){ note_ctor("GG3233313", this);} // tgen
+
+static void Test_GG3233313()
+{
+ extern Class_Descriptor cd_GG3233313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3233313, buf);
+ GG3233313 *dp, &lv = *(dp=new (buf) GG3233313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3233313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3233313)");
+ check_base_class_offset(lv, (AA3*)(EE323*), ABISELECT(32,16), "GG3233313");
+ check_base_class_offset(lv, (AA3*)(FF331*), ABISELECT(32,16), "GG3233313");
+ check_base_class_offset(lv, (BB2*)(EE323*), ABISELECT(48,24), "GG3233313");
+ check_base_class_offset(lv, (EE323*), ABISELECT(16,8), "GG3233313");
+ check_base_class_offset(lv, (BB3*)(FF331*), ABISELECT(80,40), "GG3233313");
+ check_base_class_offset(lv, (FF331*), ABISELECT(64,32), "GG3233313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3233313.pg");
+ test_class_info(&lv, &cd_GG3233313);
+ dp->~GG3233313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3233313(Test_GG3233313, "GG3233313", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3233313C1Ev();
+extern void _ZN9GG3233313D1Ev();
+Name_Map name_map_GG3233313[] = {
+ NSPAIR(_ZN9GG3233313C1Ev),
+ NSPAIR(_ZN9GG3233313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE323;
+extern VTBL_ENTRY _ZTI5EE323[];
+extern VTBL_ENTRY _ZTV5EE323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE323[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF331;
+extern VTBL_ENTRY _ZTI5FF331[];
+extern VTBL_ENTRY _ZTV5FF331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF331[];
+static Base_Class bases_GG3233313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE323, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF331, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3233313[];
+extern void _ZN9GG32333133fooEv();
+extern void _ZN9GG32333133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32333133fooEv,_ZTv0_n20_N9GG32333133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32333133fooEv,_ZThn8_N9GG32333133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32333133barEv,_ZTv0_n24_N9GG32333133barEv)();
+extern void ABISELECT(_ZThn16_N9GG32333133barEv,_ZThn8_N9GG32333133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32333133fooEv,_ZTv0_n12_N9GG32333133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32333133fooEv,_ZThn16_N9GG32333133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32333133barEv,_ZTv0_n16_N9GG32333133barEv)();
+extern void ABISELECT(_ZThn32_N9GG32333133barEv,_ZThn16_N9GG32333133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32333133barEv,_ZTv0_n12_N9GG32333133barEv)();
+extern void ABISELECT(_ZThn48_N9GG32333133barEv,_ZThn24_N9GG32333133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32333133fooEv,_ZTv0_n20_N9GG32333133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32333133fooEv,_ZThn32_N9GG32333133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32333133fooEv,_ZTv0_n12_N9GG32333133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG32333133fooEv,_ZThn40_N9GG32333133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32333133barEv,_ZTv0_n16_N9GG32333133barEv)();
+extern void ABISELECT(_ZThn80_N9GG32333133barEv,_ZThn40_N9GG32333133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3233313[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3233313[0]),
+ (VTBL_ENTRY)&_ZN9GG32333133fooEv,
+ (VTBL_ENTRY)&_ZN9GG32333133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3233313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32333133fooEv,_ZTv0_n20_N9GG32333133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32333133barEv,_ZTv0_n24_N9GG32333133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3233313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32333133fooEv,_ZTv0_n12_N9GG32333133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32333133barEv,_ZTv0_n16_N9GG32333133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3233313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32333133barEv,_ZTv0_n12_N9GG32333133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3233313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32333133fooEv,_ZTv0_n20_N9GG32333133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3233313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32333133fooEv,_ZTv0_n12_N9GG32333133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32333133barEv,_ZTv0_n16_N9GG32333133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3233313[];
+extern void _ZN5EE3233fooEv();
+extern void _ZN5EE3233barEv();
+static VTBL_ENTRY _tg__ZTV5EE323__9GG3233313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&_ZN5EE3233fooEv,
+ (VTBL_ENTRY)&_ZN5EE3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv)();
+extern void ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE323__9GG3233313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv)();
+extern void ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE323__9GG3233313[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv),
+};
+extern void _ZN5FF3313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF331__9GG3233313[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&_ZN5FF3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF331__9GG3233313[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF331__9GG3233313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG3233313[] = {
+ {&(_ZTV9GG3233313[7]), 7,39},
+ {&(_ZTV9GG3233313[15]), 15,39},
+ {&(_ZTV9GG3233313[21]), 21,39},
+ {&(_ZTV9GG3233313[26]), 26,39},
+ {&(_ZTV9GG3233313[32]), 32,39},
+ {&(_ZTV9GG3233313[37]), 37,39},
+ {&(_tg__ZTV5EE323__9GG3233313[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE323__9GG3233313[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE323__9GG3233313[3]), 3,4},
+ {&(_tg__ZTV5FF331__9GG3233313[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF331__9GG3233313[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF331__9GG3233313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3233313[];
+extern VTBL_ENTRY _ZTV9GG3233313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3233313[];
+static VTBL_ENTRY alt_thunk_names925[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3313fooEv,_ZThn8_N5FF3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32333133barEv,_ZTv0_n12_N9GG32333133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32333133barEv,_ZThn24_N9GG32333133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32333133barEv,_ZTv0_n16_N9GG32333133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32333133barEv,_ZThn40_N9GG32333133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32333133barEv,_ZThn16_N9GG32333133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32333133fooEv,_ZTv0_n12_N9GG32333133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32333133fooEv,_ZThn40_N9GG32333133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32333133fooEv,_ZThn16_N9GG32333133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG32333133barEv,_ZTv0_n24_N9GG32333133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32333133barEv,_ZThn8_N9GG32333133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32333133fooEv,_ZTv0_n20_N9GG32333133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32333133fooEv,_ZThn32_N9GG32333133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32333133fooEv,_ZThn8_N9GG32333133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3233313 = { "GG3233313", // class name
+ bases_GG3233313, 5,
+ &(vtc_GG3233313[0]), // expected_vtbl_contents
+ &(vtt_GG3233313[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3233313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3233313),39, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3233313),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names925,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3233323 : virtual EE323 , virtual FF332 {
+ int pg;
+ virtual void foo(); // _ZN9GG32333233fooEv
+ virtual void bar(); // _ZN9GG32333233barEv
+ ~GG3233323(); // tgen
+ GG3233323(); // tgen
+};
+//SIG(1 GG3233323) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3233323 ::foo(){vfunc_called(this, "_ZN9GG32333233fooEv");}
+void GG3233323 ::bar(){vfunc_called(this, "_ZN9GG32333233barEv");}
+GG3233323 ::~GG3233323(){ note_dtor("GG3233323", this);} // tgen
+GG3233323 ::GG3233323(){ note_ctor("GG3233323", this);} // tgen
+
+static void Test_GG3233323()
+{
+ extern Class_Descriptor cd_GG3233323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3233323, buf);
+ GG3233323 *dp, &lv = *(dp=new (buf) GG3233323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3233323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3233323)");
+ check_base_class_offset(lv, (AA3*)(EE323*), ABISELECT(32,16), "GG3233323");
+ check_base_class_offset(lv, (AA3*)(FF332*), ABISELECT(32,16), "GG3233323");
+ check_base_class_offset(lv, (BB2*)(EE323*), ABISELECT(48,24), "GG3233323");
+ check_base_class_offset(lv, (EE323*), ABISELECT(16,8), "GG3233323");
+ check_base_class_offset(lv, (BB3*)(FF332*), ABISELECT(80,40), "GG3233323");
+ check_base_class_offset(lv, (FF332*), ABISELECT(64,32), "GG3233323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3233323.pg");
+ test_class_info(&lv, &cd_GG3233323);
+ dp->~GG3233323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3233323(Test_GG3233323, "GG3233323", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3233323C1Ev();
+extern void _ZN9GG3233323D1Ev();
+Name_Map name_map_GG3233323[] = {
+ NSPAIR(_ZN9GG3233323C1Ev),
+ NSPAIR(_ZN9GG3233323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE323;
+extern VTBL_ENTRY _ZTI5EE323[];
+extern VTBL_ENTRY _ZTV5EE323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE323[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF332;
+extern VTBL_ENTRY _ZTI5FF332[];
+extern VTBL_ENTRY _ZTV5FF332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF332[];
+static Base_Class bases_GG3233323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE323, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF332, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3233323[];
+extern void _ZN9GG32333233fooEv();
+extern void _ZN9GG32333233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32333233fooEv,_ZTv0_n20_N9GG32333233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32333233fooEv,_ZThn8_N9GG32333233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32333233barEv,_ZTv0_n24_N9GG32333233barEv)();
+extern void ABISELECT(_ZThn16_N9GG32333233barEv,_ZThn8_N9GG32333233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32333233fooEv,_ZTv0_n12_N9GG32333233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32333233fooEv,_ZThn16_N9GG32333233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32333233barEv,_ZTv0_n16_N9GG32333233barEv)();
+extern void ABISELECT(_ZThn32_N9GG32333233barEv,_ZThn16_N9GG32333233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32333233barEv,_ZTv0_n12_N9GG32333233barEv)();
+extern void ABISELECT(_ZThn48_N9GG32333233barEv,_ZThn24_N9GG32333233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32333233barEv,_ZTv0_n20_N9GG32333233barEv)();
+extern void ABISELECT(_ZThn64_N9GG32333233barEv,_ZThn32_N9GG32333233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32333233fooEv,_ZTv0_n12_N9GG32333233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG32333233fooEv,_ZThn40_N9GG32333233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32333233barEv,_ZTv0_n16_N9GG32333233barEv)();
+extern void ABISELECT(_ZThn80_N9GG32333233barEv,_ZThn40_N9GG32333233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3233323[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3233323[0]),
+ (VTBL_ENTRY)&_ZN9GG32333233fooEv,
+ (VTBL_ENTRY)&_ZN9GG32333233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3233323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32333233fooEv,_ZTv0_n20_N9GG32333233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32333233barEv,_ZTv0_n24_N9GG32333233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3233323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32333233fooEv,_ZTv0_n12_N9GG32333233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32333233barEv,_ZTv0_n16_N9GG32333233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3233323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32333233barEv,_ZTv0_n12_N9GG32333233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3233323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32333233barEv,_ZTv0_n20_N9GG32333233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3233323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32333233fooEv,_ZTv0_n12_N9GG32333233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32333233barEv,_ZTv0_n16_N9GG32333233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3233323[];
+extern void _ZN5EE3233fooEv();
+extern void _ZN5EE3233barEv();
+static VTBL_ENTRY _tg__ZTV5EE323__9GG3233323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&_ZN5EE3233fooEv,
+ (VTBL_ENTRY)&_ZN5EE3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv)();
+extern void ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE323__9GG3233323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv)();
+extern void ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE323__9GG3233323[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv),
+};
+extern void _ZN5FF3323barEv();
+static VTBL_ENTRY _tg__ZTV5FF332__9GG3233323[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN5FF3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF332__9GG3233323[] = {
+ ABISELECT(32,16),
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+extern void ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF332__9GG3233323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+static VTT_ENTRY vtt_GG3233323[] = {
+ {&(_ZTV9GG3233323[7]), 7,39},
+ {&(_ZTV9GG3233323[15]), 15,39},
+ {&(_ZTV9GG3233323[21]), 21,39},
+ {&(_ZTV9GG3233323[26]), 26,39},
+ {&(_ZTV9GG3233323[32]), 32,39},
+ {&(_ZTV9GG3233323[37]), 37,39},
+ {&(_tg__ZTV5EE323__9GG3233323[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE323__9GG3233323[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE323__9GG3233323[3]), 3,4},
+ {&(_tg__ZTV5FF332__9GG3233323[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF332__9GG3233323[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF332__9GG3233323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3233323[];
+extern VTBL_ENTRY _ZTV9GG3233323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3233323[];
+static VTBL_ENTRY alt_thunk_names926[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3323barEv,_ZThn8_N5FF3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32333233barEv,_ZTv0_n20_N9GG32333233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32333233barEv,_ZThn32_N9GG32333233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32333233barEv,_ZTv0_n12_N9GG32333233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32333233barEv,_ZThn24_N9GG32333233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32333233barEv,_ZTv0_n16_N9GG32333233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32333233barEv,_ZThn40_N9GG32333233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32333233barEv,_ZThn16_N9GG32333233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32333233fooEv,_ZTv0_n12_N9GG32333233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32333233fooEv,_ZThn40_N9GG32333233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32333233fooEv,_ZThn16_N9GG32333233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG32333233barEv,_ZTv0_n24_N9GG32333233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32333233barEv,_ZThn8_N9GG32333233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32333233fooEv,_ZTv0_n20_N9GG32333233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32333233fooEv,_ZThn8_N9GG32333233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3233323 = { "GG3233323", // class name
+ bases_GG3233323, 5,
+ &(vtc_GG3233323[0]), // expected_vtbl_contents
+ &(vtt_GG3233323[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3233323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3233323),39, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3233323),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names926,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3233333 : virtual EE323 , virtual FF333 {
+ int pg;
+ virtual void foo(); // _ZN9GG32333333fooEv
+ virtual void bar(); // _ZN9GG32333333barEv
+ ~GG3233333(); // tgen
+ GG3233333(); // tgen
+};
+//SIG(1 GG3233333) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v1 v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3233333 ::foo(){vfunc_called(this, "_ZN9GG32333333fooEv");}
+void GG3233333 ::bar(){vfunc_called(this, "_ZN9GG32333333barEv");}
+GG3233333 ::~GG3233333(){ note_dtor("GG3233333", this);} // tgen
+GG3233333 ::GG3233333(){ note_ctor("GG3233333", this);} // tgen
+
+static void Test_GG3233333()
+{
+ extern Class_Descriptor cd_GG3233333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3233333, buf);
+ GG3233333 *dp, &lv = *(dp=new (buf) GG3233333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3233333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3233333)");
+ check_base_class_offset(lv, (AA3*)(EE323*), ABISELECT(32,16), "GG3233333");
+ check_base_class_offset(lv, (AA3*)(FF333*), ABISELECT(32,16), "GG3233333");
+ check_base_class_offset(lv, (BB2*)(EE323*), ABISELECT(48,24), "GG3233333");
+ check_base_class_offset(lv, (EE323*), ABISELECT(16,8), "GG3233333");
+ check_base_class_offset(lv, (BB3*)(FF333*), ABISELECT(80,40), "GG3233333");
+ check_base_class_offset(lv, (FF333*), ABISELECT(64,32), "GG3233333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3233333.pg");
+ test_class_info(&lv, &cd_GG3233333);
+ dp->~GG3233333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3233333(Test_GG3233333, "GG3233333", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3233333C1Ev();
+extern void _ZN9GG3233333D1Ev();
+Name_Map name_map_GG3233333[] = {
+ NSPAIR(_ZN9GG3233333C1Ev),
+ NSPAIR(_ZN9GG3233333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_EE323;
+extern VTBL_ENTRY _ZTI5EE323[];
+extern VTBL_ENTRY _ZTV5EE323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE323[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_FF333;
+extern VTBL_ENTRY _ZTI5FF333[];
+extern VTBL_ENTRY _ZTV5FF333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF333[];
+static Base_Class bases_GG3233333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE323, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB3, ABISELECT(80,40), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF333, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3233333[];
+extern void _ZN9GG32333333fooEv();
+extern void _ZN9GG32333333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG32333333fooEv,_ZTv0_n20_N9GG32333333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG32333333fooEv,_ZThn8_N9GG32333333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32333333barEv,_ZTv0_n24_N9GG32333333barEv)();
+extern void ABISELECT(_ZThn16_N9GG32333333barEv,_ZThn8_N9GG32333333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32333333fooEv,_ZTv0_n12_N9GG32333333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG32333333fooEv,_ZThn16_N9GG32333333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32333333barEv,_ZTv0_n16_N9GG32333333barEv)();
+extern void ABISELECT(_ZThn32_N9GG32333333barEv,_ZThn16_N9GG32333333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32333333barEv,_ZTv0_n12_N9GG32333333barEv)();
+extern void ABISELECT(_ZThn48_N9GG32333333barEv,_ZThn24_N9GG32333333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG32333333fooEv,_ZTv0_n20_N9GG32333333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG32333333fooEv,_ZThn32_N9GG32333333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG32333333barEv,_ZTv0_n24_N9GG32333333barEv)();
+extern void ABISELECT(_ZThn64_N9GG32333333barEv,_ZThn32_N9GG32333333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG32333333fooEv,_ZTv0_n12_N9GG32333333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG32333333fooEv,_ZThn40_N9GG32333333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG32333333barEv,_ZTv0_n16_N9GG32333333barEv)();
+extern void ABISELECT(_ZThn80_N9GG32333333barEv,_ZThn40_N9GG32333333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3233333[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3233333[0]),
+ (VTBL_ENTRY)&_ZN9GG32333333fooEv,
+ (VTBL_ENTRY)&_ZN9GG32333333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3233333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32333333fooEv,_ZTv0_n20_N9GG32333333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32333333barEv,_ZTv0_n24_N9GG32333333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3233333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32333333fooEv,_ZTv0_n12_N9GG32333333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32333333barEv,_ZTv0_n16_N9GG32333333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3233333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32333333barEv,_ZTv0_n12_N9GG32333333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3233333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG32333333fooEv,_ZTv0_n20_N9GG32333333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG32333333barEv,_ZTv0_n24_N9GG32333333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3233333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG32333333fooEv,_ZTv0_n12_N9GG32333333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG32333333barEv,_ZTv0_n16_N9GG32333333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3233333[];
+extern void _ZN5EE3233fooEv();
+extern void _ZN5EE3233barEv();
+static VTBL_ENTRY _tg__ZTV5EE323__9GG3233333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&_ZN5EE3233fooEv,
+ (VTBL_ENTRY)&_ZN5EE3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv)();
+extern void ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE323__9GG3233333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv)();
+extern void ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5EE323__9GG3233333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv),
+};
+extern void _ZN5FF3333fooEv();
+extern void _ZN5FF3333barEv();
+static VTBL_ENTRY _tg__ZTV5FF333__9GG3233333[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&_ZN5FF3333fooEv,
+ (VTBL_ENTRY)&_ZN5FF3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF333__9GG3233333[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+extern void ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5FF333__9GG3233333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+static VTT_ENTRY vtt_GG3233333[] = {
+ {&(_ZTV9GG3233333[7]), 7,41},
+ {&(_ZTV9GG3233333[15]), 15,41},
+ {&(_ZTV9GG3233333[21]), 21,41},
+ {&(_ZTV9GG3233333[26]), 26,41},
+ {&(_ZTV9GG3233333[33]), 33,41},
+ {&(_ZTV9GG3233333[39]), 39,41},
+ {&(_tg__ZTV5EE323__9GG3233333[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE323__9GG3233333[4]), 4,6},
+ {&(_tg__ZTV3BB2__5EE323__9GG3233333[3]), 3,4},
+ {&(_tg__ZTV5FF333__9GG3233333[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF333__9GG3233333[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF333__9GG3233333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3233333[];
+extern VTBL_ENTRY _ZTV9GG3233333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3233333[];
+static VTBL_ENTRY alt_thunk_names927[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333barEv,_ZThn8_N5FF3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3333fooEv,_ZThn8_N5FF3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233barEv,_ZTv0_n12_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3233barEv,_ZThn16_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3233barEv,_ZTv0_n16_N5EE3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233barEv,_ZThn8_N5EE3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3233fooEv,_ZTv0_n12_N5EE3233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3233fooEv,_ZThn8_N5EE3233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32333333barEv,_ZTv0_n12_N9GG32333333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG32333333barEv,_ZThn24_N9GG32333333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG32333333barEv,_ZTv0_n16_N9GG32333333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32333333barEv,_ZThn40_N9GG32333333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32333333barEv,_ZThn16_N9GG32333333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG32333333fooEv,_ZTv0_n12_N9GG32333333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG32333333fooEv,_ZThn40_N9GG32333333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG32333333fooEv,_ZThn16_N9GG32333333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG32333333barEv,_ZTv0_n24_N9GG32333333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32333333barEv,_ZThn32_N9GG32333333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32333333barEv,_ZThn8_N9GG32333333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG32333333fooEv,_ZTv0_n20_N9GG32333333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG32333333fooEv,_ZThn32_N9GG32333333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG32333333fooEv,_ZThn8_N9GG32333333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3233333 = { "GG3233333", // class name
+ bases_GG3233333, 5,
+ &(vtc_GG3233333[0]), // expected_vtbl_contents
+ &(vtt_GG3233333[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3233333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3233333),41, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3233333),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names927,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3311111 : virtual EE331 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG33111113fooEv
+ ~GG3311111(); // tgen
+ GG3311111(); // tgen
+};
+//SIG(1 GG3311111) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v3 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+void GG3311111 ::foo(){vfunc_called(this, "_ZN9GG33111113fooEv");}
+GG3311111 ::~GG3311111(){ note_dtor("GG3311111", this);} // tgen
+GG3311111 ::GG3311111(){ note_ctor("GG3311111", this);} // tgen
+
+static void Test_GG3311111()
+{
+ extern Class_Descriptor cd_GG3311111;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3311111, buf);
+ GG3311111 *dp, &lv = *(dp=new (buf) GG3311111());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3311111)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3311111)");
+ check_base_class_offset(lv, (AA3*)(EE331*), ABISELECT(32,16), "GG3311111");
+ check_base_class_offset(lv, (BB3*)(EE331*), ABISELECT(48,24), "GG3311111");
+ check_base_class_offset(lv, (EE331*), ABISELECT(16,8), "GG3311111");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(80,40), "GG3311111");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(96,48), "GG3311111");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG3311111");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3311111.pg");
+ test_class_info(&lv, &cd_GG3311111);
+ dp->~GG3311111();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3311111(Test_GG3311111, "GG3311111", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3311111C1Ev();
+extern void _ZN9GG3311111D1Ev();
+Name_Map name_map_GG3311111[] = {
+ NSPAIR(_ZN9GG3311111C1Ev),
+ NSPAIR(_ZN9GG3311111D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE331;
+extern VTBL_ENTRY _ZTI5EE331[];
+extern VTBL_ENTRY _ZTV5EE331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE331[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG3311111[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE331, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 37, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3311111[];
+extern void _ZN9GG33111113fooEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33111113fooEv,_ZTv0_n20_N9GG33111113fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33111113fooEv,_ZThn8_N9GG33111113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33111113fooEv,_ZTv0_n12_N9GG33111113fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33111113fooEv,_ZThn16_N9GG33111113fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+extern void ABISELECT(_ZTv0_n24_N9GG33111113fooEv,_ZTv0_n12_N9GG33111113fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33111113fooEv,_ZThn24_N9GG33111113fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33111113fooEv,_ZTv0_n20_N9GG33111113fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33111113fooEv,_ZThn32_N9GG33111113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33111113fooEv,_ZTv0_n12_N9GG33111113fooEv)();
+extern void ABISELECT(_ZThn80_N9GG33111113fooEv,_ZThn40_N9GG33111113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33111113fooEv,_ZTv0_n12_N9GG33111113fooEv)();
+extern void ABISELECT(_ZThn96_N9GG33111113fooEv,_ZThn48_N9GG33111113fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3311111[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3311111[0]),
+ (VTBL_ENTRY)&_ZN9GG33111113fooEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3311111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33111113fooEv,_ZTv0_n20_N9GG33111113fooEv),
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3311111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33111113fooEv,_ZTv0_n12_N9GG33111113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+ 0,
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3311111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33111113fooEv,_ZTv0_n12_N9GG33111113fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3311111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33111113fooEv,_ZTv0_n20_N9GG33111113fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3311111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33111113fooEv,_ZTv0_n12_N9GG33111113fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3311111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33111113fooEv,_ZTv0_n12_N9GG33111113fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3311111[];
+extern void _ZN5EE3313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE331__9GG3311111[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&_ZN5EE3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE331__9GG3311111[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE331__9GG3311111[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG3311111[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG3311111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG3311111[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG3311111[] = {
+ {&(_ZTV9GG3311111[8]), 8,41},
+ {&(_ZTV9GG3311111[14]), 14,41},
+ {&(_ZTV9GG3311111[19]), 19,41},
+ {&(_ZTV9GG3311111[25]), 25,41},
+ {&(_ZTV9GG3311111[32]), 32,41},
+ {&(_ZTV9GG3311111[36]), 36,41},
+ {&(_ZTV9GG3311111[40]), 40,41},
+ {&(_tg__ZTV5EE331__9GG3311111[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE331__9GG3311111[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE331__9GG3311111[4]), 4,6},
+ {&(_tg__ZTV5FF111__9GG3311111[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG3311111[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG3311111[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3311111[];
+extern VTBL_ENTRY _ZTV9GG3311111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3311111[];
+static VTBL_ENTRY alt_thunk_names928[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33111113fooEv,_ZTv0_n12_N9GG33111113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG33111113fooEv,_ZThn48_N9GG33111113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33111113fooEv,_ZThn40_N9GG33111113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33111113fooEv,_ZThn24_N9GG33111113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33111113fooEv,_ZThn16_N9GG33111113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33111113fooEv,_ZTv0_n20_N9GG33111113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33111113fooEv,_ZThn32_N9GG33111113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33111113fooEv,_ZThn8_N9GG33111113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3311111 = { "GG3311111", // class name
+ bases_GG3311111, 6,
+ &(vtc_GG3311111[0]), // expected_vtbl_contents
+ &(vtt_GG3311111[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3311111),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3311111),41, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3311111),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names928,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3311113 : virtual EE331 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG33111133fooEv
+ virtual void bar(); // _ZN9GG33111133barEv
+ ~GG3311113(); // tgen
+ GG3311113(); // tgen
+};
+//SIG(1 GG3311113) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3311113 ::foo(){vfunc_called(this, "_ZN9GG33111133fooEv");}
+void GG3311113 ::bar(){vfunc_called(this, "_ZN9GG33111133barEv");}
+GG3311113 ::~GG3311113(){ note_dtor("GG3311113", this);} // tgen
+GG3311113 ::GG3311113(){ note_ctor("GG3311113", this);} // tgen
+
+static void Test_GG3311113()
+{
+ extern Class_Descriptor cd_GG3311113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3311113, buf);
+ GG3311113 *dp, &lv = *(dp=new (buf) GG3311113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3311113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3311113)");
+ check_base_class_offset(lv, (AA3*)(EE331*), ABISELECT(32,16), "GG3311113");
+ check_base_class_offset(lv, (BB3*)(EE331*), ABISELECT(48,24), "GG3311113");
+ check_base_class_offset(lv, (EE331*), ABISELECT(16,8), "GG3311113");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(80,40), "GG3311113");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(96,48), "GG3311113");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG3311113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3311113.pg");
+ test_class_info(&lv, &cd_GG3311113);
+ dp->~GG3311113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3311113(Test_GG3311113, "GG3311113", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3311113C1Ev();
+extern void _ZN9GG3311113D1Ev();
+Name_Map name_map_GG3311113[] = {
+ NSPAIR(_ZN9GG3311113C1Ev),
+ NSPAIR(_ZN9GG3311113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE331;
+extern VTBL_ENTRY _ZTI5EE331[];
+extern VTBL_ENTRY _ZTV5EE331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE331[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG3311113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE331, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3311113[];
+extern void _ZN9GG33111133fooEv();
+extern void _ZN9GG33111133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33111133fooEv,_ZTv0_n20_N9GG33111133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33111133fooEv,_ZThn8_N9GG33111133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33111133fooEv,_ZTv0_n12_N9GG33111133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33111133fooEv,_ZThn16_N9GG33111133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33111133barEv,_ZTv0_n16_N9GG33111133barEv)();
+extern void ABISELECT(_ZThn32_N9GG33111133barEv,_ZThn16_N9GG33111133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33111133fooEv,_ZTv0_n12_N9GG33111133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33111133fooEv,_ZThn24_N9GG33111133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33111133barEv,_ZTv0_n16_N9GG33111133barEv)();
+extern void ABISELECT(_ZThn48_N9GG33111133barEv,_ZThn24_N9GG33111133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33111133fooEv,_ZTv0_n20_N9GG33111133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33111133fooEv,_ZThn32_N9GG33111133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33111133fooEv,_ZTv0_n12_N9GG33111133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG33111133fooEv,_ZThn40_N9GG33111133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33111133fooEv,_ZTv0_n12_N9GG33111133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG33111133fooEv,_ZThn48_N9GG33111133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3311113[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3311113[0]),
+ (VTBL_ENTRY)&_ZN9GG33111133fooEv,
+ (VTBL_ENTRY)&_ZN9GG33111133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3311113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33111133fooEv,_ZTv0_n20_N9GG33111133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3311113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33111133fooEv,_ZTv0_n12_N9GG33111133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33111133barEv,_ZTv0_n16_N9GG33111133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3311113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33111133fooEv,_ZTv0_n12_N9GG33111133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33111133barEv,_ZTv0_n16_N9GG33111133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3311113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33111133fooEv,_ZTv0_n20_N9GG33111133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3311113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33111133fooEv,_ZTv0_n12_N9GG33111133fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3311113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33111133fooEv,_ZTv0_n12_N9GG33111133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3311113[];
+extern void _ZN5EE3313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE331__9GG3311113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&_ZN5EE3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE331__9GG3311113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE331__9GG3311113[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG3311113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG3311113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG3311113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG3311113[] = {
+ {&(_ZTV9GG3311113[8]), 8,42},
+ {&(_ZTV9GG3311113[15]), 15,42},
+ {&(_ZTV9GG3311113[20]), 20,42},
+ {&(_ZTV9GG3311113[26]), 26,42},
+ {&(_ZTV9GG3311113[33]), 33,42},
+ {&(_ZTV9GG3311113[37]), 37,42},
+ {&(_ZTV9GG3311113[41]), 41,42},
+ {&(_tg__ZTV5EE331__9GG3311113[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE331__9GG3311113[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE331__9GG3311113[4]), 4,6},
+ {&(_tg__ZTV5FF111__9GG3311113[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG3311113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG3311113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3311113[];
+extern VTBL_ENTRY _ZTV9GG3311113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3311113[];
+static VTBL_ENTRY alt_thunk_names929[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33111133barEv,_ZTv0_n16_N9GG33111133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33111133barEv,_ZThn24_N9GG33111133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33111133barEv,_ZThn16_N9GG33111133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33111133fooEv,_ZTv0_n12_N9GG33111133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG33111133fooEv,_ZThn48_N9GG33111133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33111133fooEv,_ZThn40_N9GG33111133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33111133fooEv,_ZThn24_N9GG33111133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33111133fooEv,_ZThn16_N9GG33111133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33111133fooEv,_ZTv0_n20_N9GG33111133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33111133fooEv,_ZThn32_N9GG33111133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33111133fooEv,_ZThn8_N9GG33111133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3311113 = { "GG3311113", // class name
+ bases_GG3311113, 6,
+ &(vtc_GG3311113[0]), // expected_vtbl_contents
+ &(vtt_GG3311113[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3311113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3311113),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3311113),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names929,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3311123 : virtual EE331 , virtual FF112 {
+ int pg;
+ virtual void foo(); // _ZN9GG33111233fooEv
+ virtual void bar(); // _ZN9GG33111233barEv
+ ~GG3311123(); // tgen
+ GG3311123(); // tgen
+};
+//SIG(1 GG3311123) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3311123 ::foo(){vfunc_called(this, "_ZN9GG33111233fooEv");}
+void GG3311123 ::bar(){vfunc_called(this, "_ZN9GG33111233barEv");}
+GG3311123 ::~GG3311123(){ note_dtor("GG3311123", this);} // tgen
+GG3311123 ::GG3311123(){ note_ctor("GG3311123", this);} // tgen
+
+static void Test_GG3311123()
+{
+ extern Class_Descriptor cd_GG3311123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3311123, buf);
+ GG3311123 *dp, &lv = *(dp=new (buf) GG3311123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3311123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3311123)");
+ check_base_class_offset(lv, (AA3*)(EE331*), ABISELECT(32,16), "GG3311123");
+ check_base_class_offset(lv, (BB3*)(EE331*), ABISELECT(48,24), "GG3311123");
+ check_base_class_offset(lv, (EE331*), ABISELECT(16,8), "GG3311123");
+ check_base_class_offset(lv, (AA1*)(FF112*), ABISELECT(80,40), "GG3311123");
+ check_base_class_offset(lv, (BB1*)(FF112*), ABISELECT(96,48), "GG3311123");
+ check_base_class_offset(lv, (FF112*), ABISELECT(64,32), "GG3311123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3311123.pg");
+ test_class_info(&lv, &cd_GG3311123);
+ dp->~GG3311123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3311123(Test_GG3311123, "GG3311123", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3311123C1Ev();
+extern void _ZN9GG3311123D1Ev();
+Name_Map name_map_GG3311123[] = {
+ NSPAIR(_ZN9GG3311123C1Ev),
+ NSPAIR(_ZN9GG3311123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE331;
+extern VTBL_ENTRY _ZTI5EE331[];
+extern VTBL_ENTRY _ZTV5EE331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE331[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF112;
+extern VTBL_ENTRY _ZTI5FF112[];
+extern VTBL_ENTRY _ZTV5FF112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF112[];
+static Base_Class bases_GG3311123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE331, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF112, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3311123[];
+extern void _ZN9GG33111233fooEv();
+extern void _ZN9GG33111233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33111233fooEv,_ZTv0_n20_N9GG33111233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33111233fooEv,_ZThn8_N9GG33111233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33111233fooEv,_ZTv0_n12_N9GG33111233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33111233fooEv,_ZThn16_N9GG33111233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33111233barEv,_ZTv0_n16_N9GG33111233barEv)();
+extern void ABISELECT(_ZThn32_N9GG33111233barEv,_ZThn16_N9GG33111233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33111233fooEv,_ZTv0_n12_N9GG33111233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33111233fooEv,_ZThn24_N9GG33111233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33111233barEv,_ZTv0_n16_N9GG33111233barEv)();
+extern void ABISELECT(_ZThn48_N9GG33111233barEv,_ZThn24_N9GG33111233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33111233barEv,_ZTv0_n20_N9GG33111233barEv)();
+extern void ABISELECT(_ZThn64_N9GG33111233barEv,_ZThn32_N9GG33111233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33111233fooEv,_ZTv0_n12_N9GG33111233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG33111233fooEv,_ZThn40_N9GG33111233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33111233fooEv,_ZTv0_n12_N9GG33111233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG33111233fooEv,_ZThn48_N9GG33111233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3311123[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3311123[0]),
+ (VTBL_ENTRY)&_ZN9GG33111233fooEv,
+ (VTBL_ENTRY)&_ZN9GG33111233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3311123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33111233fooEv,_ZTv0_n20_N9GG33111233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3311123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33111233fooEv,_ZTv0_n12_N9GG33111233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33111233barEv,_ZTv0_n16_N9GG33111233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3311123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33111233fooEv,_ZTv0_n12_N9GG33111233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33111233barEv,_ZTv0_n16_N9GG33111233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3311123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33111233barEv,_ZTv0_n20_N9GG33111233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3311123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33111233fooEv,_ZTv0_n12_N9GG33111233fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3311123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33111233fooEv,_ZTv0_n12_N9GG33111233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3311123[];
+extern void _ZN5EE3313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE331__9GG3311123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&_ZN5EE3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE331__9GG3311123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE331__9GG3311123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF1123barEv();
+static VTBL_ENTRY _tg__ZTV5FF112__9GG3311123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN5FF1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF112__9GG3311123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF112__9GG3311123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG3311123[] = {
+ {&(_ZTV9GG3311123[8]), 8,42},
+ {&(_ZTV9GG3311123[15]), 15,42},
+ {&(_ZTV9GG3311123[20]), 20,42},
+ {&(_ZTV9GG3311123[26]), 26,42},
+ {&(_ZTV9GG3311123[33]), 33,42},
+ {&(_ZTV9GG3311123[37]), 37,42},
+ {&(_ZTV9GG3311123[41]), 41,42},
+ {&(_tg__ZTV5EE331__9GG3311123[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE331__9GG3311123[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE331__9GG3311123[4]), 4,6},
+ {&(_tg__ZTV5FF112__9GG3311123[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF112__9GG3311123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF112__9GG3311123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3311123[];
+extern VTBL_ENTRY _ZTV9GG3311123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3311123[];
+static VTBL_ENTRY alt_thunk_names930[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33111233barEv,_ZTv0_n20_N9GG33111233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33111233barEv,_ZThn32_N9GG33111233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33111233barEv,_ZTv0_n16_N9GG33111233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33111233barEv,_ZThn24_N9GG33111233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33111233barEv,_ZThn16_N9GG33111233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33111233fooEv,_ZTv0_n12_N9GG33111233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG33111233fooEv,_ZThn48_N9GG33111233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33111233fooEv,_ZThn40_N9GG33111233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33111233fooEv,_ZThn24_N9GG33111233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33111233fooEv,_ZThn16_N9GG33111233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33111233fooEv,_ZTv0_n20_N9GG33111233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33111233fooEv,_ZThn8_N9GG33111233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3311123 = { "GG3311123", // class name
+ bases_GG3311123, 6,
+ &(vtc_GG3311123[0]), // expected_vtbl_contents
+ &(vtt_GG3311123[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3311123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3311123),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3311123),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names930,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3311133 : virtual EE331 , virtual FF113 {
+ int pg;
+ virtual void foo(); // _ZN9GG33111333fooEv
+ virtual void bar(); // _ZN9GG33111333barEv
+ ~GG3311133(); // tgen
+ GG3311133(); // tgen
+};
+//SIG(1 GG3311133) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3311133 ::foo(){vfunc_called(this, "_ZN9GG33111333fooEv");}
+void GG3311133 ::bar(){vfunc_called(this, "_ZN9GG33111333barEv");}
+GG3311133 ::~GG3311133(){ note_dtor("GG3311133", this);} // tgen
+GG3311133 ::GG3311133(){ note_ctor("GG3311133", this);} // tgen
+
+static void Test_GG3311133()
+{
+ extern Class_Descriptor cd_GG3311133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3311133, buf);
+ GG3311133 *dp, &lv = *(dp=new (buf) GG3311133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3311133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3311133)");
+ check_base_class_offset(lv, (AA3*)(EE331*), ABISELECT(32,16), "GG3311133");
+ check_base_class_offset(lv, (BB3*)(EE331*), ABISELECT(48,24), "GG3311133");
+ check_base_class_offset(lv, (EE331*), ABISELECT(16,8), "GG3311133");
+ check_base_class_offset(lv, (AA1*)(FF113*), ABISELECT(80,40), "GG3311133");
+ check_base_class_offset(lv, (BB1*)(FF113*), ABISELECT(96,48), "GG3311133");
+ check_base_class_offset(lv, (FF113*), ABISELECT(64,32), "GG3311133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3311133.pg");
+ test_class_info(&lv, &cd_GG3311133);
+ dp->~GG3311133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3311133(Test_GG3311133, "GG3311133", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3311133C1Ev();
+extern void _ZN9GG3311133D1Ev();
+Name_Map name_map_GG3311133[] = {
+ NSPAIR(_ZN9GG3311133C1Ev),
+ NSPAIR(_ZN9GG3311133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE331;
+extern VTBL_ENTRY _ZTI5EE331[];
+extern VTBL_ENTRY _ZTV5EE331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE331[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF113;
+extern VTBL_ENTRY _ZTI5FF113[];
+extern VTBL_ENTRY _ZTV5FF113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF113[];
+static Base_Class bases_GG3311133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE331, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 40, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF113, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3311133[];
+extern void _ZN9GG33111333fooEv();
+extern void _ZN9GG33111333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33111333fooEv,_ZTv0_n20_N9GG33111333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33111333fooEv,_ZThn8_N9GG33111333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33111333fooEv,_ZTv0_n12_N9GG33111333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33111333fooEv,_ZThn16_N9GG33111333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33111333barEv,_ZTv0_n16_N9GG33111333barEv)();
+extern void ABISELECT(_ZThn32_N9GG33111333barEv,_ZThn16_N9GG33111333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33111333fooEv,_ZTv0_n12_N9GG33111333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33111333fooEv,_ZThn24_N9GG33111333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33111333barEv,_ZTv0_n16_N9GG33111333barEv)();
+extern void ABISELECT(_ZThn48_N9GG33111333barEv,_ZThn24_N9GG33111333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33111333fooEv,_ZTv0_n20_N9GG33111333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33111333fooEv,_ZThn32_N9GG33111333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33111333barEv,_ZTv0_n24_N9GG33111333barEv)();
+extern void ABISELECT(_ZThn64_N9GG33111333barEv,_ZThn32_N9GG33111333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33111333fooEv,_ZTv0_n12_N9GG33111333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG33111333fooEv,_ZThn40_N9GG33111333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33111333fooEv,_ZTv0_n12_N9GG33111333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG33111333fooEv,_ZThn48_N9GG33111333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3311133[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3311133[0]),
+ (VTBL_ENTRY)&_ZN9GG33111333fooEv,
+ (VTBL_ENTRY)&_ZN9GG33111333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3311133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33111333fooEv,_ZTv0_n20_N9GG33111333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3311133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33111333fooEv,_ZTv0_n12_N9GG33111333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33111333barEv,_ZTv0_n16_N9GG33111333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3311133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33111333fooEv,_ZTv0_n12_N9GG33111333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33111333barEv,_ZTv0_n16_N9GG33111333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3311133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33111333fooEv,_ZTv0_n20_N9GG33111333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33111333barEv,_ZTv0_n24_N9GG33111333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3311133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33111333fooEv,_ZTv0_n12_N9GG33111333fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3311133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33111333fooEv,_ZTv0_n12_N9GG33111333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3311133[];
+extern void _ZN5EE3313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE331__9GG3311133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&_ZN5EE3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE331__9GG3311133[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE331__9GG3311133[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF1133fooEv();
+extern void _ZN5FF1133barEv();
+static VTBL_ENTRY _tg__ZTV5FF113__9GG3311133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&_ZN5FF1133fooEv,
+ (VTBL_ENTRY)&_ZN5FF1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF113__9GG3311133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1133fooEv,_ZThn16_N5FF1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF113__9GG3311133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+static VTT_ENTRY vtt_GG3311133[] = {
+ {&(_ZTV9GG3311133[8]), 8,44},
+ {&(_ZTV9GG3311133[15]), 15,44},
+ {&(_ZTV9GG3311133[20]), 20,44},
+ {&(_ZTV9GG3311133[26]), 26,44},
+ {&(_ZTV9GG3311133[34]), 34,44},
+ {&(_ZTV9GG3311133[39]), 39,44},
+ {&(_ZTV9GG3311133[43]), 43,44},
+ {&(_tg__ZTV5EE331__9GG3311133[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE331__9GG3311133[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE331__9GG3311133[4]), 4,6},
+ {&(_tg__ZTV5FF113__9GG3311133[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF113__9GG3311133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF113__9GG3311133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3311133[];
+extern VTBL_ENTRY _ZTV9GG3311133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3311133[];
+static VTBL_ENTRY alt_thunk_names931[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1133fooEv,_ZThn16_N5FF1133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG33111333barEv,_ZTv0_n24_N9GG33111333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33111333barEv,_ZThn32_N9GG33111333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33111333barEv,_ZTv0_n16_N9GG33111333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33111333barEv,_ZThn24_N9GG33111333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33111333barEv,_ZThn16_N9GG33111333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33111333fooEv,_ZTv0_n12_N9GG33111333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG33111333fooEv,_ZThn48_N9GG33111333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33111333fooEv,_ZThn40_N9GG33111333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33111333fooEv,_ZThn24_N9GG33111333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33111333fooEv,_ZThn16_N9GG33111333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33111333fooEv,_ZTv0_n20_N9GG33111333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33111333fooEv,_ZThn32_N9GG33111333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33111333fooEv,_ZThn8_N9GG33111333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3311133 = { "GG3311133", // class name
+ bases_GG3311133, 6,
+ &(vtc_GG3311133[0]), // expected_vtbl_contents
+ &(vtt_GG3311133[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3311133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3311133),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3311133),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names931,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3311213 : virtual EE331 , virtual FF121 {
+ int pg;
+ virtual void foo(); // _ZN9GG33112133fooEv
+ virtual void bar(); // _ZN9GG33112133barEv
+ ~GG3311213(); // tgen
+ GG3311213(); // tgen
+};
+//SIG(1 GG3311213) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3311213 ::foo(){vfunc_called(this, "_ZN9GG33112133fooEv");}
+void GG3311213 ::bar(){vfunc_called(this, "_ZN9GG33112133barEv");}
+GG3311213 ::~GG3311213(){ note_dtor("GG3311213", this);} // tgen
+GG3311213 ::GG3311213(){ note_ctor("GG3311213", this);} // tgen
+
+static void Test_GG3311213()
+{
+ extern Class_Descriptor cd_GG3311213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3311213, buf);
+ GG3311213 *dp, &lv = *(dp=new (buf) GG3311213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3311213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3311213)");
+ check_base_class_offset(lv, (AA3*)(EE331*), ABISELECT(32,16), "GG3311213");
+ check_base_class_offset(lv, (BB3*)(EE331*), ABISELECT(48,24), "GG3311213");
+ check_base_class_offset(lv, (EE331*), ABISELECT(16,8), "GG3311213");
+ check_base_class_offset(lv, (AA1*)(FF121*), ABISELECT(80,40), "GG3311213");
+ check_base_class_offset(lv, (BB2*)(FF121*), ABISELECT(96,48), "GG3311213");
+ check_base_class_offset(lv, (FF121*), ABISELECT(64,32), "GG3311213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3311213.pg");
+ test_class_info(&lv, &cd_GG3311213);
+ dp->~GG3311213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3311213(Test_GG3311213, "GG3311213", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3311213C1Ev();
+extern void _ZN9GG3311213D1Ev();
+Name_Map name_map_GG3311213[] = {
+ NSPAIR(_ZN9GG3311213C1Ev),
+ NSPAIR(_ZN9GG3311213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE331;
+extern VTBL_ENTRY _ZTI5EE331[];
+extern VTBL_ENTRY _ZTV5EE331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE331[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF121;
+extern VTBL_ENTRY _ZTI5FF121[];
+extern VTBL_ENTRY _ZTV5FF121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF121[];
+static Base_Class bases_GG3311213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE331, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF121, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3311213[];
+extern void _ZN9GG33112133fooEv();
+extern void _ZN9GG33112133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33112133fooEv,_ZTv0_n20_N9GG33112133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33112133fooEv,_ZThn8_N9GG33112133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33112133fooEv,_ZTv0_n12_N9GG33112133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33112133fooEv,_ZThn16_N9GG33112133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33112133barEv,_ZTv0_n16_N9GG33112133barEv)();
+extern void ABISELECT(_ZThn32_N9GG33112133barEv,_ZThn16_N9GG33112133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33112133fooEv,_ZTv0_n12_N9GG33112133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33112133fooEv,_ZThn24_N9GG33112133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33112133barEv,_ZTv0_n16_N9GG33112133barEv)();
+extern void ABISELECT(_ZThn48_N9GG33112133barEv,_ZThn24_N9GG33112133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33112133fooEv,_ZTv0_n20_N9GG33112133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33112133fooEv,_ZThn32_N9GG33112133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33112133fooEv,_ZTv0_n12_N9GG33112133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG33112133fooEv,_ZThn40_N9GG33112133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33112133barEv,_ZTv0_n12_N9GG33112133barEv)();
+extern void ABISELECT(_ZThn96_N9GG33112133barEv,_ZThn48_N9GG33112133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3311213[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3311213[0]),
+ (VTBL_ENTRY)&_ZN9GG33112133fooEv,
+ (VTBL_ENTRY)&_ZN9GG33112133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3311213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33112133fooEv,_ZTv0_n20_N9GG33112133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3311213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33112133fooEv,_ZTv0_n12_N9GG33112133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33112133barEv,_ZTv0_n16_N9GG33112133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3311213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33112133fooEv,_ZTv0_n12_N9GG33112133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33112133barEv,_ZTv0_n16_N9GG33112133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3311213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33112133fooEv,_ZTv0_n20_N9GG33112133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3311213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33112133fooEv,_ZTv0_n12_N9GG33112133fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3311213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33112133barEv,_ZTv0_n12_N9GG33112133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3311213[];
+extern void _ZN5EE3313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE331__9GG3311213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&_ZN5EE3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE331__9GG3311213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE331__9GG3311213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF1213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF121__9GG3311213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN5FF1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1213fooEv,_ZThn8_N5FF1213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF121__9GG3311213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF121__9GG3311213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG3311213[] = {
+ {&(_ZTV9GG3311213[8]), 8,42},
+ {&(_ZTV9GG3311213[15]), 15,42},
+ {&(_ZTV9GG3311213[20]), 20,42},
+ {&(_ZTV9GG3311213[26]), 26,42},
+ {&(_ZTV9GG3311213[33]), 33,42},
+ {&(_ZTV9GG3311213[37]), 37,42},
+ {&(_ZTV9GG3311213[41]), 41,42},
+ {&(_tg__ZTV5EE331__9GG3311213[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE331__9GG3311213[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE331__9GG3311213[4]), 4,6},
+ {&(_tg__ZTV5FF121__9GG3311213[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF121__9GG3311213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF121__9GG3311213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3311213[];
+extern VTBL_ENTRY _ZTV9GG3311213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3311213[];
+static VTBL_ENTRY alt_thunk_names932[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1213fooEv,_ZThn8_N5FF1213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33112133barEv,_ZTv0_n12_N9GG33112133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG33112133barEv,_ZThn48_N9GG33112133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33112133barEv,_ZTv0_n16_N9GG33112133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33112133barEv,_ZThn24_N9GG33112133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33112133barEv,_ZThn16_N9GG33112133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33112133fooEv,_ZTv0_n12_N9GG33112133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33112133fooEv,_ZThn40_N9GG33112133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33112133fooEv,_ZThn24_N9GG33112133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33112133fooEv,_ZThn16_N9GG33112133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33112133fooEv,_ZTv0_n20_N9GG33112133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33112133fooEv,_ZThn32_N9GG33112133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33112133fooEv,_ZThn8_N9GG33112133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3311213 = { "GG3311213", // class name
+ bases_GG3311213, 6,
+ &(vtc_GG3311213[0]), // expected_vtbl_contents
+ &(vtt_GG3311213[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3311213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3311213),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3311213),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names932,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3311223 : virtual EE331 , virtual FF122 {
+ int pg;
+ virtual void foo(); // _ZN9GG33112233fooEv
+ virtual void bar(); // _ZN9GG33112233barEv
+ ~GG3311223(); // tgen
+ GG3311223(); // tgen
+};
+//SIG(1 GG3311223) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3311223 ::foo(){vfunc_called(this, "_ZN9GG33112233fooEv");}
+void GG3311223 ::bar(){vfunc_called(this, "_ZN9GG33112233barEv");}
+GG3311223 ::~GG3311223(){ note_dtor("GG3311223", this);} // tgen
+GG3311223 ::GG3311223(){ note_ctor("GG3311223", this);} // tgen
+
+static void Test_GG3311223()
+{
+ extern Class_Descriptor cd_GG3311223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3311223, buf);
+ GG3311223 *dp, &lv = *(dp=new (buf) GG3311223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3311223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3311223)");
+ check_base_class_offset(lv, (AA3*)(EE331*), ABISELECT(32,16), "GG3311223");
+ check_base_class_offset(lv, (BB3*)(EE331*), ABISELECT(48,24), "GG3311223");
+ check_base_class_offset(lv, (EE331*), ABISELECT(16,8), "GG3311223");
+ check_base_class_offset(lv, (AA1*)(FF122*), ABISELECT(80,40), "GG3311223");
+ check_base_class_offset(lv, (BB2*)(FF122*), ABISELECT(96,48), "GG3311223");
+ check_base_class_offset(lv, (FF122*), ABISELECT(64,32), "GG3311223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3311223.pg");
+ test_class_info(&lv, &cd_GG3311223);
+ dp->~GG3311223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3311223(Test_GG3311223, "GG3311223", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3311223C1Ev();
+extern void _ZN9GG3311223D1Ev();
+Name_Map name_map_GG3311223[] = {
+ NSPAIR(_ZN9GG3311223C1Ev),
+ NSPAIR(_ZN9GG3311223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE331;
+extern VTBL_ENTRY _ZTI5EE331[];
+extern VTBL_ENTRY _ZTV5EE331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE331[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF122;
+extern VTBL_ENTRY _ZTI5FF122[];
+extern VTBL_ENTRY _ZTV5FF122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF122[];
+static Base_Class bases_GG3311223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE331, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF122, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3311223[];
+extern void _ZN9GG33112233fooEv();
+extern void _ZN9GG33112233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33112233fooEv,_ZTv0_n20_N9GG33112233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33112233fooEv,_ZThn8_N9GG33112233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33112233fooEv,_ZTv0_n12_N9GG33112233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33112233fooEv,_ZThn16_N9GG33112233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33112233barEv,_ZTv0_n16_N9GG33112233barEv)();
+extern void ABISELECT(_ZThn32_N9GG33112233barEv,_ZThn16_N9GG33112233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33112233fooEv,_ZTv0_n12_N9GG33112233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33112233fooEv,_ZThn24_N9GG33112233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33112233barEv,_ZTv0_n16_N9GG33112233barEv)();
+extern void ABISELECT(_ZThn48_N9GG33112233barEv,_ZThn24_N9GG33112233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33112233barEv,_ZTv0_n20_N9GG33112233barEv)();
+extern void ABISELECT(_ZThn64_N9GG33112233barEv,_ZThn32_N9GG33112233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33112233fooEv,_ZTv0_n12_N9GG33112233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG33112233fooEv,_ZThn40_N9GG33112233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33112233barEv,_ZTv0_n12_N9GG33112233barEv)();
+extern void ABISELECT(_ZThn96_N9GG33112233barEv,_ZThn48_N9GG33112233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3311223[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3311223[0]),
+ (VTBL_ENTRY)&_ZN9GG33112233fooEv,
+ (VTBL_ENTRY)&_ZN9GG33112233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3311223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33112233fooEv,_ZTv0_n20_N9GG33112233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3311223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33112233fooEv,_ZTv0_n12_N9GG33112233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33112233barEv,_ZTv0_n16_N9GG33112233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3311223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33112233fooEv,_ZTv0_n12_N9GG33112233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33112233barEv,_ZTv0_n16_N9GG33112233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3311223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33112233barEv,_ZTv0_n20_N9GG33112233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3311223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33112233fooEv,_ZTv0_n12_N9GG33112233fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3311223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33112233barEv,_ZTv0_n12_N9GG33112233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3311223[];
+extern void _ZN5EE3313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE331__9GG3311223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&_ZN5EE3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE331__9GG3311223[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE331__9GG3311223[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF1223barEv();
+static VTBL_ENTRY _tg__ZTV5FF122__9GG3311223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN5FF1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF122__9GG3311223[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv)();
+extern void ABISELECT(_ZThn32_N5FF1223barEv,_ZThn16_N5FF1223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF122__9GG3311223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv),
+};
+static VTT_ENTRY vtt_GG3311223[] = {
+ {&(_ZTV9GG3311223[8]), 8,42},
+ {&(_ZTV9GG3311223[15]), 15,42},
+ {&(_ZTV9GG3311223[20]), 20,42},
+ {&(_ZTV9GG3311223[26]), 26,42},
+ {&(_ZTV9GG3311223[33]), 33,42},
+ {&(_ZTV9GG3311223[37]), 37,42},
+ {&(_ZTV9GG3311223[41]), 41,42},
+ {&(_tg__ZTV5EE331__9GG3311223[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE331__9GG3311223[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE331__9GG3311223[4]), 4,6},
+ {&(_tg__ZTV5FF122__9GG3311223[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF122__9GG3311223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF122__9GG3311223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3311223[];
+extern VTBL_ENTRY _ZTV9GG3311223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3311223[];
+static VTBL_ENTRY alt_thunk_names933[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1223barEv,_ZThn16_N5FF1223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33112233barEv,_ZTv0_n12_N9GG33112233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG33112233barEv,_ZThn48_N9GG33112233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33112233barEv,_ZTv0_n20_N9GG33112233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33112233barEv,_ZThn32_N9GG33112233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33112233barEv,_ZTv0_n16_N9GG33112233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33112233barEv,_ZThn24_N9GG33112233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33112233barEv,_ZThn16_N9GG33112233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33112233fooEv,_ZTv0_n12_N9GG33112233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33112233fooEv,_ZThn40_N9GG33112233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33112233fooEv,_ZThn24_N9GG33112233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33112233fooEv,_ZThn16_N9GG33112233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33112233fooEv,_ZTv0_n20_N9GG33112233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33112233fooEv,_ZThn8_N9GG33112233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3311223 = { "GG3311223", // class name
+ bases_GG3311223, 6,
+ &(vtc_GG3311223[0]), // expected_vtbl_contents
+ &(vtt_GG3311223[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3311223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3311223),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3311223),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names933,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3311233 : virtual EE331 , virtual FF123 {
+ int pg;
+ virtual void foo(); // _ZN9GG33112333fooEv
+ virtual void bar(); // _ZN9GG33112333barEv
+ ~GG3311233(); // tgen
+ GG3311233(); // tgen
+};
+//SIG(1 GG3311233) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3311233 ::foo(){vfunc_called(this, "_ZN9GG33112333fooEv");}
+void GG3311233 ::bar(){vfunc_called(this, "_ZN9GG33112333barEv");}
+GG3311233 ::~GG3311233(){ note_dtor("GG3311233", this);} // tgen
+GG3311233 ::GG3311233(){ note_ctor("GG3311233", this);} // tgen
+
+static void Test_GG3311233()
+{
+ extern Class_Descriptor cd_GG3311233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3311233, buf);
+ GG3311233 *dp, &lv = *(dp=new (buf) GG3311233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3311233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3311233)");
+ check_base_class_offset(lv, (AA3*)(EE331*), ABISELECT(32,16), "GG3311233");
+ check_base_class_offset(lv, (BB3*)(EE331*), ABISELECT(48,24), "GG3311233");
+ check_base_class_offset(lv, (EE331*), ABISELECT(16,8), "GG3311233");
+ check_base_class_offset(lv, (AA1*)(FF123*), ABISELECT(80,40), "GG3311233");
+ check_base_class_offset(lv, (BB2*)(FF123*), ABISELECT(96,48), "GG3311233");
+ check_base_class_offset(lv, (FF123*), ABISELECT(64,32), "GG3311233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3311233.pg");
+ test_class_info(&lv, &cd_GG3311233);
+ dp->~GG3311233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3311233(Test_GG3311233, "GG3311233", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3311233C1Ev();
+extern void _ZN9GG3311233D1Ev();
+Name_Map name_map_GG3311233[] = {
+ NSPAIR(_ZN9GG3311233C1Ev),
+ NSPAIR(_ZN9GG3311233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE331;
+extern VTBL_ENTRY _ZTI5EE331[];
+extern VTBL_ENTRY _ZTV5EE331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE331[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF123;
+extern VTBL_ENTRY _ZTI5FF123[];
+extern VTBL_ENTRY _ZTV5FF123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF123[];
+static Base_Class bases_GG3311233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE331, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 40, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF123, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3311233[];
+extern void _ZN9GG33112333fooEv();
+extern void _ZN9GG33112333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33112333fooEv,_ZTv0_n20_N9GG33112333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33112333fooEv,_ZThn8_N9GG33112333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33112333fooEv,_ZTv0_n12_N9GG33112333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33112333fooEv,_ZThn16_N9GG33112333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33112333barEv,_ZTv0_n16_N9GG33112333barEv)();
+extern void ABISELECT(_ZThn32_N9GG33112333barEv,_ZThn16_N9GG33112333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33112333fooEv,_ZTv0_n12_N9GG33112333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33112333fooEv,_ZThn24_N9GG33112333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33112333barEv,_ZTv0_n16_N9GG33112333barEv)();
+extern void ABISELECT(_ZThn48_N9GG33112333barEv,_ZThn24_N9GG33112333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33112333fooEv,_ZTv0_n20_N9GG33112333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33112333fooEv,_ZThn32_N9GG33112333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33112333barEv,_ZTv0_n24_N9GG33112333barEv)();
+extern void ABISELECT(_ZThn64_N9GG33112333barEv,_ZThn32_N9GG33112333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33112333fooEv,_ZTv0_n12_N9GG33112333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG33112333fooEv,_ZThn40_N9GG33112333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33112333barEv,_ZTv0_n12_N9GG33112333barEv)();
+extern void ABISELECT(_ZThn96_N9GG33112333barEv,_ZThn48_N9GG33112333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3311233[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3311233[0]),
+ (VTBL_ENTRY)&_ZN9GG33112333fooEv,
+ (VTBL_ENTRY)&_ZN9GG33112333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3311233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33112333fooEv,_ZTv0_n20_N9GG33112333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3311233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33112333fooEv,_ZTv0_n12_N9GG33112333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33112333barEv,_ZTv0_n16_N9GG33112333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3311233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33112333fooEv,_ZTv0_n12_N9GG33112333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33112333barEv,_ZTv0_n16_N9GG33112333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3311233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33112333fooEv,_ZTv0_n20_N9GG33112333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33112333barEv,_ZTv0_n24_N9GG33112333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3311233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33112333fooEv,_ZTv0_n12_N9GG33112333fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3311233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33112333barEv,_ZTv0_n12_N9GG33112333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3311233[];
+extern void _ZN5EE3313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE331__9GG3311233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&_ZN5EE3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE331__9GG3311233[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE331__9GG3311233[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF1233fooEv();
+extern void _ZN5FF1233barEv();
+static VTBL_ENTRY _tg__ZTV5FF123__9GG3311233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&_ZN5FF1233fooEv,
+ (VTBL_ENTRY)&_ZN5FF1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1233fooEv,_ZThn8_N5FF1233fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF123__9GG3311233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv)();
+extern void ABISELECT(_ZThn32_N5FF1233barEv,_ZThn16_N5FF1233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF123__9GG3311233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv),
+};
+static VTT_ENTRY vtt_GG3311233[] = {
+ {&(_ZTV9GG3311233[8]), 8,44},
+ {&(_ZTV9GG3311233[15]), 15,44},
+ {&(_ZTV9GG3311233[20]), 20,44},
+ {&(_ZTV9GG3311233[26]), 26,44},
+ {&(_ZTV9GG3311233[34]), 34,44},
+ {&(_ZTV9GG3311233[39]), 39,44},
+ {&(_ZTV9GG3311233[43]), 43,44},
+ {&(_tg__ZTV5EE331__9GG3311233[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE331__9GG3311233[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE331__9GG3311233[4]), 4,6},
+ {&(_tg__ZTV5FF123__9GG3311233[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF123__9GG3311233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF123__9GG3311233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3311233[];
+extern VTBL_ENTRY _ZTV9GG3311233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3311233[];
+static VTBL_ENTRY alt_thunk_names934[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1233barEv,_ZThn16_N5FF1233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1233fooEv,_ZThn8_N5FF1233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33112333barEv,_ZTv0_n12_N9GG33112333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG33112333barEv,_ZThn48_N9GG33112333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG33112333barEv,_ZTv0_n24_N9GG33112333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33112333barEv,_ZThn32_N9GG33112333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33112333barEv,_ZTv0_n16_N9GG33112333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33112333barEv,_ZThn24_N9GG33112333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33112333barEv,_ZThn16_N9GG33112333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33112333fooEv,_ZTv0_n12_N9GG33112333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33112333fooEv,_ZThn40_N9GG33112333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33112333fooEv,_ZThn24_N9GG33112333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33112333fooEv,_ZThn16_N9GG33112333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33112333fooEv,_ZTv0_n20_N9GG33112333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33112333fooEv,_ZThn32_N9GG33112333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33112333fooEv,_ZThn8_N9GG33112333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3311233 = { "GG3311233", // class name
+ bases_GG3311233, 6,
+ &(vtc_GG3311233[0]), // expected_vtbl_contents
+ &(vtt_GG3311233[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3311233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3311233),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3311233),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names934,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3311313 : virtual EE331 , virtual FF131 {
+ int pg;
+ virtual void foo(); // _ZN9GG33113133fooEv
+ virtual void bar(); // _ZN9GG33113133barEv
+ ~GG3311313(); // tgen
+ GG3311313(); // tgen
+};
+//SIG(1 GG3311313) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG3311313 ::foo(){vfunc_called(this, "_ZN9GG33113133fooEv");}
+void GG3311313 ::bar(){vfunc_called(this, "_ZN9GG33113133barEv");}
+GG3311313 ::~GG3311313(){ note_dtor("GG3311313", this);} // tgen
+GG3311313 ::GG3311313(){ note_ctor("GG3311313", this);} // tgen
+
+static void Test_GG3311313()
+{
+ extern Class_Descriptor cd_GG3311313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3311313, buf);
+ GG3311313 *dp, &lv = *(dp=new (buf) GG3311313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3311313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3311313)");
+ check_base_class_offset(lv, (AA3*)(EE331*), ABISELECT(32,16), "GG3311313");
+ check_base_class_offset(lv, (BB3*)(EE331*), ABISELECT(48,24), "GG3311313");
+ check_base_class_offset(lv, (BB3*)(FF131*), ABISELECT(48,24), "GG3311313");
+ check_base_class_offset(lv, (EE331*), ABISELECT(16,8), "GG3311313");
+ check_base_class_offset(lv, (AA1*)(FF131*), ABISELECT(80,40), "GG3311313");
+ check_base_class_offset(lv, (FF131*), ABISELECT(64,32), "GG3311313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3311313.pg");
+ test_class_info(&lv, &cd_GG3311313);
+ dp->~GG3311313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3311313(Test_GG3311313, "GG3311313", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3311313C1Ev();
+extern void _ZN9GG3311313D1Ev();
+Name_Map name_map_GG3311313[] = {
+ NSPAIR(_ZN9GG3311313C1Ev),
+ NSPAIR(_ZN9GG3311313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE331;
+extern VTBL_ENTRY _ZTI5EE331[];
+extern VTBL_ENTRY _ZTV5EE331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE331[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF131;
+extern VTBL_ENTRY _ZTI5FF131[];
+extern VTBL_ENTRY _ZTV5FF131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF131[];
+static Base_Class bases_GG3311313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE331, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF131, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3311313[];
+extern void _ZN9GG33113133fooEv();
+extern void _ZN9GG33113133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33113133fooEv,_ZTv0_n20_N9GG33113133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33113133fooEv,_ZThn8_N9GG33113133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33113133fooEv,_ZTv0_n12_N9GG33113133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33113133fooEv,_ZThn16_N9GG33113133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33113133barEv,_ZTv0_n16_N9GG33113133barEv)();
+extern void ABISELECT(_ZThn32_N9GG33113133barEv,_ZThn16_N9GG33113133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33113133fooEv,_ZTv0_n12_N9GG33113133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33113133fooEv,_ZThn24_N9GG33113133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33113133barEv,_ZTv0_n16_N9GG33113133barEv)();
+extern void ABISELECT(_ZThn48_N9GG33113133barEv,_ZThn24_N9GG33113133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33113133fooEv,_ZTv0_n20_N9GG33113133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33113133fooEv,_ZThn32_N9GG33113133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33113133fooEv,_ZTv0_n12_N9GG33113133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG33113133fooEv,_ZThn40_N9GG33113133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3311313[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3311313[0]),
+ (VTBL_ENTRY)&_ZN9GG33113133fooEv,
+ (VTBL_ENTRY)&_ZN9GG33113133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3311313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33113133fooEv,_ZTv0_n20_N9GG33113133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3311313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33113133fooEv,_ZTv0_n12_N9GG33113133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33113133barEv,_ZTv0_n16_N9GG33113133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3311313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33113133fooEv,_ZTv0_n12_N9GG33113133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33113133barEv,_ZTv0_n16_N9GG33113133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3311313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33113133fooEv,_ZTv0_n20_N9GG33113133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3311313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33113133fooEv,_ZTv0_n12_N9GG33113133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3311313[];
+extern void _ZN5EE3313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE331__9GG3311313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&_ZN5EE3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE331__9GG3311313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE331__9GG3311313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF1313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF131__9GG3311313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&_ZN5FF1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF131__9GG3311313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF131__9GG3311313[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG3311313[] = {
+ {&(_ZTV9GG3311313[7]), 7,37},
+ {&(_ZTV9GG3311313[14]), 14,37},
+ {&(_ZTV9GG3311313[19]), 19,37},
+ {&(_ZTV9GG3311313[25]), 25,37},
+ {&(_ZTV9GG3311313[32]), 32,37},
+ {&(_ZTV9GG3311313[36]), 36,37},
+ {&(_tg__ZTV5EE331__9GG3311313[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE331__9GG3311313[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE331__9GG3311313[4]), 4,6},
+ {&(_tg__ZTV5FF131__9GG3311313[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF131__9GG3311313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF131__9GG3311313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3311313[];
+extern VTBL_ENTRY _ZTV9GG3311313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3311313[];
+static VTBL_ENTRY alt_thunk_names935[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33113133barEv,_ZTv0_n16_N9GG33113133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33113133barEv,_ZThn24_N9GG33113133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33113133barEv,_ZThn16_N9GG33113133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33113133fooEv,_ZTv0_n12_N9GG33113133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33113133fooEv,_ZThn40_N9GG33113133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33113133fooEv,_ZThn24_N9GG33113133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33113133fooEv,_ZThn16_N9GG33113133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33113133fooEv,_ZTv0_n20_N9GG33113133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33113133fooEv,_ZThn32_N9GG33113133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33113133fooEv,_ZThn8_N9GG33113133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3311313 = { "GG3311313", // class name
+ bases_GG3311313, 5,
+ &(vtc_GG3311313[0]), // expected_vtbl_contents
+ &(vtt_GG3311313[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3311313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3311313),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3311313),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names935,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3311323 : virtual EE331 , virtual FF132 {
+ int pg;
+ virtual void foo(); // _ZN9GG33113233fooEv
+ virtual void bar(); // _ZN9GG33113233barEv
+ ~GG3311323(); // tgen
+ GG3311323(); // tgen
+};
+//SIG(1 GG3311323) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG3311323 ::foo(){vfunc_called(this, "_ZN9GG33113233fooEv");}
+void GG3311323 ::bar(){vfunc_called(this, "_ZN9GG33113233barEv");}
+GG3311323 ::~GG3311323(){ note_dtor("GG3311323", this);} // tgen
+GG3311323 ::GG3311323(){ note_ctor("GG3311323", this);} // tgen
+
+static void Test_GG3311323()
+{
+ extern Class_Descriptor cd_GG3311323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3311323, buf);
+ GG3311323 *dp, &lv = *(dp=new (buf) GG3311323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3311323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3311323)");
+ check_base_class_offset(lv, (AA3*)(EE331*), ABISELECT(32,16), "GG3311323");
+ check_base_class_offset(lv, (BB3*)(EE331*), ABISELECT(48,24), "GG3311323");
+ check_base_class_offset(lv, (BB3*)(FF132*), ABISELECT(48,24), "GG3311323");
+ check_base_class_offset(lv, (EE331*), ABISELECT(16,8), "GG3311323");
+ check_base_class_offset(lv, (AA1*)(FF132*), ABISELECT(80,40), "GG3311323");
+ check_base_class_offset(lv, (FF132*), ABISELECT(64,32), "GG3311323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3311323.pg");
+ test_class_info(&lv, &cd_GG3311323);
+ dp->~GG3311323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3311323(Test_GG3311323, "GG3311323", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3311323C1Ev();
+extern void _ZN9GG3311323D1Ev();
+Name_Map name_map_GG3311323[] = {
+ NSPAIR(_ZN9GG3311323C1Ev),
+ NSPAIR(_ZN9GG3311323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE331;
+extern VTBL_ENTRY _ZTI5EE331[];
+extern VTBL_ENTRY _ZTV5EE331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE331[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF132;
+extern VTBL_ENTRY _ZTI5FF132[];
+extern VTBL_ENTRY _ZTV5FF132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF132[];
+static Base_Class bases_GG3311323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE331, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF132, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3311323[];
+extern void _ZN9GG33113233fooEv();
+extern void _ZN9GG33113233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33113233fooEv,_ZTv0_n20_N9GG33113233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33113233fooEv,_ZThn8_N9GG33113233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33113233fooEv,_ZTv0_n12_N9GG33113233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33113233fooEv,_ZThn16_N9GG33113233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33113233barEv,_ZTv0_n16_N9GG33113233barEv)();
+extern void ABISELECT(_ZThn32_N9GG33113233barEv,_ZThn16_N9GG33113233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33113233fooEv,_ZTv0_n12_N9GG33113233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33113233fooEv,_ZThn24_N9GG33113233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33113233barEv,_ZTv0_n16_N9GG33113233barEv)();
+extern void ABISELECT(_ZThn48_N9GG33113233barEv,_ZThn24_N9GG33113233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33113233barEv,_ZTv0_n20_N9GG33113233barEv)();
+extern void ABISELECT(_ZThn64_N9GG33113233barEv,_ZThn32_N9GG33113233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33113233fooEv,_ZTv0_n12_N9GG33113233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG33113233fooEv,_ZThn40_N9GG33113233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3311323[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3311323[0]),
+ (VTBL_ENTRY)&_ZN9GG33113233fooEv,
+ (VTBL_ENTRY)&_ZN9GG33113233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3311323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33113233fooEv,_ZTv0_n20_N9GG33113233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3311323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33113233fooEv,_ZTv0_n12_N9GG33113233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33113233barEv,_ZTv0_n16_N9GG33113233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3311323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33113233fooEv,_ZTv0_n12_N9GG33113233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33113233barEv,_ZTv0_n16_N9GG33113233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3311323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33113233barEv,_ZTv0_n20_N9GG33113233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3311323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33113233fooEv,_ZTv0_n12_N9GG33113233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3311323[];
+extern void _ZN5EE3313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE331__9GG3311323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&_ZN5EE3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE331__9GG3311323[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE331__9GG3311323[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF1323barEv();
+static VTBL_ENTRY _tg__ZTV5FF132__9GG3311323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN5FF1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF132__9GG3311323[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF132__9GG3311323[] = {
+ ABISELECT(16,8),
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv),
+};
+static VTT_ENTRY vtt_GG3311323[] = {
+ {&(_ZTV9GG3311323[7]), 7,37},
+ {&(_ZTV9GG3311323[14]), 14,37},
+ {&(_ZTV9GG3311323[19]), 19,37},
+ {&(_ZTV9GG3311323[25]), 25,37},
+ {&(_ZTV9GG3311323[32]), 32,37},
+ {&(_ZTV9GG3311323[36]), 36,37},
+ {&(_tg__ZTV5EE331__9GG3311323[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE331__9GG3311323[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE331__9GG3311323[4]), 4,6},
+ {&(_tg__ZTV5FF132__9GG3311323[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF132__9GG3311323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF132__9GG3311323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3311323[];
+extern VTBL_ENTRY _ZTV9GG3311323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3311323[];
+static VTBL_ENTRY alt_thunk_names936[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33113233barEv,_ZTv0_n20_N9GG33113233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33113233barEv,_ZThn32_N9GG33113233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33113233barEv,_ZTv0_n16_N9GG33113233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33113233barEv,_ZThn24_N9GG33113233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33113233barEv,_ZThn16_N9GG33113233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33113233fooEv,_ZTv0_n12_N9GG33113233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33113233fooEv,_ZThn40_N9GG33113233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33113233fooEv,_ZThn24_N9GG33113233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33113233fooEv,_ZThn16_N9GG33113233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33113233fooEv,_ZTv0_n20_N9GG33113233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33113233fooEv,_ZThn8_N9GG33113233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3311323 = { "GG3311323", // class name
+ bases_GG3311323, 5,
+ &(vtc_GG3311323[0]), // expected_vtbl_contents
+ &(vtt_GG3311323[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3311323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3311323),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3311323),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names936,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3311333 : virtual EE331 , virtual FF133 {
+ int pg;
+ virtual void foo(); // _ZN9GG33113333fooEv
+ virtual void bar(); // _ZN9GG33113333barEv
+ ~GG3311333(); // tgen
+ GG3311333(); // tgen
+};
+//SIG(1 GG3311333) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3311333 ::foo(){vfunc_called(this, "_ZN9GG33113333fooEv");}
+void GG3311333 ::bar(){vfunc_called(this, "_ZN9GG33113333barEv");}
+GG3311333 ::~GG3311333(){ note_dtor("GG3311333", this);} // tgen
+GG3311333 ::GG3311333(){ note_ctor("GG3311333", this);} // tgen
+
+static void Test_GG3311333()
+{
+ extern Class_Descriptor cd_GG3311333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3311333, buf);
+ GG3311333 *dp, &lv = *(dp=new (buf) GG3311333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3311333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3311333)");
+ check_base_class_offset(lv, (AA3*)(EE331*), ABISELECT(32,16), "GG3311333");
+ check_base_class_offset(lv, (BB3*)(EE331*), ABISELECT(48,24), "GG3311333");
+ check_base_class_offset(lv, (BB3*)(FF133*), ABISELECT(48,24), "GG3311333");
+ check_base_class_offset(lv, (EE331*), ABISELECT(16,8), "GG3311333");
+ check_base_class_offset(lv, (AA1*)(FF133*), ABISELECT(80,40), "GG3311333");
+ check_base_class_offset(lv, (FF133*), ABISELECT(64,32), "GG3311333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3311333.pg");
+ test_class_info(&lv, &cd_GG3311333);
+ dp->~GG3311333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3311333(Test_GG3311333, "GG3311333", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3311333C1Ev();
+extern void _ZN9GG3311333D1Ev();
+Name_Map name_map_GG3311333[] = {
+ NSPAIR(_ZN9GG3311333C1Ev),
+ NSPAIR(_ZN9GG3311333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE331;
+extern VTBL_ENTRY _ZTI5EE331[];
+extern VTBL_ENTRY _ZTV5EE331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE331[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF133;
+extern VTBL_ENTRY _ZTI5FF133[];
+extern VTBL_ENTRY _ZTV5FF133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF133[];
+static Base_Class bases_GG3311333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE331, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF133, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3311333[];
+extern void _ZN9GG33113333fooEv();
+extern void _ZN9GG33113333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33113333fooEv,_ZTv0_n20_N9GG33113333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33113333fooEv,_ZThn8_N9GG33113333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33113333fooEv,_ZTv0_n12_N9GG33113333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33113333fooEv,_ZThn16_N9GG33113333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33113333barEv,_ZTv0_n16_N9GG33113333barEv)();
+extern void ABISELECT(_ZThn32_N9GG33113333barEv,_ZThn16_N9GG33113333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33113333fooEv,_ZTv0_n12_N9GG33113333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33113333fooEv,_ZThn24_N9GG33113333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33113333barEv,_ZTv0_n16_N9GG33113333barEv)();
+extern void ABISELECT(_ZThn48_N9GG33113333barEv,_ZThn24_N9GG33113333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33113333fooEv,_ZTv0_n20_N9GG33113333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33113333fooEv,_ZThn32_N9GG33113333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33113333barEv,_ZTv0_n24_N9GG33113333barEv)();
+extern void ABISELECT(_ZThn64_N9GG33113333barEv,_ZThn32_N9GG33113333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33113333fooEv,_ZTv0_n12_N9GG33113333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG33113333fooEv,_ZThn40_N9GG33113333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3311333[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3311333[0]),
+ (VTBL_ENTRY)&_ZN9GG33113333fooEv,
+ (VTBL_ENTRY)&_ZN9GG33113333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3311333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33113333fooEv,_ZTv0_n20_N9GG33113333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3311333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33113333fooEv,_ZTv0_n12_N9GG33113333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33113333barEv,_ZTv0_n16_N9GG33113333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3311333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33113333fooEv,_ZTv0_n12_N9GG33113333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33113333barEv,_ZTv0_n16_N9GG33113333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3311333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33113333fooEv,_ZTv0_n20_N9GG33113333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33113333barEv,_ZTv0_n24_N9GG33113333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3311333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33113333fooEv,_ZTv0_n12_N9GG33113333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3311333[];
+extern void _ZN5EE3313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE331__9GG3311333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&_ZN5EE3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE331__9GG3311333[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE331__9GG3311333[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF1333fooEv();
+extern void _ZN5FF1333barEv();
+static VTBL_ENTRY _tg__ZTV5FF133__9GG3311333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&_ZN5FF1333fooEv,
+ (VTBL_ENTRY)&_ZN5FF1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF133__9GG3311333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF133__9GG3311333[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv),
+};
+static VTT_ENTRY vtt_GG3311333[] = {
+ {&(_ZTV9GG3311333[7]), 7,39},
+ {&(_ZTV9GG3311333[14]), 14,39},
+ {&(_ZTV9GG3311333[19]), 19,39},
+ {&(_ZTV9GG3311333[25]), 25,39},
+ {&(_ZTV9GG3311333[33]), 33,39},
+ {&(_ZTV9GG3311333[38]), 38,39},
+ {&(_tg__ZTV5EE331__9GG3311333[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE331__9GG3311333[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE331__9GG3311333[4]), 4,6},
+ {&(_tg__ZTV5FF133__9GG3311333[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF133__9GG3311333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF133__9GG3311333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3311333[];
+extern VTBL_ENTRY _ZTV9GG3311333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3311333[];
+static VTBL_ENTRY alt_thunk_names937[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG33113333barEv,_ZTv0_n24_N9GG33113333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33113333barEv,_ZThn32_N9GG33113333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33113333barEv,_ZTv0_n16_N9GG33113333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33113333barEv,_ZThn24_N9GG33113333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33113333barEv,_ZThn16_N9GG33113333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33113333fooEv,_ZTv0_n12_N9GG33113333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33113333fooEv,_ZThn40_N9GG33113333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33113333fooEv,_ZThn24_N9GG33113333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33113333fooEv,_ZThn16_N9GG33113333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33113333fooEv,_ZTv0_n20_N9GG33113333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33113333fooEv,_ZThn32_N9GG33113333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33113333fooEv,_ZThn8_N9GG33113333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3311333 = { "GG3311333", // class name
+ bases_GG3311333, 5,
+ &(vtc_GG3311333[0]), // expected_vtbl_contents
+ &(vtt_GG3311333[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3311333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3311333),39, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3311333),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names937,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3312113 : virtual EE331 , virtual FF211 {
+ int pg;
+ virtual void foo(); // _ZN9GG33121133fooEv
+ virtual void bar(); // _ZN9GG33121133barEv
+ ~GG3312113(); // tgen
+ GG3312113(); // tgen
+};
+//SIG(1 GG3312113) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3312113 ::foo(){vfunc_called(this, "_ZN9GG33121133fooEv");}
+void GG3312113 ::bar(){vfunc_called(this, "_ZN9GG33121133barEv");}
+GG3312113 ::~GG3312113(){ note_dtor("GG3312113", this);} // tgen
+GG3312113 ::GG3312113(){ note_ctor("GG3312113", this);} // tgen
+
+static void Test_GG3312113()
+{
+ extern Class_Descriptor cd_GG3312113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3312113, buf);
+ GG3312113 *dp, &lv = *(dp=new (buf) GG3312113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3312113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3312113)");
+ check_base_class_offset(lv, (AA3*)(EE331*), ABISELECT(32,16), "GG3312113");
+ check_base_class_offset(lv, (BB3*)(EE331*), ABISELECT(48,24), "GG3312113");
+ check_base_class_offset(lv, (EE331*), ABISELECT(16,8), "GG3312113");
+ check_base_class_offset(lv, (AA2*)(FF211*), ABISELECT(80,40), "GG3312113");
+ check_base_class_offset(lv, (BB1*)(FF211*), ABISELECT(96,48), "GG3312113");
+ check_base_class_offset(lv, (FF211*), ABISELECT(64,32), "GG3312113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3312113.pg");
+ test_class_info(&lv, &cd_GG3312113);
+ dp->~GG3312113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3312113(Test_GG3312113, "GG3312113", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3312113C1Ev();
+extern void _ZN9GG3312113D1Ev();
+Name_Map name_map_GG3312113[] = {
+ NSPAIR(_ZN9GG3312113C1Ev),
+ NSPAIR(_ZN9GG3312113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE331;
+extern VTBL_ENTRY _ZTI5EE331[];
+extern VTBL_ENTRY _ZTV5EE331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE331[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF211;
+extern VTBL_ENTRY _ZTI5FF211[];
+extern VTBL_ENTRY _ZTV5FF211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF211[];
+static Base_Class bases_GG3312113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE331, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF211, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3312113[];
+extern void _ZN9GG33121133fooEv();
+extern void _ZN9GG33121133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33121133fooEv,_ZTv0_n20_N9GG33121133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33121133fooEv,_ZThn8_N9GG33121133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33121133fooEv,_ZTv0_n12_N9GG33121133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33121133fooEv,_ZThn16_N9GG33121133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33121133barEv,_ZTv0_n16_N9GG33121133barEv)();
+extern void ABISELECT(_ZThn32_N9GG33121133barEv,_ZThn16_N9GG33121133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33121133fooEv,_ZTv0_n12_N9GG33121133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33121133fooEv,_ZThn24_N9GG33121133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33121133barEv,_ZTv0_n16_N9GG33121133barEv)();
+extern void ABISELECT(_ZThn48_N9GG33121133barEv,_ZThn24_N9GG33121133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33121133fooEv,_ZTv0_n20_N9GG33121133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33121133fooEv,_ZThn32_N9GG33121133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33121133barEv,_ZTv0_n12_N9GG33121133barEv)();
+extern void ABISELECT(_ZThn80_N9GG33121133barEv,_ZThn40_N9GG33121133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33121133fooEv,_ZTv0_n12_N9GG33121133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG33121133fooEv,_ZThn48_N9GG33121133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3312113[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3312113[0]),
+ (VTBL_ENTRY)&_ZN9GG33121133fooEv,
+ (VTBL_ENTRY)&_ZN9GG33121133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3312113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33121133fooEv,_ZTv0_n20_N9GG33121133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3312113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33121133fooEv,_ZTv0_n12_N9GG33121133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33121133barEv,_ZTv0_n16_N9GG33121133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3312113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33121133fooEv,_ZTv0_n12_N9GG33121133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33121133barEv,_ZTv0_n16_N9GG33121133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3312113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33121133fooEv,_ZTv0_n20_N9GG33121133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3312113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33121133barEv,_ZTv0_n12_N9GG33121133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3312113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33121133fooEv,_ZTv0_n12_N9GG33121133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3312113[];
+extern void _ZN5EE3313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE331__9GG3312113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&_ZN5EE3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE331__9GG3312113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE331__9GG3312113[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF2113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF211__9GG3312113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN5FF2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF211__9GG3312113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2113fooEv,_ZThn16_N5FF2113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF211__9GG3312113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv),
+};
+static VTT_ENTRY vtt_GG3312113[] = {
+ {&(_ZTV9GG3312113[8]), 8,42},
+ {&(_ZTV9GG3312113[15]), 15,42},
+ {&(_ZTV9GG3312113[20]), 20,42},
+ {&(_ZTV9GG3312113[26]), 26,42},
+ {&(_ZTV9GG3312113[33]), 33,42},
+ {&(_ZTV9GG3312113[37]), 37,42},
+ {&(_ZTV9GG3312113[41]), 41,42},
+ {&(_tg__ZTV5EE331__9GG3312113[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE331__9GG3312113[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE331__9GG3312113[4]), 4,6},
+ {&(_tg__ZTV5FF211__9GG3312113[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF211__9GG3312113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF211__9GG3312113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3312113[];
+extern VTBL_ENTRY _ZTV9GG3312113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3312113[];
+static VTBL_ENTRY alt_thunk_names938[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2113fooEv,_ZThn16_N5FF2113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33121133barEv,_ZTv0_n12_N9GG33121133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33121133barEv,_ZThn40_N9GG33121133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33121133barEv,_ZTv0_n16_N9GG33121133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33121133barEv,_ZThn24_N9GG33121133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33121133barEv,_ZThn16_N9GG33121133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33121133fooEv,_ZTv0_n12_N9GG33121133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG33121133fooEv,_ZThn48_N9GG33121133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33121133fooEv,_ZThn24_N9GG33121133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33121133fooEv,_ZThn16_N9GG33121133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33121133fooEv,_ZTv0_n20_N9GG33121133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33121133fooEv,_ZThn32_N9GG33121133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33121133fooEv,_ZThn8_N9GG33121133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3312113 = { "GG3312113", // class name
+ bases_GG3312113, 6,
+ &(vtc_GG3312113[0]), // expected_vtbl_contents
+ &(vtt_GG3312113[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3312113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3312113),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3312113),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names938,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3312123 : virtual EE331 , virtual FF212 {
+ int pg;
+ virtual void foo(); // _ZN9GG33121233fooEv
+ virtual void bar(); // _ZN9GG33121233barEv
+ ~GG3312123(); // tgen
+ GG3312123(); // tgen
+};
+//SIG(1 GG3312123) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3312123 ::foo(){vfunc_called(this, "_ZN9GG33121233fooEv");}
+void GG3312123 ::bar(){vfunc_called(this, "_ZN9GG33121233barEv");}
+GG3312123 ::~GG3312123(){ note_dtor("GG3312123", this);} // tgen
+GG3312123 ::GG3312123(){ note_ctor("GG3312123", this);} // tgen
+
+static void Test_GG3312123()
+{
+ extern Class_Descriptor cd_GG3312123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3312123, buf);
+ GG3312123 *dp, &lv = *(dp=new (buf) GG3312123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3312123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3312123)");
+ check_base_class_offset(lv, (AA3*)(EE331*), ABISELECT(32,16), "GG3312123");
+ check_base_class_offset(lv, (BB3*)(EE331*), ABISELECT(48,24), "GG3312123");
+ check_base_class_offset(lv, (EE331*), ABISELECT(16,8), "GG3312123");
+ check_base_class_offset(lv, (AA2*)(FF212*), ABISELECT(80,40), "GG3312123");
+ check_base_class_offset(lv, (BB1*)(FF212*), ABISELECT(96,48), "GG3312123");
+ check_base_class_offset(lv, (FF212*), ABISELECT(64,32), "GG3312123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3312123.pg");
+ test_class_info(&lv, &cd_GG3312123);
+ dp->~GG3312123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3312123(Test_GG3312123, "GG3312123", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3312123C1Ev();
+extern void _ZN9GG3312123D1Ev();
+Name_Map name_map_GG3312123[] = {
+ NSPAIR(_ZN9GG3312123C1Ev),
+ NSPAIR(_ZN9GG3312123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE331;
+extern VTBL_ENTRY _ZTI5EE331[];
+extern VTBL_ENTRY _ZTV5EE331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE331[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF212;
+extern VTBL_ENTRY _ZTI5FF212[];
+extern VTBL_ENTRY _ZTV5FF212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF212[];
+static Base_Class bases_GG3312123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE331, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF212, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3312123[];
+extern void _ZN9GG33121233fooEv();
+extern void _ZN9GG33121233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33121233fooEv,_ZTv0_n20_N9GG33121233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33121233fooEv,_ZThn8_N9GG33121233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33121233fooEv,_ZTv0_n12_N9GG33121233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33121233fooEv,_ZThn16_N9GG33121233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33121233barEv,_ZTv0_n16_N9GG33121233barEv)();
+extern void ABISELECT(_ZThn32_N9GG33121233barEv,_ZThn16_N9GG33121233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33121233fooEv,_ZTv0_n12_N9GG33121233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33121233fooEv,_ZThn24_N9GG33121233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33121233barEv,_ZTv0_n16_N9GG33121233barEv)();
+extern void ABISELECT(_ZThn48_N9GG33121233barEv,_ZThn24_N9GG33121233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33121233barEv,_ZTv0_n20_N9GG33121233barEv)();
+extern void ABISELECT(_ZThn64_N9GG33121233barEv,_ZThn32_N9GG33121233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33121233barEv,_ZTv0_n12_N9GG33121233barEv)();
+extern void ABISELECT(_ZThn80_N9GG33121233barEv,_ZThn40_N9GG33121233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33121233fooEv,_ZTv0_n12_N9GG33121233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG33121233fooEv,_ZThn48_N9GG33121233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3312123[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3312123[0]),
+ (VTBL_ENTRY)&_ZN9GG33121233fooEv,
+ (VTBL_ENTRY)&_ZN9GG33121233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3312123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33121233fooEv,_ZTv0_n20_N9GG33121233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3312123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33121233fooEv,_ZTv0_n12_N9GG33121233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33121233barEv,_ZTv0_n16_N9GG33121233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3312123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33121233fooEv,_ZTv0_n12_N9GG33121233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33121233barEv,_ZTv0_n16_N9GG33121233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3312123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33121233barEv,_ZTv0_n20_N9GG33121233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3312123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33121233barEv,_ZTv0_n12_N9GG33121233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3312123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33121233fooEv,_ZTv0_n12_N9GG33121233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3312123[];
+extern void _ZN5EE3313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE331__9GG3312123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&_ZN5EE3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE331__9GG3312123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE331__9GG3312123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF2123barEv();
+static VTBL_ENTRY _tg__ZTV5FF212__9GG3312123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN5FF2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv)();
+extern void ABISELECT(_ZThn16_N5FF2123barEv,_ZThn8_N5FF2123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF212__9GG3312123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF212__9GG3312123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG3312123[] = {
+ {&(_ZTV9GG3312123[8]), 8,42},
+ {&(_ZTV9GG3312123[15]), 15,42},
+ {&(_ZTV9GG3312123[20]), 20,42},
+ {&(_ZTV9GG3312123[26]), 26,42},
+ {&(_ZTV9GG3312123[33]), 33,42},
+ {&(_ZTV9GG3312123[37]), 37,42},
+ {&(_ZTV9GG3312123[41]), 41,42},
+ {&(_tg__ZTV5EE331__9GG3312123[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE331__9GG3312123[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE331__9GG3312123[4]), 4,6},
+ {&(_tg__ZTV5FF212__9GG3312123[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF212__9GG3312123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF212__9GG3312123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3312123[];
+extern VTBL_ENTRY _ZTV9GG3312123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3312123[];
+static VTBL_ENTRY alt_thunk_names939[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2123barEv,_ZThn8_N5FF2123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33121233barEv,_ZTv0_n12_N9GG33121233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33121233barEv,_ZThn40_N9GG33121233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33121233barEv,_ZTv0_n20_N9GG33121233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33121233barEv,_ZThn32_N9GG33121233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33121233barEv,_ZTv0_n16_N9GG33121233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33121233barEv,_ZThn24_N9GG33121233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33121233barEv,_ZThn16_N9GG33121233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33121233fooEv,_ZTv0_n12_N9GG33121233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG33121233fooEv,_ZThn48_N9GG33121233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33121233fooEv,_ZThn24_N9GG33121233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33121233fooEv,_ZThn16_N9GG33121233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33121233fooEv,_ZTv0_n20_N9GG33121233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33121233fooEv,_ZThn8_N9GG33121233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3312123 = { "GG3312123", // class name
+ bases_GG3312123, 6,
+ &(vtc_GG3312123[0]), // expected_vtbl_contents
+ &(vtt_GG3312123[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3312123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3312123),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3312123),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names939,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3312133 : virtual EE331 , virtual FF213 {
+ int pg;
+ virtual void foo(); // _ZN9GG33121333fooEv
+ virtual void bar(); // _ZN9GG33121333barEv
+ ~GG3312133(); // tgen
+ GG3312133(); // tgen
+};
+//SIG(1 GG3312133) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3312133 ::foo(){vfunc_called(this, "_ZN9GG33121333fooEv");}
+void GG3312133 ::bar(){vfunc_called(this, "_ZN9GG33121333barEv");}
+GG3312133 ::~GG3312133(){ note_dtor("GG3312133", this);} // tgen
+GG3312133 ::GG3312133(){ note_ctor("GG3312133", this);} // tgen
+
+static void Test_GG3312133()
+{
+ extern Class_Descriptor cd_GG3312133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3312133, buf);
+ GG3312133 *dp, &lv = *(dp=new (buf) GG3312133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3312133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3312133)");
+ check_base_class_offset(lv, (AA3*)(EE331*), ABISELECT(32,16), "GG3312133");
+ check_base_class_offset(lv, (BB3*)(EE331*), ABISELECT(48,24), "GG3312133");
+ check_base_class_offset(lv, (EE331*), ABISELECT(16,8), "GG3312133");
+ check_base_class_offset(lv, (AA2*)(FF213*), ABISELECT(80,40), "GG3312133");
+ check_base_class_offset(lv, (BB1*)(FF213*), ABISELECT(96,48), "GG3312133");
+ check_base_class_offset(lv, (FF213*), ABISELECT(64,32), "GG3312133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3312133.pg");
+ test_class_info(&lv, &cd_GG3312133);
+ dp->~GG3312133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3312133(Test_GG3312133, "GG3312133", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3312133C1Ev();
+extern void _ZN9GG3312133D1Ev();
+Name_Map name_map_GG3312133[] = {
+ NSPAIR(_ZN9GG3312133C1Ev),
+ NSPAIR(_ZN9GG3312133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE331;
+extern VTBL_ENTRY _ZTI5EE331[];
+extern VTBL_ENTRY _ZTV5EE331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE331[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF213;
+extern VTBL_ENTRY _ZTI5FF213[];
+extern VTBL_ENTRY _ZTV5FF213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF213[];
+static Base_Class bases_GG3312133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE331, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 40, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF213, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3312133[];
+extern void _ZN9GG33121333fooEv();
+extern void _ZN9GG33121333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33121333fooEv,_ZTv0_n20_N9GG33121333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33121333fooEv,_ZThn8_N9GG33121333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33121333fooEv,_ZTv0_n12_N9GG33121333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33121333fooEv,_ZThn16_N9GG33121333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33121333barEv,_ZTv0_n16_N9GG33121333barEv)();
+extern void ABISELECT(_ZThn32_N9GG33121333barEv,_ZThn16_N9GG33121333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33121333fooEv,_ZTv0_n12_N9GG33121333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33121333fooEv,_ZThn24_N9GG33121333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33121333barEv,_ZTv0_n16_N9GG33121333barEv)();
+extern void ABISELECT(_ZThn48_N9GG33121333barEv,_ZThn24_N9GG33121333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33121333fooEv,_ZTv0_n20_N9GG33121333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33121333fooEv,_ZThn32_N9GG33121333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33121333barEv,_ZTv0_n24_N9GG33121333barEv)();
+extern void ABISELECT(_ZThn64_N9GG33121333barEv,_ZThn32_N9GG33121333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33121333barEv,_ZTv0_n12_N9GG33121333barEv)();
+extern void ABISELECT(_ZThn80_N9GG33121333barEv,_ZThn40_N9GG33121333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33121333fooEv,_ZTv0_n12_N9GG33121333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG33121333fooEv,_ZThn48_N9GG33121333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3312133[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3312133[0]),
+ (VTBL_ENTRY)&_ZN9GG33121333fooEv,
+ (VTBL_ENTRY)&_ZN9GG33121333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3312133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33121333fooEv,_ZTv0_n20_N9GG33121333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3312133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33121333fooEv,_ZTv0_n12_N9GG33121333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33121333barEv,_ZTv0_n16_N9GG33121333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3312133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33121333fooEv,_ZTv0_n12_N9GG33121333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33121333barEv,_ZTv0_n16_N9GG33121333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3312133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33121333fooEv,_ZTv0_n20_N9GG33121333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33121333barEv,_ZTv0_n24_N9GG33121333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3312133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33121333barEv,_ZTv0_n12_N9GG33121333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3312133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33121333fooEv,_ZTv0_n12_N9GG33121333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3312133[];
+extern void _ZN5EE3313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE331__9GG3312133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&_ZN5EE3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE331__9GG3312133[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE331__9GG3312133[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF2133fooEv();
+extern void _ZN5FF2133barEv();
+static VTBL_ENTRY _tg__ZTV5FF213__9GG3312133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&_ZN5FF2133fooEv,
+ (VTBL_ENTRY)&_ZN5FF2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv)();
+extern void ABISELECT(_ZThn16_N5FF2133barEv,_ZThn8_N5FF2133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF213__9GG3312133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2133fooEv,_ZThn16_N5FF2133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF213__9GG3312133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv),
+};
+static VTT_ENTRY vtt_GG3312133[] = {
+ {&(_ZTV9GG3312133[8]), 8,44},
+ {&(_ZTV9GG3312133[15]), 15,44},
+ {&(_ZTV9GG3312133[20]), 20,44},
+ {&(_ZTV9GG3312133[26]), 26,44},
+ {&(_ZTV9GG3312133[34]), 34,44},
+ {&(_ZTV9GG3312133[39]), 39,44},
+ {&(_ZTV9GG3312133[43]), 43,44},
+ {&(_tg__ZTV5EE331__9GG3312133[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE331__9GG3312133[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE331__9GG3312133[4]), 4,6},
+ {&(_tg__ZTV5FF213__9GG3312133[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF213__9GG3312133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF213__9GG3312133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3312133[];
+extern VTBL_ENTRY _ZTV9GG3312133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3312133[];
+static VTBL_ENTRY alt_thunk_names940[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2133fooEv,_ZThn16_N5FF2133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2133barEv,_ZThn8_N5FF2133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33121333barEv,_ZTv0_n12_N9GG33121333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33121333barEv,_ZThn40_N9GG33121333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG33121333barEv,_ZTv0_n24_N9GG33121333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33121333barEv,_ZThn32_N9GG33121333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33121333barEv,_ZTv0_n16_N9GG33121333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33121333barEv,_ZThn24_N9GG33121333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33121333barEv,_ZThn16_N9GG33121333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33121333fooEv,_ZTv0_n12_N9GG33121333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG33121333fooEv,_ZThn48_N9GG33121333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33121333fooEv,_ZThn24_N9GG33121333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33121333fooEv,_ZThn16_N9GG33121333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33121333fooEv,_ZTv0_n20_N9GG33121333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33121333fooEv,_ZThn32_N9GG33121333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33121333fooEv,_ZThn8_N9GG33121333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3312133 = { "GG3312133", // class name
+ bases_GG3312133, 6,
+ &(vtc_GG3312133[0]), // expected_vtbl_contents
+ &(vtt_GG3312133[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3312133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3312133),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3312133),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names940,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3312213 : virtual EE331 , virtual FF221 {
+ int pg;
+ virtual void foo(); // _ZN9GG33122133fooEv
+ virtual void bar(); // _ZN9GG33122133barEv
+ ~GG3312213(); // tgen
+ GG3312213(); // tgen
+};
+//SIG(1 GG3312213) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3312213 ::foo(){vfunc_called(this, "_ZN9GG33122133fooEv");}
+void GG3312213 ::bar(){vfunc_called(this, "_ZN9GG33122133barEv");}
+GG3312213 ::~GG3312213(){ note_dtor("GG3312213", this);} // tgen
+GG3312213 ::GG3312213(){ note_ctor("GG3312213", this);} // tgen
+
+static void Test_GG3312213()
+{
+ extern Class_Descriptor cd_GG3312213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3312213, buf);
+ GG3312213 *dp, &lv = *(dp=new (buf) GG3312213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3312213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3312213)");
+ check_base_class_offset(lv, (AA3*)(EE331*), ABISELECT(32,16), "GG3312213");
+ check_base_class_offset(lv, (BB3*)(EE331*), ABISELECT(48,24), "GG3312213");
+ check_base_class_offset(lv, (EE331*), ABISELECT(16,8), "GG3312213");
+ check_base_class_offset(lv, (AA2*)(FF221*), ABISELECT(80,40), "GG3312213");
+ check_base_class_offset(lv, (BB2*)(FF221*), ABISELECT(96,48), "GG3312213");
+ check_base_class_offset(lv, (FF221*), ABISELECT(64,32), "GG3312213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3312213.pg");
+ test_class_info(&lv, &cd_GG3312213);
+ dp->~GG3312213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3312213(Test_GG3312213, "GG3312213", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3312213C1Ev();
+extern void _ZN9GG3312213D1Ev();
+Name_Map name_map_GG3312213[] = {
+ NSPAIR(_ZN9GG3312213C1Ev),
+ NSPAIR(_ZN9GG3312213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE331;
+extern VTBL_ENTRY _ZTI5EE331[];
+extern VTBL_ENTRY _ZTV5EE331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE331[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF221;
+extern VTBL_ENTRY _ZTI5FF221[];
+extern VTBL_ENTRY _ZTV5FF221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF221[];
+static Base_Class bases_GG3312213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE331, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF221, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3312213[];
+extern void _ZN9GG33122133fooEv();
+extern void _ZN9GG33122133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33122133fooEv,_ZTv0_n20_N9GG33122133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33122133fooEv,_ZThn8_N9GG33122133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33122133fooEv,_ZTv0_n12_N9GG33122133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33122133fooEv,_ZThn16_N9GG33122133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33122133barEv,_ZTv0_n16_N9GG33122133barEv)();
+extern void ABISELECT(_ZThn32_N9GG33122133barEv,_ZThn16_N9GG33122133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33122133fooEv,_ZTv0_n12_N9GG33122133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33122133fooEv,_ZThn24_N9GG33122133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33122133barEv,_ZTv0_n16_N9GG33122133barEv)();
+extern void ABISELECT(_ZThn48_N9GG33122133barEv,_ZThn24_N9GG33122133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33122133fooEv,_ZTv0_n20_N9GG33122133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33122133fooEv,_ZThn32_N9GG33122133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33122133barEv,_ZTv0_n12_N9GG33122133barEv)();
+extern void ABISELECT(_ZThn80_N9GG33122133barEv,_ZThn40_N9GG33122133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33122133barEv,_ZTv0_n12_N9GG33122133barEv)();
+extern void ABISELECT(_ZThn96_N9GG33122133barEv,_ZThn48_N9GG33122133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3312213[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3312213[0]),
+ (VTBL_ENTRY)&_ZN9GG33122133fooEv,
+ (VTBL_ENTRY)&_ZN9GG33122133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3312213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33122133fooEv,_ZTv0_n20_N9GG33122133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3312213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33122133fooEv,_ZTv0_n12_N9GG33122133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33122133barEv,_ZTv0_n16_N9GG33122133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3312213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33122133fooEv,_ZTv0_n12_N9GG33122133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33122133barEv,_ZTv0_n16_N9GG33122133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3312213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33122133fooEv,_ZTv0_n20_N9GG33122133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3312213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33122133barEv,_ZTv0_n12_N9GG33122133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3312213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33122133barEv,_ZTv0_n12_N9GG33122133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3312213[];
+extern void _ZN5EE3313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE331__9GG3312213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&_ZN5EE3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE331__9GG3312213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE331__9GG3312213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF2213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF221__9GG3312213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN5FF2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF221__9GG3312213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF221__9GG3312213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG3312213[] = {
+ {&(_ZTV9GG3312213[8]), 8,42},
+ {&(_ZTV9GG3312213[15]), 15,42},
+ {&(_ZTV9GG3312213[20]), 20,42},
+ {&(_ZTV9GG3312213[26]), 26,42},
+ {&(_ZTV9GG3312213[33]), 33,42},
+ {&(_ZTV9GG3312213[37]), 37,42},
+ {&(_ZTV9GG3312213[41]), 41,42},
+ {&(_tg__ZTV5EE331__9GG3312213[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE331__9GG3312213[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE331__9GG3312213[4]), 4,6},
+ {&(_tg__ZTV5FF221__9GG3312213[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF221__9GG3312213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF221__9GG3312213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3312213[];
+extern VTBL_ENTRY _ZTV9GG3312213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3312213[];
+static VTBL_ENTRY alt_thunk_names941[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33122133barEv,_ZTv0_n12_N9GG33122133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG33122133barEv,_ZThn48_N9GG33122133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33122133barEv,_ZThn40_N9GG33122133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33122133barEv,_ZTv0_n16_N9GG33122133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33122133barEv,_ZThn24_N9GG33122133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33122133barEv,_ZThn16_N9GG33122133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33122133fooEv,_ZTv0_n12_N9GG33122133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33122133fooEv,_ZThn24_N9GG33122133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33122133fooEv,_ZThn16_N9GG33122133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33122133fooEv,_ZTv0_n20_N9GG33122133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33122133fooEv,_ZThn32_N9GG33122133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33122133fooEv,_ZThn8_N9GG33122133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3312213 = { "GG3312213", // class name
+ bases_GG3312213, 6,
+ &(vtc_GG3312213[0]), // expected_vtbl_contents
+ &(vtt_GG3312213[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3312213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3312213),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3312213),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names941,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3312222 : virtual EE331 , virtual FF222 {
+ int pg;
+ virtual void bar(); // _ZN9GG33122223barEv
+ ~GG3312222(); // tgen
+ GG3312222(); // tgen
+};
+//SIG(1 GG3312222) C1{ VBC2{ VBC3{ v2 v1 Fi} VBC4{ v2 v1 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+void GG3312222 ::bar(){vfunc_called(this, "_ZN9GG33122223barEv");}
+GG3312222 ::~GG3312222(){ note_dtor("GG3312222", this);} // tgen
+GG3312222 ::GG3312222(){ note_ctor("GG3312222", this);} // tgen
+
+static void Test_GG3312222()
+{
+ extern Class_Descriptor cd_GG3312222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3312222, buf);
+ GG3312222 *dp, &lv = *(dp=new (buf) GG3312222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3312222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3312222)");
+ check_base_class_offset(lv, (AA3*)(EE331*), ABISELECT(32,16), "GG3312222");
+ check_base_class_offset(lv, (BB3*)(EE331*), ABISELECT(48,24), "GG3312222");
+ check_base_class_offset(lv, (EE331*), ABISELECT(16,8), "GG3312222");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(80,40), "GG3312222");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(96,48), "GG3312222");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG3312222");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3312222.pg");
+ test_class_info(&lv, &cd_GG3312222);
+ dp->~GG3312222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3312222(Test_GG3312222, "GG3312222", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3312222C1Ev();
+extern void _ZN9GG3312222D1Ev();
+Name_Map name_map_GG3312222[] = {
+ NSPAIR(_ZN9GG3312222C1Ev),
+ NSPAIR(_ZN9GG3312222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE331;
+extern VTBL_ENTRY _ZTI5EE331[];
+extern VTBL_ENTRY _ZTV5EE331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE331[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG3312222[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE331, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 37, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3312222[];
+extern void _ZN9GG33122223barEv();
+extern void _ZN5EE3313fooEv();
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33122223barEv,_ZTv0_n16_N9GG33122223barEv)();
+extern void ABISELECT(_ZThn32_N9GG33122223barEv,_ZThn16_N9GG33122223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33122223barEv,_ZTv0_n16_N9GG33122223barEv)();
+extern void ABISELECT(_ZThn48_N9GG33122223barEv,_ZThn24_N9GG33122223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33122223barEv,_ZTv0_n20_N9GG33122223barEv)();
+extern void ABISELECT(_ZThn64_N9GG33122223barEv,_ZThn32_N9GG33122223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33122223barEv,_ZTv0_n12_N9GG33122223barEv)();
+extern void ABISELECT(_ZThn80_N9GG33122223barEv,_ZThn40_N9GG33122223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33122223barEv,_ZTv0_n12_N9GG33122223barEv)();
+extern void ABISELECT(_ZThn96_N9GG33122223barEv,_ZThn48_N9GG33122223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3312222[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3312222[0]),
+ (VTBL_ENTRY)&_ZN9GG33122223barEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3312222[0]),
+ (VTBL_ENTRY)&_ZN5EE3313fooEv,
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3312222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33122223barEv,_ZTv0_n16_N9GG33122223barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3312222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33122223barEv,_ZTv0_n16_N9GG33122223barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3312222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33122223barEv,_ZTv0_n20_N9GG33122223barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3312222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33122223barEv,_ZTv0_n12_N9GG33122223barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3312222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33122223barEv,_ZTv0_n12_N9GG33122223barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3312222[];
+extern void _ZN5EE3313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE331__9GG3312222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&_ZN5EE3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE331__9GG3312222[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE331__9GG3312222[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG3312222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG3312222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG3312222[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG3312222[] = {
+ {&(_ZTV9GG3312222[8]), 8,41},
+ {&(_ZTV9GG3312222[14]), 14,41},
+ {&(_ZTV9GG3312222[19]), 19,41},
+ {&(_ZTV9GG3312222[25]), 25,41},
+ {&(_ZTV9GG3312222[32]), 32,41},
+ {&(_ZTV9GG3312222[36]), 36,41},
+ {&(_ZTV9GG3312222[40]), 40,41},
+ {&(_tg__ZTV5EE331__9GG3312222[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE331__9GG3312222[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE331__9GG3312222[4]), 4,6},
+ {&(_tg__ZTV5FF222__9GG3312222[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG3312222[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG3312222[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3312222[];
+extern VTBL_ENTRY _ZTV9GG3312222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3312222[];
+static VTBL_ENTRY alt_thunk_names942[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33122223barEv,_ZTv0_n12_N9GG33122223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG33122223barEv,_ZThn48_N9GG33122223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33122223barEv,_ZThn40_N9GG33122223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33122223barEv,_ZTv0_n20_N9GG33122223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33122223barEv,_ZThn32_N9GG33122223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33122223barEv,_ZTv0_n16_N9GG33122223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33122223barEv,_ZThn24_N9GG33122223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33122223barEv,_ZThn16_N9GG33122223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3312222 = { "GG3312222", // class name
+ bases_GG3312222, 6,
+ &(vtc_GG3312222[0]), // expected_vtbl_contents
+ &(vtt_GG3312222[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3312222),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3312222),41, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3312222),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names942,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3312223 : virtual EE331 , virtual FF222 {
+ int pg;
+ virtual void foo(); // _ZN9GG33122233fooEv
+ virtual void bar(); // _ZN9GG33122233barEv
+ ~GG3312223(); // tgen
+ GG3312223(); // tgen
+};
+//SIG(1 GG3312223) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3312223 ::foo(){vfunc_called(this, "_ZN9GG33122233fooEv");}
+void GG3312223 ::bar(){vfunc_called(this, "_ZN9GG33122233barEv");}
+GG3312223 ::~GG3312223(){ note_dtor("GG3312223", this);} // tgen
+GG3312223 ::GG3312223(){ note_ctor("GG3312223", this);} // tgen
+
+static void Test_GG3312223()
+{
+ extern Class_Descriptor cd_GG3312223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3312223, buf);
+ GG3312223 *dp, &lv = *(dp=new (buf) GG3312223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3312223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3312223)");
+ check_base_class_offset(lv, (AA3*)(EE331*), ABISELECT(32,16), "GG3312223");
+ check_base_class_offset(lv, (BB3*)(EE331*), ABISELECT(48,24), "GG3312223");
+ check_base_class_offset(lv, (EE331*), ABISELECT(16,8), "GG3312223");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(80,40), "GG3312223");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(96,48), "GG3312223");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG3312223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3312223.pg");
+ test_class_info(&lv, &cd_GG3312223);
+ dp->~GG3312223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3312223(Test_GG3312223, "GG3312223", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3312223C1Ev();
+extern void _ZN9GG3312223D1Ev();
+Name_Map name_map_GG3312223[] = {
+ NSPAIR(_ZN9GG3312223C1Ev),
+ NSPAIR(_ZN9GG3312223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE331;
+extern VTBL_ENTRY _ZTI5EE331[];
+extern VTBL_ENTRY _ZTV5EE331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE331[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG3312223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE331, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3312223[];
+extern void _ZN9GG33122233fooEv();
+extern void _ZN9GG33122233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33122233fooEv,_ZTv0_n20_N9GG33122233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33122233fooEv,_ZThn8_N9GG33122233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33122233fooEv,_ZTv0_n12_N9GG33122233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33122233fooEv,_ZThn16_N9GG33122233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33122233barEv,_ZTv0_n16_N9GG33122233barEv)();
+extern void ABISELECT(_ZThn32_N9GG33122233barEv,_ZThn16_N9GG33122233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33122233fooEv,_ZTv0_n12_N9GG33122233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33122233fooEv,_ZThn24_N9GG33122233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33122233barEv,_ZTv0_n16_N9GG33122233barEv)();
+extern void ABISELECT(_ZThn48_N9GG33122233barEv,_ZThn24_N9GG33122233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33122233barEv,_ZTv0_n20_N9GG33122233barEv)();
+extern void ABISELECT(_ZThn64_N9GG33122233barEv,_ZThn32_N9GG33122233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33122233barEv,_ZTv0_n12_N9GG33122233barEv)();
+extern void ABISELECT(_ZThn80_N9GG33122233barEv,_ZThn40_N9GG33122233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33122233barEv,_ZTv0_n12_N9GG33122233barEv)();
+extern void ABISELECT(_ZThn96_N9GG33122233barEv,_ZThn48_N9GG33122233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3312223[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3312223[0]),
+ (VTBL_ENTRY)&_ZN9GG33122233fooEv,
+ (VTBL_ENTRY)&_ZN9GG33122233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3312223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33122233fooEv,_ZTv0_n20_N9GG33122233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3312223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33122233fooEv,_ZTv0_n12_N9GG33122233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33122233barEv,_ZTv0_n16_N9GG33122233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3312223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33122233fooEv,_ZTv0_n12_N9GG33122233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33122233barEv,_ZTv0_n16_N9GG33122233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3312223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33122233barEv,_ZTv0_n20_N9GG33122233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3312223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33122233barEv,_ZTv0_n12_N9GG33122233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3312223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33122233barEv,_ZTv0_n12_N9GG33122233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3312223[];
+extern void _ZN5EE3313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE331__9GG3312223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&_ZN5EE3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE331__9GG3312223[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE331__9GG3312223[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG3312223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG3312223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG3312223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG3312223[] = {
+ {&(_ZTV9GG3312223[8]), 8,42},
+ {&(_ZTV9GG3312223[15]), 15,42},
+ {&(_ZTV9GG3312223[20]), 20,42},
+ {&(_ZTV9GG3312223[26]), 26,42},
+ {&(_ZTV9GG3312223[33]), 33,42},
+ {&(_ZTV9GG3312223[37]), 37,42},
+ {&(_ZTV9GG3312223[41]), 41,42},
+ {&(_tg__ZTV5EE331__9GG3312223[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE331__9GG3312223[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE331__9GG3312223[4]), 4,6},
+ {&(_tg__ZTV5FF222__9GG3312223[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG3312223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG3312223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3312223[];
+extern VTBL_ENTRY _ZTV9GG3312223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3312223[];
+static VTBL_ENTRY alt_thunk_names943[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33122233barEv,_ZTv0_n12_N9GG33122233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG33122233barEv,_ZThn48_N9GG33122233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33122233barEv,_ZThn40_N9GG33122233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33122233barEv,_ZTv0_n20_N9GG33122233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33122233barEv,_ZThn32_N9GG33122233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33122233barEv,_ZTv0_n16_N9GG33122233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33122233barEv,_ZThn24_N9GG33122233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33122233barEv,_ZThn16_N9GG33122233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33122233fooEv,_ZTv0_n12_N9GG33122233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33122233fooEv,_ZThn24_N9GG33122233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33122233fooEv,_ZThn16_N9GG33122233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33122233fooEv,_ZTv0_n20_N9GG33122233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33122233fooEv,_ZThn8_N9GG33122233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3312223 = { "GG3312223", // class name
+ bases_GG3312223, 6,
+ &(vtc_GG3312223[0]), // expected_vtbl_contents
+ &(vtt_GG3312223[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3312223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3312223),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3312223),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names943,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3312233 : virtual EE331 , virtual FF223 {
+ int pg;
+ virtual void foo(); // _ZN9GG33122333fooEv
+ virtual void bar(); // _ZN9GG33122333barEv
+ ~GG3312233(); // tgen
+ GG3312233(); // tgen
+};
+//SIG(1 GG3312233) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3312233 ::foo(){vfunc_called(this, "_ZN9GG33122333fooEv");}
+void GG3312233 ::bar(){vfunc_called(this, "_ZN9GG33122333barEv");}
+GG3312233 ::~GG3312233(){ note_dtor("GG3312233", this);} // tgen
+GG3312233 ::GG3312233(){ note_ctor("GG3312233", this);} // tgen
+
+static void Test_GG3312233()
+{
+ extern Class_Descriptor cd_GG3312233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3312233, buf);
+ GG3312233 *dp, &lv = *(dp=new (buf) GG3312233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3312233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3312233)");
+ check_base_class_offset(lv, (AA3*)(EE331*), ABISELECT(32,16), "GG3312233");
+ check_base_class_offset(lv, (BB3*)(EE331*), ABISELECT(48,24), "GG3312233");
+ check_base_class_offset(lv, (EE331*), ABISELECT(16,8), "GG3312233");
+ check_base_class_offset(lv, (AA2*)(FF223*), ABISELECT(80,40), "GG3312233");
+ check_base_class_offset(lv, (BB2*)(FF223*), ABISELECT(96,48), "GG3312233");
+ check_base_class_offset(lv, (FF223*), ABISELECT(64,32), "GG3312233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3312233.pg");
+ test_class_info(&lv, &cd_GG3312233);
+ dp->~GG3312233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3312233(Test_GG3312233, "GG3312233", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3312233C1Ev();
+extern void _ZN9GG3312233D1Ev();
+Name_Map name_map_GG3312233[] = {
+ NSPAIR(_ZN9GG3312233C1Ev),
+ NSPAIR(_ZN9GG3312233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE331;
+extern VTBL_ENTRY _ZTI5EE331[];
+extern VTBL_ENTRY _ZTV5EE331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE331[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF223;
+extern VTBL_ENTRY _ZTI5FF223[];
+extern VTBL_ENTRY _ZTV5FF223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF223[];
+static Base_Class bases_GG3312233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE331, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 40, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF223, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3312233[];
+extern void _ZN9GG33122333fooEv();
+extern void _ZN9GG33122333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33122333fooEv,_ZTv0_n20_N9GG33122333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33122333fooEv,_ZThn8_N9GG33122333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33122333fooEv,_ZTv0_n12_N9GG33122333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33122333fooEv,_ZThn16_N9GG33122333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33122333barEv,_ZTv0_n16_N9GG33122333barEv)();
+extern void ABISELECT(_ZThn32_N9GG33122333barEv,_ZThn16_N9GG33122333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33122333fooEv,_ZTv0_n12_N9GG33122333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33122333fooEv,_ZThn24_N9GG33122333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33122333barEv,_ZTv0_n16_N9GG33122333barEv)();
+extern void ABISELECT(_ZThn48_N9GG33122333barEv,_ZThn24_N9GG33122333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33122333fooEv,_ZTv0_n20_N9GG33122333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33122333fooEv,_ZThn32_N9GG33122333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33122333barEv,_ZTv0_n24_N9GG33122333barEv)();
+extern void ABISELECT(_ZThn64_N9GG33122333barEv,_ZThn32_N9GG33122333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33122333barEv,_ZTv0_n12_N9GG33122333barEv)();
+extern void ABISELECT(_ZThn80_N9GG33122333barEv,_ZThn40_N9GG33122333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33122333barEv,_ZTv0_n12_N9GG33122333barEv)();
+extern void ABISELECT(_ZThn96_N9GG33122333barEv,_ZThn48_N9GG33122333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3312233[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3312233[0]),
+ (VTBL_ENTRY)&_ZN9GG33122333fooEv,
+ (VTBL_ENTRY)&_ZN9GG33122333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3312233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33122333fooEv,_ZTv0_n20_N9GG33122333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3312233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33122333fooEv,_ZTv0_n12_N9GG33122333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33122333barEv,_ZTv0_n16_N9GG33122333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3312233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33122333fooEv,_ZTv0_n12_N9GG33122333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33122333barEv,_ZTv0_n16_N9GG33122333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3312233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33122333fooEv,_ZTv0_n20_N9GG33122333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33122333barEv,_ZTv0_n24_N9GG33122333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3312233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33122333barEv,_ZTv0_n12_N9GG33122333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3312233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33122333barEv,_ZTv0_n12_N9GG33122333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3312233[];
+extern void _ZN5EE3313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE331__9GG3312233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&_ZN5EE3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE331__9GG3312233[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE331__9GG3312233[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF2233fooEv();
+extern void _ZN5FF2233barEv();
+static VTBL_ENTRY _tg__ZTV5FF223__9GG3312233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&_ZN5FF2233fooEv,
+ (VTBL_ENTRY)&_ZN5FF2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+extern void ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF223__9GG3312233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+extern void ABISELECT(_ZThn32_N5FF2233barEv,_ZThn16_N5FF2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF223__9GG3312233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+static VTT_ENTRY vtt_GG3312233[] = {
+ {&(_ZTV9GG3312233[8]), 8,44},
+ {&(_ZTV9GG3312233[15]), 15,44},
+ {&(_ZTV9GG3312233[20]), 20,44},
+ {&(_ZTV9GG3312233[26]), 26,44},
+ {&(_ZTV9GG3312233[34]), 34,44},
+ {&(_ZTV9GG3312233[39]), 39,44},
+ {&(_ZTV9GG3312233[43]), 43,44},
+ {&(_tg__ZTV5EE331__9GG3312233[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE331__9GG3312233[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE331__9GG3312233[4]), 4,6},
+ {&(_tg__ZTV5FF223__9GG3312233[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF223__9GG3312233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF223__9GG3312233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3312233[];
+extern VTBL_ENTRY _ZTV9GG3312233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3312233[];
+static VTBL_ENTRY alt_thunk_names944[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2233barEv,_ZThn16_N5FF2233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33122333barEv,_ZTv0_n12_N9GG33122333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG33122333barEv,_ZThn48_N9GG33122333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33122333barEv,_ZThn40_N9GG33122333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG33122333barEv,_ZTv0_n24_N9GG33122333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33122333barEv,_ZThn32_N9GG33122333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33122333barEv,_ZTv0_n16_N9GG33122333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33122333barEv,_ZThn24_N9GG33122333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33122333barEv,_ZThn16_N9GG33122333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33122333fooEv,_ZTv0_n12_N9GG33122333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33122333fooEv,_ZThn24_N9GG33122333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33122333fooEv,_ZThn16_N9GG33122333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33122333fooEv,_ZTv0_n20_N9GG33122333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33122333fooEv,_ZThn32_N9GG33122333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33122333fooEv,_ZThn8_N9GG33122333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3312233 = { "GG3312233", // class name
+ bases_GG3312233, 6,
+ &(vtc_GG3312233[0]), // expected_vtbl_contents
+ &(vtt_GG3312233[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3312233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3312233),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3312233),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names944,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3312313 : virtual EE331 , virtual FF231 {
+ int pg;
+ virtual void foo(); // _ZN9GG33123133fooEv
+ virtual void bar(); // _ZN9GG33123133barEv
+ ~GG3312313(); // tgen
+ GG3312313(); // tgen
+};
+//SIG(1 GG3312313) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG3312313 ::foo(){vfunc_called(this, "_ZN9GG33123133fooEv");}
+void GG3312313 ::bar(){vfunc_called(this, "_ZN9GG33123133barEv");}
+GG3312313 ::~GG3312313(){ note_dtor("GG3312313", this);} // tgen
+GG3312313 ::GG3312313(){ note_ctor("GG3312313", this);} // tgen
+
+static void Test_GG3312313()
+{
+ extern Class_Descriptor cd_GG3312313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3312313, buf);
+ GG3312313 *dp, &lv = *(dp=new (buf) GG3312313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3312313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3312313)");
+ check_base_class_offset(lv, (AA3*)(EE331*), ABISELECT(32,16), "GG3312313");
+ check_base_class_offset(lv, (BB3*)(EE331*), ABISELECT(48,24), "GG3312313");
+ check_base_class_offset(lv, (BB3*)(FF231*), ABISELECT(48,24), "GG3312313");
+ check_base_class_offset(lv, (EE331*), ABISELECT(16,8), "GG3312313");
+ check_base_class_offset(lv, (AA2*)(FF231*), ABISELECT(80,40), "GG3312313");
+ check_base_class_offset(lv, (FF231*), ABISELECT(64,32), "GG3312313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3312313.pg");
+ test_class_info(&lv, &cd_GG3312313);
+ dp->~GG3312313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3312313(Test_GG3312313, "GG3312313", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3312313C1Ev();
+extern void _ZN9GG3312313D1Ev();
+Name_Map name_map_GG3312313[] = {
+ NSPAIR(_ZN9GG3312313C1Ev),
+ NSPAIR(_ZN9GG3312313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE331;
+extern VTBL_ENTRY _ZTI5EE331[];
+extern VTBL_ENTRY _ZTV5EE331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE331[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF231;
+extern VTBL_ENTRY _ZTI5FF231[];
+extern VTBL_ENTRY _ZTV5FF231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF231[];
+static Base_Class bases_GG3312313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE331, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF231, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3312313[];
+extern void _ZN9GG33123133fooEv();
+extern void _ZN9GG33123133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33123133fooEv,_ZTv0_n20_N9GG33123133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33123133fooEv,_ZThn8_N9GG33123133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33123133fooEv,_ZTv0_n12_N9GG33123133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33123133fooEv,_ZThn16_N9GG33123133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33123133barEv,_ZTv0_n16_N9GG33123133barEv)();
+extern void ABISELECT(_ZThn32_N9GG33123133barEv,_ZThn16_N9GG33123133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33123133fooEv,_ZTv0_n12_N9GG33123133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33123133fooEv,_ZThn24_N9GG33123133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33123133barEv,_ZTv0_n16_N9GG33123133barEv)();
+extern void ABISELECT(_ZThn48_N9GG33123133barEv,_ZThn24_N9GG33123133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33123133fooEv,_ZTv0_n20_N9GG33123133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33123133fooEv,_ZThn32_N9GG33123133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33123133barEv,_ZTv0_n12_N9GG33123133barEv)();
+extern void ABISELECT(_ZThn80_N9GG33123133barEv,_ZThn40_N9GG33123133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3312313[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3312313[0]),
+ (VTBL_ENTRY)&_ZN9GG33123133fooEv,
+ (VTBL_ENTRY)&_ZN9GG33123133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3312313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33123133fooEv,_ZTv0_n20_N9GG33123133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3312313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33123133fooEv,_ZTv0_n12_N9GG33123133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33123133barEv,_ZTv0_n16_N9GG33123133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3312313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33123133fooEv,_ZTv0_n12_N9GG33123133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33123133barEv,_ZTv0_n16_N9GG33123133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3312313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33123133fooEv,_ZTv0_n20_N9GG33123133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3312313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33123133barEv,_ZTv0_n12_N9GG33123133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3312313[];
+extern void _ZN5EE3313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE331__9GG3312313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&_ZN5EE3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE331__9GG3312313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE331__9GG3312313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF2313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF231__9GG3312313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN5FF2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF231__9GG3312313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv)();
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF231__9GG3312313[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG3312313[] = {
+ {&(_ZTV9GG3312313[7]), 7,37},
+ {&(_ZTV9GG3312313[14]), 14,37},
+ {&(_ZTV9GG3312313[19]), 19,37},
+ {&(_ZTV9GG3312313[25]), 25,37},
+ {&(_ZTV9GG3312313[32]), 32,37},
+ {&(_ZTV9GG3312313[36]), 36,37},
+ {&(_tg__ZTV5EE331__9GG3312313[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE331__9GG3312313[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE331__9GG3312313[4]), 4,6},
+ {&(_tg__ZTV5FF231__9GG3312313[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF231__9GG3312313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF231__9GG3312313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3312313[];
+extern VTBL_ENTRY _ZTV9GG3312313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3312313[];
+static VTBL_ENTRY alt_thunk_names945[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33123133barEv,_ZTv0_n12_N9GG33123133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33123133barEv,_ZThn40_N9GG33123133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33123133barEv,_ZTv0_n16_N9GG33123133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33123133barEv,_ZThn24_N9GG33123133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33123133barEv,_ZThn16_N9GG33123133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33123133fooEv,_ZTv0_n12_N9GG33123133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33123133fooEv,_ZThn24_N9GG33123133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33123133fooEv,_ZThn16_N9GG33123133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33123133fooEv,_ZTv0_n20_N9GG33123133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33123133fooEv,_ZThn32_N9GG33123133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33123133fooEv,_ZThn8_N9GG33123133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3312313 = { "GG3312313", // class name
+ bases_GG3312313, 5,
+ &(vtc_GG3312313[0]), // expected_vtbl_contents
+ &(vtt_GG3312313[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3312313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3312313),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3312313),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names945,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3312323 : virtual EE331 , virtual FF232 {
+ int pg;
+ virtual void foo(); // _ZN9GG33123233fooEv
+ virtual void bar(); // _ZN9GG33123233barEv
+ ~GG3312323(); // tgen
+ GG3312323(); // tgen
+};
+//SIG(1 GG3312323) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG3312323 ::foo(){vfunc_called(this, "_ZN9GG33123233fooEv");}
+void GG3312323 ::bar(){vfunc_called(this, "_ZN9GG33123233barEv");}
+GG3312323 ::~GG3312323(){ note_dtor("GG3312323", this);} // tgen
+GG3312323 ::GG3312323(){ note_ctor("GG3312323", this);} // tgen
+
+static void Test_GG3312323()
+{
+ extern Class_Descriptor cd_GG3312323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3312323, buf);
+ GG3312323 *dp, &lv = *(dp=new (buf) GG3312323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3312323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3312323)");
+ check_base_class_offset(lv, (AA3*)(EE331*), ABISELECT(32,16), "GG3312323");
+ check_base_class_offset(lv, (BB3*)(EE331*), ABISELECT(48,24), "GG3312323");
+ check_base_class_offset(lv, (BB3*)(FF232*), ABISELECT(48,24), "GG3312323");
+ check_base_class_offset(lv, (EE331*), ABISELECT(16,8), "GG3312323");
+ check_base_class_offset(lv, (AA2*)(FF232*), ABISELECT(80,40), "GG3312323");
+ check_base_class_offset(lv, (FF232*), ABISELECT(64,32), "GG3312323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3312323.pg");
+ test_class_info(&lv, &cd_GG3312323);
+ dp->~GG3312323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3312323(Test_GG3312323, "GG3312323", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3312323C1Ev();
+extern void _ZN9GG3312323D1Ev();
+Name_Map name_map_GG3312323[] = {
+ NSPAIR(_ZN9GG3312323C1Ev),
+ NSPAIR(_ZN9GG3312323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE331;
+extern VTBL_ENTRY _ZTI5EE331[];
+extern VTBL_ENTRY _ZTV5EE331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE331[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF232;
+extern VTBL_ENTRY _ZTI5FF232[];
+extern VTBL_ENTRY _ZTV5FF232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF232[];
+static Base_Class bases_GG3312323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE331, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF232, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3312323[];
+extern void _ZN9GG33123233fooEv();
+extern void _ZN9GG33123233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33123233fooEv,_ZTv0_n20_N9GG33123233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33123233fooEv,_ZThn8_N9GG33123233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33123233fooEv,_ZTv0_n12_N9GG33123233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33123233fooEv,_ZThn16_N9GG33123233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33123233barEv,_ZTv0_n16_N9GG33123233barEv)();
+extern void ABISELECT(_ZThn32_N9GG33123233barEv,_ZThn16_N9GG33123233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33123233fooEv,_ZTv0_n12_N9GG33123233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33123233fooEv,_ZThn24_N9GG33123233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33123233barEv,_ZTv0_n16_N9GG33123233barEv)();
+extern void ABISELECT(_ZThn48_N9GG33123233barEv,_ZThn24_N9GG33123233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33123233barEv,_ZTv0_n20_N9GG33123233barEv)();
+extern void ABISELECT(_ZThn64_N9GG33123233barEv,_ZThn32_N9GG33123233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33123233barEv,_ZTv0_n12_N9GG33123233barEv)();
+extern void ABISELECT(_ZThn80_N9GG33123233barEv,_ZThn40_N9GG33123233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3312323[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3312323[0]),
+ (VTBL_ENTRY)&_ZN9GG33123233fooEv,
+ (VTBL_ENTRY)&_ZN9GG33123233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3312323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33123233fooEv,_ZTv0_n20_N9GG33123233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3312323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33123233fooEv,_ZTv0_n12_N9GG33123233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33123233barEv,_ZTv0_n16_N9GG33123233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3312323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33123233fooEv,_ZTv0_n12_N9GG33123233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33123233barEv,_ZTv0_n16_N9GG33123233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3312323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33123233barEv,_ZTv0_n20_N9GG33123233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3312323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33123233barEv,_ZTv0_n12_N9GG33123233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3312323[];
+extern void _ZN5EE3313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE331__9GG3312323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&_ZN5EE3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE331__9GG3312323[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE331__9GG3312323[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF2323barEv();
+static VTBL_ENTRY _tg__ZTV5FF232__9GG3312323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN5FF2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv)();
+extern void ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF232__9GG3312323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF232__9GG3312323[] = {
+ ABISELECT(16,8),
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv),
+};
+static VTT_ENTRY vtt_GG3312323[] = {
+ {&(_ZTV9GG3312323[7]), 7,37},
+ {&(_ZTV9GG3312323[14]), 14,37},
+ {&(_ZTV9GG3312323[19]), 19,37},
+ {&(_ZTV9GG3312323[25]), 25,37},
+ {&(_ZTV9GG3312323[32]), 32,37},
+ {&(_ZTV9GG3312323[36]), 36,37},
+ {&(_tg__ZTV5EE331__9GG3312323[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE331__9GG3312323[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE331__9GG3312323[4]), 4,6},
+ {&(_tg__ZTV5FF232__9GG3312323[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF232__9GG3312323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF232__9GG3312323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3312323[];
+extern VTBL_ENTRY _ZTV9GG3312323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3312323[];
+static VTBL_ENTRY alt_thunk_names946[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33123233barEv,_ZTv0_n12_N9GG33123233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33123233barEv,_ZThn40_N9GG33123233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33123233barEv,_ZTv0_n20_N9GG33123233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33123233barEv,_ZThn32_N9GG33123233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33123233barEv,_ZTv0_n16_N9GG33123233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33123233barEv,_ZThn24_N9GG33123233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33123233barEv,_ZThn16_N9GG33123233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33123233fooEv,_ZTv0_n12_N9GG33123233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33123233fooEv,_ZThn24_N9GG33123233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33123233fooEv,_ZThn16_N9GG33123233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33123233fooEv,_ZTv0_n20_N9GG33123233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33123233fooEv,_ZThn8_N9GG33123233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3312323 = { "GG3312323", // class name
+ bases_GG3312323, 5,
+ &(vtc_GG3312323[0]), // expected_vtbl_contents
+ &(vtt_GG3312323[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3312323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3312323),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3312323),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names946,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3312333 : virtual EE331 , virtual FF233 {
+ int pg;
+ virtual void foo(); // _ZN9GG33123333fooEv
+ virtual void bar(); // _ZN9GG33123333barEv
+ ~GG3312333(); // tgen
+ GG3312333(); // tgen
+};
+//SIG(1 GG3312333) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3312333 ::foo(){vfunc_called(this, "_ZN9GG33123333fooEv");}
+void GG3312333 ::bar(){vfunc_called(this, "_ZN9GG33123333barEv");}
+GG3312333 ::~GG3312333(){ note_dtor("GG3312333", this);} // tgen
+GG3312333 ::GG3312333(){ note_ctor("GG3312333", this);} // tgen
+
+static void Test_GG3312333()
+{
+ extern Class_Descriptor cd_GG3312333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3312333, buf);
+ GG3312333 *dp, &lv = *(dp=new (buf) GG3312333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3312333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3312333)");
+ check_base_class_offset(lv, (AA3*)(EE331*), ABISELECT(32,16), "GG3312333");
+ check_base_class_offset(lv, (BB3*)(EE331*), ABISELECT(48,24), "GG3312333");
+ check_base_class_offset(lv, (BB3*)(FF233*), ABISELECT(48,24), "GG3312333");
+ check_base_class_offset(lv, (EE331*), ABISELECT(16,8), "GG3312333");
+ check_base_class_offset(lv, (AA2*)(FF233*), ABISELECT(80,40), "GG3312333");
+ check_base_class_offset(lv, (FF233*), ABISELECT(64,32), "GG3312333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3312333.pg");
+ test_class_info(&lv, &cd_GG3312333);
+ dp->~GG3312333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3312333(Test_GG3312333, "GG3312333", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3312333C1Ev();
+extern void _ZN9GG3312333D1Ev();
+Name_Map name_map_GG3312333[] = {
+ NSPAIR(_ZN9GG3312333C1Ev),
+ NSPAIR(_ZN9GG3312333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE331;
+extern VTBL_ENTRY _ZTI5EE331[];
+extern VTBL_ENTRY _ZTV5EE331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE331[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF233;
+extern VTBL_ENTRY _ZTI5FF233[];
+extern VTBL_ENTRY _ZTV5FF233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF233[];
+static Base_Class bases_GG3312333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE331, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF233, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3312333[];
+extern void _ZN9GG33123333fooEv();
+extern void _ZN9GG33123333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33123333fooEv,_ZTv0_n20_N9GG33123333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33123333fooEv,_ZThn8_N9GG33123333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33123333fooEv,_ZTv0_n12_N9GG33123333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33123333fooEv,_ZThn16_N9GG33123333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33123333barEv,_ZTv0_n16_N9GG33123333barEv)();
+extern void ABISELECT(_ZThn32_N9GG33123333barEv,_ZThn16_N9GG33123333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33123333fooEv,_ZTv0_n12_N9GG33123333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33123333fooEv,_ZThn24_N9GG33123333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33123333barEv,_ZTv0_n16_N9GG33123333barEv)();
+extern void ABISELECT(_ZThn48_N9GG33123333barEv,_ZThn24_N9GG33123333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33123333fooEv,_ZTv0_n20_N9GG33123333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33123333fooEv,_ZThn32_N9GG33123333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33123333barEv,_ZTv0_n24_N9GG33123333barEv)();
+extern void ABISELECT(_ZThn64_N9GG33123333barEv,_ZThn32_N9GG33123333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33123333barEv,_ZTv0_n12_N9GG33123333barEv)();
+extern void ABISELECT(_ZThn80_N9GG33123333barEv,_ZThn40_N9GG33123333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3312333[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3312333[0]),
+ (VTBL_ENTRY)&_ZN9GG33123333fooEv,
+ (VTBL_ENTRY)&_ZN9GG33123333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3312333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33123333fooEv,_ZTv0_n20_N9GG33123333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3312333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33123333fooEv,_ZTv0_n12_N9GG33123333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33123333barEv,_ZTv0_n16_N9GG33123333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3312333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33123333fooEv,_ZTv0_n12_N9GG33123333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33123333barEv,_ZTv0_n16_N9GG33123333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3312333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33123333fooEv,_ZTv0_n20_N9GG33123333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33123333barEv,_ZTv0_n24_N9GG33123333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3312333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33123333barEv,_ZTv0_n12_N9GG33123333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3312333[];
+extern void _ZN5EE3313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE331__9GG3312333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&_ZN5EE3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE331__9GG3312333[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE331__9GG3312333[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF2333fooEv();
+extern void _ZN5FF2333barEv();
+static VTBL_ENTRY _tg__ZTV5FF233__9GG3312333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&_ZN5FF2333fooEv,
+ (VTBL_ENTRY)&_ZN5FF2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv)();
+extern void ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF233__9GG3312333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF233__9GG3312333[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv),
+};
+static VTT_ENTRY vtt_GG3312333[] = {
+ {&(_ZTV9GG3312333[7]), 7,39},
+ {&(_ZTV9GG3312333[14]), 14,39},
+ {&(_ZTV9GG3312333[19]), 19,39},
+ {&(_ZTV9GG3312333[25]), 25,39},
+ {&(_ZTV9GG3312333[33]), 33,39},
+ {&(_ZTV9GG3312333[38]), 38,39},
+ {&(_tg__ZTV5EE331__9GG3312333[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE331__9GG3312333[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE331__9GG3312333[4]), 4,6},
+ {&(_tg__ZTV5FF233__9GG3312333[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF233__9GG3312333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF233__9GG3312333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3312333[];
+extern VTBL_ENTRY _ZTV9GG3312333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3312333[];
+static VTBL_ENTRY alt_thunk_names947[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33123333barEv,_ZTv0_n12_N9GG33123333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33123333barEv,_ZThn40_N9GG33123333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG33123333barEv,_ZTv0_n24_N9GG33123333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33123333barEv,_ZThn32_N9GG33123333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33123333barEv,_ZTv0_n16_N9GG33123333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33123333barEv,_ZThn24_N9GG33123333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33123333barEv,_ZThn16_N9GG33123333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33123333fooEv,_ZTv0_n12_N9GG33123333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33123333fooEv,_ZThn24_N9GG33123333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33123333fooEv,_ZThn16_N9GG33123333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33123333fooEv,_ZTv0_n20_N9GG33123333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33123333fooEv,_ZThn32_N9GG33123333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33123333fooEv,_ZThn8_N9GG33123333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3312333 = { "GG3312333", // class name
+ bases_GG3312333, 5,
+ &(vtc_GG3312333[0]), // expected_vtbl_contents
+ &(vtt_GG3312333[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3312333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3312333),39, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3312333),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names947,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3313113 : virtual EE331 , virtual FF311 {
+ int pg;
+ virtual void foo(); // _ZN9GG33131133fooEv
+ virtual void bar(); // _ZN9GG33131133barEv
+ ~GG3313113(); // tgen
+ GG3313113(); // tgen
+};
+//SIG(1 GG3313113) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3313113 ::foo(){vfunc_called(this, "_ZN9GG33131133fooEv");}
+void GG3313113 ::bar(){vfunc_called(this, "_ZN9GG33131133barEv");}
+GG3313113 ::~GG3313113(){ note_dtor("GG3313113", this);} // tgen
+GG3313113 ::GG3313113(){ note_ctor("GG3313113", this);} // tgen
+
+static void Test_GG3313113()
+{
+ extern Class_Descriptor cd_GG3313113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3313113, buf);
+ GG3313113 *dp, &lv = *(dp=new (buf) GG3313113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3313113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3313113)");
+ check_base_class_offset(lv, (AA3*)(EE331*), ABISELECT(32,16), "GG3313113");
+ check_base_class_offset(lv, (AA3*)(FF311*), ABISELECT(32,16), "GG3313113");
+ check_base_class_offset(lv, (BB3*)(EE331*), ABISELECT(48,24), "GG3313113");
+ check_base_class_offset(lv, (EE331*), ABISELECT(16,8), "GG3313113");
+ check_base_class_offset(lv, (BB1*)(FF311*), ABISELECT(80,40), "GG3313113");
+ check_base_class_offset(lv, (FF311*), ABISELECT(64,32), "GG3313113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3313113.pg");
+ test_class_info(&lv, &cd_GG3313113);
+ dp->~GG3313113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3313113(Test_GG3313113, "GG3313113", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3313113C1Ev();
+extern void _ZN9GG3313113D1Ev();
+Name_Map name_map_GG3313113[] = {
+ NSPAIR(_ZN9GG3313113C1Ev),
+ NSPAIR(_ZN9GG3313113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE331;
+extern VTBL_ENTRY _ZTI5EE331[];
+extern VTBL_ENTRY _ZTV5EE331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE331[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF311;
+extern VTBL_ENTRY _ZTI5FF311[];
+extern VTBL_ENTRY _ZTV5FF311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF311[];
+static Base_Class bases_GG3313113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE331, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF311, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3313113[];
+extern void _ZN9GG33131133fooEv();
+extern void _ZN9GG33131133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33131133fooEv,_ZTv0_n20_N9GG33131133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33131133fooEv,_ZThn8_N9GG33131133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33131133fooEv,_ZTv0_n12_N9GG33131133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33131133fooEv,_ZThn16_N9GG33131133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33131133barEv,_ZTv0_n16_N9GG33131133barEv)();
+extern void ABISELECT(_ZThn32_N9GG33131133barEv,_ZThn16_N9GG33131133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33131133fooEv,_ZTv0_n12_N9GG33131133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33131133fooEv,_ZThn24_N9GG33131133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33131133barEv,_ZTv0_n16_N9GG33131133barEv)();
+extern void ABISELECT(_ZThn48_N9GG33131133barEv,_ZThn24_N9GG33131133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33131133fooEv,_ZTv0_n20_N9GG33131133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33131133fooEv,_ZThn32_N9GG33131133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33131133fooEv,_ZTv0_n12_N9GG33131133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG33131133fooEv,_ZThn40_N9GG33131133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3313113[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3313113[0]),
+ (VTBL_ENTRY)&_ZN9GG33131133fooEv,
+ (VTBL_ENTRY)&_ZN9GG33131133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3313113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33131133fooEv,_ZTv0_n20_N9GG33131133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3313113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33131133fooEv,_ZTv0_n12_N9GG33131133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33131133barEv,_ZTv0_n16_N9GG33131133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3313113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33131133fooEv,_ZTv0_n12_N9GG33131133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33131133barEv,_ZTv0_n16_N9GG33131133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3313113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33131133fooEv,_ZTv0_n20_N9GG33131133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3313113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33131133fooEv,_ZTv0_n12_N9GG33131133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3313113[];
+extern void _ZN5EE3313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE331__9GG3313113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&_ZN5EE3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE331__9GG3313113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE331__9GG3313113[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF3113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF311__9GG3313113[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&_ZN5FF3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF311__9GG3313113[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF311__9GG3313113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+};
+static VTT_ENTRY vtt_GG3313113[] = {
+ {&(_ZTV9GG3313113[7]), 7,37},
+ {&(_ZTV9GG3313113[14]), 14,37},
+ {&(_ZTV9GG3313113[19]), 19,37},
+ {&(_ZTV9GG3313113[25]), 25,37},
+ {&(_ZTV9GG3313113[32]), 32,37},
+ {&(_ZTV9GG3313113[36]), 36,37},
+ {&(_tg__ZTV5EE331__9GG3313113[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE331__9GG3313113[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE331__9GG3313113[4]), 4,6},
+ {&(_tg__ZTV5FF311__9GG3313113[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF311__9GG3313113[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF311__9GG3313113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3313113[];
+extern VTBL_ENTRY _ZTV9GG3313113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3313113[];
+static VTBL_ENTRY alt_thunk_names948[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33131133barEv,_ZTv0_n16_N9GG33131133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33131133barEv,_ZThn24_N9GG33131133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33131133barEv,_ZThn16_N9GG33131133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33131133fooEv,_ZTv0_n12_N9GG33131133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33131133fooEv,_ZThn40_N9GG33131133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33131133fooEv,_ZThn24_N9GG33131133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33131133fooEv,_ZThn16_N9GG33131133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33131133fooEv,_ZTv0_n20_N9GG33131133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33131133fooEv,_ZThn32_N9GG33131133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33131133fooEv,_ZThn8_N9GG33131133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3313113 = { "GG3313113", // class name
+ bases_GG3313113, 5,
+ &(vtc_GG3313113[0]), // expected_vtbl_contents
+ &(vtt_GG3313113[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3313113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3313113),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3313113),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names948,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3313123 : virtual EE331 , virtual FF312 {
+ int pg;
+ virtual void foo(); // _ZN9GG33131233fooEv
+ virtual void bar(); // _ZN9GG33131233barEv
+ ~GG3313123(); // tgen
+ GG3313123(); // tgen
+};
+//SIG(1 GG3313123) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3313123 ::foo(){vfunc_called(this, "_ZN9GG33131233fooEv");}
+void GG3313123 ::bar(){vfunc_called(this, "_ZN9GG33131233barEv");}
+GG3313123 ::~GG3313123(){ note_dtor("GG3313123", this);} // tgen
+GG3313123 ::GG3313123(){ note_ctor("GG3313123", this);} // tgen
+
+static void Test_GG3313123()
+{
+ extern Class_Descriptor cd_GG3313123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3313123, buf);
+ GG3313123 *dp, &lv = *(dp=new (buf) GG3313123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3313123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3313123)");
+ check_base_class_offset(lv, (AA3*)(EE331*), ABISELECT(32,16), "GG3313123");
+ check_base_class_offset(lv, (AA3*)(FF312*), ABISELECT(32,16), "GG3313123");
+ check_base_class_offset(lv, (BB3*)(EE331*), ABISELECT(48,24), "GG3313123");
+ check_base_class_offset(lv, (EE331*), ABISELECT(16,8), "GG3313123");
+ check_base_class_offset(lv, (BB1*)(FF312*), ABISELECT(80,40), "GG3313123");
+ check_base_class_offset(lv, (FF312*), ABISELECT(64,32), "GG3313123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3313123.pg");
+ test_class_info(&lv, &cd_GG3313123);
+ dp->~GG3313123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3313123(Test_GG3313123, "GG3313123", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3313123C1Ev();
+extern void _ZN9GG3313123D1Ev();
+Name_Map name_map_GG3313123[] = {
+ NSPAIR(_ZN9GG3313123C1Ev),
+ NSPAIR(_ZN9GG3313123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE331;
+extern VTBL_ENTRY _ZTI5EE331[];
+extern VTBL_ENTRY _ZTV5EE331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE331[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF312;
+extern VTBL_ENTRY _ZTI5FF312[];
+extern VTBL_ENTRY _ZTV5FF312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF312[];
+static Base_Class bases_GG3313123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE331, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF312, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3313123[];
+extern void _ZN9GG33131233fooEv();
+extern void _ZN9GG33131233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33131233fooEv,_ZTv0_n20_N9GG33131233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33131233fooEv,_ZThn8_N9GG33131233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33131233fooEv,_ZTv0_n12_N9GG33131233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33131233fooEv,_ZThn16_N9GG33131233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33131233barEv,_ZTv0_n16_N9GG33131233barEv)();
+extern void ABISELECT(_ZThn32_N9GG33131233barEv,_ZThn16_N9GG33131233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33131233fooEv,_ZTv0_n12_N9GG33131233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33131233fooEv,_ZThn24_N9GG33131233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33131233barEv,_ZTv0_n16_N9GG33131233barEv)();
+extern void ABISELECT(_ZThn48_N9GG33131233barEv,_ZThn24_N9GG33131233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33131233barEv,_ZTv0_n20_N9GG33131233barEv)();
+extern void ABISELECT(_ZThn64_N9GG33131233barEv,_ZThn32_N9GG33131233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33131233fooEv,_ZTv0_n12_N9GG33131233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG33131233fooEv,_ZThn40_N9GG33131233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3313123[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3313123[0]),
+ (VTBL_ENTRY)&_ZN9GG33131233fooEv,
+ (VTBL_ENTRY)&_ZN9GG33131233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3313123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33131233fooEv,_ZTv0_n20_N9GG33131233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3313123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33131233fooEv,_ZTv0_n12_N9GG33131233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33131233barEv,_ZTv0_n16_N9GG33131233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3313123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33131233fooEv,_ZTv0_n12_N9GG33131233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33131233barEv,_ZTv0_n16_N9GG33131233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3313123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33131233barEv,_ZTv0_n20_N9GG33131233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3313123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33131233fooEv,_ZTv0_n12_N9GG33131233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3313123[];
+extern void _ZN5EE3313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE331__9GG3313123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&_ZN5EE3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE331__9GG3313123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE331__9GG3313123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF3123barEv();
+static VTBL_ENTRY _tg__ZTV5FF312__9GG3313123[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN5FF3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF312__9GG3313123[] = {
+ ABISELECT(32,16),
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF312__9GG3313123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG3313123[] = {
+ {&(_ZTV9GG3313123[7]), 7,37},
+ {&(_ZTV9GG3313123[14]), 14,37},
+ {&(_ZTV9GG3313123[19]), 19,37},
+ {&(_ZTV9GG3313123[25]), 25,37},
+ {&(_ZTV9GG3313123[32]), 32,37},
+ {&(_ZTV9GG3313123[36]), 36,37},
+ {&(_tg__ZTV5EE331__9GG3313123[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE331__9GG3313123[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE331__9GG3313123[4]), 4,6},
+ {&(_tg__ZTV5FF312__9GG3313123[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF312__9GG3313123[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF312__9GG3313123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3313123[];
+extern VTBL_ENTRY _ZTV9GG3313123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3313123[];
+static VTBL_ENTRY alt_thunk_names949[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33131233barEv,_ZTv0_n20_N9GG33131233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33131233barEv,_ZThn32_N9GG33131233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33131233barEv,_ZTv0_n16_N9GG33131233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33131233barEv,_ZThn24_N9GG33131233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33131233barEv,_ZThn16_N9GG33131233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33131233fooEv,_ZTv0_n12_N9GG33131233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33131233fooEv,_ZThn40_N9GG33131233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33131233fooEv,_ZThn24_N9GG33131233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33131233fooEv,_ZThn16_N9GG33131233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33131233fooEv,_ZTv0_n20_N9GG33131233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33131233fooEv,_ZThn8_N9GG33131233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3313123 = { "GG3313123", // class name
+ bases_GG3313123, 5,
+ &(vtc_GG3313123[0]), // expected_vtbl_contents
+ &(vtt_GG3313123[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3313123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3313123),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3313123),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names949,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3313133 : virtual EE331 , virtual FF313 {
+ int pg;
+ virtual void foo(); // _ZN9GG33131333fooEv
+ virtual void bar(); // _ZN9GG33131333barEv
+ ~GG3313133(); // tgen
+ GG3313133(); // tgen
+};
+//SIG(1 GG3313133) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3313133 ::foo(){vfunc_called(this, "_ZN9GG33131333fooEv");}
+void GG3313133 ::bar(){vfunc_called(this, "_ZN9GG33131333barEv");}
+GG3313133 ::~GG3313133(){ note_dtor("GG3313133", this);} // tgen
+GG3313133 ::GG3313133(){ note_ctor("GG3313133", this);} // tgen
+
+static void Test_GG3313133()
+{
+ extern Class_Descriptor cd_GG3313133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3313133, buf);
+ GG3313133 *dp, &lv = *(dp=new (buf) GG3313133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3313133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3313133)");
+ check_base_class_offset(lv, (AA3*)(EE331*), ABISELECT(32,16), "GG3313133");
+ check_base_class_offset(lv, (AA3*)(FF313*), ABISELECT(32,16), "GG3313133");
+ check_base_class_offset(lv, (BB3*)(EE331*), ABISELECT(48,24), "GG3313133");
+ check_base_class_offset(lv, (EE331*), ABISELECT(16,8), "GG3313133");
+ check_base_class_offset(lv, (BB1*)(FF313*), ABISELECT(80,40), "GG3313133");
+ check_base_class_offset(lv, (FF313*), ABISELECT(64,32), "GG3313133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3313133.pg");
+ test_class_info(&lv, &cd_GG3313133);
+ dp->~GG3313133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3313133(Test_GG3313133, "GG3313133", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3313133C1Ev();
+extern void _ZN9GG3313133D1Ev();
+Name_Map name_map_GG3313133[] = {
+ NSPAIR(_ZN9GG3313133C1Ev),
+ NSPAIR(_ZN9GG3313133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE331;
+extern VTBL_ENTRY _ZTI5EE331[];
+extern VTBL_ENTRY _ZTV5EE331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE331[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF313;
+extern VTBL_ENTRY _ZTI5FF313[];
+extern VTBL_ENTRY _ZTV5FF313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF313[];
+static Base_Class bases_GG3313133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE331, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF313, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3313133[];
+extern void _ZN9GG33131333fooEv();
+extern void _ZN9GG33131333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33131333fooEv,_ZTv0_n20_N9GG33131333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33131333fooEv,_ZThn8_N9GG33131333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33131333fooEv,_ZTv0_n12_N9GG33131333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33131333fooEv,_ZThn16_N9GG33131333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33131333barEv,_ZTv0_n16_N9GG33131333barEv)();
+extern void ABISELECT(_ZThn32_N9GG33131333barEv,_ZThn16_N9GG33131333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33131333fooEv,_ZTv0_n12_N9GG33131333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33131333fooEv,_ZThn24_N9GG33131333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33131333barEv,_ZTv0_n16_N9GG33131333barEv)();
+extern void ABISELECT(_ZThn48_N9GG33131333barEv,_ZThn24_N9GG33131333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33131333fooEv,_ZTv0_n20_N9GG33131333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33131333fooEv,_ZThn32_N9GG33131333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33131333barEv,_ZTv0_n24_N9GG33131333barEv)();
+extern void ABISELECT(_ZThn64_N9GG33131333barEv,_ZThn32_N9GG33131333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33131333fooEv,_ZTv0_n12_N9GG33131333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG33131333fooEv,_ZThn40_N9GG33131333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3313133[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3313133[0]),
+ (VTBL_ENTRY)&_ZN9GG33131333fooEv,
+ (VTBL_ENTRY)&_ZN9GG33131333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3313133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33131333fooEv,_ZTv0_n20_N9GG33131333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3313133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33131333fooEv,_ZTv0_n12_N9GG33131333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33131333barEv,_ZTv0_n16_N9GG33131333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3313133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33131333fooEv,_ZTv0_n12_N9GG33131333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33131333barEv,_ZTv0_n16_N9GG33131333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3313133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33131333fooEv,_ZTv0_n20_N9GG33131333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33131333barEv,_ZTv0_n24_N9GG33131333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3313133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33131333fooEv,_ZTv0_n12_N9GG33131333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3313133[];
+extern void _ZN5EE3313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE331__9GG3313133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&_ZN5EE3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE331__9GG3313133[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE331__9GG3313133[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF3133fooEv();
+extern void _ZN5FF3133barEv();
+static VTBL_ENTRY _tg__ZTV5FF313__9GG3313133[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&_ZN5FF3133fooEv,
+ (VTBL_ENTRY)&_ZN5FF3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF313__9GG3313133[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF313__9GG3313133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+};
+static VTT_ENTRY vtt_GG3313133[] = {
+ {&(_ZTV9GG3313133[7]), 7,39},
+ {&(_ZTV9GG3313133[14]), 14,39},
+ {&(_ZTV9GG3313133[19]), 19,39},
+ {&(_ZTV9GG3313133[25]), 25,39},
+ {&(_ZTV9GG3313133[33]), 33,39},
+ {&(_ZTV9GG3313133[38]), 38,39},
+ {&(_tg__ZTV5EE331__9GG3313133[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE331__9GG3313133[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE331__9GG3313133[4]), 4,6},
+ {&(_tg__ZTV5FF313__9GG3313133[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF313__9GG3313133[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF313__9GG3313133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3313133[];
+extern VTBL_ENTRY _ZTV9GG3313133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3313133[];
+static VTBL_ENTRY alt_thunk_names950[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG33131333barEv,_ZTv0_n24_N9GG33131333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33131333barEv,_ZThn32_N9GG33131333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33131333barEv,_ZTv0_n16_N9GG33131333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33131333barEv,_ZThn24_N9GG33131333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33131333barEv,_ZThn16_N9GG33131333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33131333fooEv,_ZTv0_n12_N9GG33131333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33131333fooEv,_ZThn40_N9GG33131333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33131333fooEv,_ZThn24_N9GG33131333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33131333fooEv,_ZThn16_N9GG33131333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33131333fooEv,_ZTv0_n20_N9GG33131333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33131333fooEv,_ZThn32_N9GG33131333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33131333fooEv,_ZThn8_N9GG33131333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3313133 = { "GG3313133", // class name
+ bases_GG3313133, 5,
+ &(vtc_GG3313133[0]), // expected_vtbl_contents
+ &(vtt_GG3313133[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3313133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3313133),39, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3313133),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names950,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3313213 : virtual EE331 , virtual FF321 {
+ int pg;
+ virtual void foo(); // _ZN9GG33132133fooEv
+ virtual void bar(); // _ZN9GG33132133barEv
+ ~GG3313213(); // tgen
+ GG3313213(); // tgen
+};
+//SIG(1 GG3313213) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3313213 ::foo(){vfunc_called(this, "_ZN9GG33132133fooEv");}
+void GG3313213 ::bar(){vfunc_called(this, "_ZN9GG33132133barEv");}
+GG3313213 ::~GG3313213(){ note_dtor("GG3313213", this);} // tgen
+GG3313213 ::GG3313213(){ note_ctor("GG3313213", this);} // tgen
+
+static void Test_GG3313213()
+{
+ extern Class_Descriptor cd_GG3313213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3313213, buf);
+ GG3313213 *dp, &lv = *(dp=new (buf) GG3313213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3313213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3313213)");
+ check_base_class_offset(lv, (AA3*)(EE331*), ABISELECT(32,16), "GG3313213");
+ check_base_class_offset(lv, (AA3*)(FF321*), ABISELECT(32,16), "GG3313213");
+ check_base_class_offset(lv, (BB3*)(EE331*), ABISELECT(48,24), "GG3313213");
+ check_base_class_offset(lv, (EE331*), ABISELECT(16,8), "GG3313213");
+ check_base_class_offset(lv, (BB2*)(FF321*), ABISELECT(80,40), "GG3313213");
+ check_base_class_offset(lv, (FF321*), ABISELECT(64,32), "GG3313213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3313213.pg");
+ test_class_info(&lv, &cd_GG3313213);
+ dp->~GG3313213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3313213(Test_GG3313213, "GG3313213", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3313213C1Ev();
+extern void _ZN9GG3313213D1Ev();
+Name_Map name_map_GG3313213[] = {
+ NSPAIR(_ZN9GG3313213C1Ev),
+ NSPAIR(_ZN9GG3313213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE331;
+extern VTBL_ENTRY _ZTI5EE331[];
+extern VTBL_ENTRY _ZTV5EE331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE331[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF321;
+extern VTBL_ENTRY _ZTI5FF321[];
+extern VTBL_ENTRY _ZTV5FF321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF321[];
+static Base_Class bases_GG3313213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE331, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF321, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3313213[];
+extern void _ZN9GG33132133fooEv();
+extern void _ZN9GG33132133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33132133fooEv,_ZTv0_n20_N9GG33132133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33132133fooEv,_ZThn8_N9GG33132133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33132133fooEv,_ZTv0_n12_N9GG33132133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33132133fooEv,_ZThn16_N9GG33132133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33132133barEv,_ZTv0_n16_N9GG33132133barEv)();
+extern void ABISELECT(_ZThn32_N9GG33132133barEv,_ZThn16_N9GG33132133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33132133fooEv,_ZTv0_n12_N9GG33132133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33132133fooEv,_ZThn24_N9GG33132133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33132133barEv,_ZTv0_n16_N9GG33132133barEv)();
+extern void ABISELECT(_ZThn48_N9GG33132133barEv,_ZThn24_N9GG33132133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33132133fooEv,_ZTv0_n20_N9GG33132133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33132133fooEv,_ZThn32_N9GG33132133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33132133barEv,_ZTv0_n12_N9GG33132133barEv)();
+extern void ABISELECT(_ZThn80_N9GG33132133barEv,_ZThn40_N9GG33132133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3313213[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3313213[0]),
+ (VTBL_ENTRY)&_ZN9GG33132133fooEv,
+ (VTBL_ENTRY)&_ZN9GG33132133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3313213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33132133fooEv,_ZTv0_n20_N9GG33132133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3313213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33132133fooEv,_ZTv0_n12_N9GG33132133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33132133barEv,_ZTv0_n16_N9GG33132133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3313213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33132133fooEv,_ZTv0_n12_N9GG33132133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33132133barEv,_ZTv0_n16_N9GG33132133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3313213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33132133fooEv,_ZTv0_n20_N9GG33132133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3313213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33132133barEv,_ZTv0_n12_N9GG33132133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3313213[];
+extern void _ZN5EE3313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE331__9GG3313213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&_ZN5EE3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE331__9GG3313213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE331__9GG3313213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF3213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF321__9GG3313213[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN5FF3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv)();
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF321__9GG3313213[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF321__9GG3313213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG3313213[] = {
+ {&(_ZTV9GG3313213[7]), 7,37},
+ {&(_ZTV9GG3313213[14]), 14,37},
+ {&(_ZTV9GG3313213[19]), 19,37},
+ {&(_ZTV9GG3313213[25]), 25,37},
+ {&(_ZTV9GG3313213[32]), 32,37},
+ {&(_ZTV9GG3313213[36]), 36,37},
+ {&(_tg__ZTV5EE331__9GG3313213[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE331__9GG3313213[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE331__9GG3313213[4]), 4,6},
+ {&(_tg__ZTV5FF321__9GG3313213[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF321__9GG3313213[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF321__9GG3313213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3313213[];
+extern VTBL_ENTRY _ZTV9GG3313213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3313213[];
+static VTBL_ENTRY alt_thunk_names951[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33132133barEv,_ZTv0_n12_N9GG33132133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33132133barEv,_ZThn40_N9GG33132133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33132133barEv,_ZTv0_n16_N9GG33132133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33132133barEv,_ZThn24_N9GG33132133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33132133barEv,_ZThn16_N9GG33132133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33132133fooEv,_ZTv0_n12_N9GG33132133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33132133fooEv,_ZThn24_N9GG33132133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33132133fooEv,_ZThn16_N9GG33132133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33132133fooEv,_ZTv0_n20_N9GG33132133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33132133fooEv,_ZThn32_N9GG33132133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33132133fooEv,_ZThn8_N9GG33132133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3313213 = { "GG3313213", // class name
+ bases_GG3313213, 5,
+ &(vtc_GG3313213[0]), // expected_vtbl_contents
+ &(vtt_GG3313213[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3313213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3313213),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3313213),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names951,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3313223 : virtual EE331 , virtual FF322 {
+ int pg;
+ virtual void foo(); // _ZN9GG33132233fooEv
+ virtual void bar(); // _ZN9GG33132233barEv
+ ~GG3313223(); // tgen
+ GG3313223(); // tgen
+};
+//SIG(1 GG3313223) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3313223 ::foo(){vfunc_called(this, "_ZN9GG33132233fooEv");}
+void GG3313223 ::bar(){vfunc_called(this, "_ZN9GG33132233barEv");}
+GG3313223 ::~GG3313223(){ note_dtor("GG3313223", this);} // tgen
+GG3313223 ::GG3313223(){ note_ctor("GG3313223", this);} // tgen
+
+static void Test_GG3313223()
+{
+ extern Class_Descriptor cd_GG3313223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3313223, buf);
+ GG3313223 *dp, &lv = *(dp=new (buf) GG3313223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3313223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3313223)");
+ check_base_class_offset(lv, (AA3*)(EE331*), ABISELECT(32,16), "GG3313223");
+ check_base_class_offset(lv, (AA3*)(FF322*), ABISELECT(32,16), "GG3313223");
+ check_base_class_offset(lv, (BB3*)(EE331*), ABISELECT(48,24), "GG3313223");
+ check_base_class_offset(lv, (EE331*), ABISELECT(16,8), "GG3313223");
+ check_base_class_offset(lv, (BB2*)(FF322*), ABISELECT(80,40), "GG3313223");
+ check_base_class_offset(lv, (FF322*), ABISELECT(64,32), "GG3313223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3313223.pg");
+ test_class_info(&lv, &cd_GG3313223);
+ dp->~GG3313223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3313223(Test_GG3313223, "GG3313223", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3313223C1Ev();
+extern void _ZN9GG3313223D1Ev();
+Name_Map name_map_GG3313223[] = {
+ NSPAIR(_ZN9GG3313223C1Ev),
+ NSPAIR(_ZN9GG3313223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE331;
+extern VTBL_ENTRY _ZTI5EE331[];
+extern VTBL_ENTRY _ZTV5EE331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE331[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF322;
+extern VTBL_ENTRY _ZTI5FF322[];
+extern VTBL_ENTRY _ZTV5FF322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF322[];
+static Base_Class bases_GG3313223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE331, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF322, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3313223[];
+extern void _ZN9GG33132233fooEv();
+extern void _ZN9GG33132233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33132233fooEv,_ZTv0_n20_N9GG33132233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33132233fooEv,_ZThn8_N9GG33132233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33132233fooEv,_ZTv0_n12_N9GG33132233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33132233fooEv,_ZThn16_N9GG33132233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33132233barEv,_ZTv0_n16_N9GG33132233barEv)();
+extern void ABISELECT(_ZThn32_N9GG33132233barEv,_ZThn16_N9GG33132233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33132233fooEv,_ZTv0_n12_N9GG33132233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33132233fooEv,_ZThn24_N9GG33132233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33132233barEv,_ZTv0_n16_N9GG33132233barEv)();
+extern void ABISELECT(_ZThn48_N9GG33132233barEv,_ZThn24_N9GG33132233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33132233barEv,_ZTv0_n20_N9GG33132233barEv)();
+extern void ABISELECT(_ZThn64_N9GG33132233barEv,_ZThn32_N9GG33132233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33132233barEv,_ZTv0_n12_N9GG33132233barEv)();
+extern void ABISELECT(_ZThn80_N9GG33132233barEv,_ZThn40_N9GG33132233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3313223[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3313223[0]),
+ (VTBL_ENTRY)&_ZN9GG33132233fooEv,
+ (VTBL_ENTRY)&_ZN9GG33132233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3313223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33132233fooEv,_ZTv0_n20_N9GG33132233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3313223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33132233fooEv,_ZTv0_n12_N9GG33132233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33132233barEv,_ZTv0_n16_N9GG33132233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3313223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33132233fooEv,_ZTv0_n12_N9GG33132233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33132233barEv,_ZTv0_n16_N9GG33132233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3313223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33132233barEv,_ZTv0_n20_N9GG33132233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3313223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33132233barEv,_ZTv0_n12_N9GG33132233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3313223[];
+extern void _ZN5EE3313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE331__9GG3313223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&_ZN5EE3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE331__9GG3313223[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE331__9GG3313223[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF3223barEv();
+static VTBL_ENTRY _tg__ZTV5FF322__9GG3313223[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN5FF3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF322__9GG3313223[] = {
+ ABISELECT(32,16),
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv)();
+extern void ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF322__9GG3313223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv),
+};
+static VTT_ENTRY vtt_GG3313223[] = {
+ {&(_ZTV9GG3313223[7]), 7,37},
+ {&(_ZTV9GG3313223[14]), 14,37},
+ {&(_ZTV9GG3313223[19]), 19,37},
+ {&(_ZTV9GG3313223[25]), 25,37},
+ {&(_ZTV9GG3313223[32]), 32,37},
+ {&(_ZTV9GG3313223[36]), 36,37},
+ {&(_tg__ZTV5EE331__9GG3313223[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE331__9GG3313223[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE331__9GG3313223[4]), 4,6},
+ {&(_tg__ZTV5FF322__9GG3313223[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF322__9GG3313223[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF322__9GG3313223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3313223[];
+extern VTBL_ENTRY _ZTV9GG3313223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3313223[];
+static VTBL_ENTRY alt_thunk_names952[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33132233barEv,_ZTv0_n12_N9GG33132233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33132233barEv,_ZThn40_N9GG33132233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33132233barEv,_ZTv0_n20_N9GG33132233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33132233barEv,_ZThn32_N9GG33132233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33132233barEv,_ZTv0_n16_N9GG33132233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33132233barEv,_ZThn24_N9GG33132233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33132233barEv,_ZThn16_N9GG33132233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33132233fooEv,_ZTv0_n12_N9GG33132233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33132233fooEv,_ZThn24_N9GG33132233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33132233fooEv,_ZThn16_N9GG33132233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33132233fooEv,_ZTv0_n20_N9GG33132233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33132233fooEv,_ZThn8_N9GG33132233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3313223 = { "GG3313223", // class name
+ bases_GG3313223, 5,
+ &(vtc_GG3313223[0]), // expected_vtbl_contents
+ &(vtt_GG3313223[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3313223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3313223),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3313223),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names952,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3313233 : virtual EE331 , virtual FF323 {
+ int pg;
+ virtual void foo(); // _ZN9GG33132333fooEv
+ virtual void bar(); // _ZN9GG33132333barEv
+ ~GG3313233(); // tgen
+ GG3313233(); // tgen
+};
+//SIG(1 GG3313233) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3313233 ::foo(){vfunc_called(this, "_ZN9GG33132333fooEv");}
+void GG3313233 ::bar(){vfunc_called(this, "_ZN9GG33132333barEv");}
+GG3313233 ::~GG3313233(){ note_dtor("GG3313233", this);} // tgen
+GG3313233 ::GG3313233(){ note_ctor("GG3313233", this);} // tgen
+
+static void Test_GG3313233()
+{
+ extern Class_Descriptor cd_GG3313233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3313233, buf);
+ GG3313233 *dp, &lv = *(dp=new (buf) GG3313233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3313233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3313233)");
+ check_base_class_offset(lv, (AA3*)(EE331*), ABISELECT(32,16), "GG3313233");
+ check_base_class_offset(lv, (AA3*)(FF323*), ABISELECT(32,16), "GG3313233");
+ check_base_class_offset(lv, (BB3*)(EE331*), ABISELECT(48,24), "GG3313233");
+ check_base_class_offset(lv, (EE331*), ABISELECT(16,8), "GG3313233");
+ check_base_class_offset(lv, (BB2*)(FF323*), ABISELECT(80,40), "GG3313233");
+ check_base_class_offset(lv, (FF323*), ABISELECT(64,32), "GG3313233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3313233.pg");
+ test_class_info(&lv, &cd_GG3313233);
+ dp->~GG3313233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3313233(Test_GG3313233, "GG3313233", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3313233C1Ev();
+extern void _ZN9GG3313233D1Ev();
+Name_Map name_map_GG3313233[] = {
+ NSPAIR(_ZN9GG3313233C1Ev),
+ NSPAIR(_ZN9GG3313233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE331;
+extern VTBL_ENTRY _ZTI5EE331[];
+extern VTBL_ENTRY _ZTV5EE331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE331[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF323;
+extern VTBL_ENTRY _ZTI5FF323[];
+extern VTBL_ENTRY _ZTV5FF323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF323[];
+static Base_Class bases_GG3313233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE331, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF323, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3313233[];
+extern void _ZN9GG33132333fooEv();
+extern void _ZN9GG33132333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33132333fooEv,_ZTv0_n20_N9GG33132333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33132333fooEv,_ZThn8_N9GG33132333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33132333fooEv,_ZTv0_n12_N9GG33132333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33132333fooEv,_ZThn16_N9GG33132333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33132333barEv,_ZTv0_n16_N9GG33132333barEv)();
+extern void ABISELECT(_ZThn32_N9GG33132333barEv,_ZThn16_N9GG33132333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33132333fooEv,_ZTv0_n12_N9GG33132333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33132333fooEv,_ZThn24_N9GG33132333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33132333barEv,_ZTv0_n16_N9GG33132333barEv)();
+extern void ABISELECT(_ZThn48_N9GG33132333barEv,_ZThn24_N9GG33132333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33132333fooEv,_ZTv0_n20_N9GG33132333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33132333fooEv,_ZThn32_N9GG33132333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33132333barEv,_ZTv0_n24_N9GG33132333barEv)();
+extern void ABISELECT(_ZThn64_N9GG33132333barEv,_ZThn32_N9GG33132333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33132333barEv,_ZTv0_n12_N9GG33132333barEv)();
+extern void ABISELECT(_ZThn80_N9GG33132333barEv,_ZThn40_N9GG33132333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3313233[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3313233[0]),
+ (VTBL_ENTRY)&_ZN9GG33132333fooEv,
+ (VTBL_ENTRY)&_ZN9GG33132333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3313233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33132333fooEv,_ZTv0_n20_N9GG33132333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3313233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33132333fooEv,_ZTv0_n12_N9GG33132333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33132333barEv,_ZTv0_n16_N9GG33132333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3313233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33132333fooEv,_ZTv0_n12_N9GG33132333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33132333barEv,_ZTv0_n16_N9GG33132333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3313233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33132333fooEv,_ZTv0_n20_N9GG33132333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33132333barEv,_ZTv0_n24_N9GG33132333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3313233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33132333barEv,_ZTv0_n12_N9GG33132333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3313233[];
+extern void _ZN5EE3313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE331__9GG3313233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&_ZN5EE3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE331__9GG3313233[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE331__9GG3313233[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF3233fooEv();
+extern void _ZN5FF3233barEv();
+static VTBL_ENTRY _tg__ZTV5FF323__9GG3313233[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&_ZN5FF3233fooEv,
+ (VTBL_ENTRY)&_ZN5FF3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF323__9GG3313233[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv)();
+extern void ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF323__9GG3313233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv),
+};
+static VTT_ENTRY vtt_GG3313233[] = {
+ {&(_ZTV9GG3313233[7]), 7,39},
+ {&(_ZTV9GG3313233[14]), 14,39},
+ {&(_ZTV9GG3313233[19]), 19,39},
+ {&(_ZTV9GG3313233[25]), 25,39},
+ {&(_ZTV9GG3313233[33]), 33,39},
+ {&(_ZTV9GG3313233[38]), 38,39},
+ {&(_tg__ZTV5EE331__9GG3313233[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE331__9GG3313233[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE331__9GG3313233[4]), 4,6},
+ {&(_tg__ZTV5FF323__9GG3313233[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF323__9GG3313233[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF323__9GG3313233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3313233[];
+extern VTBL_ENTRY _ZTV9GG3313233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3313233[];
+static VTBL_ENTRY alt_thunk_names953[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33132333barEv,_ZTv0_n12_N9GG33132333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33132333barEv,_ZThn40_N9GG33132333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG33132333barEv,_ZTv0_n24_N9GG33132333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33132333barEv,_ZThn32_N9GG33132333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33132333barEv,_ZTv0_n16_N9GG33132333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33132333barEv,_ZThn24_N9GG33132333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33132333barEv,_ZThn16_N9GG33132333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33132333fooEv,_ZTv0_n12_N9GG33132333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33132333fooEv,_ZThn24_N9GG33132333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33132333fooEv,_ZThn16_N9GG33132333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33132333fooEv,_ZTv0_n20_N9GG33132333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33132333fooEv,_ZThn32_N9GG33132333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33132333fooEv,_ZThn8_N9GG33132333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3313233 = { "GG3313233", // class name
+ bases_GG3313233, 5,
+ &(vtc_GG3313233[0]), // expected_vtbl_contents
+ &(vtt_GG3313233[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3313233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3313233),39, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3313233),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names953,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3313313 : virtual EE331 , virtual FF331 {
+ int pg;
+ virtual void foo(); // _ZN9GG33133133fooEv
+ virtual void bar(); // _ZN9GG33133133barEv
+ ~GG3313313(); // tgen
+ GG3313313(); // tgen
+};
+//SIG(1 GG3313313) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC3 VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG3313313 ::foo(){vfunc_called(this, "_ZN9GG33133133fooEv");}
+void GG3313313 ::bar(){vfunc_called(this, "_ZN9GG33133133barEv");}
+GG3313313 ::~GG3313313(){ note_dtor("GG3313313", this);} // tgen
+GG3313313 ::GG3313313(){ note_ctor("GG3313313", this);} // tgen
+
+static void Test_GG3313313()
+{
+ extern Class_Descriptor cd_GG3313313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG3313313, buf);
+ GG3313313 *dp, &lv = *(dp=new (buf) GG3313313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG3313313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3313313)");
+ check_base_class_offset(lv, (AA3*)(EE331*), ABISELECT(32,16), "GG3313313");
+ check_base_class_offset(lv, (AA3*)(FF331*), ABISELECT(32,16), "GG3313313");
+ check_base_class_offset(lv, (BB3*)(EE331*), ABISELECT(48,24), "GG3313313");
+ check_base_class_offset(lv, (BB3*)(FF331*), ABISELECT(48,24), "GG3313313");
+ check_base_class_offset(lv, (EE331*), ABISELECT(16,8), "GG3313313");
+ check_base_class_offset(lv, (FF331*), ABISELECT(64,32), "GG3313313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3313313.pg");
+ test_class_info(&lv, &cd_GG3313313);
+ dp->~GG3313313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3313313(Test_GG3313313, "GG3313313", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG3313313C1Ev();
+extern void _ZN9GG3313313D1Ev();
+Name_Map name_map_GG3313313[] = {
+ NSPAIR(_ZN9GG3313313C1Ev),
+ NSPAIR(_ZN9GG3313313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE331;
+extern VTBL_ENTRY _ZTI5EE331[];
+extern VTBL_ENTRY _ZTV5EE331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE331[];
+extern Class_Descriptor cd_FF331;
+extern VTBL_ENTRY _ZTI5FF331[];
+extern VTBL_ENTRY _ZTV5FF331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF331[];
+static Base_Class bases_GG3313313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE331, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF331, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3313313[];
+extern void _ZN9GG33133133fooEv();
+extern void _ZN9GG33133133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33133133fooEv,_ZTv0_n20_N9GG33133133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33133133fooEv,_ZThn8_N9GG33133133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33133133fooEv,_ZTv0_n12_N9GG33133133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33133133fooEv,_ZThn16_N9GG33133133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33133133barEv,_ZTv0_n16_N9GG33133133barEv)();
+extern void ABISELECT(_ZThn32_N9GG33133133barEv,_ZThn16_N9GG33133133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33133133fooEv,_ZTv0_n12_N9GG33133133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33133133fooEv,_ZThn24_N9GG33133133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33133133barEv,_ZTv0_n16_N9GG33133133barEv)();
+extern void ABISELECT(_ZThn48_N9GG33133133barEv,_ZThn24_N9GG33133133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33133133fooEv,_ZTv0_n20_N9GG33133133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33133133fooEv,_ZThn32_N9GG33133133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3313313[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3313313[0]),
+ (VTBL_ENTRY)&_ZN9GG33133133fooEv,
+ (VTBL_ENTRY)&_ZN9GG33133133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3313313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33133133fooEv,_ZTv0_n20_N9GG33133133fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3313313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33133133fooEv,_ZTv0_n12_N9GG33133133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33133133barEv,_ZTv0_n16_N9GG33133133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3313313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33133133fooEv,_ZTv0_n12_N9GG33133133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33133133barEv,_ZTv0_n16_N9GG33133133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3313313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33133133fooEv,_ZTv0_n20_N9GG33133133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3313313[];
+extern void _ZN5EE3313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE331__9GG3313313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&_ZN5EE3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE331__9GG3313313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE331__9GG3313313[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF3313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF331__9GG3313313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&_ZN5FF3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF331__9GG3313313[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF331__9GG3313313[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG3313313[] = {
+ {&(_ZTV9GG3313313[6]), 6,32},
+ {&(_ZTV9GG3313313[13]), 13,32},
+ {&(_ZTV9GG3313313[18]), 18,32},
+ {&(_ZTV9GG3313313[24]), 24,32},
+ {&(_ZTV9GG3313313[31]), 31,32},
+ {&(_tg__ZTV5EE331__9GG3313313[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE331__9GG3313313[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE331__9GG3313313[4]), 4,6},
+ {&(_tg__ZTV5FF331__9GG3313313[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF331__9GG3313313[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF331__9GG3313313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3313313[];
+extern VTBL_ENTRY _ZTV9GG3313313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3313313[];
+static VTBL_ENTRY alt_thunk_names954[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33133133barEv,_ZTv0_n16_N9GG33133133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33133133barEv,_ZThn24_N9GG33133133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33133133barEv,_ZThn16_N9GG33133133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33133133fooEv,_ZTv0_n12_N9GG33133133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33133133fooEv,_ZThn24_N9GG33133133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33133133fooEv,_ZThn16_N9GG33133133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33133133fooEv,_ZTv0_n20_N9GG33133133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33133133fooEv,_ZThn32_N9GG33133133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33133133fooEv,_ZThn8_N9GG33133133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3313313 = { "GG3313313", // class name
+ bases_GG3313313, 4,
+ &(vtc_GG3313313[0]), // expected_vtbl_contents
+ &(vtt_GG3313313[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG3313313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3313313),32, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3313313),11, //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 GG3313323 : virtual EE331 , virtual FF332 {
+ int pg;
+ virtual void foo(); // _ZN9GG33133233fooEv
+ virtual void bar(); // _ZN9GG33133233barEv
+ ~GG3313323(); // tgen
+ GG3313323(); // tgen
+};
+//SIG(1 GG3313323) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC3 VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG3313323 ::foo(){vfunc_called(this, "_ZN9GG33133233fooEv");}
+void GG3313323 ::bar(){vfunc_called(this, "_ZN9GG33133233barEv");}
+GG3313323 ::~GG3313323(){ note_dtor("GG3313323", this);} // tgen
+GG3313323 ::GG3313323(){ note_ctor("GG3313323", this);} // tgen
+
+static void Test_GG3313323()
+{
+ extern Class_Descriptor cd_GG3313323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG3313323, buf);
+ GG3313323 *dp, &lv = *(dp=new (buf) GG3313323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG3313323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3313323)");
+ check_base_class_offset(lv, (AA3*)(EE331*), ABISELECT(32,16), "GG3313323");
+ check_base_class_offset(lv, (AA3*)(FF332*), ABISELECT(32,16), "GG3313323");
+ check_base_class_offset(lv, (BB3*)(EE331*), ABISELECT(48,24), "GG3313323");
+ check_base_class_offset(lv, (BB3*)(FF332*), ABISELECT(48,24), "GG3313323");
+ check_base_class_offset(lv, (EE331*), ABISELECT(16,8), "GG3313323");
+ check_base_class_offset(lv, (FF332*), ABISELECT(64,32), "GG3313323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3313323.pg");
+ test_class_info(&lv, &cd_GG3313323);
+ dp->~GG3313323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3313323(Test_GG3313323, "GG3313323", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG3313323C1Ev();
+extern void _ZN9GG3313323D1Ev();
+Name_Map name_map_GG3313323[] = {
+ NSPAIR(_ZN9GG3313323C1Ev),
+ NSPAIR(_ZN9GG3313323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE331;
+extern VTBL_ENTRY _ZTI5EE331[];
+extern VTBL_ENTRY _ZTV5EE331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE331[];
+extern Class_Descriptor cd_FF332;
+extern VTBL_ENTRY _ZTI5FF332[];
+extern VTBL_ENTRY _ZTV5FF332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF332[];
+static Base_Class bases_GG3313323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE331, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF332, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3313323[];
+extern void _ZN9GG33133233fooEv();
+extern void _ZN9GG33133233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33133233fooEv,_ZTv0_n20_N9GG33133233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33133233fooEv,_ZThn8_N9GG33133233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33133233fooEv,_ZTv0_n12_N9GG33133233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33133233fooEv,_ZThn16_N9GG33133233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33133233barEv,_ZTv0_n16_N9GG33133233barEv)();
+extern void ABISELECT(_ZThn32_N9GG33133233barEv,_ZThn16_N9GG33133233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33133233fooEv,_ZTv0_n12_N9GG33133233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33133233fooEv,_ZThn24_N9GG33133233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33133233barEv,_ZTv0_n16_N9GG33133233barEv)();
+extern void ABISELECT(_ZThn48_N9GG33133233barEv,_ZThn24_N9GG33133233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33133233barEv,_ZTv0_n20_N9GG33133233barEv)();
+extern void ABISELECT(_ZThn64_N9GG33133233barEv,_ZThn32_N9GG33133233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3313323[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3313323[0]),
+ (VTBL_ENTRY)&_ZN9GG33133233fooEv,
+ (VTBL_ENTRY)&_ZN9GG33133233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3313323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33133233fooEv,_ZTv0_n20_N9GG33133233fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3313323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33133233fooEv,_ZTv0_n12_N9GG33133233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33133233barEv,_ZTv0_n16_N9GG33133233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3313323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33133233fooEv,_ZTv0_n12_N9GG33133233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33133233barEv,_ZTv0_n16_N9GG33133233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3313323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33133233barEv,_ZTv0_n20_N9GG33133233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3313323[];
+extern void _ZN5EE3313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE331__9GG3313323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&_ZN5EE3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE331__9GG3313323[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE331__9GG3313323[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF3323barEv();
+static VTBL_ENTRY _tg__ZTV5FF332__9GG3313323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN5FF3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF332__9GG3313323[] = {
+ ABISELECT(32,16),
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF332__9GG3313323[] = {
+ ABISELECT(16,8),
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+static VTT_ENTRY vtt_GG3313323[] = {
+ {&(_ZTV9GG3313323[6]), 6,32},
+ {&(_ZTV9GG3313323[13]), 13,32},
+ {&(_ZTV9GG3313323[18]), 18,32},
+ {&(_ZTV9GG3313323[24]), 24,32},
+ {&(_ZTV9GG3313323[31]), 31,32},
+ {&(_tg__ZTV5EE331__9GG3313323[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE331__9GG3313323[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE331__9GG3313323[4]), 4,6},
+ {&(_tg__ZTV5FF332__9GG3313323[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF332__9GG3313323[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF332__9GG3313323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3313323[];
+extern VTBL_ENTRY _ZTV9GG3313323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3313323[];
+static VTBL_ENTRY alt_thunk_names955[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33133233barEv,_ZTv0_n20_N9GG33133233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33133233barEv,_ZThn32_N9GG33133233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33133233barEv,_ZTv0_n16_N9GG33133233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33133233barEv,_ZThn24_N9GG33133233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33133233barEv,_ZThn16_N9GG33133233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33133233fooEv,_ZTv0_n12_N9GG33133233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33133233fooEv,_ZThn24_N9GG33133233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33133233fooEv,_ZThn16_N9GG33133233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33133233fooEv,_ZTv0_n20_N9GG33133233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33133233fooEv,_ZThn8_N9GG33133233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3313323 = { "GG3313323", // class name
+ bases_GG3313323, 4,
+ &(vtc_GG3313323[0]), // expected_vtbl_contents
+ &(vtt_GG3313323[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG3313323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3313323),32, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3313323),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names955,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3313333 : virtual EE331 , virtual FF333 {
+ int pg;
+ virtual void foo(); // _ZN9GG33133333fooEv
+ virtual void bar(); // _ZN9GG33133333barEv
+ ~GG3313333(); // tgen
+ GG3313333(); // tgen
+};
+//SIG(1 GG3313333) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 Fi} VBC5{ VBC3 VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3313333 ::foo(){vfunc_called(this, "_ZN9GG33133333fooEv");}
+void GG3313333 ::bar(){vfunc_called(this, "_ZN9GG33133333barEv");}
+GG3313333 ::~GG3313333(){ note_dtor("GG3313333", this);} // tgen
+GG3313333 ::GG3313333(){ note_ctor("GG3313333", this);} // tgen
+
+static void Test_GG3313333()
+{
+ extern Class_Descriptor cd_GG3313333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG3313333, buf);
+ GG3313333 *dp, &lv = *(dp=new (buf) GG3313333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG3313333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3313333)");
+ check_base_class_offset(lv, (AA3*)(EE331*), ABISELECT(32,16), "GG3313333");
+ check_base_class_offset(lv, (AA3*)(FF333*), ABISELECT(32,16), "GG3313333");
+ check_base_class_offset(lv, (BB3*)(EE331*), ABISELECT(48,24), "GG3313333");
+ check_base_class_offset(lv, (BB3*)(FF333*), ABISELECT(48,24), "GG3313333");
+ check_base_class_offset(lv, (EE331*), ABISELECT(16,8), "GG3313333");
+ check_base_class_offset(lv, (FF333*), ABISELECT(64,32), "GG3313333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3313333.pg");
+ test_class_info(&lv, &cd_GG3313333);
+ dp->~GG3313333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3313333(Test_GG3313333, "GG3313333", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG3313333C1Ev();
+extern void _ZN9GG3313333D1Ev();
+Name_Map name_map_GG3313333[] = {
+ NSPAIR(_ZN9GG3313333C1Ev),
+ NSPAIR(_ZN9GG3313333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE331;
+extern VTBL_ENTRY _ZTI5EE331[];
+extern VTBL_ENTRY _ZTV5EE331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE331[];
+extern Class_Descriptor cd_FF333;
+extern VTBL_ENTRY _ZTI5FF333[];
+extern VTBL_ENTRY _ZTV5FF333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF333[];
+static Base_Class bases_GG3313333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE331, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF333, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3313333[];
+extern void _ZN9GG33133333fooEv();
+extern void _ZN9GG33133333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33133333fooEv,_ZTv0_n20_N9GG33133333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33133333fooEv,_ZThn8_N9GG33133333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33133333fooEv,_ZTv0_n12_N9GG33133333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33133333fooEv,_ZThn16_N9GG33133333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33133333barEv,_ZTv0_n16_N9GG33133333barEv)();
+extern void ABISELECT(_ZThn32_N9GG33133333barEv,_ZThn16_N9GG33133333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33133333fooEv,_ZTv0_n12_N9GG33133333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33133333fooEv,_ZThn24_N9GG33133333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33133333barEv,_ZTv0_n16_N9GG33133333barEv)();
+extern void ABISELECT(_ZThn48_N9GG33133333barEv,_ZThn24_N9GG33133333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33133333fooEv,_ZTv0_n20_N9GG33133333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33133333fooEv,_ZThn32_N9GG33133333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33133333barEv,_ZTv0_n24_N9GG33133333barEv)();
+extern void ABISELECT(_ZThn64_N9GG33133333barEv,_ZThn32_N9GG33133333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3313333[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3313333[0]),
+ (VTBL_ENTRY)&_ZN9GG33133333fooEv,
+ (VTBL_ENTRY)&_ZN9GG33133333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3313333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33133333fooEv,_ZTv0_n20_N9GG33133333fooEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3313333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33133333fooEv,_ZTv0_n12_N9GG33133333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33133333barEv,_ZTv0_n16_N9GG33133333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3313333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33133333fooEv,_ZTv0_n12_N9GG33133333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33133333barEv,_ZTv0_n16_N9GG33133333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3313333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33133333fooEv,_ZTv0_n20_N9GG33133333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33133333barEv,_ZTv0_n24_N9GG33133333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3313333[];
+extern void _ZN5EE3313fooEv();
+static VTBL_ENTRY _tg__ZTV5EE331__9GG3313333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&_ZN5EE3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5EE331__9GG3313333[] = {
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv)() __attribute__((weak));
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5EE331__9GG3313333[] = {
+ 0,
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+extern void _ZN5FF3333fooEv();
+extern void _ZN5FF3333barEv();
+static VTBL_ENTRY _tg__ZTV5FF333__9GG3313333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&_ZN5FF3333fooEv,
+ (VTBL_ENTRY)&_ZN5FF3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF333__9GG3313333[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF333__9GG3313333[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+static VTT_ENTRY vtt_GG3313333[] = {
+ {&(_ZTV9GG3313333[6]), 6,34},
+ {&(_ZTV9GG3313333[13]), 13,34},
+ {&(_ZTV9GG3313333[18]), 18,34},
+ {&(_ZTV9GG3313333[24]), 24,34},
+ {&(_ZTV9GG3313333[32]), 32,34},
+ {&(_tg__ZTV5EE331__9GG3313333[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE331__9GG3313333[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE331__9GG3313333[4]), 4,6},
+ {&(_tg__ZTV5FF333__9GG3313333[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF333__9GG3313333[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF333__9GG3313333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3313333[];
+extern VTBL_ENTRY _ZTV9GG3313333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3313333[];
+static VTBL_ENTRY alt_thunk_names956[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3313fooEv,_ZTv0_n12_N5EE3313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3313fooEv,_ZThn16_N5EE3313fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3313fooEv,_ZThn8_N5EE3313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG33133333barEv,_ZTv0_n24_N9GG33133333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33133333barEv,_ZThn32_N9GG33133333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33133333barEv,_ZTv0_n16_N9GG33133333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33133333barEv,_ZThn24_N9GG33133333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33133333barEv,_ZThn16_N9GG33133333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33133333fooEv,_ZTv0_n12_N9GG33133333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33133333fooEv,_ZThn24_N9GG33133333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33133333fooEv,_ZThn16_N9GG33133333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33133333fooEv,_ZTv0_n20_N9GG33133333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33133333fooEv,_ZThn32_N9GG33133333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33133333fooEv,_ZThn8_N9GG33133333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3313333 = { "GG3313333", // class name
+ bases_GG3313333, 4,
+ &(vtc_GG3313333[0]), // expected_vtbl_contents
+ &(vtt_GG3313333[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG3313333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3313333),34, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3313333),11, //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 GG3321111 : virtual EE332 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG33211113fooEv
+ ~GG3321111(); // tgen
+ GG3321111(); // tgen
+};
+//SIG(1 GG3321111) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+void GG3321111 ::foo(){vfunc_called(this, "_ZN9GG33211113fooEv");}
+GG3321111 ::~GG3321111(){ note_dtor("GG3321111", this);} // tgen
+GG3321111 ::GG3321111(){ note_ctor("GG3321111", this);} // tgen
+
+static void Test_GG3321111()
+{
+ extern Class_Descriptor cd_GG3321111;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3321111, buf);
+ GG3321111 *dp, &lv = *(dp=new (buf) GG3321111());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3321111)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3321111)");
+ check_base_class_offset(lv, (AA3*)(EE332*), ABISELECT(32,16), "GG3321111");
+ check_base_class_offset(lv, (BB3*)(EE332*), ABISELECT(48,24), "GG3321111");
+ check_base_class_offset(lv, (EE332*), ABISELECT(16,8), "GG3321111");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(80,40), "GG3321111");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(96,48), "GG3321111");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG3321111");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3321111.pg");
+ test_class_info(&lv, &cd_GG3321111);
+ dp->~GG3321111();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3321111(Test_GG3321111, "GG3321111", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3321111C1Ev();
+extern void _ZN9GG3321111D1Ev();
+Name_Map name_map_GG3321111[] = {
+ NSPAIR(_ZN9GG3321111C1Ev),
+ NSPAIR(_ZN9GG3321111D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE332;
+extern VTBL_ENTRY _ZTI5EE332[];
+extern VTBL_ENTRY _ZTV5EE332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE332[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG3321111[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE332, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 37, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3321111[];
+extern void _ZN9GG33211113fooEv();
+extern void _ZN5EE3323barEv();
+extern void ABISELECT(_ZTv0_n24_N9GG33211113fooEv,_ZTv0_n12_N9GG33211113fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33211113fooEv,_ZThn16_N9GG33211113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33211113fooEv,_ZTv0_n12_N9GG33211113fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33211113fooEv,_ZThn24_N9GG33211113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33211113fooEv,_ZTv0_n20_N9GG33211113fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33211113fooEv,_ZThn32_N9GG33211113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33211113fooEv,_ZTv0_n12_N9GG33211113fooEv)();
+extern void ABISELECT(_ZThn80_N9GG33211113fooEv,_ZThn40_N9GG33211113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33211113fooEv,_ZTv0_n12_N9GG33211113fooEv)();
+extern void ABISELECT(_ZThn96_N9GG33211113fooEv,_ZThn48_N9GG33211113fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3321111[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3321111[0]),
+ (VTBL_ENTRY)&_ZN9GG33211113fooEv,
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3321111[0]),
+ (VTBL_ENTRY)&_ZN5EE3323barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3321111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33211113fooEv,_ZTv0_n12_N9GG33211113fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3321111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33211113fooEv,_ZTv0_n12_N9GG33211113fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3321111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33211113fooEv,_ZTv0_n20_N9GG33211113fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3321111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33211113fooEv,_ZTv0_n12_N9GG33211113fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3321111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33211113fooEv,_ZTv0_n12_N9GG33211113fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3321111[];
+extern void _ZN5EE3323barEv();
+static VTBL_ENTRY _tg__ZTV5EE332__9GG3321111[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN5EE3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE332__9GG3321111[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE332__9GG3321111[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG3321111[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG3321111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG3321111[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG3321111[] = {
+ {&(_ZTV9GG3321111[8]), 8,41},
+ {&(_ZTV9GG3321111[14]), 14,41},
+ {&(_ZTV9GG3321111[19]), 19,41},
+ {&(_ZTV9GG3321111[25]), 25,41},
+ {&(_ZTV9GG3321111[32]), 32,41},
+ {&(_ZTV9GG3321111[36]), 36,41},
+ {&(_ZTV9GG3321111[40]), 40,41},
+ {&(_tg__ZTV5EE332__9GG3321111[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE332__9GG3321111[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE332__9GG3321111[4]), 4,6},
+ {&(_tg__ZTV5FF111__9GG3321111[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG3321111[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG3321111[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3321111[];
+extern VTBL_ENTRY _ZTV9GG3321111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3321111[];
+static VTBL_ENTRY alt_thunk_names957[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33211113fooEv,_ZTv0_n20_N9GG33211113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33211113fooEv,_ZThn32_N9GG33211113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33211113fooEv,_ZTv0_n12_N9GG33211113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG33211113fooEv,_ZThn48_N9GG33211113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33211113fooEv,_ZThn40_N9GG33211113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33211113fooEv,_ZThn24_N9GG33211113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33211113fooEv,_ZThn16_N9GG33211113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3321111 = { "GG3321111", // class name
+ bases_GG3321111, 6,
+ &(vtc_GG3321111[0]), // expected_vtbl_contents
+ &(vtt_GG3321111[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3321111),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3321111),41, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3321111),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names957,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3321113 : virtual EE332 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG33211133fooEv
+ virtual void bar(); // _ZN9GG33211133barEv
+ ~GG3321113(); // tgen
+ GG3321113(); // tgen
+};
+//SIG(1 GG3321113) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3321113 ::foo(){vfunc_called(this, "_ZN9GG33211133fooEv");}
+void GG3321113 ::bar(){vfunc_called(this, "_ZN9GG33211133barEv");}
+GG3321113 ::~GG3321113(){ note_dtor("GG3321113", this);} // tgen
+GG3321113 ::GG3321113(){ note_ctor("GG3321113", this);} // tgen
+
+static void Test_GG3321113()
+{
+ extern Class_Descriptor cd_GG3321113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3321113, buf);
+ GG3321113 *dp, &lv = *(dp=new (buf) GG3321113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3321113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3321113)");
+ check_base_class_offset(lv, (AA3*)(EE332*), ABISELECT(32,16), "GG3321113");
+ check_base_class_offset(lv, (BB3*)(EE332*), ABISELECT(48,24), "GG3321113");
+ check_base_class_offset(lv, (EE332*), ABISELECT(16,8), "GG3321113");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(80,40), "GG3321113");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(96,48), "GG3321113");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG3321113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3321113.pg");
+ test_class_info(&lv, &cd_GG3321113);
+ dp->~GG3321113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3321113(Test_GG3321113, "GG3321113", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3321113C1Ev();
+extern void _ZN9GG3321113D1Ev();
+Name_Map name_map_GG3321113[] = {
+ NSPAIR(_ZN9GG3321113C1Ev),
+ NSPAIR(_ZN9GG3321113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE332;
+extern VTBL_ENTRY _ZTI5EE332[];
+extern VTBL_ENTRY _ZTV5EE332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE332[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG3321113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE332, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3321113[];
+extern void _ZN9GG33211133fooEv();
+extern void _ZN9GG33211133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33211133barEv,_ZTv0_n20_N9GG33211133barEv)();
+extern void ABISELECT(_ZThn16_N9GG33211133barEv,_ZThn8_N9GG33211133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33211133fooEv,_ZTv0_n12_N9GG33211133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33211133fooEv,_ZThn16_N9GG33211133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33211133barEv,_ZTv0_n16_N9GG33211133barEv)();
+extern void ABISELECT(_ZThn32_N9GG33211133barEv,_ZThn16_N9GG33211133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33211133fooEv,_ZTv0_n12_N9GG33211133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33211133fooEv,_ZThn24_N9GG33211133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33211133barEv,_ZTv0_n16_N9GG33211133barEv)();
+extern void ABISELECT(_ZThn48_N9GG33211133barEv,_ZThn24_N9GG33211133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33211133fooEv,_ZTv0_n20_N9GG33211133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33211133fooEv,_ZThn32_N9GG33211133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33211133fooEv,_ZTv0_n12_N9GG33211133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG33211133fooEv,_ZThn40_N9GG33211133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33211133fooEv,_ZTv0_n12_N9GG33211133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG33211133fooEv,_ZThn48_N9GG33211133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3321113[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3321113[0]),
+ (VTBL_ENTRY)&_ZN9GG33211133fooEv,
+ (VTBL_ENTRY)&_ZN9GG33211133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3321113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33211133barEv,_ZTv0_n20_N9GG33211133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3321113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33211133fooEv,_ZTv0_n12_N9GG33211133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33211133barEv,_ZTv0_n16_N9GG33211133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3321113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33211133fooEv,_ZTv0_n12_N9GG33211133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33211133barEv,_ZTv0_n16_N9GG33211133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3321113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33211133fooEv,_ZTv0_n20_N9GG33211133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3321113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33211133fooEv,_ZTv0_n12_N9GG33211133fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3321113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33211133fooEv,_ZTv0_n12_N9GG33211133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3321113[];
+extern void _ZN5EE3323barEv();
+static VTBL_ENTRY _tg__ZTV5EE332__9GG3321113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN5EE3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE332__9GG3321113[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE332__9GG3321113[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG3321113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG3321113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG3321113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG3321113[] = {
+ {&(_ZTV9GG3321113[8]), 8,42},
+ {&(_ZTV9GG3321113[15]), 15,42},
+ {&(_ZTV9GG3321113[20]), 20,42},
+ {&(_ZTV9GG3321113[26]), 26,42},
+ {&(_ZTV9GG3321113[33]), 33,42},
+ {&(_ZTV9GG3321113[37]), 37,42},
+ {&(_ZTV9GG3321113[41]), 41,42},
+ {&(_tg__ZTV5EE332__9GG3321113[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE332__9GG3321113[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE332__9GG3321113[4]), 4,6},
+ {&(_tg__ZTV5FF111__9GG3321113[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG3321113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG3321113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3321113[];
+extern VTBL_ENTRY _ZTV9GG3321113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3321113[];
+static VTBL_ENTRY alt_thunk_names958[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33211133fooEv,_ZTv0_n20_N9GG33211133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33211133fooEv,_ZThn32_N9GG33211133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33211133barEv,_ZTv0_n16_N9GG33211133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33211133barEv,_ZThn24_N9GG33211133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33211133barEv,_ZThn16_N9GG33211133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33211133fooEv,_ZTv0_n12_N9GG33211133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG33211133fooEv,_ZThn48_N9GG33211133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33211133fooEv,_ZThn40_N9GG33211133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33211133fooEv,_ZThn24_N9GG33211133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33211133fooEv,_ZThn16_N9GG33211133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33211133barEv,_ZTv0_n20_N9GG33211133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33211133barEv,_ZThn8_N9GG33211133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3321113 = { "GG3321113", // class name
+ bases_GG3321113, 6,
+ &(vtc_GG3321113[0]), // expected_vtbl_contents
+ &(vtt_GG3321113[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3321113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3321113),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3321113),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names958,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3321123 : virtual EE332 , virtual FF112 {
+ int pg;
+ virtual void foo(); // _ZN9GG33211233fooEv
+ virtual void bar(); // _ZN9GG33211233barEv
+ ~GG3321123(); // tgen
+ GG3321123(); // tgen
+};
+//SIG(1 GG3321123) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3321123 ::foo(){vfunc_called(this, "_ZN9GG33211233fooEv");}
+void GG3321123 ::bar(){vfunc_called(this, "_ZN9GG33211233barEv");}
+GG3321123 ::~GG3321123(){ note_dtor("GG3321123", this);} // tgen
+GG3321123 ::GG3321123(){ note_ctor("GG3321123", this);} // tgen
+
+static void Test_GG3321123()
+{
+ extern Class_Descriptor cd_GG3321123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3321123, buf);
+ GG3321123 *dp, &lv = *(dp=new (buf) GG3321123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3321123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3321123)");
+ check_base_class_offset(lv, (AA3*)(EE332*), ABISELECT(32,16), "GG3321123");
+ check_base_class_offset(lv, (BB3*)(EE332*), ABISELECT(48,24), "GG3321123");
+ check_base_class_offset(lv, (EE332*), ABISELECT(16,8), "GG3321123");
+ check_base_class_offset(lv, (AA1*)(FF112*), ABISELECT(80,40), "GG3321123");
+ check_base_class_offset(lv, (BB1*)(FF112*), ABISELECT(96,48), "GG3321123");
+ check_base_class_offset(lv, (FF112*), ABISELECT(64,32), "GG3321123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3321123.pg");
+ test_class_info(&lv, &cd_GG3321123);
+ dp->~GG3321123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3321123(Test_GG3321123, "GG3321123", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3321123C1Ev();
+extern void _ZN9GG3321123D1Ev();
+Name_Map name_map_GG3321123[] = {
+ NSPAIR(_ZN9GG3321123C1Ev),
+ NSPAIR(_ZN9GG3321123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE332;
+extern VTBL_ENTRY _ZTI5EE332[];
+extern VTBL_ENTRY _ZTV5EE332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE332[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF112;
+extern VTBL_ENTRY _ZTI5FF112[];
+extern VTBL_ENTRY _ZTV5FF112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF112[];
+static Base_Class bases_GG3321123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE332, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF112, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3321123[];
+extern void _ZN9GG33211233fooEv();
+extern void _ZN9GG33211233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33211233barEv,_ZTv0_n20_N9GG33211233barEv)();
+extern void ABISELECT(_ZThn16_N9GG33211233barEv,_ZThn8_N9GG33211233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33211233fooEv,_ZTv0_n12_N9GG33211233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33211233fooEv,_ZThn16_N9GG33211233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33211233barEv,_ZTv0_n16_N9GG33211233barEv)();
+extern void ABISELECT(_ZThn32_N9GG33211233barEv,_ZThn16_N9GG33211233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33211233fooEv,_ZTv0_n12_N9GG33211233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33211233fooEv,_ZThn24_N9GG33211233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33211233barEv,_ZTv0_n16_N9GG33211233barEv)();
+extern void ABISELECT(_ZThn48_N9GG33211233barEv,_ZThn24_N9GG33211233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33211233barEv,_ZTv0_n20_N9GG33211233barEv)();
+extern void ABISELECT(_ZThn64_N9GG33211233barEv,_ZThn32_N9GG33211233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33211233fooEv,_ZTv0_n12_N9GG33211233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG33211233fooEv,_ZThn40_N9GG33211233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33211233fooEv,_ZTv0_n12_N9GG33211233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG33211233fooEv,_ZThn48_N9GG33211233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3321123[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3321123[0]),
+ (VTBL_ENTRY)&_ZN9GG33211233fooEv,
+ (VTBL_ENTRY)&_ZN9GG33211233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3321123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33211233barEv,_ZTv0_n20_N9GG33211233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3321123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33211233fooEv,_ZTv0_n12_N9GG33211233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33211233barEv,_ZTv0_n16_N9GG33211233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3321123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33211233fooEv,_ZTv0_n12_N9GG33211233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33211233barEv,_ZTv0_n16_N9GG33211233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3321123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33211233barEv,_ZTv0_n20_N9GG33211233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3321123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33211233fooEv,_ZTv0_n12_N9GG33211233fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3321123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33211233fooEv,_ZTv0_n12_N9GG33211233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3321123[];
+extern void _ZN5EE3323barEv();
+static VTBL_ENTRY _tg__ZTV5EE332__9GG3321123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN5EE3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE332__9GG3321123[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE332__9GG3321123[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN5FF1123barEv();
+static VTBL_ENTRY _tg__ZTV5FF112__9GG3321123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN5FF1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF112__9GG3321123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF112__9GG3321123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG3321123[] = {
+ {&(_ZTV9GG3321123[8]), 8,42},
+ {&(_ZTV9GG3321123[15]), 15,42},
+ {&(_ZTV9GG3321123[20]), 20,42},
+ {&(_ZTV9GG3321123[26]), 26,42},
+ {&(_ZTV9GG3321123[33]), 33,42},
+ {&(_ZTV9GG3321123[37]), 37,42},
+ {&(_ZTV9GG3321123[41]), 41,42},
+ {&(_tg__ZTV5EE332__9GG3321123[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE332__9GG3321123[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE332__9GG3321123[4]), 4,6},
+ {&(_tg__ZTV5FF112__9GG3321123[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF112__9GG3321123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF112__9GG3321123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3321123[];
+extern VTBL_ENTRY _ZTV9GG3321123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3321123[];
+static VTBL_ENTRY alt_thunk_names959[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33211233barEv,_ZTv0_n16_N9GG33211233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33211233barEv,_ZThn24_N9GG33211233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33211233barEv,_ZThn16_N9GG33211233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33211233fooEv,_ZTv0_n12_N9GG33211233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG33211233fooEv,_ZThn48_N9GG33211233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33211233fooEv,_ZThn40_N9GG33211233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33211233fooEv,_ZThn24_N9GG33211233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33211233fooEv,_ZThn16_N9GG33211233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33211233barEv,_ZTv0_n20_N9GG33211233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33211233barEv,_ZThn32_N9GG33211233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33211233barEv,_ZThn8_N9GG33211233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3321123 = { "GG3321123", // class name
+ bases_GG3321123, 6,
+ &(vtc_GG3321123[0]), // expected_vtbl_contents
+ &(vtt_GG3321123[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3321123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3321123),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3321123),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names959,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3321133 : virtual EE332 , virtual FF113 {
+ int pg;
+ virtual void foo(); // _ZN9GG33211333fooEv
+ virtual void bar(); // _ZN9GG33211333barEv
+ ~GG3321133(); // tgen
+ GG3321133(); // tgen
+};
+//SIG(1 GG3321133) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3321133 ::foo(){vfunc_called(this, "_ZN9GG33211333fooEv");}
+void GG3321133 ::bar(){vfunc_called(this, "_ZN9GG33211333barEv");}
+GG3321133 ::~GG3321133(){ note_dtor("GG3321133", this);} // tgen
+GG3321133 ::GG3321133(){ note_ctor("GG3321133", this);} // tgen
+
+static void Test_GG3321133()
+{
+ extern Class_Descriptor cd_GG3321133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3321133, buf);
+ GG3321133 *dp, &lv = *(dp=new (buf) GG3321133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3321133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3321133)");
+ check_base_class_offset(lv, (AA3*)(EE332*), ABISELECT(32,16), "GG3321133");
+ check_base_class_offset(lv, (BB3*)(EE332*), ABISELECT(48,24), "GG3321133");
+ check_base_class_offset(lv, (EE332*), ABISELECT(16,8), "GG3321133");
+ check_base_class_offset(lv, (AA1*)(FF113*), ABISELECT(80,40), "GG3321133");
+ check_base_class_offset(lv, (BB1*)(FF113*), ABISELECT(96,48), "GG3321133");
+ check_base_class_offset(lv, (FF113*), ABISELECT(64,32), "GG3321133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3321133.pg");
+ test_class_info(&lv, &cd_GG3321133);
+ dp->~GG3321133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3321133(Test_GG3321133, "GG3321133", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3321133C1Ev();
+extern void _ZN9GG3321133D1Ev();
+Name_Map name_map_GG3321133[] = {
+ NSPAIR(_ZN9GG3321133C1Ev),
+ NSPAIR(_ZN9GG3321133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE332;
+extern VTBL_ENTRY _ZTI5EE332[];
+extern VTBL_ENTRY _ZTV5EE332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE332[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF113;
+extern VTBL_ENTRY _ZTI5FF113[];
+extern VTBL_ENTRY _ZTV5FF113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF113[];
+static Base_Class bases_GG3321133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE332, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 40, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF113, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3321133[];
+extern void _ZN9GG33211333fooEv();
+extern void _ZN9GG33211333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33211333barEv,_ZTv0_n20_N9GG33211333barEv)();
+extern void ABISELECT(_ZThn16_N9GG33211333barEv,_ZThn8_N9GG33211333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33211333fooEv,_ZTv0_n12_N9GG33211333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33211333fooEv,_ZThn16_N9GG33211333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33211333barEv,_ZTv0_n16_N9GG33211333barEv)();
+extern void ABISELECT(_ZThn32_N9GG33211333barEv,_ZThn16_N9GG33211333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33211333fooEv,_ZTv0_n12_N9GG33211333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33211333fooEv,_ZThn24_N9GG33211333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33211333barEv,_ZTv0_n16_N9GG33211333barEv)();
+extern void ABISELECT(_ZThn48_N9GG33211333barEv,_ZThn24_N9GG33211333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33211333fooEv,_ZTv0_n20_N9GG33211333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33211333fooEv,_ZThn32_N9GG33211333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33211333barEv,_ZTv0_n24_N9GG33211333barEv)();
+extern void ABISELECT(_ZThn64_N9GG33211333barEv,_ZThn32_N9GG33211333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33211333fooEv,_ZTv0_n12_N9GG33211333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG33211333fooEv,_ZThn40_N9GG33211333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33211333fooEv,_ZTv0_n12_N9GG33211333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG33211333fooEv,_ZThn48_N9GG33211333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3321133[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3321133[0]),
+ (VTBL_ENTRY)&_ZN9GG33211333fooEv,
+ (VTBL_ENTRY)&_ZN9GG33211333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3321133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33211333barEv,_ZTv0_n20_N9GG33211333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3321133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33211333fooEv,_ZTv0_n12_N9GG33211333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33211333barEv,_ZTv0_n16_N9GG33211333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3321133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33211333fooEv,_ZTv0_n12_N9GG33211333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33211333barEv,_ZTv0_n16_N9GG33211333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3321133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33211333fooEv,_ZTv0_n20_N9GG33211333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33211333barEv,_ZTv0_n24_N9GG33211333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3321133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33211333fooEv,_ZTv0_n12_N9GG33211333fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3321133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33211333fooEv,_ZTv0_n12_N9GG33211333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3321133[];
+extern void _ZN5EE3323barEv();
+static VTBL_ENTRY _tg__ZTV5EE332__9GG3321133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN5EE3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE332__9GG3321133[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE332__9GG3321133[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN5FF1133fooEv();
+extern void _ZN5FF1133barEv();
+static VTBL_ENTRY _tg__ZTV5FF113__9GG3321133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&_ZN5FF1133fooEv,
+ (VTBL_ENTRY)&_ZN5FF1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF113__9GG3321133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1133fooEv,_ZThn16_N5FF1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF113__9GG3321133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+static VTT_ENTRY vtt_GG3321133[] = {
+ {&(_ZTV9GG3321133[8]), 8,44},
+ {&(_ZTV9GG3321133[15]), 15,44},
+ {&(_ZTV9GG3321133[20]), 20,44},
+ {&(_ZTV9GG3321133[26]), 26,44},
+ {&(_ZTV9GG3321133[34]), 34,44},
+ {&(_ZTV9GG3321133[39]), 39,44},
+ {&(_ZTV9GG3321133[43]), 43,44},
+ {&(_tg__ZTV5EE332__9GG3321133[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE332__9GG3321133[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE332__9GG3321133[4]), 4,6},
+ {&(_tg__ZTV5FF113__9GG3321133[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF113__9GG3321133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF113__9GG3321133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3321133[];
+extern VTBL_ENTRY _ZTV9GG3321133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3321133[];
+static VTBL_ENTRY alt_thunk_names960[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1133fooEv,_ZThn16_N5FF1133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG33211333barEv,_ZTv0_n24_N9GG33211333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33211333barEv,_ZThn32_N9GG33211333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33211333fooEv,_ZTv0_n20_N9GG33211333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33211333fooEv,_ZThn32_N9GG33211333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33211333barEv,_ZTv0_n16_N9GG33211333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33211333barEv,_ZThn24_N9GG33211333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33211333barEv,_ZThn16_N9GG33211333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33211333fooEv,_ZTv0_n12_N9GG33211333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG33211333fooEv,_ZThn48_N9GG33211333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33211333fooEv,_ZThn40_N9GG33211333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33211333fooEv,_ZThn24_N9GG33211333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33211333fooEv,_ZThn16_N9GG33211333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33211333barEv,_ZTv0_n20_N9GG33211333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33211333barEv,_ZThn8_N9GG33211333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3321133 = { "GG3321133", // class name
+ bases_GG3321133, 6,
+ &(vtc_GG3321133[0]), // expected_vtbl_contents
+ &(vtt_GG3321133[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3321133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3321133),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3321133),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names960,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3321213 : virtual EE332 , virtual FF121 {
+ int pg;
+ virtual void foo(); // _ZN9GG33212133fooEv
+ virtual void bar(); // _ZN9GG33212133barEv
+ ~GG3321213(); // tgen
+ GG3321213(); // tgen
+};
+//SIG(1 GG3321213) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3321213 ::foo(){vfunc_called(this, "_ZN9GG33212133fooEv");}
+void GG3321213 ::bar(){vfunc_called(this, "_ZN9GG33212133barEv");}
+GG3321213 ::~GG3321213(){ note_dtor("GG3321213", this);} // tgen
+GG3321213 ::GG3321213(){ note_ctor("GG3321213", this);} // tgen
+
+static void Test_GG3321213()
+{
+ extern Class_Descriptor cd_GG3321213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3321213, buf);
+ GG3321213 *dp, &lv = *(dp=new (buf) GG3321213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3321213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3321213)");
+ check_base_class_offset(lv, (AA3*)(EE332*), ABISELECT(32,16), "GG3321213");
+ check_base_class_offset(lv, (BB3*)(EE332*), ABISELECT(48,24), "GG3321213");
+ check_base_class_offset(lv, (EE332*), ABISELECT(16,8), "GG3321213");
+ check_base_class_offset(lv, (AA1*)(FF121*), ABISELECT(80,40), "GG3321213");
+ check_base_class_offset(lv, (BB2*)(FF121*), ABISELECT(96,48), "GG3321213");
+ check_base_class_offset(lv, (FF121*), ABISELECT(64,32), "GG3321213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3321213.pg");
+ test_class_info(&lv, &cd_GG3321213);
+ dp->~GG3321213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3321213(Test_GG3321213, "GG3321213", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3321213C1Ev();
+extern void _ZN9GG3321213D1Ev();
+Name_Map name_map_GG3321213[] = {
+ NSPAIR(_ZN9GG3321213C1Ev),
+ NSPAIR(_ZN9GG3321213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE332;
+extern VTBL_ENTRY _ZTI5EE332[];
+extern VTBL_ENTRY _ZTV5EE332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE332[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF121;
+extern VTBL_ENTRY _ZTI5FF121[];
+extern VTBL_ENTRY _ZTV5FF121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF121[];
+static Base_Class bases_GG3321213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE332, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF121, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3321213[];
+extern void _ZN9GG33212133fooEv();
+extern void _ZN9GG33212133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33212133barEv,_ZTv0_n20_N9GG33212133barEv)();
+extern void ABISELECT(_ZThn16_N9GG33212133barEv,_ZThn8_N9GG33212133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33212133fooEv,_ZTv0_n12_N9GG33212133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33212133fooEv,_ZThn16_N9GG33212133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33212133barEv,_ZTv0_n16_N9GG33212133barEv)();
+extern void ABISELECT(_ZThn32_N9GG33212133barEv,_ZThn16_N9GG33212133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33212133fooEv,_ZTv0_n12_N9GG33212133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33212133fooEv,_ZThn24_N9GG33212133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33212133barEv,_ZTv0_n16_N9GG33212133barEv)();
+extern void ABISELECT(_ZThn48_N9GG33212133barEv,_ZThn24_N9GG33212133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33212133fooEv,_ZTv0_n20_N9GG33212133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33212133fooEv,_ZThn32_N9GG33212133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33212133fooEv,_ZTv0_n12_N9GG33212133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG33212133fooEv,_ZThn40_N9GG33212133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33212133barEv,_ZTv0_n12_N9GG33212133barEv)();
+extern void ABISELECT(_ZThn96_N9GG33212133barEv,_ZThn48_N9GG33212133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3321213[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3321213[0]),
+ (VTBL_ENTRY)&_ZN9GG33212133fooEv,
+ (VTBL_ENTRY)&_ZN9GG33212133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3321213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33212133barEv,_ZTv0_n20_N9GG33212133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3321213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33212133fooEv,_ZTv0_n12_N9GG33212133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33212133barEv,_ZTv0_n16_N9GG33212133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3321213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33212133fooEv,_ZTv0_n12_N9GG33212133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33212133barEv,_ZTv0_n16_N9GG33212133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3321213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33212133fooEv,_ZTv0_n20_N9GG33212133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3321213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33212133fooEv,_ZTv0_n12_N9GG33212133fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3321213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33212133barEv,_ZTv0_n12_N9GG33212133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3321213[];
+extern void _ZN5EE3323barEv();
+static VTBL_ENTRY _tg__ZTV5EE332__9GG3321213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN5EE3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE332__9GG3321213[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE332__9GG3321213[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN5FF1213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF121__9GG3321213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN5FF1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1213fooEv,_ZThn8_N5FF1213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF121__9GG3321213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF121__9GG3321213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG3321213[] = {
+ {&(_ZTV9GG3321213[8]), 8,42},
+ {&(_ZTV9GG3321213[15]), 15,42},
+ {&(_ZTV9GG3321213[20]), 20,42},
+ {&(_ZTV9GG3321213[26]), 26,42},
+ {&(_ZTV9GG3321213[33]), 33,42},
+ {&(_ZTV9GG3321213[37]), 37,42},
+ {&(_ZTV9GG3321213[41]), 41,42},
+ {&(_tg__ZTV5EE332__9GG3321213[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE332__9GG3321213[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE332__9GG3321213[4]), 4,6},
+ {&(_tg__ZTV5FF121__9GG3321213[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF121__9GG3321213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF121__9GG3321213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3321213[];
+extern VTBL_ENTRY _ZTV9GG3321213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3321213[];
+static VTBL_ENTRY alt_thunk_names961[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1213fooEv,_ZThn8_N5FF1213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33212133barEv,_ZTv0_n12_N9GG33212133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG33212133barEv,_ZThn48_N9GG33212133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33212133fooEv,_ZTv0_n20_N9GG33212133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33212133fooEv,_ZThn32_N9GG33212133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33212133barEv,_ZTv0_n16_N9GG33212133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33212133barEv,_ZThn24_N9GG33212133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33212133barEv,_ZThn16_N9GG33212133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33212133fooEv,_ZTv0_n12_N9GG33212133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33212133fooEv,_ZThn40_N9GG33212133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33212133fooEv,_ZThn24_N9GG33212133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33212133fooEv,_ZThn16_N9GG33212133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33212133barEv,_ZTv0_n20_N9GG33212133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33212133barEv,_ZThn8_N9GG33212133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3321213 = { "GG3321213", // class name
+ bases_GG3321213, 6,
+ &(vtc_GG3321213[0]), // expected_vtbl_contents
+ &(vtt_GG3321213[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3321213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3321213),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3321213),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names961,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3321223 : virtual EE332 , virtual FF122 {
+ int pg;
+ virtual void foo(); // _ZN9GG33212233fooEv
+ virtual void bar(); // _ZN9GG33212233barEv
+ ~GG3321223(); // tgen
+ GG3321223(); // tgen
+};
+//SIG(1 GG3321223) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3321223 ::foo(){vfunc_called(this, "_ZN9GG33212233fooEv");}
+void GG3321223 ::bar(){vfunc_called(this, "_ZN9GG33212233barEv");}
+GG3321223 ::~GG3321223(){ note_dtor("GG3321223", this);} // tgen
+GG3321223 ::GG3321223(){ note_ctor("GG3321223", this);} // tgen
+
+static void Test_GG3321223()
+{
+ extern Class_Descriptor cd_GG3321223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3321223, buf);
+ GG3321223 *dp, &lv = *(dp=new (buf) GG3321223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3321223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3321223)");
+ check_base_class_offset(lv, (AA3*)(EE332*), ABISELECT(32,16), "GG3321223");
+ check_base_class_offset(lv, (BB3*)(EE332*), ABISELECT(48,24), "GG3321223");
+ check_base_class_offset(lv, (EE332*), ABISELECT(16,8), "GG3321223");
+ check_base_class_offset(lv, (AA1*)(FF122*), ABISELECT(80,40), "GG3321223");
+ check_base_class_offset(lv, (BB2*)(FF122*), ABISELECT(96,48), "GG3321223");
+ check_base_class_offset(lv, (FF122*), ABISELECT(64,32), "GG3321223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3321223.pg");
+ test_class_info(&lv, &cd_GG3321223);
+ dp->~GG3321223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3321223(Test_GG3321223, "GG3321223", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3321223C1Ev();
+extern void _ZN9GG3321223D1Ev();
+Name_Map name_map_GG3321223[] = {
+ NSPAIR(_ZN9GG3321223C1Ev),
+ NSPAIR(_ZN9GG3321223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE332;
+extern VTBL_ENTRY _ZTI5EE332[];
+extern VTBL_ENTRY _ZTV5EE332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE332[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF122;
+extern VTBL_ENTRY _ZTI5FF122[];
+extern VTBL_ENTRY _ZTV5FF122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF122[];
+static Base_Class bases_GG3321223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE332, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF122, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3321223[];
+extern void _ZN9GG33212233fooEv();
+extern void _ZN9GG33212233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33212233barEv,_ZTv0_n20_N9GG33212233barEv)();
+extern void ABISELECT(_ZThn16_N9GG33212233barEv,_ZThn8_N9GG33212233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33212233fooEv,_ZTv0_n12_N9GG33212233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33212233fooEv,_ZThn16_N9GG33212233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33212233barEv,_ZTv0_n16_N9GG33212233barEv)();
+extern void ABISELECT(_ZThn32_N9GG33212233barEv,_ZThn16_N9GG33212233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33212233fooEv,_ZTv0_n12_N9GG33212233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33212233fooEv,_ZThn24_N9GG33212233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33212233barEv,_ZTv0_n16_N9GG33212233barEv)();
+extern void ABISELECT(_ZThn48_N9GG33212233barEv,_ZThn24_N9GG33212233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33212233barEv,_ZTv0_n20_N9GG33212233barEv)();
+extern void ABISELECT(_ZThn64_N9GG33212233barEv,_ZThn32_N9GG33212233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33212233fooEv,_ZTv0_n12_N9GG33212233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG33212233fooEv,_ZThn40_N9GG33212233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33212233barEv,_ZTv0_n12_N9GG33212233barEv)();
+extern void ABISELECT(_ZThn96_N9GG33212233barEv,_ZThn48_N9GG33212233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3321223[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3321223[0]),
+ (VTBL_ENTRY)&_ZN9GG33212233fooEv,
+ (VTBL_ENTRY)&_ZN9GG33212233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3321223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33212233barEv,_ZTv0_n20_N9GG33212233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3321223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33212233fooEv,_ZTv0_n12_N9GG33212233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33212233barEv,_ZTv0_n16_N9GG33212233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3321223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33212233fooEv,_ZTv0_n12_N9GG33212233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33212233barEv,_ZTv0_n16_N9GG33212233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3321223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33212233barEv,_ZTv0_n20_N9GG33212233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3321223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33212233fooEv,_ZTv0_n12_N9GG33212233fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3321223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33212233barEv,_ZTv0_n12_N9GG33212233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3321223[];
+extern void _ZN5EE3323barEv();
+static VTBL_ENTRY _tg__ZTV5EE332__9GG3321223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN5EE3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE332__9GG3321223[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE332__9GG3321223[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN5FF1223barEv();
+static VTBL_ENTRY _tg__ZTV5FF122__9GG3321223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN5FF1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF122__9GG3321223[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv)();
+extern void ABISELECT(_ZThn32_N5FF1223barEv,_ZThn16_N5FF1223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF122__9GG3321223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv),
+};
+static VTT_ENTRY vtt_GG3321223[] = {
+ {&(_ZTV9GG3321223[8]), 8,42},
+ {&(_ZTV9GG3321223[15]), 15,42},
+ {&(_ZTV9GG3321223[20]), 20,42},
+ {&(_ZTV9GG3321223[26]), 26,42},
+ {&(_ZTV9GG3321223[33]), 33,42},
+ {&(_ZTV9GG3321223[37]), 37,42},
+ {&(_ZTV9GG3321223[41]), 41,42},
+ {&(_tg__ZTV5EE332__9GG3321223[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE332__9GG3321223[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE332__9GG3321223[4]), 4,6},
+ {&(_tg__ZTV5FF122__9GG3321223[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF122__9GG3321223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF122__9GG3321223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3321223[];
+extern VTBL_ENTRY _ZTV9GG3321223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3321223[];
+static VTBL_ENTRY alt_thunk_names962[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1223barEv,_ZThn16_N5FF1223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33212233barEv,_ZTv0_n12_N9GG33212233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG33212233barEv,_ZThn48_N9GG33212233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33212233barEv,_ZTv0_n16_N9GG33212233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33212233barEv,_ZThn24_N9GG33212233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33212233barEv,_ZThn16_N9GG33212233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33212233fooEv,_ZTv0_n12_N9GG33212233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33212233fooEv,_ZThn40_N9GG33212233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33212233fooEv,_ZThn24_N9GG33212233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33212233fooEv,_ZThn16_N9GG33212233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33212233barEv,_ZTv0_n20_N9GG33212233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33212233barEv,_ZThn32_N9GG33212233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33212233barEv,_ZThn8_N9GG33212233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3321223 = { "GG3321223", // class name
+ bases_GG3321223, 6,
+ &(vtc_GG3321223[0]), // expected_vtbl_contents
+ &(vtt_GG3321223[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3321223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3321223),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3321223),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names962,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3321233 : virtual EE332 , virtual FF123 {
+ int pg;
+ virtual void foo(); // _ZN9GG33212333fooEv
+ virtual void bar(); // _ZN9GG33212333barEv
+ ~GG3321233(); // tgen
+ GG3321233(); // tgen
+};
+//SIG(1 GG3321233) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3321233 ::foo(){vfunc_called(this, "_ZN9GG33212333fooEv");}
+void GG3321233 ::bar(){vfunc_called(this, "_ZN9GG33212333barEv");}
+GG3321233 ::~GG3321233(){ note_dtor("GG3321233", this);} // tgen
+GG3321233 ::GG3321233(){ note_ctor("GG3321233", this);} // tgen
+
+static void Test_GG3321233()
+{
+ extern Class_Descriptor cd_GG3321233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3321233, buf);
+ GG3321233 *dp, &lv = *(dp=new (buf) GG3321233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3321233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3321233)");
+ check_base_class_offset(lv, (AA3*)(EE332*), ABISELECT(32,16), "GG3321233");
+ check_base_class_offset(lv, (BB3*)(EE332*), ABISELECT(48,24), "GG3321233");
+ check_base_class_offset(lv, (EE332*), ABISELECT(16,8), "GG3321233");
+ check_base_class_offset(lv, (AA1*)(FF123*), ABISELECT(80,40), "GG3321233");
+ check_base_class_offset(lv, (BB2*)(FF123*), ABISELECT(96,48), "GG3321233");
+ check_base_class_offset(lv, (FF123*), ABISELECT(64,32), "GG3321233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3321233.pg");
+ test_class_info(&lv, &cd_GG3321233);
+ dp->~GG3321233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3321233(Test_GG3321233, "GG3321233", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3321233C1Ev();
+extern void _ZN9GG3321233D1Ev();
+Name_Map name_map_GG3321233[] = {
+ NSPAIR(_ZN9GG3321233C1Ev),
+ NSPAIR(_ZN9GG3321233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE332;
+extern VTBL_ENTRY _ZTI5EE332[];
+extern VTBL_ENTRY _ZTV5EE332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE332[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF123;
+extern VTBL_ENTRY _ZTI5FF123[];
+extern VTBL_ENTRY _ZTV5FF123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF123[];
+static Base_Class bases_GG3321233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE332, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 40, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF123, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3321233[];
+extern void _ZN9GG33212333fooEv();
+extern void _ZN9GG33212333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33212333barEv,_ZTv0_n20_N9GG33212333barEv)();
+extern void ABISELECT(_ZThn16_N9GG33212333barEv,_ZThn8_N9GG33212333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33212333fooEv,_ZTv0_n12_N9GG33212333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33212333fooEv,_ZThn16_N9GG33212333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33212333barEv,_ZTv0_n16_N9GG33212333barEv)();
+extern void ABISELECT(_ZThn32_N9GG33212333barEv,_ZThn16_N9GG33212333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33212333fooEv,_ZTv0_n12_N9GG33212333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33212333fooEv,_ZThn24_N9GG33212333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33212333barEv,_ZTv0_n16_N9GG33212333barEv)();
+extern void ABISELECT(_ZThn48_N9GG33212333barEv,_ZThn24_N9GG33212333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33212333fooEv,_ZTv0_n20_N9GG33212333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33212333fooEv,_ZThn32_N9GG33212333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33212333barEv,_ZTv0_n24_N9GG33212333barEv)();
+extern void ABISELECT(_ZThn64_N9GG33212333barEv,_ZThn32_N9GG33212333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33212333fooEv,_ZTv0_n12_N9GG33212333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG33212333fooEv,_ZThn40_N9GG33212333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33212333barEv,_ZTv0_n12_N9GG33212333barEv)();
+extern void ABISELECT(_ZThn96_N9GG33212333barEv,_ZThn48_N9GG33212333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3321233[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3321233[0]),
+ (VTBL_ENTRY)&_ZN9GG33212333fooEv,
+ (VTBL_ENTRY)&_ZN9GG33212333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3321233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33212333barEv,_ZTv0_n20_N9GG33212333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3321233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33212333fooEv,_ZTv0_n12_N9GG33212333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33212333barEv,_ZTv0_n16_N9GG33212333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3321233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33212333fooEv,_ZTv0_n12_N9GG33212333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33212333barEv,_ZTv0_n16_N9GG33212333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3321233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33212333fooEv,_ZTv0_n20_N9GG33212333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33212333barEv,_ZTv0_n24_N9GG33212333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3321233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33212333fooEv,_ZTv0_n12_N9GG33212333fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3321233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33212333barEv,_ZTv0_n12_N9GG33212333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3321233[];
+extern void _ZN5EE3323barEv();
+static VTBL_ENTRY _tg__ZTV5EE332__9GG3321233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN5EE3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE332__9GG3321233[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE332__9GG3321233[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN5FF1233fooEv();
+extern void _ZN5FF1233barEv();
+static VTBL_ENTRY _tg__ZTV5FF123__9GG3321233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&_ZN5FF1233fooEv,
+ (VTBL_ENTRY)&_ZN5FF1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1233fooEv,_ZThn8_N5FF1233fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF123__9GG3321233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv)();
+extern void ABISELECT(_ZThn32_N5FF1233barEv,_ZThn16_N5FF1233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF123__9GG3321233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv),
+};
+static VTT_ENTRY vtt_GG3321233[] = {
+ {&(_ZTV9GG3321233[8]), 8,44},
+ {&(_ZTV9GG3321233[15]), 15,44},
+ {&(_ZTV9GG3321233[20]), 20,44},
+ {&(_ZTV9GG3321233[26]), 26,44},
+ {&(_ZTV9GG3321233[34]), 34,44},
+ {&(_ZTV9GG3321233[39]), 39,44},
+ {&(_ZTV9GG3321233[43]), 43,44},
+ {&(_tg__ZTV5EE332__9GG3321233[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE332__9GG3321233[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE332__9GG3321233[4]), 4,6},
+ {&(_tg__ZTV5FF123__9GG3321233[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF123__9GG3321233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF123__9GG3321233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3321233[];
+extern VTBL_ENTRY _ZTV9GG3321233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3321233[];
+static VTBL_ENTRY alt_thunk_names963[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1233barEv,_ZThn16_N5FF1233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1233fooEv,_ZThn8_N5FF1233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33212333barEv,_ZTv0_n12_N9GG33212333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG33212333barEv,_ZThn48_N9GG33212333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG33212333barEv,_ZTv0_n24_N9GG33212333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33212333barEv,_ZThn32_N9GG33212333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33212333fooEv,_ZTv0_n20_N9GG33212333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33212333fooEv,_ZThn32_N9GG33212333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33212333barEv,_ZTv0_n16_N9GG33212333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33212333barEv,_ZThn24_N9GG33212333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33212333barEv,_ZThn16_N9GG33212333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33212333fooEv,_ZTv0_n12_N9GG33212333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33212333fooEv,_ZThn40_N9GG33212333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33212333fooEv,_ZThn24_N9GG33212333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33212333fooEv,_ZThn16_N9GG33212333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33212333barEv,_ZTv0_n20_N9GG33212333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33212333barEv,_ZThn8_N9GG33212333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3321233 = { "GG3321233", // class name
+ bases_GG3321233, 6,
+ &(vtc_GG3321233[0]), // expected_vtbl_contents
+ &(vtt_GG3321233[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3321233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3321233),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3321233),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names963,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3321313 : virtual EE332 , virtual FF131 {
+ int pg;
+ virtual void foo(); // _ZN9GG33213133fooEv
+ virtual void bar(); // _ZN9GG33213133barEv
+ ~GG3321313(); // tgen
+ GG3321313(); // tgen
+};
+//SIG(1 GG3321313) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG3321313 ::foo(){vfunc_called(this, "_ZN9GG33213133fooEv");}
+void GG3321313 ::bar(){vfunc_called(this, "_ZN9GG33213133barEv");}
+GG3321313 ::~GG3321313(){ note_dtor("GG3321313", this);} // tgen
+GG3321313 ::GG3321313(){ note_ctor("GG3321313", this);} // tgen
+
+static void Test_GG3321313()
+{
+ extern Class_Descriptor cd_GG3321313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3321313, buf);
+ GG3321313 *dp, &lv = *(dp=new (buf) GG3321313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3321313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3321313)");
+ check_base_class_offset(lv, (AA3*)(EE332*), ABISELECT(32,16), "GG3321313");
+ check_base_class_offset(lv, (BB3*)(EE332*), ABISELECT(48,24), "GG3321313");
+ check_base_class_offset(lv, (BB3*)(FF131*), ABISELECT(48,24), "GG3321313");
+ check_base_class_offset(lv, (EE332*), ABISELECT(16,8), "GG3321313");
+ check_base_class_offset(lv, (AA1*)(FF131*), ABISELECT(80,40), "GG3321313");
+ check_base_class_offset(lv, (FF131*), ABISELECT(64,32), "GG3321313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3321313.pg");
+ test_class_info(&lv, &cd_GG3321313);
+ dp->~GG3321313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3321313(Test_GG3321313, "GG3321313", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3321313C1Ev();
+extern void _ZN9GG3321313D1Ev();
+Name_Map name_map_GG3321313[] = {
+ NSPAIR(_ZN9GG3321313C1Ev),
+ NSPAIR(_ZN9GG3321313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE332;
+extern VTBL_ENTRY _ZTI5EE332[];
+extern VTBL_ENTRY _ZTV5EE332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE332[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF131;
+extern VTBL_ENTRY _ZTI5FF131[];
+extern VTBL_ENTRY _ZTV5FF131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF131[];
+static Base_Class bases_GG3321313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE332, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF131, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3321313[];
+extern void _ZN9GG33213133fooEv();
+extern void _ZN9GG33213133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33213133barEv,_ZTv0_n20_N9GG33213133barEv)();
+extern void ABISELECT(_ZThn16_N9GG33213133barEv,_ZThn8_N9GG33213133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33213133fooEv,_ZTv0_n12_N9GG33213133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33213133fooEv,_ZThn16_N9GG33213133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33213133barEv,_ZTv0_n16_N9GG33213133barEv)();
+extern void ABISELECT(_ZThn32_N9GG33213133barEv,_ZThn16_N9GG33213133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33213133fooEv,_ZTv0_n12_N9GG33213133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33213133fooEv,_ZThn24_N9GG33213133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33213133barEv,_ZTv0_n16_N9GG33213133barEv)();
+extern void ABISELECT(_ZThn48_N9GG33213133barEv,_ZThn24_N9GG33213133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33213133fooEv,_ZTv0_n20_N9GG33213133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33213133fooEv,_ZThn32_N9GG33213133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33213133fooEv,_ZTv0_n12_N9GG33213133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG33213133fooEv,_ZThn40_N9GG33213133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3321313[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3321313[0]),
+ (VTBL_ENTRY)&_ZN9GG33213133fooEv,
+ (VTBL_ENTRY)&_ZN9GG33213133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3321313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33213133barEv,_ZTv0_n20_N9GG33213133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3321313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33213133fooEv,_ZTv0_n12_N9GG33213133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33213133barEv,_ZTv0_n16_N9GG33213133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3321313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33213133fooEv,_ZTv0_n12_N9GG33213133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33213133barEv,_ZTv0_n16_N9GG33213133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3321313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33213133fooEv,_ZTv0_n20_N9GG33213133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3321313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33213133fooEv,_ZTv0_n12_N9GG33213133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3321313[];
+extern void _ZN5EE3323barEv();
+static VTBL_ENTRY _tg__ZTV5EE332__9GG3321313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN5EE3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE332__9GG3321313[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE332__9GG3321313[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN5FF1313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF131__9GG3321313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&_ZN5FF1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF131__9GG3321313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF131__9GG3321313[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG3321313[] = {
+ {&(_ZTV9GG3321313[7]), 7,37},
+ {&(_ZTV9GG3321313[14]), 14,37},
+ {&(_ZTV9GG3321313[19]), 19,37},
+ {&(_ZTV9GG3321313[25]), 25,37},
+ {&(_ZTV9GG3321313[32]), 32,37},
+ {&(_ZTV9GG3321313[36]), 36,37},
+ {&(_tg__ZTV5EE332__9GG3321313[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE332__9GG3321313[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE332__9GG3321313[4]), 4,6},
+ {&(_tg__ZTV5FF131__9GG3321313[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF131__9GG3321313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF131__9GG3321313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3321313[];
+extern VTBL_ENTRY _ZTV9GG3321313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3321313[];
+static VTBL_ENTRY alt_thunk_names964[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33213133fooEv,_ZTv0_n20_N9GG33213133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33213133fooEv,_ZThn32_N9GG33213133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33213133barEv,_ZTv0_n16_N9GG33213133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33213133barEv,_ZThn24_N9GG33213133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33213133barEv,_ZThn16_N9GG33213133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33213133fooEv,_ZTv0_n12_N9GG33213133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33213133fooEv,_ZThn40_N9GG33213133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33213133fooEv,_ZThn24_N9GG33213133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33213133fooEv,_ZThn16_N9GG33213133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33213133barEv,_ZTv0_n20_N9GG33213133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33213133barEv,_ZThn8_N9GG33213133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3321313 = { "GG3321313", // class name
+ bases_GG3321313, 5,
+ &(vtc_GG3321313[0]), // expected_vtbl_contents
+ &(vtt_GG3321313[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3321313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3321313),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3321313),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names964,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3321323 : virtual EE332 , virtual FF132 {
+ int pg;
+ virtual void foo(); // _ZN9GG33213233fooEv
+ virtual void bar(); // _ZN9GG33213233barEv
+ ~GG3321323(); // tgen
+ GG3321323(); // tgen
+};
+//SIG(1 GG3321323) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG3321323 ::foo(){vfunc_called(this, "_ZN9GG33213233fooEv");}
+void GG3321323 ::bar(){vfunc_called(this, "_ZN9GG33213233barEv");}
+GG3321323 ::~GG3321323(){ note_dtor("GG3321323", this);} // tgen
+GG3321323 ::GG3321323(){ note_ctor("GG3321323", this);} // tgen
+
+static void Test_GG3321323()
+{
+ extern Class_Descriptor cd_GG3321323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3321323, buf);
+ GG3321323 *dp, &lv = *(dp=new (buf) GG3321323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3321323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3321323)");
+ check_base_class_offset(lv, (AA3*)(EE332*), ABISELECT(32,16), "GG3321323");
+ check_base_class_offset(lv, (BB3*)(EE332*), ABISELECT(48,24), "GG3321323");
+ check_base_class_offset(lv, (BB3*)(FF132*), ABISELECT(48,24), "GG3321323");
+ check_base_class_offset(lv, (EE332*), ABISELECT(16,8), "GG3321323");
+ check_base_class_offset(lv, (AA1*)(FF132*), ABISELECT(80,40), "GG3321323");
+ check_base_class_offset(lv, (FF132*), ABISELECT(64,32), "GG3321323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3321323.pg");
+ test_class_info(&lv, &cd_GG3321323);
+ dp->~GG3321323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3321323(Test_GG3321323, "GG3321323", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3321323C1Ev();
+extern void _ZN9GG3321323D1Ev();
+Name_Map name_map_GG3321323[] = {
+ NSPAIR(_ZN9GG3321323C1Ev),
+ NSPAIR(_ZN9GG3321323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE332;
+extern VTBL_ENTRY _ZTI5EE332[];
+extern VTBL_ENTRY _ZTV5EE332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE332[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF132;
+extern VTBL_ENTRY _ZTI5FF132[];
+extern VTBL_ENTRY _ZTV5FF132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF132[];
+static Base_Class bases_GG3321323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE332, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF132, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3321323[];
+extern void _ZN9GG33213233fooEv();
+extern void _ZN9GG33213233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33213233barEv,_ZTv0_n20_N9GG33213233barEv)();
+extern void ABISELECT(_ZThn16_N9GG33213233barEv,_ZThn8_N9GG33213233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33213233fooEv,_ZTv0_n12_N9GG33213233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33213233fooEv,_ZThn16_N9GG33213233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33213233barEv,_ZTv0_n16_N9GG33213233barEv)();
+extern void ABISELECT(_ZThn32_N9GG33213233barEv,_ZThn16_N9GG33213233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33213233fooEv,_ZTv0_n12_N9GG33213233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33213233fooEv,_ZThn24_N9GG33213233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33213233barEv,_ZTv0_n16_N9GG33213233barEv)();
+extern void ABISELECT(_ZThn48_N9GG33213233barEv,_ZThn24_N9GG33213233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33213233barEv,_ZTv0_n20_N9GG33213233barEv)();
+extern void ABISELECT(_ZThn64_N9GG33213233barEv,_ZThn32_N9GG33213233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33213233fooEv,_ZTv0_n12_N9GG33213233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG33213233fooEv,_ZThn40_N9GG33213233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3321323[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3321323[0]),
+ (VTBL_ENTRY)&_ZN9GG33213233fooEv,
+ (VTBL_ENTRY)&_ZN9GG33213233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3321323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33213233barEv,_ZTv0_n20_N9GG33213233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3321323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33213233fooEv,_ZTv0_n12_N9GG33213233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33213233barEv,_ZTv0_n16_N9GG33213233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3321323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33213233fooEv,_ZTv0_n12_N9GG33213233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33213233barEv,_ZTv0_n16_N9GG33213233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3321323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33213233barEv,_ZTv0_n20_N9GG33213233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3321323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33213233fooEv,_ZTv0_n12_N9GG33213233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3321323[];
+extern void _ZN5EE3323barEv();
+static VTBL_ENTRY _tg__ZTV5EE332__9GG3321323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN5EE3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE332__9GG3321323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE332__9GG3321323[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN5FF1323barEv();
+static VTBL_ENTRY _tg__ZTV5FF132__9GG3321323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN5FF1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF132__9GG3321323[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF132__9GG3321323[] = {
+ ABISELECT(16,8),
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv),
+};
+static VTT_ENTRY vtt_GG3321323[] = {
+ {&(_ZTV9GG3321323[7]), 7,37},
+ {&(_ZTV9GG3321323[14]), 14,37},
+ {&(_ZTV9GG3321323[19]), 19,37},
+ {&(_ZTV9GG3321323[25]), 25,37},
+ {&(_ZTV9GG3321323[32]), 32,37},
+ {&(_ZTV9GG3321323[36]), 36,37},
+ {&(_tg__ZTV5EE332__9GG3321323[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE332__9GG3321323[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE332__9GG3321323[4]), 4,6},
+ {&(_tg__ZTV5FF132__9GG3321323[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF132__9GG3321323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF132__9GG3321323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3321323[];
+extern VTBL_ENTRY _ZTV9GG3321323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3321323[];
+static VTBL_ENTRY alt_thunk_names965[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33213233barEv,_ZTv0_n16_N9GG33213233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33213233barEv,_ZThn24_N9GG33213233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33213233barEv,_ZThn16_N9GG33213233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33213233fooEv,_ZTv0_n12_N9GG33213233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33213233fooEv,_ZThn40_N9GG33213233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33213233fooEv,_ZThn24_N9GG33213233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33213233fooEv,_ZThn16_N9GG33213233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33213233barEv,_ZTv0_n20_N9GG33213233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33213233barEv,_ZThn32_N9GG33213233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33213233barEv,_ZThn8_N9GG33213233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3321323 = { "GG3321323", // class name
+ bases_GG3321323, 5,
+ &(vtc_GG3321323[0]), // expected_vtbl_contents
+ &(vtt_GG3321323[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3321323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3321323),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3321323),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names965,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3321333 : virtual EE332 , virtual FF133 {
+ int pg;
+ virtual void foo(); // _ZN9GG33213333fooEv
+ virtual void bar(); // _ZN9GG33213333barEv
+ ~GG3321333(); // tgen
+ GG3321333(); // tgen
+};
+//SIG(1 GG3321333) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3321333 ::foo(){vfunc_called(this, "_ZN9GG33213333fooEv");}
+void GG3321333 ::bar(){vfunc_called(this, "_ZN9GG33213333barEv");}
+GG3321333 ::~GG3321333(){ note_dtor("GG3321333", this);} // tgen
+GG3321333 ::GG3321333(){ note_ctor("GG3321333", this);} // tgen
+
+static void Test_GG3321333()
+{
+ extern Class_Descriptor cd_GG3321333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3321333, buf);
+ GG3321333 *dp, &lv = *(dp=new (buf) GG3321333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3321333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3321333)");
+ check_base_class_offset(lv, (AA3*)(EE332*), ABISELECT(32,16), "GG3321333");
+ check_base_class_offset(lv, (BB3*)(EE332*), ABISELECT(48,24), "GG3321333");
+ check_base_class_offset(lv, (BB3*)(FF133*), ABISELECT(48,24), "GG3321333");
+ check_base_class_offset(lv, (EE332*), ABISELECT(16,8), "GG3321333");
+ check_base_class_offset(lv, (AA1*)(FF133*), ABISELECT(80,40), "GG3321333");
+ check_base_class_offset(lv, (FF133*), ABISELECT(64,32), "GG3321333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3321333.pg");
+ test_class_info(&lv, &cd_GG3321333);
+ dp->~GG3321333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3321333(Test_GG3321333, "GG3321333", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3321333C1Ev();
+extern void _ZN9GG3321333D1Ev();
+Name_Map name_map_GG3321333[] = {
+ NSPAIR(_ZN9GG3321333C1Ev),
+ NSPAIR(_ZN9GG3321333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE332;
+extern VTBL_ENTRY _ZTI5EE332[];
+extern VTBL_ENTRY _ZTV5EE332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE332[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF133;
+extern VTBL_ENTRY _ZTI5FF133[];
+extern VTBL_ENTRY _ZTV5FF133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF133[];
+static Base_Class bases_GG3321333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE332, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF133, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3321333[];
+extern void _ZN9GG33213333fooEv();
+extern void _ZN9GG33213333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33213333barEv,_ZTv0_n20_N9GG33213333barEv)();
+extern void ABISELECT(_ZThn16_N9GG33213333barEv,_ZThn8_N9GG33213333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33213333fooEv,_ZTv0_n12_N9GG33213333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33213333fooEv,_ZThn16_N9GG33213333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33213333barEv,_ZTv0_n16_N9GG33213333barEv)();
+extern void ABISELECT(_ZThn32_N9GG33213333barEv,_ZThn16_N9GG33213333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33213333fooEv,_ZTv0_n12_N9GG33213333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33213333fooEv,_ZThn24_N9GG33213333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33213333barEv,_ZTv0_n16_N9GG33213333barEv)();
+extern void ABISELECT(_ZThn48_N9GG33213333barEv,_ZThn24_N9GG33213333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33213333fooEv,_ZTv0_n20_N9GG33213333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33213333fooEv,_ZThn32_N9GG33213333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33213333barEv,_ZTv0_n24_N9GG33213333barEv)();
+extern void ABISELECT(_ZThn64_N9GG33213333barEv,_ZThn32_N9GG33213333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33213333fooEv,_ZTv0_n12_N9GG33213333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG33213333fooEv,_ZThn40_N9GG33213333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3321333[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3321333[0]),
+ (VTBL_ENTRY)&_ZN9GG33213333fooEv,
+ (VTBL_ENTRY)&_ZN9GG33213333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3321333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33213333barEv,_ZTv0_n20_N9GG33213333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3321333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33213333fooEv,_ZTv0_n12_N9GG33213333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33213333barEv,_ZTv0_n16_N9GG33213333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3321333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33213333fooEv,_ZTv0_n12_N9GG33213333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33213333barEv,_ZTv0_n16_N9GG33213333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3321333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33213333fooEv,_ZTv0_n20_N9GG33213333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33213333barEv,_ZTv0_n24_N9GG33213333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3321333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33213333fooEv,_ZTv0_n12_N9GG33213333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3321333[];
+extern void _ZN5EE3323barEv();
+static VTBL_ENTRY _tg__ZTV5EE332__9GG3321333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN5EE3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE332__9GG3321333[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE332__9GG3321333[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN5FF1333fooEv();
+extern void _ZN5FF1333barEv();
+static VTBL_ENTRY _tg__ZTV5FF133__9GG3321333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&_ZN5FF1333fooEv,
+ (VTBL_ENTRY)&_ZN5FF1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF133__9GG3321333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF133__9GG3321333[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv),
+};
+static VTT_ENTRY vtt_GG3321333[] = {
+ {&(_ZTV9GG3321333[7]), 7,39},
+ {&(_ZTV9GG3321333[14]), 14,39},
+ {&(_ZTV9GG3321333[19]), 19,39},
+ {&(_ZTV9GG3321333[25]), 25,39},
+ {&(_ZTV9GG3321333[33]), 33,39},
+ {&(_ZTV9GG3321333[38]), 38,39},
+ {&(_tg__ZTV5EE332__9GG3321333[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE332__9GG3321333[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE332__9GG3321333[4]), 4,6},
+ {&(_tg__ZTV5FF133__9GG3321333[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF133__9GG3321333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF133__9GG3321333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3321333[];
+extern VTBL_ENTRY _ZTV9GG3321333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3321333[];
+static VTBL_ENTRY alt_thunk_names966[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG33213333barEv,_ZTv0_n24_N9GG33213333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33213333barEv,_ZThn32_N9GG33213333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33213333fooEv,_ZTv0_n20_N9GG33213333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33213333fooEv,_ZThn32_N9GG33213333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33213333barEv,_ZTv0_n16_N9GG33213333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33213333barEv,_ZThn24_N9GG33213333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33213333barEv,_ZThn16_N9GG33213333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33213333fooEv,_ZTv0_n12_N9GG33213333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33213333fooEv,_ZThn40_N9GG33213333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33213333fooEv,_ZThn24_N9GG33213333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33213333fooEv,_ZThn16_N9GG33213333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33213333barEv,_ZTv0_n20_N9GG33213333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33213333barEv,_ZThn8_N9GG33213333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3321333 = { "GG3321333", // class name
+ bases_GG3321333, 5,
+ &(vtc_GG3321333[0]), // expected_vtbl_contents
+ &(vtt_GG3321333[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3321333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3321333),39, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3321333),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names966,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3322113 : virtual EE332 , virtual FF211 {
+ int pg;
+ virtual void foo(); // _ZN9GG33221133fooEv
+ virtual void bar(); // _ZN9GG33221133barEv
+ ~GG3322113(); // tgen
+ GG3322113(); // tgen
+};
+//SIG(1 GG3322113) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3322113 ::foo(){vfunc_called(this, "_ZN9GG33221133fooEv");}
+void GG3322113 ::bar(){vfunc_called(this, "_ZN9GG33221133barEv");}
+GG3322113 ::~GG3322113(){ note_dtor("GG3322113", this);} // tgen
+GG3322113 ::GG3322113(){ note_ctor("GG3322113", this);} // tgen
+
+static void Test_GG3322113()
+{
+ extern Class_Descriptor cd_GG3322113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3322113, buf);
+ GG3322113 *dp, &lv = *(dp=new (buf) GG3322113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3322113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3322113)");
+ check_base_class_offset(lv, (AA3*)(EE332*), ABISELECT(32,16), "GG3322113");
+ check_base_class_offset(lv, (BB3*)(EE332*), ABISELECT(48,24), "GG3322113");
+ check_base_class_offset(lv, (EE332*), ABISELECT(16,8), "GG3322113");
+ check_base_class_offset(lv, (AA2*)(FF211*), ABISELECT(80,40), "GG3322113");
+ check_base_class_offset(lv, (BB1*)(FF211*), ABISELECT(96,48), "GG3322113");
+ check_base_class_offset(lv, (FF211*), ABISELECT(64,32), "GG3322113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3322113.pg");
+ test_class_info(&lv, &cd_GG3322113);
+ dp->~GG3322113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3322113(Test_GG3322113, "GG3322113", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3322113C1Ev();
+extern void _ZN9GG3322113D1Ev();
+Name_Map name_map_GG3322113[] = {
+ NSPAIR(_ZN9GG3322113C1Ev),
+ NSPAIR(_ZN9GG3322113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE332;
+extern VTBL_ENTRY _ZTI5EE332[];
+extern VTBL_ENTRY _ZTV5EE332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE332[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF211;
+extern VTBL_ENTRY _ZTI5FF211[];
+extern VTBL_ENTRY _ZTV5FF211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF211[];
+static Base_Class bases_GG3322113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE332, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF211, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3322113[];
+extern void _ZN9GG33221133fooEv();
+extern void _ZN9GG33221133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33221133barEv,_ZTv0_n20_N9GG33221133barEv)();
+extern void ABISELECT(_ZThn16_N9GG33221133barEv,_ZThn8_N9GG33221133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33221133fooEv,_ZTv0_n12_N9GG33221133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33221133fooEv,_ZThn16_N9GG33221133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33221133barEv,_ZTv0_n16_N9GG33221133barEv)();
+extern void ABISELECT(_ZThn32_N9GG33221133barEv,_ZThn16_N9GG33221133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33221133fooEv,_ZTv0_n12_N9GG33221133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33221133fooEv,_ZThn24_N9GG33221133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33221133barEv,_ZTv0_n16_N9GG33221133barEv)();
+extern void ABISELECT(_ZThn48_N9GG33221133barEv,_ZThn24_N9GG33221133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33221133fooEv,_ZTv0_n20_N9GG33221133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33221133fooEv,_ZThn32_N9GG33221133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33221133barEv,_ZTv0_n12_N9GG33221133barEv)();
+extern void ABISELECT(_ZThn80_N9GG33221133barEv,_ZThn40_N9GG33221133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33221133fooEv,_ZTv0_n12_N9GG33221133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG33221133fooEv,_ZThn48_N9GG33221133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3322113[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3322113[0]),
+ (VTBL_ENTRY)&_ZN9GG33221133fooEv,
+ (VTBL_ENTRY)&_ZN9GG33221133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3322113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33221133barEv,_ZTv0_n20_N9GG33221133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3322113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33221133fooEv,_ZTv0_n12_N9GG33221133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33221133barEv,_ZTv0_n16_N9GG33221133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3322113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33221133fooEv,_ZTv0_n12_N9GG33221133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33221133barEv,_ZTv0_n16_N9GG33221133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3322113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33221133fooEv,_ZTv0_n20_N9GG33221133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3322113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33221133barEv,_ZTv0_n12_N9GG33221133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3322113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33221133fooEv,_ZTv0_n12_N9GG33221133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3322113[];
+extern void _ZN5EE3323barEv();
+static VTBL_ENTRY _tg__ZTV5EE332__9GG3322113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN5EE3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE332__9GG3322113[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE332__9GG3322113[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN5FF2113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF211__9GG3322113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN5FF2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF211__9GG3322113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2113fooEv,_ZThn16_N5FF2113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF211__9GG3322113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv),
+};
+static VTT_ENTRY vtt_GG3322113[] = {
+ {&(_ZTV9GG3322113[8]), 8,42},
+ {&(_ZTV9GG3322113[15]), 15,42},
+ {&(_ZTV9GG3322113[20]), 20,42},
+ {&(_ZTV9GG3322113[26]), 26,42},
+ {&(_ZTV9GG3322113[33]), 33,42},
+ {&(_ZTV9GG3322113[37]), 37,42},
+ {&(_ZTV9GG3322113[41]), 41,42},
+ {&(_tg__ZTV5EE332__9GG3322113[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE332__9GG3322113[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE332__9GG3322113[4]), 4,6},
+ {&(_tg__ZTV5FF211__9GG3322113[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF211__9GG3322113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF211__9GG3322113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3322113[];
+extern VTBL_ENTRY _ZTV9GG3322113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3322113[];
+static VTBL_ENTRY alt_thunk_names967[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2113fooEv,_ZThn16_N5FF2113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33221133barEv,_ZTv0_n12_N9GG33221133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33221133barEv,_ZThn40_N9GG33221133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33221133fooEv,_ZTv0_n20_N9GG33221133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33221133fooEv,_ZThn32_N9GG33221133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33221133barEv,_ZTv0_n16_N9GG33221133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33221133barEv,_ZThn24_N9GG33221133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33221133barEv,_ZThn16_N9GG33221133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33221133fooEv,_ZTv0_n12_N9GG33221133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG33221133fooEv,_ZThn48_N9GG33221133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33221133fooEv,_ZThn24_N9GG33221133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33221133fooEv,_ZThn16_N9GG33221133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33221133barEv,_ZTv0_n20_N9GG33221133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33221133barEv,_ZThn8_N9GG33221133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3322113 = { "GG3322113", // class name
+ bases_GG3322113, 6,
+ &(vtc_GG3322113[0]), // expected_vtbl_contents
+ &(vtt_GG3322113[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3322113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3322113),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3322113),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names967,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3322123 : virtual EE332 , virtual FF212 {
+ int pg;
+ virtual void foo(); // _ZN9GG33221233fooEv
+ virtual void bar(); // _ZN9GG33221233barEv
+ ~GG3322123(); // tgen
+ GG3322123(); // tgen
+};
+//SIG(1 GG3322123) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3322123 ::foo(){vfunc_called(this, "_ZN9GG33221233fooEv");}
+void GG3322123 ::bar(){vfunc_called(this, "_ZN9GG33221233barEv");}
+GG3322123 ::~GG3322123(){ note_dtor("GG3322123", this);} // tgen
+GG3322123 ::GG3322123(){ note_ctor("GG3322123", this);} // tgen
+
+static void Test_GG3322123()
+{
+ extern Class_Descriptor cd_GG3322123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3322123, buf);
+ GG3322123 *dp, &lv = *(dp=new (buf) GG3322123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3322123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3322123)");
+ check_base_class_offset(lv, (AA3*)(EE332*), ABISELECT(32,16), "GG3322123");
+ check_base_class_offset(lv, (BB3*)(EE332*), ABISELECT(48,24), "GG3322123");
+ check_base_class_offset(lv, (EE332*), ABISELECT(16,8), "GG3322123");
+ check_base_class_offset(lv, (AA2*)(FF212*), ABISELECT(80,40), "GG3322123");
+ check_base_class_offset(lv, (BB1*)(FF212*), ABISELECT(96,48), "GG3322123");
+ check_base_class_offset(lv, (FF212*), ABISELECT(64,32), "GG3322123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3322123.pg");
+ test_class_info(&lv, &cd_GG3322123);
+ dp->~GG3322123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3322123(Test_GG3322123, "GG3322123", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3322123C1Ev();
+extern void _ZN9GG3322123D1Ev();
+Name_Map name_map_GG3322123[] = {
+ NSPAIR(_ZN9GG3322123C1Ev),
+ NSPAIR(_ZN9GG3322123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE332;
+extern VTBL_ENTRY _ZTI5EE332[];
+extern VTBL_ENTRY _ZTV5EE332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE332[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF212;
+extern VTBL_ENTRY _ZTI5FF212[];
+extern VTBL_ENTRY _ZTV5FF212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF212[];
+static Base_Class bases_GG3322123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE332, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF212, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3322123[];
+extern void _ZN9GG33221233fooEv();
+extern void _ZN9GG33221233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33221233barEv,_ZTv0_n20_N9GG33221233barEv)();
+extern void ABISELECT(_ZThn16_N9GG33221233barEv,_ZThn8_N9GG33221233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33221233fooEv,_ZTv0_n12_N9GG33221233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33221233fooEv,_ZThn16_N9GG33221233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33221233barEv,_ZTv0_n16_N9GG33221233barEv)();
+extern void ABISELECT(_ZThn32_N9GG33221233barEv,_ZThn16_N9GG33221233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33221233fooEv,_ZTv0_n12_N9GG33221233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33221233fooEv,_ZThn24_N9GG33221233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33221233barEv,_ZTv0_n16_N9GG33221233barEv)();
+extern void ABISELECT(_ZThn48_N9GG33221233barEv,_ZThn24_N9GG33221233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33221233barEv,_ZTv0_n20_N9GG33221233barEv)();
+extern void ABISELECT(_ZThn64_N9GG33221233barEv,_ZThn32_N9GG33221233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33221233barEv,_ZTv0_n12_N9GG33221233barEv)();
+extern void ABISELECT(_ZThn80_N9GG33221233barEv,_ZThn40_N9GG33221233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33221233fooEv,_ZTv0_n12_N9GG33221233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG33221233fooEv,_ZThn48_N9GG33221233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3322123[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3322123[0]),
+ (VTBL_ENTRY)&_ZN9GG33221233fooEv,
+ (VTBL_ENTRY)&_ZN9GG33221233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3322123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33221233barEv,_ZTv0_n20_N9GG33221233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3322123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33221233fooEv,_ZTv0_n12_N9GG33221233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33221233barEv,_ZTv0_n16_N9GG33221233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3322123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33221233fooEv,_ZTv0_n12_N9GG33221233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33221233barEv,_ZTv0_n16_N9GG33221233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3322123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33221233barEv,_ZTv0_n20_N9GG33221233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3322123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33221233barEv,_ZTv0_n12_N9GG33221233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3322123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33221233fooEv,_ZTv0_n12_N9GG33221233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3322123[];
+extern void _ZN5EE3323barEv();
+static VTBL_ENTRY _tg__ZTV5EE332__9GG3322123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN5EE3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE332__9GG3322123[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE332__9GG3322123[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN5FF2123barEv();
+static VTBL_ENTRY _tg__ZTV5FF212__9GG3322123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN5FF2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv)();
+extern void ABISELECT(_ZThn16_N5FF2123barEv,_ZThn8_N5FF2123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF212__9GG3322123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF212__9GG3322123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG3322123[] = {
+ {&(_ZTV9GG3322123[8]), 8,42},
+ {&(_ZTV9GG3322123[15]), 15,42},
+ {&(_ZTV9GG3322123[20]), 20,42},
+ {&(_ZTV9GG3322123[26]), 26,42},
+ {&(_ZTV9GG3322123[33]), 33,42},
+ {&(_ZTV9GG3322123[37]), 37,42},
+ {&(_ZTV9GG3322123[41]), 41,42},
+ {&(_tg__ZTV5EE332__9GG3322123[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE332__9GG3322123[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE332__9GG3322123[4]), 4,6},
+ {&(_tg__ZTV5FF212__9GG3322123[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF212__9GG3322123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF212__9GG3322123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3322123[];
+extern VTBL_ENTRY _ZTV9GG3322123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3322123[];
+static VTBL_ENTRY alt_thunk_names968[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2123barEv,_ZThn8_N5FF2123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33221233barEv,_ZTv0_n12_N9GG33221233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33221233barEv,_ZThn40_N9GG33221233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33221233barEv,_ZTv0_n16_N9GG33221233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33221233barEv,_ZThn24_N9GG33221233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33221233barEv,_ZThn16_N9GG33221233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33221233fooEv,_ZTv0_n12_N9GG33221233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG33221233fooEv,_ZThn48_N9GG33221233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33221233fooEv,_ZThn24_N9GG33221233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33221233fooEv,_ZThn16_N9GG33221233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33221233barEv,_ZTv0_n20_N9GG33221233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33221233barEv,_ZThn32_N9GG33221233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33221233barEv,_ZThn8_N9GG33221233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3322123 = { "GG3322123", // class name
+ bases_GG3322123, 6,
+ &(vtc_GG3322123[0]), // expected_vtbl_contents
+ &(vtt_GG3322123[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3322123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3322123),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3322123),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names968,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3322133 : virtual EE332 , virtual FF213 {
+ int pg;
+ virtual void foo(); // _ZN9GG33221333fooEv
+ virtual void bar(); // _ZN9GG33221333barEv
+ ~GG3322133(); // tgen
+ GG3322133(); // tgen
+};
+//SIG(1 GG3322133) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3322133 ::foo(){vfunc_called(this, "_ZN9GG33221333fooEv");}
+void GG3322133 ::bar(){vfunc_called(this, "_ZN9GG33221333barEv");}
+GG3322133 ::~GG3322133(){ note_dtor("GG3322133", this);} // tgen
+GG3322133 ::GG3322133(){ note_ctor("GG3322133", this);} // tgen
+
+static void Test_GG3322133()
+{
+ extern Class_Descriptor cd_GG3322133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3322133, buf);
+ GG3322133 *dp, &lv = *(dp=new (buf) GG3322133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3322133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3322133)");
+ check_base_class_offset(lv, (AA3*)(EE332*), ABISELECT(32,16), "GG3322133");
+ check_base_class_offset(lv, (BB3*)(EE332*), ABISELECT(48,24), "GG3322133");
+ check_base_class_offset(lv, (EE332*), ABISELECT(16,8), "GG3322133");
+ check_base_class_offset(lv, (AA2*)(FF213*), ABISELECT(80,40), "GG3322133");
+ check_base_class_offset(lv, (BB1*)(FF213*), ABISELECT(96,48), "GG3322133");
+ check_base_class_offset(lv, (FF213*), ABISELECT(64,32), "GG3322133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3322133.pg");
+ test_class_info(&lv, &cd_GG3322133);
+ dp->~GG3322133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3322133(Test_GG3322133, "GG3322133", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3322133C1Ev();
+extern void _ZN9GG3322133D1Ev();
+Name_Map name_map_GG3322133[] = {
+ NSPAIR(_ZN9GG3322133C1Ev),
+ NSPAIR(_ZN9GG3322133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE332;
+extern VTBL_ENTRY _ZTI5EE332[];
+extern VTBL_ENTRY _ZTV5EE332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE332[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF213;
+extern VTBL_ENTRY _ZTI5FF213[];
+extern VTBL_ENTRY _ZTV5FF213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF213[];
+static Base_Class bases_GG3322133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE332, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 40, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF213, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3322133[];
+extern void _ZN9GG33221333fooEv();
+extern void _ZN9GG33221333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33221333barEv,_ZTv0_n20_N9GG33221333barEv)();
+extern void ABISELECT(_ZThn16_N9GG33221333barEv,_ZThn8_N9GG33221333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33221333fooEv,_ZTv0_n12_N9GG33221333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33221333fooEv,_ZThn16_N9GG33221333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33221333barEv,_ZTv0_n16_N9GG33221333barEv)();
+extern void ABISELECT(_ZThn32_N9GG33221333barEv,_ZThn16_N9GG33221333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33221333fooEv,_ZTv0_n12_N9GG33221333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33221333fooEv,_ZThn24_N9GG33221333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33221333barEv,_ZTv0_n16_N9GG33221333barEv)();
+extern void ABISELECT(_ZThn48_N9GG33221333barEv,_ZThn24_N9GG33221333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33221333fooEv,_ZTv0_n20_N9GG33221333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33221333fooEv,_ZThn32_N9GG33221333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33221333barEv,_ZTv0_n24_N9GG33221333barEv)();
+extern void ABISELECT(_ZThn64_N9GG33221333barEv,_ZThn32_N9GG33221333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33221333barEv,_ZTv0_n12_N9GG33221333barEv)();
+extern void ABISELECT(_ZThn80_N9GG33221333barEv,_ZThn40_N9GG33221333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33221333fooEv,_ZTv0_n12_N9GG33221333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG33221333fooEv,_ZThn48_N9GG33221333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3322133[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3322133[0]),
+ (VTBL_ENTRY)&_ZN9GG33221333fooEv,
+ (VTBL_ENTRY)&_ZN9GG33221333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3322133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33221333barEv,_ZTv0_n20_N9GG33221333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3322133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33221333fooEv,_ZTv0_n12_N9GG33221333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33221333barEv,_ZTv0_n16_N9GG33221333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3322133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33221333fooEv,_ZTv0_n12_N9GG33221333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33221333barEv,_ZTv0_n16_N9GG33221333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3322133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33221333fooEv,_ZTv0_n20_N9GG33221333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33221333barEv,_ZTv0_n24_N9GG33221333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3322133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33221333barEv,_ZTv0_n12_N9GG33221333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3322133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33221333fooEv,_ZTv0_n12_N9GG33221333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3322133[];
+extern void _ZN5EE3323barEv();
+static VTBL_ENTRY _tg__ZTV5EE332__9GG3322133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN5EE3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE332__9GG3322133[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE332__9GG3322133[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN5FF2133fooEv();
+extern void _ZN5FF2133barEv();
+static VTBL_ENTRY _tg__ZTV5FF213__9GG3322133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&_ZN5FF2133fooEv,
+ (VTBL_ENTRY)&_ZN5FF2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv)();
+extern void ABISELECT(_ZThn16_N5FF2133barEv,_ZThn8_N5FF2133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF213__9GG3322133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2133fooEv,_ZThn16_N5FF2133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF213__9GG3322133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv),
+};
+static VTT_ENTRY vtt_GG3322133[] = {
+ {&(_ZTV9GG3322133[8]), 8,44},
+ {&(_ZTV9GG3322133[15]), 15,44},
+ {&(_ZTV9GG3322133[20]), 20,44},
+ {&(_ZTV9GG3322133[26]), 26,44},
+ {&(_ZTV9GG3322133[34]), 34,44},
+ {&(_ZTV9GG3322133[39]), 39,44},
+ {&(_ZTV9GG3322133[43]), 43,44},
+ {&(_tg__ZTV5EE332__9GG3322133[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE332__9GG3322133[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE332__9GG3322133[4]), 4,6},
+ {&(_tg__ZTV5FF213__9GG3322133[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF213__9GG3322133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF213__9GG3322133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3322133[];
+extern VTBL_ENTRY _ZTV9GG3322133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3322133[];
+static VTBL_ENTRY alt_thunk_names969[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2133fooEv,_ZThn16_N5FF2133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2133barEv,_ZThn8_N5FF2133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33221333barEv,_ZTv0_n12_N9GG33221333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33221333barEv,_ZThn40_N9GG33221333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG33221333barEv,_ZTv0_n24_N9GG33221333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33221333barEv,_ZThn32_N9GG33221333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33221333fooEv,_ZTv0_n20_N9GG33221333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33221333fooEv,_ZThn32_N9GG33221333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33221333barEv,_ZTv0_n16_N9GG33221333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33221333barEv,_ZThn24_N9GG33221333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33221333barEv,_ZThn16_N9GG33221333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33221333fooEv,_ZTv0_n12_N9GG33221333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG33221333fooEv,_ZThn48_N9GG33221333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33221333fooEv,_ZThn24_N9GG33221333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33221333fooEv,_ZThn16_N9GG33221333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33221333barEv,_ZTv0_n20_N9GG33221333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33221333barEv,_ZThn8_N9GG33221333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3322133 = { "GG3322133", // class name
+ bases_GG3322133, 6,
+ &(vtc_GG3322133[0]), // expected_vtbl_contents
+ &(vtt_GG3322133[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3322133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3322133),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3322133),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names969,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3322213 : virtual EE332 , virtual FF221 {
+ int pg;
+ virtual void foo(); // _ZN9GG33222133fooEv
+ virtual void bar(); // _ZN9GG33222133barEv
+ ~GG3322213(); // tgen
+ GG3322213(); // tgen
+};
+//SIG(1 GG3322213) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3322213 ::foo(){vfunc_called(this, "_ZN9GG33222133fooEv");}
+void GG3322213 ::bar(){vfunc_called(this, "_ZN9GG33222133barEv");}
+GG3322213 ::~GG3322213(){ note_dtor("GG3322213", this);} // tgen
+GG3322213 ::GG3322213(){ note_ctor("GG3322213", this);} // tgen
+
+static void Test_GG3322213()
+{
+ extern Class_Descriptor cd_GG3322213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3322213, buf);
+ GG3322213 *dp, &lv = *(dp=new (buf) GG3322213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3322213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3322213)");
+ check_base_class_offset(lv, (AA3*)(EE332*), ABISELECT(32,16), "GG3322213");
+ check_base_class_offset(lv, (BB3*)(EE332*), ABISELECT(48,24), "GG3322213");
+ check_base_class_offset(lv, (EE332*), ABISELECT(16,8), "GG3322213");
+ check_base_class_offset(lv, (AA2*)(FF221*), ABISELECT(80,40), "GG3322213");
+ check_base_class_offset(lv, (BB2*)(FF221*), ABISELECT(96,48), "GG3322213");
+ check_base_class_offset(lv, (FF221*), ABISELECT(64,32), "GG3322213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3322213.pg");
+ test_class_info(&lv, &cd_GG3322213);
+ dp->~GG3322213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3322213(Test_GG3322213, "GG3322213", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3322213C1Ev();
+extern void _ZN9GG3322213D1Ev();
+Name_Map name_map_GG3322213[] = {
+ NSPAIR(_ZN9GG3322213C1Ev),
+ NSPAIR(_ZN9GG3322213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE332;
+extern VTBL_ENTRY _ZTI5EE332[];
+extern VTBL_ENTRY _ZTV5EE332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE332[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF221;
+extern VTBL_ENTRY _ZTI5FF221[];
+extern VTBL_ENTRY _ZTV5FF221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF221[];
+static Base_Class bases_GG3322213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE332, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF221, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3322213[];
+extern void _ZN9GG33222133fooEv();
+extern void _ZN9GG33222133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33222133barEv,_ZTv0_n20_N9GG33222133barEv)();
+extern void ABISELECT(_ZThn16_N9GG33222133barEv,_ZThn8_N9GG33222133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33222133fooEv,_ZTv0_n12_N9GG33222133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33222133fooEv,_ZThn16_N9GG33222133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33222133barEv,_ZTv0_n16_N9GG33222133barEv)();
+extern void ABISELECT(_ZThn32_N9GG33222133barEv,_ZThn16_N9GG33222133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33222133fooEv,_ZTv0_n12_N9GG33222133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33222133fooEv,_ZThn24_N9GG33222133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33222133barEv,_ZTv0_n16_N9GG33222133barEv)();
+extern void ABISELECT(_ZThn48_N9GG33222133barEv,_ZThn24_N9GG33222133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33222133fooEv,_ZTv0_n20_N9GG33222133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33222133fooEv,_ZThn32_N9GG33222133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33222133barEv,_ZTv0_n12_N9GG33222133barEv)();
+extern void ABISELECT(_ZThn80_N9GG33222133barEv,_ZThn40_N9GG33222133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33222133barEv,_ZTv0_n12_N9GG33222133barEv)();
+extern void ABISELECT(_ZThn96_N9GG33222133barEv,_ZThn48_N9GG33222133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3322213[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3322213[0]),
+ (VTBL_ENTRY)&_ZN9GG33222133fooEv,
+ (VTBL_ENTRY)&_ZN9GG33222133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3322213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33222133barEv,_ZTv0_n20_N9GG33222133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3322213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33222133fooEv,_ZTv0_n12_N9GG33222133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33222133barEv,_ZTv0_n16_N9GG33222133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3322213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33222133fooEv,_ZTv0_n12_N9GG33222133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33222133barEv,_ZTv0_n16_N9GG33222133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3322213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33222133fooEv,_ZTv0_n20_N9GG33222133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3322213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33222133barEv,_ZTv0_n12_N9GG33222133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3322213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33222133barEv,_ZTv0_n12_N9GG33222133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3322213[];
+extern void _ZN5EE3323barEv();
+static VTBL_ENTRY _tg__ZTV5EE332__9GG3322213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN5EE3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE332__9GG3322213[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE332__9GG3322213[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN5FF2213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF221__9GG3322213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN5FF2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF221__9GG3322213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF221__9GG3322213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG3322213[] = {
+ {&(_ZTV9GG3322213[8]), 8,42},
+ {&(_ZTV9GG3322213[15]), 15,42},
+ {&(_ZTV9GG3322213[20]), 20,42},
+ {&(_ZTV9GG3322213[26]), 26,42},
+ {&(_ZTV9GG3322213[33]), 33,42},
+ {&(_ZTV9GG3322213[37]), 37,42},
+ {&(_ZTV9GG3322213[41]), 41,42},
+ {&(_tg__ZTV5EE332__9GG3322213[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE332__9GG3322213[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE332__9GG3322213[4]), 4,6},
+ {&(_tg__ZTV5FF221__9GG3322213[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF221__9GG3322213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF221__9GG3322213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3322213[];
+extern VTBL_ENTRY _ZTV9GG3322213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3322213[];
+static VTBL_ENTRY alt_thunk_names970[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33222133barEv,_ZTv0_n12_N9GG33222133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG33222133barEv,_ZThn48_N9GG33222133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33222133barEv,_ZThn40_N9GG33222133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33222133fooEv,_ZTv0_n20_N9GG33222133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33222133fooEv,_ZThn32_N9GG33222133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33222133barEv,_ZTv0_n16_N9GG33222133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33222133barEv,_ZThn24_N9GG33222133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33222133barEv,_ZThn16_N9GG33222133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33222133fooEv,_ZTv0_n12_N9GG33222133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33222133fooEv,_ZThn24_N9GG33222133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33222133fooEv,_ZThn16_N9GG33222133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33222133barEv,_ZTv0_n20_N9GG33222133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33222133barEv,_ZThn8_N9GG33222133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3322213 = { "GG3322213", // class name
+ bases_GG3322213, 6,
+ &(vtc_GG3322213[0]), // expected_vtbl_contents
+ &(vtt_GG3322213[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3322213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3322213),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3322213),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names970,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3322222 : virtual EE332 , virtual FF222 {
+ int pg;
+ virtual void bar(); // _ZN9GG33222223barEv
+ ~GG3322222(); // tgen
+ GG3322222(); // tgen
+};
+//SIG(1 GG3322222) C1{ VBC2{ VBC3{ v2 v1 Fi} VBC4{ v3 v1 Fi} v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+void GG3322222 ::bar(){vfunc_called(this, "_ZN9GG33222223barEv");}
+GG3322222 ::~GG3322222(){ note_dtor("GG3322222", this);} // tgen
+GG3322222 ::GG3322222(){ note_ctor("GG3322222", this);} // tgen
+
+static void Test_GG3322222()
+{
+ extern Class_Descriptor cd_GG3322222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3322222, buf);
+ GG3322222 *dp, &lv = *(dp=new (buf) GG3322222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3322222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3322222)");
+ check_base_class_offset(lv, (AA3*)(EE332*), ABISELECT(32,16), "GG3322222");
+ check_base_class_offset(lv, (BB3*)(EE332*), ABISELECT(48,24), "GG3322222");
+ check_base_class_offset(lv, (EE332*), ABISELECT(16,8), "GG3322222");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(80,40), "GG3322222");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(96,48), "GG3322222");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG3322222");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3322222.pg");
+ test_class_info(&lv, &cd_GG3322222);
+ dp->~GG3322222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3322222(Test_GG3322222, "GG3322222", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3322222C1Ev();
+extern void _ZN9GG3322222D1Ev();
+Name_Map name_map_GG3322222[] = {
+ NSPAIR(_ZN9GG3322222C1Ev),
+ NSPAIR(_ZN9GG3322222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE332;
+extern VTBL_ENTRY _ZTI5EE332[];
+extern VTBL_ENTRY _ZTV5EE332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE332[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG3322222[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE332, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 37, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3322222[];
+extern void _ZN9GG33222223barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33222223barEv,_ZTv0_n20_N9GG33222223barEv)();
+extern void ABISELECT(_ZThn16_N9GG33222223barEv,_ZThn8_N9GG33222223barEv)() __attribute__((weak));
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N9GG33222223barEv,_ZTv0_n16_N9GG33222223barEv)();
+extern void ABISELECT(_ZThn32_N9GG33222223barEv,_ZThn16_N9GG33222223barEv)() __attribute__((weak));
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N9GG33222223barEv,_ZTv0_n16_N9GG33222223barEv)();
+extern void ABISELECT(_ZThn48_N9GG33222223barEv,_ZThn24_N9GG33222223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33222223barEv,_ZTv0_n20_N9GG33222223barEv)();
+extern void ABISELECT(_ZThn64_N9GG33222223barEv,_ZThn32_N9GG33222223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33222223barEv,_ZTv0_n12_N9GG33222223barEv)();
+extern void ABISELECT(_ZThn80_N9GG33222223barEv,_ZThn40_N9GG33222223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33222223barEv,_ZTv0_n12_N9GG33222223barEv)();
+extern void ABISELECT(_ZThn96_N9GG33222223barEv,_ZThn48_N9GG33222223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3322222[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3322222[0]),
+ (VTBL_ENTRY)&_ZN9GG33222223barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3322222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33222223barEv,_ZTv0_n20_N9GG33222223barEv),
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3322222[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33222223barEv,_ZTv0_n16_N9GG33222223barEv),
+ ABISELECT(-48,-24),
+ 0,
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3322222[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33222223barEv,_ZTv0_n16_N9GG33222223barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3322222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33222223barEv,_ZTv0_n20_N9GG33222223barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3322222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33222223barEv,_ZTv0_n12_N9GG33222223barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3322222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33222223barEv,_ZTv0_n12_N9GG33222223barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3322222[];
+extern void _ZN5EE3323barEv();
+static VTBL_ENTRY _tg__ZTV5EE332__9GG3322222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN5EE3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE332__9GG3322222[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE332__9GG3322222[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG3322222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG3322222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG3322222[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG3322222[] = {
+ {&(_ZTV9GG3322222[8]), 8,41},
+ {&(_ZTV9GG3322222[14]), 14,41},
+ {&(_ZTV9GG3322222[19]), 19,41},
+ {&(_ZTV9GG3322222[25]), 25,41},
+ {&(_ZTV9GG3322222[32]), 32,41},
+ {&(_ZTV9GG3322222[36]), 36,41},
+ {&(_ZTV9GG3322222[40]), 40,41},
+ {&(_tg__ZTV5EE332__9GG3322222[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE332__9GG3322222[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE332__9GG3322222[4]), 4,6},
+ {&(_tg__ZTV5FF222__9GG3322222[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG3322222[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG3322222[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3322222[];
+extern VTBL_ENTRY _ZTV9GG3322222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3322222[];
+static VTBL_ENTRY alt_thunk_names971[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33222223barEv,_ZTv0_n12_N9GG33222223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG33222223barEv,_ZThn48_N9GG33222223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33222223barEv,_ZThn40_N9GG33222223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33222223barEv,_ZTv0_n16_N9GG33222223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33222223barEv,_ZThn24_N9GG33222223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33222223barEv,_ZThn16_N9GG33222223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33222223barEv,_ZTv0_n20_N9GG33222223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33222223barEv,_ZThn32_N9GG33222223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33222223barEv,_ZThn8_N9GG33222223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3322222 = { "GG3322222", // class name
+ bases_GG3322222, 6,
+ &(vtc_GG3322222[0]), // expected_vtbl_contents
+ &(vtt_GG3322222[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3322222),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3322222),41, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3322222),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names971,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3322223 : virtual EE332 , virtual FF222 {
+ int pg;
+ virtual void foo(); // _ZN9GG33222233fooEv
+ virtual void bar(); // _ZN9GG33222233barEv
+ ~GG3322223(); // tgen
+ GG3322223(); // tgen
+};
+//SIG(1 GG3322223) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3322223 ::foo(){vfunc_called(this, "_ZN9GG33222233fooEv");}
+void GG3322223 ::bar(){vfunc_called(this, "_ZN9GG33222233barEv");}
+GG3322223 ::~GG3322223(){ note_dtor("GG3322223", this);} // tgen
+GG3322223 ::GG3322223(){ note_ctor("GG3322223", this);} // tgen
+
+static void Test_GG3322223()
+{
+ extern Class_Descriptor cd_GG3322223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3322223, buf);
+ GG3322223 *dp, &lv = *(dp=new (buf) GG3322223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3322223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3322223)");
+ check_base_class_offset(lv, (AA3*)(EE332*), ABISELECT(32,16), "GG3322223");
+ check_base_class_offset(lv, (BB3*)(EE332*), ABISELECT(48,24), "GG3322223");
+ check_base_class_offset(lv, (EE332*), ABISELECT(16,8), "GG3322223");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(80,40), "GG3322223");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(96,48), "GG3322223");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG3322223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3322223.pg");
+ test_class_info(&lv, &cd_GG3322223);
+ dp->~GG3322223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3322223(Test_GG3322223, "GG3322223", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3322223C1Ev();
+extern void _ZN9GG3322223D1Ev();
+Name_Map name_map_GG3322223[] = {
+ NSPAIR(_ZN9GG3322223C1Ev),
+ NSPAIR(_ZN9GG3322223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE332;
+extern VTBL_ENTRY _ZTI5EE332[];
+extern VTBL_ENTRY _ZTV5EE332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE332[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG3322223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE332, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 34, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3322223[];
+extern void _ZN9GG33222233fooEv();
+extern void _ZN9GG33222233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33222233barEv,_ZTv0_n20_N9GG33222233barEv)();
+extern void ABISELECT(_ZThn16_N9GG33222233barEv,_ZThn8_N9GG33222233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33222233fooEv,_ZTv0_n12_N9GG33222233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33222233fooEv,_ZThn16_N9GG33222233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33222233barEv,_ZTv0_n16_N9GG33222233barEv)();
+extern void ABISELECT(_ZThn32_N9GG33222233barEv,_ZThn16_N9GG33222233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33222233fooEv,_ZTv0_n12_N9GG33222233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33222233fooEv,_ZThn24_N9GG33222233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33222233barEv,_ZTv0_n16_N9GG33222233barEv)();
+extern void ABISELECT(_ZThn48_N9GG33222233barEv,_ZThn24_N9GG33222233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33222233barEv,_ZTv0_n20_N9GG33222233barEv)();
+extern void ABISELECT(_ZThn64_N9GG33222233barEv,_ZThn32_N9GG33222233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33222233barEv,_ZTv0_n12_N9GG33222233barEv)();
+extern void ABISELECT(_ZThn80_N9GG33222233barEv,_ZThn40_N9GG33222233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33222233barEv,_ZTv0_n12_N9GG33222233barEv)();
+extern void ABISELECT(_ZThn96_N9GG33222233barEv,_ZThn48_N9GG33222233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3322223[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3322223[0]),
+ (VTBL_ENTRY)&_ZN9GG33222233fooEv,
+ (VTBL_ENTRY)&_ZN9GG33222233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3322223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33222233barEv,_ZTv0_n20_N9GG33222233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3322223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33222233fooEv,_ZTv0_n12_N9GG33222233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33222233barEv,_ZTv0_n16_N9GG33222233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3322223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33222233fooEv,_ZTv0_n12_N9GG33222233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33222233barEv,_ZTv0_n16_N9GG33222233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3322223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33222233barEv,_ZTv0_n20_N9GG33222233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3322223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33222233barEv,_ZTv0_n12_N9GG33222233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3322223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33222233barEv,_ZTv0_n12_N9GG33222233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3322223[];
+extern void _ZN5EE3323barEv();
+static VTBL_ENTRY _tg__ZTV5EE332__9GG3322223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN5EE3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE332__9GG3322223[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE332__9GG3322223[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG3322223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG3322223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG3322223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG3322223[] = {
+ {&(_ZTV9GG3322223[8]), 8,42},
+ {&(_ZTV9GG3322223[15]), 15,42},
+ {&(_ZTV9GG3322223[20]), 20,42},
+ {&(_ZTV9GG3322223[26]), 26,42},
+ {&(_ZTV9GG3322223[33]), 33,42},
+ {&(_ZTV9GG3322223[37]), 37,42},
+ {&(_ZTV9GG3322223[41]), 41,42},
+ {&(_tg__ZTV5EE332__9GG3322223[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE332__9GG3322223[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE332__9GG3322223[4]), 4,6},
+ {&(_tg__ZTV5FF222__9GG3322223[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG3322223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG3322223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3322223[];
+extern VTBL_ENTRY _ZTV9GG3322223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3322223[];
+static VTBL_ENTRY alt_thunk_names972[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33222233barEv,_ZTv0_n12_N9GG33222233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG33222233barEv,_ZThn48_N9GG33222233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33222233barEv,_ZThn40_N9GG33222233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33222233barEv,_ZTv0_n16_N9GG33222233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33222233barEv,_ZThn24_N9GG33222233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33222233barEv,_ZThn16_N9GG33222233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33222233fooEv,_ZTv0_n12_N9GG33222233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33222233fooEv,_ZThn24_N9GG33222233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33222233fooEv,_ZThn16_N9GG33222233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33222233barEv,_ZTv0_n20_N9GG33222233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33222233barEv,_ZThn32_N9GG33222233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33222233barEv,_ZThn8_N9GG33222233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3322223 = { "GG3322223", // class name
+ bases_GG3322223, 6,
+ &(vtc_GG3322223[0]), // expected_vtbl_contents
+ &(vtt_GG3322223[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3322223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3322223),42, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3322223),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names972,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3322233 : virtual EE332 , virtual FF223 {
+ int pg;
+ virtual void foo(); // _ZN9GG33222333fooEv
+ virtual void bar(); // _ZN9GG33222333barEv
+ ~GG3322233(); // tgen
+ GG3322233(); // tgen
+};
+//SIG(1 GG3322233) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3322233 ::foo(){vfunc_called(this, "_ZN9GG33222333fooEv");}
+void GG3322233 ::bar(){vfunc_called(this, "_ZN9GG33222333barEv");}
+GG3322233 ::~GG3322233(){ note_dtor("GG3322233", this);} // tgen
+GG3322233 ::GG3322233(){ note_ctor("GG3322233", this);} // tgen
+
+static void Test_GG3322233()
+{
+ extern Class_Descriptor cd_GG3322233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3322233, buf);
+ GG3322233 *dp, &lv = *(dp=new (buf) GG3322233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3322233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3322233)");
+ check_base_class_offset(lv, (AA3*)(EE332*), ABISELECT(32,16), "GG3322233");
+ check_base_class_offset(lv, (BB3*)(EE332*), ABISELECT(48,24), "GG3322233");
+ check_base_class_offset(lv, (EE332*), ABISELECT(16,8), "GG3322233");
+ check_base_class_offset(lv, (AA2*)(FF223*), ABISELECT(80,40), "GG3322233");
+ check_base_class_offset(lv, (BB2*)(FF223*), ABISELECT(96,48), "GG3322233");
+ check_base_class_offset(lv, (FF223*), ABISELECT(64,32), "GG3322233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3322233.pg");
+ test_class_info(&lv, &cd_GG3322233);
+ dp->~GG3322233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3322233(Test_GG3322233, "GG3322233", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3322233C1Ev();
+extern void _ZN9GG3322233D1Ev();
+Name_Map name_map_GG3322233[] = {
+ NSPAIR(_ZN9GG3322233C1Ev),
+ NSPAIR(_ZN9GG3322233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE332;
+extern VTBL_ENTRY _ZTI5EE332[];
+extern VTBL_ENTRY _ZTV5EE332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE332[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF223;
+extern VTBL_ENTRY _ZTI5FF223[];
+extern VTBL_ENTRY _ZTV5FF223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF223[];
+static Base_Class bases_GG3322233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE332, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 40, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF223, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3322233[];
+extern void _ZN9GG33222333fooEv();
+extern void _ZN9GG33222333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33222333barEv,_ZTv0_n20_N9GG33222333barEv)();
+extern void ABISELECT(_ZThn16_N9GG33222333barEv,_ZThn8_N9GG33222333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33222333fooEv,_ZTv0_n12_N9GG33222333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33222333fooEv,_ZThn16_N9GG33222333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33222333barEv,_ZTv0_n16_N9GG33222333barEv)();
+extern void ABISELECT(_ZThn32_N9GG33222333barEv,_ZThn16_N9GG33222333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33222333fooEv,_ZTv0_n12_N9GG33222333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33222333fooEv,_ZThn24_N9GG33222333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33222333barEv,_ZTv0_n16_N9GG33222333barEv)();
+extern void ABISELECT(_ZThn48_N9GG33222333barEv,_ZThn24_N9GG33222333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33222333fooEv,_ZTv0_n20_N9GG33222333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33222333fooEv,_ZThn32_N9GG33222333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33222333barEv,_ZTv0_n24_N9GG33222333barEv)();
+extern void ABISELECT(_ZThn64_N9GG33222333barEv,_ZThn32_N9GG33222333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33222333barEv,_ZTv0_n12_N9GG33222333barEv)();
+extern void ABISELECT(_ZThn80_N9GG33222333barEv,_ZThn40_N9GG33222333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33222333barEv,_ZTv0_n12_N9GG33222333barEv)();
+extern void ABISELECT(_ZThn96_N9GG33222333barEv,_ZThn48_N9GG33222333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3322233[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3322233[0]),
+ (VTBL_ENTRY)&_ZN9GG33222333fooEv,
+ (VTBL_ENTRY)&_ZN9GG33222333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3322233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33222333barEv,_ZTv0_n20_N9GG33222333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3322233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33222333fooEv,_ZTv0_n12_N9GG33222333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33222333barEv,_ZTv0_n16_N9GG33222333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3322233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33222333fooEv,_ZTv0_n12_N9GG33222333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33222333barEv,_ZTv0_n16_N9GG33222333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3322233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33222333fooEv,_ZTv0_n20_N9GG33222333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33222333barEv,_ZTv0_n24_N9GG33222333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3322233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33222333barEv,_ZTv0_n12_N9GG33222333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3322233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33222333barEv,_ZTv0_n12_N9GG33222333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3322233[];
+extern void _ZN5EE3323barEv();
+static VTBL_ENTRY _tg__ZTV5EE332__9GG3322233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN5EE3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE332__9GG3322233[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE332__9GG3322233[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN5FF2233fooEv();
+extern void _ZN5FF2233barEv();
+static VTBL_ENTRY _tg__ZTV5FF223__9GG3322233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&_ZN5FF2233fooEv,
+ (VTBL_ENTRY)&_ZN5FF2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+extern void ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF223__9GG3322233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+extern void ABISELECT(_ZThn32_N5FF2233barEv,_ZThn16_N5FF2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF223__9GG3322233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+static VTT_ENTRY vtt_GG3322233[] = {
+ {&(_ZTV9GG3322233[8]), 8,44},
+ {&(_ZTV9GG3322233[15]), 15,44},
+ {&(_ZTV9GG3322233[20]), 20,44},
+ {&(_ZTV9GG3322233[26]), 26,44},
+ {&(_ZTV9GG3322233[34]), 34,44},
+ {&(_ZTV9GG3322233[39]), 39,44},
+ {&(_ZTV9GG3322233[43]), 43,44},
+ {&(_tg__ZTV5EE332__9GG3322233[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE332__9GG3322233[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE332__9GG3322233[4]), 4,6},
+ {&(_tg__ZTV5FF223__9GG3322233[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF223__9GG3322233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF223__9GG3322233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3322233[];
+extern VTBL_ENTRY _ZTV9GG3322233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3322233[];
+static VTBL_ENTRY alt_thunk_names973[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2233barEv,_ZThn16_N5FF2233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33222333barEv,_ZTv0_n12_N9GG33222333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG33222333barEv,_ZThn48_N9GG33222333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33222333barEv,_ZThn40_N9GG33222333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG33222333barEv,_ZTv0_n24_N9GG33222333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33222333barEv,_ZThn32_N9GG33222333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33222333fooEv,_ZTv0_n20_N9GG33222333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33222333fooEv,_ZThn32_N9GG33222333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33222333barEv,_ZTv0_n16_N9GG33222333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33222333barEv,_ZThn24_N9GG33222333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33222333barEv,_ZThn16_N9GG33222333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33222333fooEv,_ZTv0_n12_N9GG33222333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33222333fooEv,_ZThn24_N9GG33222333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33222333fooEv,_ZThn16_N9GG33222333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33222333barEv,_ZTv0_n20_N9GG33222333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33222333barEv,_ZThn8_N9GG33222333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3322233 = { "GG3322233", // class name
+ bases_GG3322233, 6,
+ &(vtc_GG3322233[0]), // expected_vtbl_contents
+ &(vtt_GG3322233[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3322233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3322233),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3322233),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names973,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3322313 : virtual EE332 , virtual FF231 {
+ int pg;
+ virtual void foo(); // _ZN9GG33223133fooEv
+ virtual void bar(); // _ZN9GG33223133barEv
+ ~GG3322313(); // tgen
+ GG3322313(); // tgen
+};
+//SIG(1 GG3322313) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG3322313 ::foo(){vfunc_called(this, "_ZN9GG33223133fooEv");}
+void GG3322313 ::bar(){vfunc_called(this, "_ZN9GG33223133barEv");}
+GG3322313 ::~GG3322313(){ note_dtor("GG3322313", this);} // tgen
+GG3322313 ::GG3322313(){ note_ctor("GG3322313", this);} // tgen
+
+static void Test_GG3322313()
+{
+ extern Class_Descriptor cd_GG3322313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3322313, buf);
+ GG3322313 *dp, &lv = *(dp=new (buf) GG3322313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3322313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3322313)");
+ check_base_class_offset(lv, (AA3*)(EE332*), ABISELECT(32,16), "GG3322313");
+ check_base_class_offset(lv, (BB3*)(EE332*), ABISELECT(48,24), "GG3322313");
+ check_base_class_offset(lv, (BB3*)(FF231*), ABISELECT(48,24), "GG3322313");
+ check_base_class_offset(lv, (EE332*), ABISELECT(16,8), "GG3322313");
+ check_base_class_offset(lv, (AA2*)(FF231*), ABISELECT(80,40), "GG3322313");
+ check_base_class_offset(lv, (FF231*), ABISELECT(64,32), "GG3322313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3322313.pg");
+ test_class_info(&lv, &cd_GG3322313);
+ dp->~GG3322313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3322313(Test_GG3322313, "GG3322313", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3322313C1Ev();
+extern void _ZN9GG3322313D1Ev();
+Name_Map name_map_GG3322313[] = {
+ NSPAIR(_ZN9GG3322313C1Ev),
+ NSPAIR(_ZN9GG3322313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE332;
+extern VTBL_ENTRY _ZTI5EE332[];
+extern VTBL_ENTRY _ZTV5EE332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE332[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF231;
+extern VTBL_ENTRY _ZTI5FF231[];
+extern VTBL_ENTRY _ZTV5FF231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF231[];
+static Base_Class bases_GG3322313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE332, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF231, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3322313[];
+extern void _ZN9GG33223133fooEv();
+extern void _ZN9GG33223133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33223133barEv,_ZTv0_n20_N9GG33223133barEv)();
+extern void ABISELECT(_ZThn16_N9GG33223133barEv,_ZThn8_N9GG33223133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33223133fooEv,_ZTv0_n12_N9GG33223133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33223133fooEv,_ZThn16_N9GG33223133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33223133barEv,_ZTv0_n16_N9GG33223133barEv)();
+extern void ABISELECT(_ZThn32_N9GG33223133barEv,_ZThn16_N9GG33223133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33223133fooEv,_ZTv0_n12_N9GG33223133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33223133fooEv,_ZThn24_N9GG33223133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33223133barEv,_ZTv0_n16_N9GG33223133barEv)();
+extern void ABISELECT(_ZThn48_N9GG33223133barEv,_ZThn24_N9GG33223133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33223133fooEv,_ZTv0_n20_N9GG33223133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33223133fooEv,_ZThn32_N9GG33223133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33223133barEv,_ZTv0_n12_N9GG33223133barEv)();
+extern void ABISELECT(_ZThn80_N9GG33223133barEv,_ZThn40_N9GG33223133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3322313[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3322313[0]),
+ (VTBL_ENTRY)&_ZN9GG33223133fooEv,
+ (VTBL_ENTRY)&_ZN9GG33223133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3322313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33223133barEv,_ZTv0_n20_N9GG33223133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3322313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33223133fooEv,_ZTv0_n12_N9GG33223133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33223133barEv,_ZTv0_n16_N9GG33223133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3322313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33223133fooEv,_ZTv0_n12_N9GG33223133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33223133barEv,_ZTv0_n16_N9GG33223133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3322313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33223133fooEv,_ZTv0_n20_N9GG33223133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3322313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33223133barEv,_ZTv0_n12_N9GG33223133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3322313[];
+extern void _ZN5EE3323barEv();
+static VTBL_ENTRY _tg__ZTV5EE332__9GG3322313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN5EE3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE332__9GG3322313[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE332__9GG3322313[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN5FF2313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF231__9GG3322313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN5FF2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF231__9GG3322313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv)();
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF231__9GG3322313[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG3322313[] = {
+ {&(_ZTV9GG3322313[7]), 7,37},
+ {&(_ZTV9GG3322313[14]), 14,37},
+ {&(_ZTV9GG3322313[19]), 19,37},
+ {&(_ZTV9GG3322313[25]), 25,37},
+ {&(_ZTV9GG3322313[32]), 32,37},
+ {&(_ZTV9GG3322313[36]), 36,37},
+ {&(_tg__ZTV5EE332__9GG3322313[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE332__9GG3322313[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE332__9GG3322313[4]), 4,6},
+ {&(_tg__ZTV5FF231__9GG3322313[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF231__9GG3322313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF231__9GG3322313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3322313[];
+extern VTBL_ENTRY _ZTV9GG3322313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3322313[];
+static VTBL_ENTRY alt_thunk_names974[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33223133barEv,_ZTv0_n12_N9GG33223133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33223133barEv,_ZThn40_N9GG33223133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33223133fooEv,_ZTv0_n20_N9GG33223133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33223133fooEv,_ZThn32_N9GG33223133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33223133barEv,_ZTv0_n16_N9GG33223133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33223133barEv,_ZThn24_N9GG33223133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33223133barEv,_ZThn16_N9GG33223133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33223133fooEv,_ZTv0_n12_N9GG33223133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33223133fooEv,_ZThn24_N9GG33223133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33223133fooEv,_ZThn16_N9GG33223133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33223133barEv,_ZTv0_n20_N9GG33223133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33223133barEv,_ZThn8_N9GG33223133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3322313 = { "GG3322313", // class name
+ bases_GG3322313, 5,
+ &(vtc_GG3322313[0]), // expected_vtbl_contents
+ &(vtt_GG3322313[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3322313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3322313),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3322313),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names974,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3322323 : virtual EE332 , virtual FF232 {
+ int pg;
+ virtual void foo(); // _ZN9GG33223233fooEv
+ virtual void bar(); // _ZN9GG33223233barEv
+ ~GG3322323(); // tgen
+ GG3322323(); // tgen
+};
+//SIG(1 GG3322323) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG3322323 ::foo(){vfunc_called(this, "_ZN9GG33223233fooEv");}
+void GG3322323 ::bar(){vfunc_called(this, "_ZN9GG33223233barEv");}
+GG3322323 ::~GG3322323(){ note_dtor("GG3322323", this);} // tgen
+GG3322323 ::GG3322323(){ note_ctor("GG3322323", this);} // tgen
+
+static void Test_GG3322323()
+{
+ extern Class_Descriptor cd_GG3322323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3322323, buf);
+ GG3322323 *dp, &lv = *(dp=new (buf) GG3322323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3322323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3322323)");
+ check_base_class_offset(lv, (AA3*)(EE332*), ABISELECT(32,16), "GG3322323");
+ check_base_class_offset(lv, (BB3*)(EE332*), ABISELECT(48,24), "GG3322323");
+ check_base_class_offset(lv, (BB3*)(FF232*), ABISELECT(48,24), "GG3322323");
+ check_base_class_offset(lv, (EE332*), ABISELECT(16,8), "GG3322323");
+ check_base_class_offset(lv, (AA2*)(FF232*), ABISELECT(80,40), "GG3322323");
+ check_base_class_offset(lv, (FF232*), ABISELECT(64,32), "GG3322323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3322323.pg");
+ test_class_info(&lv, &cd_GG3322323);
+ dp->~GG3322323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3322323(Test_GG3322323, "GG3322323", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3322323C1Ev();
+extern void _ZN9GG3322323D1Ev();
+Name_Map name_map_GG3322323[] = {
+ NSPAIR(_ZN9GG3322323C1Ev),
+ NSPAIR(_ZN9GG3322323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE332;
+extern VTBL_ENTRY _ZTI5EE332[];
+extern VTBL_ENTRY _ZTV5EE332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE332[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF232;
+extern VTBL_ENTRY _ZTI5FF232[];
+extern VTBL_ENTRY _ZTV5FF232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF232[];
+static Base_Class bases_GG3322323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE332, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF232, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3322323[];
+extern void _ZN9GG33223233fooEv();
+extern void _ZN9GG33223233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33223233barEv,_ZTv0_n20_N9GG33223233barEv)();
+extern void ABISELECT(_ZThn16_N9GG33223233barEv,_ZThn8_N9GG33223233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33223233fooEv,_ZTv0_n12_N9GG33223233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33223233fooEv,_ZThn16_N9GG33223233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33223233barEv,_ZTv0_n16_N9GG33223233barEv)();
+extern void ABISELECT(_ZThn32_N9GG33223233barEv,_ZThn16_N9GG33223233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33223233fooEv,_ZTv0_n12_N9GG33223233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33223233fooEv,_ZThn24_N9GG33223233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33223233barEv,_ZTv0_n16_N9GG33223233barEv)();
+extern void ABISELECT(_ZThn48_N9GG33223233barEv,_ZThn24_N9GG33223233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33223233barEv,_ZTv0_n20_N9GG33223233barEv)();
+extern void ABISELECT(_ZThn64_N9GG33223233barEv,_ZThn32_N9GG33223233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33223233barEv,_ZTv0_n12_N9GG33223233barEv)();
+extern void ABISELECT(_ZThn80_N9GG33223233barEv,_ZThn40_N9GG33223233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3322323[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3322323[0]),
+ (VTBL_ENTRY)&_ZN9GG33223233fooEv,
+ (VTBL_ENTRY)&_ZN9GG33223233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3322323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33223233barEv,_ZTv0_n20_N9GG33223233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3322323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33223233fooEv,_ZTv0_n12_N9GG33223233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33223233barEv,_ZTv0_n16_N9GG33223233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3322323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33223233fooEv,_ZTv0_n12_N9GG33223233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33223233barEv,_ZTv0_n16_N9GG33223233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3322323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33223233barEv,_ZTv0_n20_N9GG33223233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3322323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33223233barEv,_ZTv0_n12_N9GG33223233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3322323[];
+extern void _ZN5EE3323barEv();
+static VTBL_ENTRY _tg__ZTV5EE332__9GG3322323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN5EE3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE332__9GG3322323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE332__9GG3322323[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN5FF2323barEv();
+static VTBL_ENTRY _tg__ZTV5FF232__9GG3322323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN5FF2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv)();
+extern void ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF232__9GG3322323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF232__9GG3322323[] = {
+ ABISELECT(16,8),
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv),
+};
+static VTT_ENTRY vtt_GG3322323[] = {
+ {&(_ZTV9GG3322323[7]), 7,37},
+ {&(_ZTV9GG3322323[14]), 14,37},
+ {&(_ZTV9GG3322323[19]), 19,37},
+ {&(_ZTV9GG3322323[25]), 25,37},
+ {&(_ZTV9GG3322323[32]), 32,37},
+ {&(_ZTV9GG3322323[36]), 36,37},
+ {&(_tg__ZTV5EE332__9GG3322323[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE332__9GG3322323[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE332__9GG3322323[4]), 4,6},
+ {&(_tg__ZTV5FF232__9GG3322323[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF232__9GG3322323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF232__9GG3322323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3322323[];
+extern VTBL_ENTRY _ZTV9GG3322323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3322323[];
+static VTBL_ENTRY alt_thunk_names975[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33223233barEv,_ZTv0_n12_N9GG33223233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33223233barEv,_ZThn40_N9GG33223233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33223233barEv,_ZTv0_n16_N9GG33223233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33223233barEv,_ZThn24_N9GG33223233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33223233barEv,_ZThn16_N9GG33223233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33223233fooEv,_ZTv0_n12_N9GG33223233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33223233fooEv,_ZThn24_N9GG33223233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33223233fooEv,_ZThn16_N9GG33223233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33223233barEv,_ZTv0_n20_N9GG33223233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33223233barEv,_ZThn32_N9GG33223233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33223233barEv,_ZThn8_N9GG33223233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3322323 = { "GG3322323", // class name
+ bases_GG3322323, 5,
+ &(vtc_GG3322323[0]), // expected_vtbl_contents
+ &(vtt_GG3322323[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3322323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3322323),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3322323),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names975,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3322333 : virtual EE332 , virtual FF233 {
+ int pg;
+ virtual void foo(); // _ZN9GG33223333fooEv
+ virtual void bar(); // _ZN9GG33223333barEv
+ ~GG3322333(); // tgen
+ GG3322333(); // tgen
+};
+//SIG(1 GG3322333) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3322333 ::foo(){vfunc_called(this, "_ZN9GG33223333fooEv");}
+void GG3322333 ::bar(){vfunc_called(this, "_ZN9GG33223333barEv");}
+GG3322333 ::~GG3322333(){ note_dtor("GG3322333", this);} // tgen
+GG3322333 ::GG3322333(){ note_ctor("GG3322333", this);} // tgen
+
+static void Test_GG3322333()
+{
+ extern Class_Descriptor cd_GG3322333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3322333, buf);
+ GG3322333 *dp, &lv = *(dp=new (buf) GG3322333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3322333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3322333)");
+ check_base_class_offset(lv, (AA3*)(EE332*), ABISELECT(32,16), "GG3322333");
+ check_base_class_offset(lv, (BB3*)(EE332*), ABISELECT(48,24), "GG3322333");
+ check_base_class_offset(lv, (BB3*)(FF233*), ABISELECT(48,24), "GG3322333");
+ check_base_class_offset(lv, (EE332*), ABISELECT(16,8), "GG3322333");
+ check_base_class_offset(lv, (AA2*)(FF233*), ABISELECT(80,40), "GG3322333");
+ check_base_class_offset(lv, (FF233*), ABISELECT(64,32), "GG3322333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3322333.pg");
+ test_class_info(&lv, &cd_GG3322333);
+ dp->~GG3322333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3322333(Test_GG3322333, "GG3322333", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3322333C1Ev();
+extern void _ZN9GG3322333D1Ev();
+Name_Map name_map_GG3322333[] = {
+ NSPAIR(_ZN9GG3322333C1Ev),
+ NSPAIR(_ZN9GG3322333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE332;
+extern VTBL_ENTRY _ZTI5EE332[];
+extern VTBL_ENTRY _ZTV5EE332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE332[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF233;
+extern VTBL_ENTRY _ZTI5FF233[];
+extern VTBL_ENTRY _ZTV5FF233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF233[];
+static Base_Class bases_GG3322333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE332, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF233, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3322333[];
+extern void _ZN9GG33223333fooEv();
+extern void _ZN9GG33223333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33223333barEv,_ZTv0_n20_N9GG33223333barEv)();
+extern void ABISELECT(_ZThn16_N9GG33223333barEv,_ZThn8_N9GG33223333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33223333fooEv,_ZTv0_n12_N9GG33223333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33223333fooEv,_ZThn16_N9GG33223333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33223333barEv,_ZTv0_n16_N9GG33223333barEv)();
+extern void ABISELECT(_ZThn32_N9GG33223333barEv,_ZThn16_N9GG33223333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33223333fooEv,_ZTv0_n12_N9GG33223333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33223333fooEv,_ZThn24_N9GG33223333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33223333barEv,_ZTv0_n16_N9GG33223333barEv)();
+extern void ABISELECT(_ZThn48_N9GG33223333barEv,_ZThn24_N9GG33223333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33223333fooEv,_ZTv0_n20_N9GG33223333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33223333fooEv,_ZThn32_N9GG33223333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33223333barEv,_ZTv0_n24_N9GG33223333barEv)();
+extern void ABISELECT(_ZThn64_N9GG33223333barEv,_ZThn32_N9GG33223333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33223333barEv,_ZTv0_n12_N9GG33223333barEv)();
+extern void ABISELECT(_ZThn80_N9GG33223333barEv,_ZThn40_N9GG33223333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3322333[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3322333[0]),
+ (VTBL_ENTRY)&_ZN9GG33223333fooEv,
+ (VTBL_ENTRY)&_ZN9GG33223333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3322333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33223333barEv,_ZTv0_n20_N9GG33223333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3322333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33223333fooEv,_ZTv0_n12_N9GG33223333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33223333barEv,_ZTv0_n16_N9GG33223333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3322333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33223333fooEv,_ZTv0_n12_N9GG33223333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33223333barEv,_ZTv0_n16_N9GG33223333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3322333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33223333fooEv,_ZTv0_n20_N9GG33223333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33223333barEv,_ZTv0_n24_N9GG33223333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3322333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33223333barEv,_ZTv0_n12_N9GG33223333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3322333[];
+extern void _ZN5EE3323barEv();
+static VTBL_ENTRY _tg__ZTV5EE332__9GG3322333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN5EE3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE332__9GG3322333[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE332__9GG3322333[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN5FF2333fooEv();
+extern void _ZN5FF2333barEv();
+static VTBL_ENTRY _tg__ZTV5FF233__9GG3322333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&_ZN5FF2333fooEv,
+ (VTBL_ENTRY)&_ZN5FF2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv)();
+extern void ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF233__9GG3322333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF233__9GG3322333[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv),
+};
+static VTT_ENTRY vtt_GG3322333[] = {
+ {&(_ZTV9GG3322333[7]), 7,39},
+ {&(_ZTV9GG3322333[14]), 14,39},
+ {&(_ZTV9GG3322333[19]), 19,39},
+ {&(_ZTV9GG3322333[25]), 25,39},
+ {&(_ZTV9GG3322333[33]), 33,39},
+ {&(_ZTV9GG3322333[38]), 38,39},
+ {&(_tg__ZTV5EE332__9GG3322333[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE332__9GG3322333[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE332__9GG3322333[4]), 4,6},
+ {&(_tg__ZTV5FF233__9GG3322333[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF233__9GG3322333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF233__9GG3322333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3322333[];
+extern VTBL_ENTRY _ZTV9GG3322333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3322333[];
+static VTBL_ENTRY alt_thunk_names976[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33223333barEv,_ZTv0_n12_N9GG33223333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33223333barEv,_ZThn40_N9GG33223333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG33223333barEv,_ZTv0_n24_N9GG33223333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33223333barEv,_ZThn32_N9GG33223333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33223333fooEv,_ZTv0_n20_N9GG33223333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33223333fooEv,_ZThn32_N9GG33223333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33223333barEv,_ZTv0_n16_N9GG33223333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33223333barEv,_ZThn24_N9GG33223333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33223333barEv,_ZThn16_N9GG33223333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33223333fooEv,_ZTv0_n12_N9GG33223333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33223333fooEv,_ZThn24_N9GG33223333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33223333fooEv,_ZThn16_N9GG33223333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33223333barEv,_ZTv0_n20_N9GG33223333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33223333barEv,_ZThn8_N9GG33223333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3322333 = { "GG3322333", // class name
+ bases_GG3322333, 5,
+ &(vtc_GG3322333[0]), // expected_vtbl_contents
+ &(vtt_GG3322333[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3322333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3322333),39, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3322333),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names976,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3323113 : virtual EE332 , virtual FF311 {
+ int pg;
+ virtual void foo(); // _ZN9GG33231133fooEv
+ virtual void bar(); // _ZN9GG33231133barEv
+ ~GG3323113(); // tgen
+ GG3323113(); // tgen
+};
+//SIG(1 GG3323113) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3323113 ::foo(){vfunc_called(this, "_ZN9GG33231133fooEv");}
+void GG3323113 ::bar(){vfunc_called(this, "_ZN9GG33231133barEv");}
+GG3323113 ::~GG3323113(){ note_dtor("GG3323113", this);} // tgen
+GG3323113 ::GG3323113(){ note_ctor("GG3323113", this);} // tgen
+
+static void Test_GG3323113()
+{
+ extern Class_Descriptor cd_GG3323113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3323113, buf);
+ GG3323113 *dp, &lv = *(dp=new (buf) GG3323113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3323113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3323113)");
+ check_base_class_offset(lv, (AA3*)(EE332*), ABISELECT(32,16), "GG3323113");
+ check_base_class_offset(lv, (AA3*)(FF311*), ABISELECT(32,16), "GG3323113");
+ check_base_class_offset(lv, (BB3*)(EE332*), ABISELECT(48,24), "GG3323113");
+ check_base_class_offset(lv, (EE332*), ABISELECT(16,8), "GG3323113");
+ check_base_class_offset(lv, (BB1*)(FF311*), ABISELECT(80,40), "GG3323113");
+ check_base_class_offset(lv, (FF311*), ABISELECT(64,32), "GG3323113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3323113.pg");
+ test_class_info(&lv, &cd_GG3323113);
+ dp->~GG3323113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3323113(Test_GG3323113, "GG3323113", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3323113C1Ev();
+extern void _ZN9GG3323113D1Ev();
+Name_Map name_map_GG3323113[] = {
+ NSPAIR(_ZN9GG3323113C1Ev),
+ NSPAIR(_ZN9GG3323113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE332;
+extern VTBL_ENTRY _ZTI5EE332[];
+extern VTBL_ENTRY _ZTV5EE332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE332[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF311;
+extern VTBL_ENTRY _ZTI5FF311[];
+extern VTBL_ENTRY _ZTV5FF311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF311[];
+static Base_Class bases_GG3323113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE332, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF311, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3323113[];
+extern void _ZN9GG33231133fooEv();
+extern void _ZN9GG33231133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33231133barEv,_ZTv0_n20_N9GG33231133barEv)();
+extern void ABISELECT(_ZThn16_N9GG33231133barEv,_ZThn8_N9GG33231133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33231133fooEv,_ZTv0_n12_N9GG33231133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33231133fooEv,_ZThn16_N9GG33231133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33231133barEv,_ZTv0_n16_N9GG33231133barEv)();
+extern void ABISELECT(_ZThn32_N9GG33231133barEv,_ZThn16_N9GG33231133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33231133fooEv,_ZTv0_n12_N9GG33231133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33231133fooEv,_ZThn24_N9GG33231133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33231133barEv,_ZTv0_n16_N9GG33231133barEv)();
+extern void ABISELECT(_ZThn48_N9GG33231133barEv,_ZThn24_N9GG33231133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33231133fooEv,_ZTv0_n20_N9GG33231133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33231133fooEv,_ZThn32_N9GG33231133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33231133fooEv,_ZTv0_n12_N9GG33231133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG33231133fooEv,_ZThn40_N9GG33231133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3323113[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3323113[0]),
+ (VTBL_ENTRY)&_ZN9GG33231133fooEv,
+ (VTBL_ENTRY)&_ZN9GG33231133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3323113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33231133barEv,_ZTv0_n20_N9GG33231133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3323113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33231133fooEv,_ZTv0_n12_N9GG33231133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33231133barEv,_ZTv0_n16_N9GG33231133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3323113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33231133fooEv,_ZTv0_n12_N9GG33231133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33231133barEv,_ZTv0_n16_N9GG33231133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3323113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33231133fooEv,_ZTv0_n20_N9GG33231133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3323113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33231133fooEv,_ZTv0_n12_N9GG33231133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3323113[];
+extern void _ZN5EE3323barEv();
+static VTBL_ENTRY _tg__ZTV5EE332__9GG3323113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN5EE3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE332__9GG3323113[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE332__9GG3323113[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN5FF3113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF311__9GG3323113[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&_ZN5FF3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF311__9GG3323113[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF311__9GG3323113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+};
+static VTT_ENTRY vtt_GG3323113[] = {
+ {&(_ZTV9GG3323113[7]), 7,37},
+ {&(_ZTV9GG3323113[14]), 14,37},
+ {&(_ZTV9GG3323113[19]), 19,37},
+ {&(_ZTV9GG3323113[25]), 25,37},
+ {&(_ZTV9GG3323113[32]), 32,37},
+ {&(_ZTV9GG3323113[36]), 36,37},
+ {&(_tg__ZTV5EE332__9GG3323113[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE332__9GG3323113[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE332__9GG3323113[4]), 4,6},
+ {&(_tg__ZTV5FF311__9GG3323113[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF311__9GG3323113[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF311__9GG3323113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3323113[];
+extern VTBL_ENTRY _ZTV9GG3323113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3323113[];
+static VTBL_ENTRY alt_thunk_names977[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33231133fooEv,_ZTv0_n20_N9GG33231133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33231133fooEv,_ZThn32_N9GG33231133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33231133barEv,_ZTv0_n16_N9GG33231133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33231133barEv,_ZThn24_N9GG33231133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33231133barEv,_ZThn16_N9GG33231133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33231133fooEv,_ZTv0_n12_N9GG33231133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33231133fooEv,_ZThn40_N9GG33231133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33231133fooEv,_ZThn24_N9GG33231133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33231133fooEv,_ZThn16_N9GG33231133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33231133barEv,_ZTv0_n20_N9GG33231133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33231133barEv,_ZThn8_N9GG33231133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3323113 = { "GG3323113", // class name
+ bases_GG3323113, 5,
+ &(vtc_GG3323113[0]), // expected_vtbl_contents
+ &(vtt_GG3323113[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3323113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3323113),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3323113),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names977,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3323123 : virtual EE332 , virtual FF312 {
+ int pg;
+ virtual void foo(); // _ZN9GG33231233fooEv
+ virtual void bar(); // _ZN9GG33231233barEv
+ ~GG3323123(); // tgen
+ GG3323123(); // tgen
+};
+//SIG(1 GG3323123) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3323123 ::foo(){vfunc_called(this, "_ZN9GG33231233fooEv");}
+void GG3323123 ::bar(){vfunc_called(this, "_ZN9GG33231233barEv");}
+GG3323123 ::~GG3323123(){ note_dtor("GG3323123", this);} // tgen
+GG3323123 ::GG3323123(){ note_ctor("GG3323123", this);} // tgen
+
+static void Test_GG3323123()
+{
+ extern Class_Descriptor cd_GG3323123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3323123, buf);
+ GG3323123 *dp, &lv = *(dp=new (buf) GG3323123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3323123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3323123)");
+ check_base_class_offset(lv, (AA3*)(EE332*), ABISELECT(32,16), "GG3323123");
+ check_base_class_offset(lv, (AA3*)(FF312*), ABISELECT(32,16), "GG3323123");
+ check_base_class_offset(lv, (BB3*)(EE332*), ABISELECT(48,24), "GG3323123");
+ check_base_class_offset(lv, (EE332*), ABISELECT(16,8), "GG3323123");
+ check_base_class_offset(lv, (BB1*)(FF312*), ABISELECT(80,40), "GG3323123");
+ check_base_class_offset(lv, (FF312*), ABISELECT(64,32), "GG3323123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3323123.pg");
+ test_class_info(&lv, &cd_GG3323123);
+ dp->~GG3323123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3323123(Test_GG3323123, "GG3323123", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3323123C1Ev();
+extern void _ZN9GG3323123D1Ev();
+Name_Map name_map_GG3323123[] = {
+ NSPAIR(_ZN9GG3323123C1Ev),
+ NSPAIR(_ZN9GG3323123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE332;
+extern VTBL_ENTRY _ZTI5EE332[];
+extern VTBL_ENTRY _ZTV5EE332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE332[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF312;
+extern VTBL_ENTRY _ZTI5FF312[];
+extern VTBL_ENTRY _ZTV5FF312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF312[];
+static Base_Class bases_GG3323123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE332, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF312, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3323123[];
+extern void _ZN9GG33231233fooEv();
+extern void _ZN9GG33231233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33231233barEv,_ZTv0_n20_N9GG33231233barEv)();
+extern void ABISELECT(_ZThn16_N9GG33231233barEv,_ZThn8_N9GG33231233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33231233fooEv,_ZTv0_n12_N9GG33231233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33231233fooEv,_ZThn16_N9GG33231233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33231233barEv,_ZTv0_n16_N9GG33231233barEv)();
+extern void ABISELECT(_ZThn32_N9GG33231233barEv,_ZThn16_N9GG33231233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33231233fooEv,_ZTv0_n12_N9GG33231233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33231233fooEv,_ZThn24_N9GG33231233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33231233barEv,_ZTv0_n16_N9GG33231233barEv)();
+extern void ABISELECT(_ZThn48_N9GG33231233barEv,_ZThn24_N9GG33231233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33231233barEv,_ZTv0_n20_N9GG33231233barEv)();
+extern void ABISELECT(_ZThn64_N9GG33231233barEv,_ZThn32_N9GG33231233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33231233fooEv,_ZTv0_n12_N9GG33231233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG33231233fooEv,_ZThn40_N9GG33231233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3323123[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3323123[0]),
+ (VTBL_ENTRY)&_ZN9GG33231233fooEv,
+ (VTBL_ENTRY)&_ZN9GG33231233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3323123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33231233barEv,_ZTv0_n20_N9GG33231233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3323123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33231233fooEv,_ZTv0_n12_N9GG33231233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33231233barEv,_ZTv0_n16_N9GG33231233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3323123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33231233fooEv,_ZTv0_n12_N9GG33231233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33231233barEv,_ZTv0_n16_N9GG33231233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3323123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33231233barEv,_ZTv0_n20_N9GG33231233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3323123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33231233fooEv,_ZTv0_n12_N9GG33231233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3323123[];
+extern void _ZN5EE3323barEv();
+static VTBL_ENTRY _tg__ZTV5EE332__9GG3323123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN5EE3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE332__9GG3323123[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE332__9GG3323123[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN5FF3123barEv();
+static VTBL_ENTRY _tg__ZTV5FF312__9GG3323123[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN5FF3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF312__9GG3323123[] = {
+ ABISELECT(32,16),
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF312__9GG3323123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG3323123[] = {
+ {&(_ZTV9GG3323123[7]), 7,37},
+ {&(_ZTV9GG3323123[14]), 14,37},
+ {&(_ZTV9GG3323123[19]), 19,37},
+ {&(_ZTV9GG3323123[25]), 25,37},
+ {&(_ZTV9GG3323123[32]), 32,37},
+ {&(_ZTV9GG3323123[36]), 36,37},
+ {&(_tg__ZTV5EE332__9GG3323123[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE332__9GG3323123[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE332__9GG3323123[4]), 4,6},
+ {&(_tg__ZTV5FF312__9GG3323123[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF312__9GG3323123[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF312__9GG3323123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3323123[];
+extern VTBL_ENTRY _ZTV9GG3323123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3323123[];
+static VTBL_ENTRY alt_thunk_names978[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33231233barEv,_ZTv0_n16_N9GG33231233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33231233barEv,_ZThn24_N9GG33231233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33231233barEv,_ZThn16_N9GG33231233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33231233fooEv,_ZTv0_n12_N9GG33231233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33231233fooEv,_ZThn40_N9GG33231233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33231233fooEv,_ZThn24_N9GG33231233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33231233fooEv,_ZThn16_N9GG33231233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33231233barEv,_ZTv0_n20_N9GG33231233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33231233barEv,_ZThn32_N9GG33231233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33231233barEv,_ZThn8_N9GG33231233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3323123 = { "GG3323123", // class name
+ bases_GG3323123, 5,
+ &(vtc_GG3323123[0]), // expected_vtbl_contents
+ &(vtt_GG3323123[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3323123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3323123),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3323123),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names978,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3323133 : virtual EE332 , virtual FF313 {
+ int pg;
+ virtual void foo(); // _ZN9GG33231333fooEv
+ virtual void bar(); // _ZN9GG33231333barEv
+ ~GG3323133(); // tgen
+ GG3323133(); // tgen
+};
+//SIG(1 GG3323133) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3323133 ::foo(){vfunc_called(this, "_ZN9GG33231333fooEv");}
+void GG3323133 ::bar(){vfunc_called(this, "_ZN9GG33231333barEv");}
+GG3323133 ::~GG3323133(){ note_dtor("GG3323133", this);} // tgen
+GG3323133 ::GG3323133(){ note_ctor("GG3323133", this);} // tgen
+
+static void Test_GG3323133()
+{
+ extern Class_Descriptor cd_GG3323133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3323133, buf);
+ GG3323133 *dp, &lv = *(dp=new (buf) GG3323133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3323133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3323133)");
+ check_base_class_offset(lv, (AA3*)(EE332*), ABISELECT(32,16), "GG3323133");
+ check_base_class_offset(lv, (AA3*)(FF313*), ABISELECT(32,16), "GG3323133");
+ check_base_class_offset(lv, (BB3*)(EE332*), ABISELECT(48,24), "GG3323133");
+ check_base_class_offset(lv, (EE332*), ABISELECT(16,8), "GG3323133");
+ check_base_class_offset(lv, (BB1*)(FF313*), ABISELECT(80,40), "GG3323133");
+ check_base_class_offset(lv, (FF313*), ABISELECT(64,32), "GG3323133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3323133.pg");
+ test_class_info(&lv, &cd_GG3323133);
+ dp->~GG3323133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3323133(Test_GG3323133, "GG3323133", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3323133C1Ev();
+extern void _ZN9GG3323133D1Ev();
+Name_Map name_map_GG3323133[] = {
+ NSPAIR(_ZN9GG3323133C1Ev),
+ NSPAIR(_ZN9GG3323133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE332;
+extern VTBL_ENTRY _ZTI5EE332[];
+extern VTBL_ENTRY _ZTV5EE332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE332[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF313;
+extern VTBL_ENTRY _ZTI5FF313[];
+extern VTBL_ENTRY _ZTV5FF313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF313[];
+static Base_Class bases_GG3323133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE332, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF313, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3323133[];
+extern void _ZN9GG33231333fooEv();
+extern void _ZN9GG33231333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33231333barEv,_ZTv0_n20_N9GG33231333barEv)();
+extern void ABISELECT(_ZThn16_N9GG33231333barEv,_ZThn8_N9GG33231333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33231333fooEv,_ZTv0_n12_N9GG33231333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33231333fooEv,_ZThn16_N9GG33231333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33231333barEv,_ZTv0_n16_N9GG33231333barEv)();
+extern void ABISELECT(_ZThn32_N9GG33231333barEv,_ZThn16_N9GG33231333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33231333fooEv,_ZTv0_n12_N9GG33231333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33231333fooEv,_ZThn24_N9GG33231333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33231333barEv,_ZTv0_n16_N9GG33231333barEv)();
+extern void ABISELECT(_ZThn48_N9GG33231333barEv,_ZThn24_N9GG33231333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33231333fooEv,_ZTv0_n20_N9GG33231333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33231333fooEv,_ZThn32_N9GG33231333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33231333barEv,_ZTv0_n24_N9GG33231333barEv)();
+extern void ABISELECT(_ZThn64_N9GG33231333barEv,_ZThn32_N9GG33231333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33231333fooEv,_ZTv0_n12_N9GG33231333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG33231333fooEv,_ZThn40_N9GG33231333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3323133[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3323133[0]),
+ (VTBL_ENTRY)&_ZN9GG33231333fooEv,
+ (VTBL_ENTRY)&_ZN9GG33231333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3323133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33231333barEv,_ZTv0_n20_N9GG33231333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3323133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33231333fooEv,_ZTv0_n12_N9GG33231333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33231333barEv,_ZTv0_n16_N9GG33231333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3323133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33231333fooEv,_ZTv0_n12_N9GG33231333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33231333barEv,_ZTv0_n16_N9GG33231333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3323133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33231333fooEv,_ZTv0_n20_N9GG33231333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33231333barEv,_ZTv0_n24_N9GG33231333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3323133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33231333fooEv,_ZTv0_n12_N9GG33231333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3323133[];
+extern void _ZN5EE3323barEv();
+static VTBL_ENTRY _tg__ZTV5EE332__9GG3323133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN5EE3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE332__9GG3323133[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE332__9GG3323133[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN5FF3133fooEv();
+extern void _ZN5FF3133barEv();
+static VTBL_ENTRY _tg__ZTV5FF313__9GG3323133[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&_ZN5FF3133fooEv,
+ (VTBL_ENTRY)&_ZN5FF3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF313__9GG3323133[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF313__9GG3323133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+};
+static VTT_ENTRY vtt_GG3323133[] = {
+ {&(_ZTV9GG3323133[7]), 7,39},
+ {&(_ZTV9GG3323133[14]), 14,39},
+ {&(_ZTV9GG3323133[19]), 19,39},
+ {&(_ZTV9GG3323133[25]), 25,39},
+ {&(_ZTV9GG3323133[33]), 33,39},
+ {&(_ZTV9GG3323133[38]), 38,39},
+ {&(_tg__ZTV5EE332__9GG3323133[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE332__9GG3323133[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE332__9GG3323133[4]), 4,6},
+ {&(_tg__ZTV5FF313__9GG3323133[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF313__9GG3323133[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF313__9GG3323133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3323133[];
+extern VTBL_ENTRY _ZTV9GG3323133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3323133[];
+static VTBL_ENTRY alt_thunk_names979[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG33231333barEv,_ZTv0_n24_N9GG33231333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33231333barEv,_ZThn32_N9GG33231333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33231333fooEv,_ZTv0_n20_N9GG33231333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33231333fooEv,_ZThn32_N9GG33231333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33231333barEv,_ZTv0_n16_N9GG33231333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33231333barEv,_ZThn24_N9GG33231333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33231333barEv,_ZThn16_N9GG33231333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33231333fooEv,_ZTv0_n12_N9GG33231333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33231333fooEv,_ZThn40_N9GG33231333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33231333fooEv,_ZThn24_N9GG33231333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33231333fooEv,_ZThn16_N9GG33231333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33231333barEv,_ZTv0_n20_N9GG33231333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33231333barEv,_ZThn8_N9GG33231333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3323133 = { "GG3323133", // class name
+ bases_GG3323133, 5,
+ &(vtc_GG3323133[0]), // expected_vtbl_contents
+ &(vtt_GG3323133[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3323133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3323133),39, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3323133),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names979,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3323213 : virtual EE332 , virtual FF321 {
+ int pg;
+ virtual void foo(); // _ZN9GG33232133fooEv
+ virtual void bar(); // _ZN9GG33232133barEv
+ ~GG3323213(); // tgen
+ GG3323213(); // tgen
+};
+//SIG(1 GG3323213) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3323213 ::foo(){vfunc_called(this, "_ZN9GG33232133fooEv");}
+void GG3323213 ::bar(){vfunc_called(this, "_ZN9GG33232133barEv");}
+GG3323213 ::~GG3323213(){ note_dtor("GG3323213", this);} // tgen
+GG3323213 ::GG3323213(){ note_ctor("GG3323213", this);} // tgen
+
+static void Test_GG3323213()
+{
+ extern Class_Descriptor cd_GG3323213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3323213, buf);
+ GG3323213 *dp, &lv = *(dp=new (buf) GG3323213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3323213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3323213)");
+ check_base_class_offset(lv, (AA3*)(EE332*), ABISELECT(32,16), "GG3323213");
+ check_base_class_offset(lv, (AA3*)(FF321*), ABISELECT(32,16), "GG3323213");
+ check_base_class_offset(lv, (BB3*)(EE332*), ABISELECT(48,24), "GG3323213");
+ check_base_class_offset(lv, (EE332*), ABISELECT(16,8), "GG3323213");
+ check_base_class_offset(lv, (BB2*)(FF321*), ABISELECT(80,40), "GG3323213");
+ check_base_class_offset(lv, (FF321*), ABISELECT(64,32), "GG3323213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3323213.pg");
+ test_class_info(&lv, &cd_GG3323213);
+ dp->~GG3323213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3323213(Test_GG3323213, "GG3323213", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3323213C1Ev();
+extern void _ZN9GG3323213D1Ev();
+Name_Map name_map_GG3323213[] = {
+ NSPAIR(_ZN9GG3323213C1Ev),
+ NSPAIR(_ZN9GG3323213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE332;
+extern VTBL_ENTRY _ZTI5EE332[];
+extern VTBL_ENTRY _ZTV5EE332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE332[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF321;
+extern VTBL_ENTRY _ZTI5FF321[];
+extern VTBL_ENTRY _ZTV5FF321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF321[];
+static Base_Class bases_GG3323213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE332, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF321, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3323213[];
+extern void _ZN9GG33232133fooEv();
+extern void _ZN9GG33232133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33232133barEv,_ZTv0_n20_N9GG33232133barEv)();
+extern void ABISELECT(_ZThn16_N9GG33232133barEv,_ZThn8_N9GG33232133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33232133fooEv,_ZTv0_n12_N9GG33232133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33232133fooEv,_ZThn16_N9GG33232133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33232133barEv,_ZTv0_n16_N9GG33232133barEv)();
+extern void ABISELECT(_ZThn32_N9GG33232133barEv,_ZThn16_N9GG33232133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33232133fooEv,_ZTv0_n12_N9GG33232133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33232133fooEv,_ZThn24_N9GG33232133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33232133barEv,_ZTv0_n16_N9GG33232133barEv)();
+extern void ABISELECT(_ZThn48_N9GG33232133barEv,_ZThn24_N9GG33232133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33232133fooEv,_ZTv0_n20_N9GG33232133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33232133fooEv,_ZThn32_N9GG33232133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33232133barEv,_ZTv0_n12_N9GG33232133barEv)();
+extern void ABISELECT(_ZThn80_N9GG33232133barEv,_ZThn40_N9GG33232133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3323213[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3323213[0]),
+ (VTBL_ENTRY)&_ZN9GG33232133fooEv,
+ (VTBL_ENTRY)&_ZN9GG33232133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3323213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33232133barEv,_ZTv0_n20_N9GG33232133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3323213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33232133fooEv,_ZTv0_n12_N9GG33232133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33232133barEv,_ZTv0_n16_N9GG33232133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3323213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33232133fooEv,_ZTv0_n12_N9GG33232133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33232133barEv,_ZTv0_n16_N9GG33232133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3323213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33232133fooEv,_ZTv0_n20_N9GG33232133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3323213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33232133barEv,_ZTv0_n12_N9GG33232133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3323213[];
+extern void _ZN5EE3323barEv();
+static VTBL_ENTRY _tg__ZTV5EE332__9GG3323213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN5EE3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE332__9GG3323213[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE332__9GG3323213[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN5FF3213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF321__9GG3323213[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN5FF3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv)();
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF321__9GG3323213[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF321__9GG3323213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG3323213[] = {
+ {&(_ZTV9GG3323213[7]), 7,37},
+ {&(_ZTV9GG3323213[14]), 14,37},
+ {&(_ZTV9GG3323213[19]), 19,37},
+ {&(_ZTV9GG3323213[25]), 25,37},
+ {&(_ZTV9GG3323213[32]), 32,37},
+ {&(_ZTV9GG3323213[36]), 36,37},
+ {&(_tg__ZTV5EE332__9GG3323213[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE332__9GG3323213[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE332__9GG3323213[4]), 4,6},
+ {&(_tg__ZTV5FF321__9GG3323213[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF321__9GG3323213[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF321__9GG3323213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3323213[];
+extern VTBL_ENTRY _ZTV9GG3323213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3323213[];
+static VTBL_ENTRY alt_thunk_names980[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33232133barEv,_ZTv0_n12_N9GG33232133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33232133barEv,_ZThn40_N9GG33232133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33232133fooEv,_ZTv0_n20_N9GG33232133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33232133fooEv,_ZThn32_N9GG33232133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33232133barEv,_ZTv0_n16_N9GG33232133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33232133barEv,_ZThn24_N9GG33232133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33232133barEv,_ZThn16_N9GG33232133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33232133fooEv,_ZTv0_n12_N9GG33232133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33232133fooEv,_ZThn24_N9GG33232133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33232133fooEv,_ZThn16_N9GG33232133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33232133barEv,_ZTv0_n20_N9GG33232133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33232133barEv,_ZThn8_N9GG33232133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3323213 = { "GG3323213", // class name
+ bases_GG3323213, 5,
+ &(vtc_GG3323213[0]), // expected_vtbl_contents
+ &(vtt_GG3323213[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3323213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3323213),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3323213),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names980,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3323223 : virtual EE332 , virtual FF322 {
+ int pg;
+ virtual void foo(); // _ZN9GG33232233fooEv
+ virtual void bar(); // _ZN9GG33232233barEv
+ ~GG3323223(); // tgen
+ GG3323223(); // tgen
+};
+//SIG(1 GG3323223) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3323223 ::foo(){vfunc_called(this, "_ZN9GG33232233fooEv");}
+void GG3323223 ::bar(){vfunc_called(this, "_ZN9GG33232233barEv");}
+GG3323223 ::~GG3323223(){ note_dtor("GG3323223", this);} // tgen
+GG3323223 ::GG3323223(){ note_ctor("GG3323223", this);} // tgen
+
+static void Test_GG3323223()
+{
+ extern Class_Descriptor cd_GG3323223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3323223, buf);
+ GG3323223 *dp, &lv = *(dp=new (buf) GG3323223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3323223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3323223)");
+ check_base_class_offset(lv, (AA3*)(EE332*), ABISELECT(32,16), "GG3323223");
+ check_base_class_offset(lv, (AA3*)(FF322*), ABISELECT(32,16), "GG3323223");
+ check_base_class_offset(lv, (BB3*)(EE332*), ABISELECT(48,24), "GG3323223");
+ check_base_class_offset(lv, (EE332*), ABISELECT(16,8), "GG3323223");
+ check_base_class_offset(lv, (BB2*)(FF322*), ABISELECT(80,40), "GG3323223");
+ check_base_class_offset(lv, (FF322*), ABISELECT(64,32), "GG3323223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3323223.pg");
+ test_class_info(&lv, &cd_GG3323223);
+ dp->~GG3323223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3323223(Test_GG3323223, "GG3323223", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3323223C1Ev();
+extern void _ZN9GG3323223D1Ev();
+Name_Map name_map_GG3323223[] = {
+ NSPAIR(_ZN9GG3323223C1Ev),
+ NSPAIR(_ZN9GG3323223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE332;
+extern VTBL_ENTRY _ZTI5EE332[];
+extern VTBL_ENTRY _ZTV5EE332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE332[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF322;
+extern VTBL_ENTRY _ZTI5FF322[];
+extern VTBL_ENTRY _ZTV5FF322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF322[];
+static Base_Class bases_GG3323223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE332, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 33, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF322, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3323223[];
+extern void _ZN9GG33232233fooEv();
+extern void _ZN9GG33232233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33232233barEv,_ZTv0_n20_N9GG33232233barEv)();
+extern void ABISELECT(_ZThn16_N9GG33232233barEv,_ZThn8_N9GG33232233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33232233fooEv,_ZTv0_n12_N9GG33232233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33232233fooEv,_ZThn16_N9GG33232233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33232233barEv,_ZTv0_n16_N9GG33232233barEv)();
+extern void ABISELECT(_ZThn32_N9GG33232233barEv,_ZThn16_N9GG33232233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33232233fooEv,_ZTv0_n12_N9GG33232233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33232233fooEv,_ZThn24_N9GG33232233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33232233barEv,_ZTv0_n16_N9GG33232233barEv)();
+extern void ABISELECT(_ZThn48_N9GG33232233barEv,_ZThn24_N9GG33232233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33232233barEv,_ZTv0_n20_N9GG33232233barEv)();
+extern void ABISELECT(_ZThn64_N9GG33232233barEv,_ZThn32_N9GG33232233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33232233barEv,_ZTv0_n12_N9GG33232233barEv)();
+extern void ABISELECT(_ZThn80_N9GG33232233barEv,_ZThn40_N9GG33232233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3323223[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3323223[0]),
+ (VTBL_ENTRY)&_ZN9GG33232233fooEv,
+ (VTBL_ENTRY)&_ZN9GG33232233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3323223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33232233barEv,_ZTv0_n20_N9GG33232233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3323223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33232233fooEv,_ZTv0_n12_N9GG33232233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33232233barEv,_ZTv0_n16_N9GG33232233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3323223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33232233fooEv,_ZTv0_n12_N9GG33232233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33232233barEv,_ZTv0_n16_N9GG33232233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3323223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33232233barEv,_ZTv0_n20_N9GG33232233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3323223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33232233barEv,_ZTv0_n12_N9GG33232233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3323223[];
+extern void _ZN5EE3323barEv();
+static VTBL_ENTRY _tg__ZTV5EE332__9GG3323223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN5EE3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE332__9GG3323223[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE332__9GG3323223[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN5FF3223barEv();
+static VTBL_ENTRY _tg__ZTV5FF322__9GG3323223[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN5FF3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF322__9GG3323223[] = {
+ ABISELECT(32,16),
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv)();
+extern void ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF322__9GG3323223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv),
+};
+static VTT_ENTRY vtt_GG3323223[] = {
+ {&(_ZTV9GG3323223[7]), 7,37},
+ {&(_ZTV9GG3323223[14]), 14,37},
+ {&(_ZTV9GG3323223[19]), 19,37},
+ {&(_ZTV9GG3323223[25]), 25,37},
+ {&(_ZTV9GG3323223[32]), 32,37},
+ {&(_ZTV9GG3323223[36]), 36,37},
+ {&(_tg__ZTV5EE332__9GG3323223[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE332__9GG3323223[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE332__9GG3323223[4]), 4,6},
+ {&(_tg__ZTV5FF322__9GG3323223[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF322__9GG3323223[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF322__9GG3323223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3323223[];
+extern VTBL_ENTRY _ZTV9GG3323223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3323223[];
+static VTBL_ENTRY alt_thunk_names981[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33232233barEv,_ZTv0_n12_N9GG33232233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33232233barEv,_ZThn40_N9GG33232233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33232233barEv,_ZTv0_n16_N9GG33232233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33232233barEv,_ZThn24_N9GG33232233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33232233barEv,_ZThn16_N9GG33232233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33232233fooEv,_ZTv0_n12_N9GG33232233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33232233fooEv,_ZThn24_N9GG33232233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33232233fooEv,_ZThn16_N9GG33232233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33232233barEv,_ZTv0_n20_N9GG33232233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33232233barEv,_ZThn32_N9GG33232233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33232233barEv,_ZThn8_N9GG33232233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3323223 = { "GG3323223", // class name
+ bases_GG3323223, 5,
+ &(vtc_GG3323223[0]), // expected_vtbl_contents
+ &(vtt_GG3323223[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3323223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3323223),37, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3323223),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names981,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3323233 : virtual EE332 , virtual FF323 {
+ int pg;
+ virtual void foo(); // _ZN9GG33232333fooEv
+ virtual void bar(); // _ZN9GG33232333barEv
+ ~GG3323233(); // tgen
+ GG3323233(); // tgen
+};
+//SIG(1 GG3323233) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3323233 ::foo(){vfunc_called(this, "_ZN9GG33232333fooEv");}
+void GG3323233 ::bar(){vfunc_called(this, "_ZN9GG33232333barEv");}
+GG3323233 ::~GG3323233(){ note_dtor("GG3323233", this);} // tgen
+GG3323233 ::GG3323233(){ note_ctor("GG3323233", this);} // tgen
+
+static void Test_GG3323233()
+{
+ extern Class_Descriptor cd_GG3323233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3323233, buf);
+ GG3323233 *dp, &lv = *(dp=new (buf) GG3323233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3323233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3323233)");
+ check_base_class_offset(lv, (AA3*)(EE332*), ABISELECT(32,16), "GG3323233");
+ check_base_class_offset(lv, (AA3*)(FF323*), ABISELECT(32,16), "GG3323233");
+ check_base_class_offset(lv, (BB3*)(EE332*), ABISELECT(48,24), "GG3323233");
+ check_base_class_offset(lv, (EE332*), ABISELECT(16,8), "GG3323233");
+ check_base_class_offset(lv, (BB2*)(FF323*), ABISELECT(80,40), "GG3323233");
+ check_base_class_offset(lv, (FF323*), ABISELECT(64,32), "GG3323233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3323233.pg");
+ test_class_info(&lv, &cd_GG3323233);
+ dp->~GG3323233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3323233(Test_GG3323233, "GG3323233", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3323233C1Ev();
+extern void _ZN9GG3323233D1Ev();
+Name_Map name_map_GG3323233[] = {
+ NSPAIR(_ZN9GG3323233C1Ev),
+ NSPAIR(_ZN9GG3323233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE332;
+extern VTBL_ENTRY _ZTI5EE332[];
+extern VTBL_ENTRY _ZTV5EE332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE332[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF323;
+extern VTBL_ENTRY _ZTI5FF323[];
+extern VTBL_ENTRY _ZTV5FF323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF323[];
+static Base_Class bases_GG3323233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE332, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF323, ABISELECT(64,32), //bcp->offset
+ 27, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3323233[];
+extern void _ZN9GG33232333fooEv();
+extern void _ZN9GG33232333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33232333barEv,_ZTv0_n20_N9GG33232333barEv)();
+extern void ABISELECT(_ZThn16_N9GG33232333barEv,_ZThn8_N9GG33232333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33232333fooEv,_ZTv0_n12_N9GG33232333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33232333fooEv,_ZThn16_N9GG33232333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33232333barEv,_ZTv0_n16_N9GG33232333barEv)();
+extern void ABISELECT(_ZThn32_N9GG33232333barEv,_ZThn16_N9GG33232333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33232333fooEv,_ZTv0_n12_N9GG33232333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33232333fooEv,_ZThn24_N9GG33232333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33232333barEv,_ZTv0_n16_N9GG33232333barEv)();
+extern void ABISELECT(_ZThn48_N9GG33232333barEv,_ZThn24_N9GG33232333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33232333fooEv,_ZTv0_n20_N9GG33232333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33232333fooEv,_ZThn32_N9GG33232333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33232333barEv,_ZTv0_n24_N9GG33232333barEv)();
+extern void ABISELECT(_ZThn64_N9GG33232333barEv,_ZThn32_N9GG33232333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33232333barEv,_ZTv0_n12_N9GG33232333barEv)();
+extern void ABISELECT(_ZThn80_N9GG33232333barEv,_ZThn40_N9GG33232333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3323233[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3323233[0]),
+ (VTBL_ENTRY)&_ZN9GG33232333fooEv,
+ (VTBL_ENTRY)&_ZN9GG33232333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3323233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33232333barEv,_ZTv0_n20_N9GG33232333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3323233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33232333fooEv,_ZTv0_n12_N9GG33232333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33232333barEv,_ZTv0_n16_N9GG33232333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3323233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33232333fooEv,_ZTv0_n12_N9GG33232333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33232333barEv,_ZTv0_n16_N9GG33232333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3323233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33232333fooEv,_ZTv0_n20_N9GG33232333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33232333barEv,_ZTv0_n24_N9GG33232333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3323233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33232333barEv,_ZTv0_n12_N9GG33232333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3323233[];
+extern void _ZN5EE3323barEv();
+static VTBL_ENTRY _tg__ZTV5EE332__9GG3323233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN5EE3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE332__9GG3323233[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE332__9GG3323233[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN5FF3233fooEv();
+extern void _ZN5FF3233barEv();
+static VTBL_ENTRY _tg__ZTV5FF323__9GG3323233[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&_ZN5FF3233fooEv,
+ (VTBL_ENTRY)&_ZN5FF3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF323__9GG3323233[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv)();
+extern void ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF323__9GG3323233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv),
+};
+static VTT_ENTRY vtt_GG3323233[] = {
+ {&(_ZTV9GG3323233[7]), 7,39},
+ {&(_ZTV9GG3323233[14]), 14,39},
+ {&(_ZTV9GG3323233[19]), 19,39},
+ {&(_ZTV9GG3323233[25]), 25,39},
+ {&(_ZTV9GG3323233[33]), 33,39},
+ {&(_ZTV9GG3323233[38]), 38,39},
+ {&(_tg__ZTV5EE332__9GG3323233[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE332__9GG3323233[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE332__9GG3323233[4]), 4,6},
+ {&(_tg__ZTV5FF323__9GG3323233[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF323__9GG3323233[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF323__9GG3323233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3323233[];
+extern VTBL_ENTRY _ZTV9GG3323233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3323233[];
+static VTBL_ENTRY alt_thunk_names982[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33232333barEv,_ZTv0_n12_N9GG33232333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33232333barEv,_ZThn40_N9GG33232333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG33232333barEv,_ZTv0_n24_N9GG33232333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33232333barEv,_ZThn32_N9GG33232333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33232333fooEv,_ZTv0_n20_N9GG33232333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33232333fooEv,_ZThn32_N9GG33232333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33232333barEv,_ZTv0_n16_N9GG33232333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33232333barEv,_ZThn24_N9GG33232333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33232333barEv,_ZThn16_N9GG33232333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33232333fooEv,_ZTv0_n12_N9GG33232333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33232333fooEv,_ZThn24_N9GG33232333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33232333fooEv,_ZThn16_N9GG33232333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33232333barEv,_ZTv0_n20_N9GG33232333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33232333barEv,_ZThn8_N9GG33232333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3323233 = { "GG3323233", // class name
+ bases_GG3323233, 5,
+ &(vtc_GG3323233[0]), // expected_vtbl_contents
+ &(vtt_GG3323233[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3323233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3323233),39, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3323233),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names982,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3323313 : virtual EE332 , virtual FF331 {
+ int pg;
+ virtual void foo(); // _ZN9GG33233133fooEv
+ virtual void bar(); // _ZN9GG33233133barEv
+ ~GG3323313(); // tgen
+ GG3323313(); // tgen
+};
+//SIG(1 GG3323313) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC3 VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG3323313 ::foo(){vfunc_called(this, "_ZN9GG33233133fooEv");}
+void GG3323313 ::bar(){vfunc_called(this, "_ZN9GG33233133barEv");}
+GG3323313 ::~GG3323313(){ note_dtor("GG3323313", this);} // tgen
+GG3323313 ::GG3323313(){ note_ctor("GG3323313", this);} // tgen
+
+static void Test_GG3323313()
+{
+ extern Class_Descriptor cd_GG3323313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG3323313, buf);
+ GG3323313 *dp, &lv = *(dp=new (buf) GG3323313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG3323313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3323313)");
+ check_base_class_offset(lv, (AA3*)(EE332*), ABISELECT(32,16), "GG3323313");
+ check_base_class_offset(lv, (AA3*)(FF331*), ABISELECT(32,16), "GG3323313");
+ check_base_class_offset(lv, (BB3*)(EE332*), ABISELECT(48,24), "GG3323313");
+ check_base_class_offset(lv, (BB3*)(FF331*), ABISELECT(48,24), "GG3323313");
+ check_base_class_offset(lv, (EE332*), ABISELECT(16,8), "GG3323313");
+ check_base_class_offset(lv, (FF331*), ABISELECT(64,32), "GG3323313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3323313.pg");
+ test_class_info(&lv, &cd_GG3323313);
+ dp->~GG3323313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3323313(Test_GG3323313, "GG3323313", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG3323313C1Ev();
+extern void _ZN9GG3323313D1Ev();
+Name_Map name_map_GG3323313[] = {
+ NSPAIR(_ZN9GG3323313C1Ev),
+ NSPAIR(_ZN9GG3323313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE332;
+extern VTBL_ENTRY _ZTI5EE332[];
+extern VTBL_ENTRY _ZTV5EE332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE332[];
+extern Class_Descriptor cd_FF331;
+extern VTBL_ENTRY _ZTI5FF331[];
+extern VTBL_ENTRY _ZTV5FF331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF331[];
+static Base_Class bases_GG3323313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE332, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF331, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3323313[];
+extern void _ZN9GG33233133fooEv();
+extern void _ZN9GG33233133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33233133barEv,_ZTv0_n20_N9GG33233133barEv)();
+extern void ABISELECT(_ZThn16_N9GG33233133barEv,_ZThn8_N9GG33233133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33233133fooEv,_ZTv0_n12_N9GG33233133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33233133fooEv,_ZThn16_N9GG33233133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33233133barEv,_ZTv0_n16_N9GG33233133barEv)();
+extern void ABISELECT(_ZThn32_N9GG33233133barEv,_ZThn16_N9GG33233133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33233133fooEv,_ZTv0_n12_N9GG33233133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33233133fooEv,_ZThn24_N9GG33233133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33233133barEv,_ZTv0_n16_N9GG33233133barEv)();
+extern void ABISELECT(_ZThn48_N9GG33233133barEv,_ZThn24_N9GG33233133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33233133fooEv,_ZTv0_n20_N9GG33233133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33233133fooEv,_ZThn32_N9GG33233133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3323313[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3323313[0]),
+ (VTBL_ENTRY)&_ZN9GG33233133fooEv,
+ (VTBL_ENTRY)&_ZN9GG33233133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3323313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33233133barEv,_ZTv0_n20_N9GG33233133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3323313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33233133fooEv,_ZTv0_n12_N9GG33233133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33233133barEv,_ZTv0_n16_N9GG33233133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3323313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33233133fooEv,_ZTv0_n12_N9GG33233133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33233133barEv,_ZTv0_n16_N9GG33233133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3323313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33233133fooEv,_ZTv0_n20_N9GG33233133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3323313[];
+extern void _ZN5EE3323barEv();
+static VTBL_ENTRY _tg__ZTV5EE332__9GG3323313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN5EE3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE332__9GG3323313[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE332__9GG3323313[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN5FF3313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF331__9GG3323313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&_ZN5FF3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF331__9GG3323313[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF331__9GG3323313[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG3323313[] = {
+ {&(_ZTV9GG3323313[6]), 6,32},
+ {&(_ZTV9GG3323313[13]), 13,32},
+ {&(_ZTV9GG3323313[18]), 18,32},
+ {&(_ZTV9GG3323313[24]), 24,32},
+ {&(_ZTV9GG3323313[31]), 31,32},
+ {&(_tg__ZTV5EE332__9GG3323313[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE332__9GG3323313[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE332__9GG3323313[4]), 4,6},
+ {&(_tg__ZTV5FF331__9GG3323313[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF331__9GG3323313[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF331__9GG3323313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3323313[];
+extern VTBL_ENTRY _ZTV9GG3323313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3323313[];
+static VTBL_ENTRY alt_thunk_names983[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33233133fooEv,_ZTv0_n20_N9GG33233133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33233133fooEv,_ZThn32_N9GG33233133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33233133barEv,_ZTv0_n16_N9GG33233133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33233133barEv,_ZThn24_N9GG33233133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33233133barEv,_ZThn16_N9GG33233133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33233133fooEv,_ZTv0_n12_N9GG33233133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33233133fooEv,_ZThn24_N9GG33233133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33233133fooEv,_ZThn16_N9GG33233133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33233133barEv,_ZTv0_n20_N9GG33233133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33233133barEv,_ZThn8_N9GG33233133barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3323313 = { "GG3323313", // class name
+ bases_GG3323313, 4,
+ &(vtc_GG3323313[0]), // expected_vtbl_contents
+ &(vtt_GG3323313[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG3323313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3323313),32, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3323313),11, //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 GG3323323 : virtual EE332 , virtual FF332 {
+ int pg;
+ virtual void foo(); // _ZN9GG33233233fooEv
+ virtual void bar(); // _ZN9GG33233233barEv
+ ~GG3323323(); // tgen
+ GG3323323(); // tgen
+};
+//SIG(1 GG3323323) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC3 VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG3323323 ::foo(){vfunc_called(this, "_ZN9GG33233233fooEv");}
+void GG3323323 ::bar(){vfunc_called(this, "_ZN9GG33233233barEv");}
+GG3323323 ::~GG3323323(){ note_dtor("GG3323323", this);} // tgen
+GG3323323 ::GG3323323(){ note_ctor("GG3323323", this);} // tgen
+
+static void Test_GG3323323()
+{
+ extern Class_Descriptor cd_GG3323323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG3323323, buf);
+ GG3323323 *dp, &lv = *(dp=new (buf) GG3323323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG3323323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3323323)");
+ check_base_class_offset(lv, (AA3*)(EE332*), ABISELECT(32,16), "GG3323323");
+ check_base_class_offset(lv, (AA3*)(FF332*), ABISELECT(32,16), "GG3323323");
+ check_base_class_offset(lv, (BB3*)(EE332*), ABISELECT(48,24), "GG3323323");
+ check_base_class_offset(lv, (BB3*)(FF332*), ABISELECT(48,24), "GG3323323");
+ check_base_class_offset(lv, (EE332*), ABISELECT(16,8), "GG3323323");
+ check_base_class_offset(lv, (FF332*), ABISELECT(64,32), "GG3323323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3323323.pg");
+ test_class_info(&lv, &cd_GG3323323);
+ dp->~GG3323323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3323323(Test_GG3323323, "GG3323323", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG3323323C1Ev();
+extern void _ZN9GG3323323D1Ev();
+Name_Map name_map_GG3323323[] = {
+ NSPAIR(_ZN9GG3323323C1Ev),
+ NSPAIR(_ZN9GG3323323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE332;
+extern VTBL_ENTRY _ZTI5EE332[];
+extern VTBL_ENTRY _ZTV5EE332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE332[];
+extern Class_Descriptor cd_FF332;
+extern VTBL_ENTRY _ZTI5FF332[];
+extern VTBL_ENTRY _ZTV5FF332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF332[];
+static Base_Class bases_GG3323323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE332, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF332, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3323323[];
+extern void _ZN9GG33233233fooEv();
+extern void _ZN9GG33233233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33233233barEv,_ZTv0_n20_N9GG33233233barEv)();
+extern void ABISELECT(_ZThn16_N9GG33233233barEv,_ZThn8_N9GG33233233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33233233fooEv,_ZTv0_n12_N9GG33233233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33233233fooEv,_ZThn16_N9GG33233233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33233233barEv,_ZTv0_n16_N9GG33233233barEv)();
+extern void ABISELECT(_ZThn32_N9GG33233233barEv,_ZThn16_N9GG33233233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33233233fooEv,_ZTv0_n12_N9GG33233233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33233233fooEv,_ZThn24_N9GG33233233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33233233barEv,_ZTv0_n16_N9GG33233233barEv)();
+extern void ABISELECT(_ZThn48_N9GG33233233barEv,_ZThn24_N9GG33233233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33233233barEv,_ZTv0_n20_N9GG33233233barEv)();
+extern void ABISELECT(_ZThn64_N9GG33233233barEv,_ZThn32_N9GG33233233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3323323[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3323323[0]),
+ (VTBL_ENTRY)&_ZN9GG33233233fooEv,
+ (VTBL_ENTRY)&_ZN9GG33233233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3323323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33233233barEv,_ZTv0_n20_N9GG33233233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3323323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33233233fooEv,_ZTv0_n12_N9GG33233233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33233233barEv,_ZTv0_n16_N9GG33233233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3323323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33233233fooEv,_ZTv0_n12_N9GG33233233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33233233barEv,_ZTv0_n16_N9GG33233233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3323323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33233233barEv,_ZTv0_n20_N9GG33233233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3323323[];
+extern void _ZN5EE3323barEv();
+static VTBL_ENTRY _tg__ZTV5EE332__9GG3323323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN5EE3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE332__9GG3323323[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE332__9GG3323323[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN5FF3323barEv();
+static VTBL_ENTRY _tg__ZTV5FF332__9GG3323323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN5FF3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF332__9GG3323323[] = {
+ ABISELECT(32,16),
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF332__9GG3323323[] = {
+ ABISELECT(16,8),
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+static VTT_ENTRY vtt_GG3323323[] = {
+ {&(_ZTV9GG3323323[6]), 6,32},
+ {&(_ZTV9GG3323323[13]), 13,32},
+ {&(_ZTV9GG3323323[18]), 18,32},
+ {&(_ZTV9GG3323323[24]), 24,32},
+ {&(_ZTV9GG3323323[31]), 31,32},
+ {&(_tg__ZTV5EE332__9GG3323323[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE332__9GG3323323[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE332__9GG3323323[4]), 4,6},
+ {&(_tg__ZTV5FF332__9GG3323323[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF332__9GG3323323[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF332__9GG3323323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3323323[];
+extern VTBL_ENTRY _ZTV9GG3323323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3323323[];
+static VTBL_ENTRY alt_thunk_names984[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33233233barEv,_ZTv0_n16_N9GG33233233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33233233barEv,_ZThn24_N9GG33233233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33233233barEv,_ZThn16_N9GG33233233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33233233fooEv,_ZTv0_n12_N9GG33233233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33233233fooEv,_ZThn24_N9GG33233233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33233233fooEv,_ZThn16_N9GG33233233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33233233barEv,_ZTv0_n20_N9GG33233233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33233233barEv,_ZThn32_N9GG33233233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33233233barEv,_ZThn8_N9GG33233233barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3323323 = { "GG3323323", // class name
+ bases_GG3323323, 4,
+ &(vtc_GG3323323[0]), // expected_vtbl_contents
+ &(vtt_GG3323323[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG3323323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3323323),32, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3323323),11, //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 GG3323333 : virtual EE332 , virtual FF333 {
+ int pg;
+ virtual void foo(); // _ZN9GG33233333fooEv
+ virtual void bar(); // _ZN9GG33233333barEv
+ ~GG3323333(); // tgen
+ GG3323333(); // tgen
+};
+//SIG(1 GG3323333) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v2 Fi} VBC5{ VBC3 VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3323333 ::foo(){vfunc_called(this, "_ZN9GG33233333fooEv");}
+void GG3323333 ::bar(){vfunc_called(this, "_ZN9GG33233333barEv");}
+GG3323333 ::~GG3323333(){ note_dtor("GG3323333", this);} // tgen
+GG3323333 ::GG3323333(){ note_ctor("GG3323333", this);} // tgen
+
+static void Test_GG3323333()
+{
+ extern Class_Descriptor cd_GG3323333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG3323333, buf);
+ GG3323333 *dp, &lv = *(dp=new (buf) GG3323333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG3323333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3323333)");
+ check_base_class_offset(lv, (AA3*)(EE332*), ABISELECT(32,16), "GG3323333");
+ check_base_class_offset(lv, (AA3*)(FF333*), ABISELECT(32,16), "GG3323333");
+ check_base_class_offset(lv, (BB3*)(EE332*), ABISELECT(48,24), "GG3323333");
+ check_base_class_offset(lv, (BB3*)(FF333*), ABISELECT(48,24), "GG3323333");
+ check_base_class_offset(lv, (EE332*), ABISELECT(16,8), "GG3323333");
+ check_base_class_offset(lv, (FF333*), ABISELECT(64,32), "GG3323333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3323333.pg");
+ test_class_info(&lv, &cd_GG3323333);
+ dp->~GG3323333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3323333(Test_GG3323333, "GG3323333", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG3323333C1Ev();
+extern void _ZN9GG3323333D1Ev();
+Name_Map name_map_GG3323333[] = {
+ NSPAIR(_ZN9GG3323333C1Ev),
+ NSPAIR(_ZN9GG3323333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE332;
+extern VTBL_ENTRY _ZTI5EE332[];
+extern VTBL_ENTRY _ZTV5EE332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE332[];
+extern Class_Descriptor cd_FF333;
+extern VTBL_ENTRY _ZTI5FF333[];
+extern VTBL_ENTRY _ZTV5FF333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF333[];
+static Base_Class bases_GG3323333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, 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
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE332, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF333, ABISELECT(64,32), //bcp->offset
+ 26, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3323333[];
+extern void _ZN9GG33233333fooEv();
+extern void _ZN9GG33233333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33233333barEv,_ZTv0_n20_N9GG33233333barEv)();
+extern void ABISELECT(_ZThn16_N9GG33233333barEv,_ZThn8_N9GG33233333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33233333fooEv,_ZTv0_n12_N9GG33233333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33233333fooEv,_ZThn16_N9GG33233333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33233333barEv,_ZTv0_n16_N9GG33233333barEv)();
+extern void ABISELECT(_ZThn32_N9GG33233333barEv,_ZThn16_N9GG33233333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33233333fooEv,_ZTv0_n12_N9GG33233333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33233333fooEv,_ZThn24_N9GG33233333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33233333barEv,_ZTv0_n16_N9GG33233333barEv)();
+extern void ABISELECT(_ZThn48_N9GG33233333barEv,_ZThn24_N9GG33233333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33233333fooEv,_ZTv0_n20_N9GG33233333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33233333fooEv,_ZThn32_N9GG33233333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33233333barEv,_ZTv0_n24_N9GG33233333barEv)();
+extern void ABISELECT(_ZThn64_N9GG33233333barEv,_ZThn32_N9GG33233333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3323333[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3323333[0]),
+ (VTBL_ENTRY)&_ZN9GG33233333fooEv,
+ (VTBL_ENTRY)&_ZN9GG33233333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3323333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33233333barEv,_ZTv0_n20_N9GG33233333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3323333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33233333fooEv,_ZTv0_n12_N9GG33233333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33233333barEv,_ZTv0_n16_N9GG33233333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3323333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33233333fooEv,_ZTv0_n12_N9GG33233333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33233333barEv,_ZTv0_n16_N9GG33233333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3323333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33233333fooEv,_ZTv0_n20_N9GG33233333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33233333barEv,_ZTv0_n24_N9GG33233333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3323333[];
+extern void _ZN5EE3323barEv();
+static VTBL_ENTRY _tg__ZTV5EE332__9GG3323333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN5EE3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE332__9GG3323333[] = {
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv)();
+extern void ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE332__9GG3323333[] = {
+ ABISELECT(-32,-16),
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv),
+};
+extern void _ZN5FF3333fooEv();
+extern void _ZN5FF3333barEv();
+static VTBL_ENTRY _tg__ZTV5FF333__9GG3323333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&_ZN5FF3333fooEv,
+ (VTBL_ENTRY)&_ZN5FF3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF333__9GG3323333[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF333__9GG3323333[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+static VTT_ENTRY vtt_GG3323333[] = {
+ {&(_ZTV9GG3323333[6]), 6,34},
+ {&(_ZTV9GG3323333[13]), 13,34},
+ {&(_ZTV9GG3323333[18]), 18,34},
+ {&(_ZTV9GG3323333[24]), 24,34},
+ {&(_ZTV9GG3323333[32]), 32,34},
+ {&(_tg__ZTV5EE332__9GG3323333[4]), 4,5},
+ {&(_tg__ZTV3AA3__5EE332__9GG3323333[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE332__9GG3323333[4]), 4,6},
+ {&(_tg__ZTV5FF333__9GG3323333[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF333__9GG3323333[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF333__9GG3323333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3323333[];
+extern VTBL_ENTRY _ZTV9GG3323333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3323333[];
+static VTBL_ENTRY alt_thunk_names985[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3323barEv,_ZTv0_n16_N5EE3323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3323barEv,_ZThn16_N5EE3323barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3323barEv,_ZThn8_N5EE3323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG33233333barEv,_ZTv0_n24_N9GG33233333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33233333barEv,_ZThn32_N9GG33233333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33233333fooEv,_ZTv0_n20_N9GG33233333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33233333fooEv,_ZThn32_N9GG33233333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33233333barEv,_ZTv0_n16_N9GG33233333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33233333barEv,_ZThn24_N9GG33233333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33233333barEv,_ZThn16_N9GG33233333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33233333fooEv,_ZTv0_n12_N9GG33233333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33233333fooEv,_ZThn24_N9GG33233333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33233333fooEv,_ZThn16_N9GG33233333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33233333barEv,_ZTv0_n20_N9GG33233333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33233333barEv,_ZThn8_N9GG33233333barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3323333 = { "GG3323333", // class name
+ bases_GG3323333, 4,
+ &(vtc_GG3323333[0]), // expected_vtbl_contents
+ &(vtt_GG3323333[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG3323333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3323333),34, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3323333),11, //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 GG3331111 : virtual EE333 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG33311113fooEv
+ ~GG3331111(); // tgen
+ GG3331111(); // tgen
+};
+//SIG(1 GG3331111) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+void GG3331111 ::foo(){vfunc_called(this, "_ZN9GG33311113fooEv");}
+GG3331111 ::~GG3331111(){ note_dtor("GG3331111", this);} // tgen
+GG3331111 ::GG3331111(){ note_ctor("GG3331111", this);} // tgen
+
+static void Test_GG3331111()
+{
+ extern Class_Descriptor cd_GG3331111;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3331111, buf);
+ GG3331111 *dp, &lv = *(dp=new (buf) GG3331111());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3331111)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3331111)");
+ check_base_class_offset(lv, (AA3*)(EE333*), ABISELECT(32,16), "GG3331111");
+ check_base_class_offset(lv, (BB3*)(EE333*), ABISELECT(48,24), "GG3331111");
+ check_base_class_offset(lv, (EE333*), ABISELECT(16,8), "GG3331111");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(80,40), "GG3331111");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(96,48), "GG3331111");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG3331111");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3331111.pg");
+ test_class_info(&lv, &cd_GG3331111);
+ dp->~GG3331111();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3331111(Test_GG3331111, "GG3331111", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3331111C1Ev();
+extern void _ZN9GG3331111D1Ev();
+Name_Map name_map_GG3331111[] = {
+ NSPAIR(_ZN9GG3331111C1Ev),
+ NSPAIR(_ZN9GG3331111D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE333;
+extern VTBL_ENTRY _ZTI5EE333[];
+extern VTBL_ENTRY _ZTV5EE333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE333[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG3331111[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE333, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 39, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3331111[];
+extern void _ZN9GG33311113fooEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33311113fooEv,_ZTv0_n20_N9GG33311113fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33311113fooEv,_ZThn8_N9GG33311113fooEv)() __attribute__((weak));
+extern void _ZN5EE3333barEv();
+extern void ABISELECT(_ZTv0_n24_N9GG33311113fooEv,_ZTv0_n12_N9GG33311113fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33311113fooEv,_ZThn16_N9GG33311113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33311113fooEv,_ZTv0_n12_N9GG33311113fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33311113fooEv,_ZThn24_N9GG33311113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33311113fooEv,_ZTv0_n20_N9GG33311113fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33311113fooEv,_ZThn32_N9GG33311113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33311113fooEv,_ZTv0_n12_N9GG33311113fooEv)();
+extern void ABISELECT(_ZThn80_N9GG33311113fooEv,_ZThn40_N9GG33311113fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33311113fooEv,_ZTv0_n12_N9GG33311113fooEv)();
+extern void ABISELECT(_ZThn96_N9GG33311113fooEv,_ZThn48_N9GG33311113fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3331111[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3331111[0]),
+ (VTBL_ENTRY)&_ZN9GG33311113fooEv,
+ 0,
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3331111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33311113fooEv,_ZTv0_n20_N9GG33311113fooEv),
+ (VTBL_ENTRY)&_ZN5EE3333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3331111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33311113fooEv,_ZTv0_n12_N9GG33311113fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3331111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33311113fooEv,_ZTv0_n12_N9GG33311113fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3331111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33311113fooEv,_ZTv0_n20_N9GG33311113fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3331111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33311113fooEv,_ZTv0_n12_N9GG33311113fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3331111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33311113fooEv,_ZTv0_n12_N9GG33311113fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3331111[];
+extern void _ZN5EE3333fooEv();
+extern void _ZN5EE3333barEv();
+static VTBL_ENTRY _tg__ZTV5EE333__9GG3331111[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&_ZN5EE3333fooEv,
+ (VTBL_ENTRY)&_ZN5EE3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE333__9GG3331111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE333__9GG3331111[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG3331111[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG3331111[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG3331111[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG3331111[] = {
+ {&(_ZTV9GG3331111[8]), 8,43},
+ {&(_ZTV9GG3331111[15]), 15,43},
+ {&(_ZTV9GG3331111[21]), 21,43},
+ {&(_ZTV9GG3331111[27]), 27,43},
+ {&(_ZTV9GG3331111[34]), 34,43},
+ {&(_ZTV9GG3331111[38]), 38,43},
+ {&(_ZTV9GG3331111[42]), 42,43},
+ {&(_tg__ZTV5EE333__9GG3331111[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE333__9GG3331111[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE333__9GG3331111[4]), 4,6},
+ {&(_tg__ZTV5FF111__9GG3331111[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG3331111[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG3331111[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3331111[];
+extern VTBL_ENTRY _ZTV9GG3331111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3331111[];
+static VTBL_ENTRY alt_thunk_names986[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33311113fooEv,_ZTv0_n12_N9GG33311113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG33311113fooEv,_ZThn48_N9GG33311113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33311113fooEv,_ZThn40_N9GG33311113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33311113fooEv,_ZThn24_N9GG33311113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33311113fooEv,_ZThn16_N9GG33311113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33311113fooEv,_ZTv0_n20_N9GG33311113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33311113fooEv,_ZThn32_N9GG33311113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33311113fooEv,_ZThn8_N9GG33311113fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3331111 = { "GG3331111", // class name
+ bases_GG3331111, 6,
+ &(vtc_GG3331111[0]), // expected_vtbl_contents
+ &(vtt_GG3331111[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3331111),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3331111),43, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3331111),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names986,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3331113 : virtual EE333 , virtual FF111 {
+ int pg;
+ virtual void foo(); // _ZN9GG33311133fooEv
+ virtual void bar(); // _ZN9GG33311133barEv
+ ~GG3331113(); // tgen
+ GG3331113(); // tgen
+};
+//SIG(1 GG3331113) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3331113 ::foo(){vfunc_called(this, "_ZN9GG33311133fooEv");}
+void GG3331113 ::bar(){vfunc_called(this, "_ZN9GG33311133barEv");}
+GG3331113 ::~GG3331113(){ note_dtor("GG3331113", this);} // tgen
+GG3331113 ::GG3331113(){ note_ctor("GG3331113", this);} // tgen
+
+static void Test_GG3331113()
+{
+ extern Class_Descriptor cd_GG3331113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3331113, buf);
+ GG3331113 *dp, &lv = *(dp=new (buf) GG3331113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3331113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3331113)");
+ check_base_class_offset(lv, (AA3*)(EE333*), ABISELECT(32,16), "GG3331113");
+ check_base_class_offset(lv, (BB3*)(EE333*), ABISELECT(48,24), "GG3331113");
+ check_base_class_offset(lv, (EE333*), ABISELECT(16,8), "GG3331113");
+ check_base_class_offset(lv, (AA1*)(FF111*), ABISELECT(80,40), "GG3331113");
+ check_base_class_offset(lv, (BB1*)(FF111*), ABISELECT(96,48), "GG3331113");
+ check_base_class_offset(lv, (FF111*), ABISELECT(64,32), "GG3331113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3331113.pg");
+ test_class_info(&lv, &cd_GG3331113);
+ dp->~GG3331113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3331113(Test_GG3331113, "GG3331113", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3331113C1Ev();
+extern void _ZN9GG3331113D1Ev();
+Name_Map name_map_GG3331113[] = {
+ NSPAIR(_ZN9GG3331113C1Ev),
+ NSPAIR(_ZN9GG3331113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE333;
+extern VTBL_ENTRY _ZTI5EE333[];
+extern VTBL_ENTRY _ZTV5EE333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE333[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF111;
+extern VTBL_ENTRY _ZTI5FF111[];
+extern VTBL_ENTRY _ZTV5FF111[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF111[];
+static Base_Class bases_GG3331113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_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_BB3, ABISELECT(48,24), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE333, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 40, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF111, ABISELECT(64,32), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3331113[];
+extern void _ZN9GG33311133fooEv();
+extern void _ZN9GG33311133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33311133fooEv,_ZTv0_n20_N9GG33311133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33311133fooEv,_ZThn8_N9GG33311133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33311133barEv,_ZTv0_n24_N9GG33311133barEv)();
+extern void ABISELECT(_ZThn16_N9GG33311133barEv,_ZThn8_N9GG33311133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33311133fooEv,_ZTv0_n12_N9GG33311133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33311133fooEv,_ZThn16_N9GG33311133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33311133barEv,_ZTv0_n16_N9GG33311133barEv)();
+extern void ABISELECT(_ZThn32_N9GG33311133barEv,_ZThn16_N9GG33311133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33311133fooEv,_ZTv0_n12_N9GG33311133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33311133fooEv,_ZThn24_N9GG33311133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33311133barEv,_ZTv0_n16_N9GG33311133barEv)();
+extern void ABISELECT(_ZThn48_N9GG33311133barEv,_ZThn24_N9GG33311133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33311133fooEv,_ZTv0_n20_N9GG33311133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33311133fooEv,_ZThn32_N9GG33311133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33311133fooEv,_ZTv0_n12_N9GG33311133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG33311133fooEv,_ZThn40_N9GG33311133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33311133fooEv,_ZTv0_n12_N9GG33311133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG33311133fooEv,_ZThn48_N9GG33311133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3331113[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3331113[0]),
+ (VTBL_ENTRY)&_ZN9GG33311133fooEv,
+ (VTBL_ENTRY)&_ZN9GG33311133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3331113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33311133fooEv,_ZTv0_n20_N9GG33311133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33311133barEv,_ZTv0_n24_N9GG33311133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3331113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33311133fooEv,_ZTv0_n12_N9GG33311133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33311133barEv,_ZTv0_n16_N9GG33311133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3331113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33311133fooEv,_ZTv0_n12_N9GG33311133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33311133barEv,_ZTv0_n16_N9GG33311133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3331113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33311133fooEv,_ZTv0_n20_N9GG33311133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3331113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33311133fooEv,_ZTv0_n12_N9GG33311133fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3331113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33311133fooEv,_ZTv0_n12_N9GG33311133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3331113[];
+extern void _ZN5EE3333fooEv();
+extern void _ZN5EE3333barEv();
+static VTBL_ENTRY _tg__ZTV5EE333__9GG3331113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&_ZN5EE3333fooEv,
+ (VTBL_ENTRY)&_ZN5EE3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE333__9GG3331113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE333__9GG3331113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void _ZN5FF1113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF111__9GG3331113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&_ZN5FF1113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF111__9GG3331113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF111__9GG3331113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF111[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv),
+};
+static VTT_ENTRY vtt_GG3331113[] = {
+ {&(_ZTV9GG3331113[8]), 8,44},
+ {&(_ZTV9GG3331113[16]), 16,44},
+ {&(_ZTV9GG3331113[22]), 22,44},
+ {&(_ZTV9GG3331113[28]), 28,44},
+ {&(_ZTV9GG3331113[35]), 35,44},
+ {&(_ZTV9GG3331113[39]), 39,44},
+ {&(_ZTV9GG3331113[43]), 43,44},
+ {&(_tg__ZTV5EE333__9GG3331113[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE333__9GG3331113[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE333__9GG3331113[4]), 4,6},
+ {&(_tg__ZTV5FF111__9GG3331113[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF111__9GG3331113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF111__9GG3331113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3331113[];
+extern VTBL_ENTRY _ZTV9GG3331113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3331113[];
+static VTBL_ENTRY alt_thunk_names987[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1113fooEv,_ZTv0_n12_N5FF1113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1113fooEv,_ZThn16_N5FF1113fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1113fooEv,_ZThn8_N5FF1113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33311133barEv,_ZTv0_n16_N9GG33311133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33311133barEv,_ZThn24_N9GG33311133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33311133barEv,_ZThn16_N9GG33311133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33311133fooEv,_ZTv0_n12_N9GG33311133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG33311133fooEv,_ZThn48_N9GG33311133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33311133fooEv,_ZThn40_N9GG33311133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33311133fooEv,_ZThn24_N9GG33311133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33311133fooEv,_ZThn16_N9GG33311133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG33311133barEv,_ZTv0_n24_N9GG33311133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33311133barEv,_ZThn8_N9GG33311133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33311133fooEv,_ZTv0_n20_N9GG33311133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33311133fooEv,_ZThn32_N9GG33311133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33311133fooEv,_ZThn8_N9GG33311133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3331113 = { "GG3331113", // class name
+ bases_GG3331113, 6,
+ &(vtc_GG3331113[0]), // expected_vtbl_contents
+ &(vtt_GG3331113[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3331113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3331113),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3331113),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names987,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3331123 : virtual EE333 , virtual FF112 {
+ int pg;
+ virtual void foo(); // _ZN9GG33311233fooEv
+ virtual void bar(); // _ZN9GG33311233barEv
+ ~GG3331123(); // tgen
+ GG3331123(); // tgen
+};
+//SIG(1 GG3331123) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3331123 ::foo(){vfunc_called(this, "_ZN9GG33311233fooEv");}
+void GG3331123 ::bar(){vfunc_called(this, "_ZN9GG33311233barEv");}
+GG3331123 ::~GG3331123(){ note_dtor("GG3331123", this);} // tgen
+GG3331123 ::GG3331123(){ note_ctor("GG3331123", this);} // tgen
+
+static void Test_GG3331123()
+{
+ extern Class_Descriptor cd_GG3331123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3331123, buf);
+ GG3331123 *dp, &lv = *(dp=new (buf) GG3331123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3331123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3331123)");
+ check_base_class_offset(lv, (AA3*)(EE333*), ABISELECT(32,16), "GG3331123");
+ check_base_class_offset(lv, (BB3*)(EE333*), ABISELECT(48,24), "GG3331123");
+ check_base_class_offset(lv, (EE333*), ABISELECT(16,8), "GG3331123");
+ check_base_class_offset(lv, (AA1*)(FF112*), ABISELECT(80,40), "GG3331123");
+ check_base_class_offset(lv, (BB1*)(FF112*), ABISELECT(96,48), "GG3331123");
+ check_base_class_offset(lv, (FF112*), ABISELECT(64,32), "GG3331123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3331123.pg");
+ test_class_info(&lv, &cd_GG3331123);
+ dp->~GG3331123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3331123(Test_GG3331123, "GG3331123", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3331123C1Ev();
+extern void _ZN9GG3331123D1Ev();
+Name_Map name_map_GG3331123[] = {
+ NSPAIR(_ZN9GG3331123C1Ev),
+ NSPAIR(_ZN9GG3331123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE333;
+extern VTBL_ENTRY _ZTI5EE333[];
+extern VTBL_ENTRY _ZTV5EE333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE333[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF112;
+extern VTBL_ENTRY _ZTI5FF112[];
+extern VTBL_ENTRY _ZTV5FF112[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF112[];
+static Base_Class bases_GG3331123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_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_BB3, ABISELECT(48,24), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE333, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 40, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF112, ABISELECT(64,32), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3331123[];
+extern void _ZN9GG33311233fooEv();
+extern void _ZN9GG33311233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33311233fooEv,_ZTv0_n20_N9GG33311233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33311233fooEv,_ZThn8_N9GG33311233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33311233barEv,_ZTv0_n24_N9GG33311233barEv)();
+extern void ABISELECT(_ZThn16_N9GG33311233barEv,_ZThn8_N9GG33311233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33311233fooEv,_ZTv0_n12_N9GG33311233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33311233fooEv,_ZThn16_N9GG33311233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33311233barEv,_ZTv0_n16_N9GG33311233barEv)();
+extern void ABISELECT(_ZThn32_N9GG33311233barEv,_ZThn16_N9GG33311233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33311233fooEv,_ZTv0_n12_N9GG33311233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33311233fooEv,_ZThn24_N9GG33311233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33311233barEv,_ZTv0_n16_N9GG33311233barEv)();
+extern void ABISELECT(_ZThn48_N9GG33311233barEv,_ZThn24_N9GG33311233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33311233barEv,_ZTv0_n20_N9GG33311233barEv)();
+extern void ABISELECT(_ZThn64_N9GG33311233barEv,_ZThn32_N9GG33311233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33311233fooEv,_ZTv0_n12_N9GG33311233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG33311233fooEv,_ZThn40_N9GG33311233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33311233fooEv,_ZTv0_n12_N9GG33311233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG33311233fooEv,_ZThn48_N9GG33311233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3331123[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3331123[0]),
+ (VTBL_ENTRY)&_ZN9GG33311233fooEv,
+ (VTBL_ENTRY)&_ZN9GG33311233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3331123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33311233fooEv,_ZTv0_n20_N9GG33311233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33311233barEv,_ZTv0_n24_N9GG33311233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3331123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33311233fooEv,_ZTv0_n12_N9GG33311233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33311233barEv,_ZTv0_n16_N9GG33311233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3331123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33311233fooEv,_ZTv0_n12_N9GG33311233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33311233barEv,_ZTv0_n16_N9GG33311233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3331123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33311233barEv,_ZTv0_n20_N9GG33311233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3331123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33311233fooEv,_ZTv0_n12_N9GG33311233fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3331123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33311233fooEv,_ZTv0_n12_N9GG33311233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3331123[];
+extern void _ZN5EE3333fooEv();
+extern void _ZN5EE3333barEv();
+static VTBL_ENTRY _tg__ZTV5EE333__9GG3331123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&_ZN5EE3333fooEv,
+ (VTBL_ENTRY)&_ZN5EE3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE333__9GG3331123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE333__9GG3331123[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void _ZN5FF1123barEv();
+static VTBL_ENTRY _tg__ZTV5FF112__9GG3331123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN5FF1123barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF112__9GG3331123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF112__9GG3331123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF112[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG3331123[] = {
+ {&(_ZTV9GG3331123[8]), 8,44},
+ {&(_ZTV9GG3331123[16]), 16,44},
+ {&(_ZTV9GG3331123[22]), 22,44},
+ {&(_ZTV9GG3331123[28]), 28,44},
+ {&(_ZTV9GG3331123[35]), 35,44},
+ {&(_ZTV9GG3331123[39]), 39,44},
+ {&(_ZTV9GG3331123[43]), 43,44},
+ {&(_tg__ZTV5EE333__9GG3331123[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE333__9GG3331123[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE333__9GG3331123[4]), 4,6},
+ {&(_tg__ZTV5FF112__9GG3331123[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF112__9GG3331123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF112__9GG3331123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3331123[];
+extern VTBL_ENTRY _ZTV9GG3331123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3331123[];
+static VTBL_ENTRY alt_thunk_names988[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33311233barEv,_ZTv0_n20_N9GG33311233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33311233barEv,_ZThn32_N9GG33311233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33311233barEv,_ZTv0_n16_N9GG33311233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33311233barEv,_ZThn24_N9GG33311233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33311233barEv,_ZThn16_N9GG33311233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33311233fooEv,_ZTv0_n12_N9GG33311233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG33311233fooEv,_ZThn48_N9GG33311233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33311233fooEv,_ZThn40_N9GG33311233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33311233fooEv,_ZThn24_N9GG33311233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33311233fooEv,_ZThn16_N9GG33311233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG33311233barEv,_ZTv0_n24_N9GG33311233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33311233barEv,_ZThn8_N9GG33311233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33311233fooEv,_ZTv0_n20_N9GG33311233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33311233fooEv,_ZThn8_N9GG33311233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3331123 = { "GG3331123", // class name
+ bases_GG3331123, 6,
+ &(vtc_GG3331123[0]), // expected_vtbl_contents
+ &(vtt_GG3331123[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3331123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3331123),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3331123),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names988,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3331133 : virtual EE333 , virtual FF113 {
+ int pg;
+ virtual void foo(); // _ZN9GG33311333fooEv
+ virtual void bar(); // _ZN9GG33311333barEv
+ ~GG3331133(); // tgen
+ GG3331133(); // tgen
+};
+//SIG(1 GG3331133) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3331133 ::foo(){vfunc_called(this, "_ZN9GG33311333fooEv");}
+void GG3331133 ::bar(){vfunc_called(this, "_ZN9GG33311333barEv");}
+GG3331133 ::~GG3331133(){ note_dtor("GG3331133", this);} // tgen
+GG3331133 ::GG3331133(){ note_ctor("GG3331133", this);} // tgen
+
+static void Test_GG3331133()
+{
+ extern Class_Descriptor cd_GG3331133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3331133, buf);
+ GG3331133 *dp, &lv = *(dp=new (buf) GG3331133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3331133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3331133)");
+ check_base_class_offset(lv, (AA3*)(EE333*), ABISELECT(32,16), "GG3331133");
+ check_base_class_offset(lv, (BB3*)(EE333*), ABISELECT(48,24), "GG3331133");
+ check_base_class_offset(lv, (EE333*), ABISELECT(16,8), "GG3331133");
+ check_base_class_offset(lv, (AA1*)(FF113*), ABISELECT(80,40), "GG3331133");
+ check_base_class_offset(lv, (BB1*)(FF113*), ABISELECT(96,48), "GG3331133");
+ check_base_class_offset(lv, (FF113*), ABISELECT(64,32), "GG3331133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3331133.pg");
+ test_class_info(&lv, &cd_GG3331133);
+ dp->~GG3331133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3331133(Test_GG3331133, "GG3331133", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3331133C1Ev();
+extern void _ZN9GG3331133D1Ev();
+Name_Map name_map_GG3331133[] = {
+ NSPAIR(_ZN9GG3331133C1Ev),
+ NSPAIR(_ZN9GG3331133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE333;
+extern VTBL_ENTRY _ZTI5EE333[];
+extern VTBL_ENTRY _ZTV5EE333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE333[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF113;
+extern VTBL_ENTRY _ZTI5FF113[];
+extern VTBL_ENTRY _ZTV5FF113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF113[];
+static Base_Class bases_GG3331133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_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_BB3, ABISELECT(48,24), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE333, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 42, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF113, ABISELECT(64,32), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3331133[];
+extern void _ZN9GG33311333fooEv();
+extern void _ZN9GG33311333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33311333fooEv,_ZTv0_n20_N9GG33311333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33311333fooEv,_ZThn8_N9GG33311333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33311333barEv,_ZTv0_n24_N9GG33311333barEv)();
+extern void ABISELECT(_ZThn16_N9GG33311333barEv,_ZThn8_N9GG33311333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33311333fooEv,_ZTv0_n12_N9GG33311333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33311333fooEv,_ZThn16_N9GG33311333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33311333barEv,_ZTv0_n16_N9GG33311333barEv)();
+extern void ABISELECT(_ZThn32_N9GG33311333barEv,_ZThn16_N9GG33311333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33311333fooEv,_ZTv0_n12_N9GG33311333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33311333fooEv,_ZThn24_N9GG33311333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33311333barEv,_ZTv0_n16_N9GG33311333barEv)();
+extern void ABISELECT(_ZThn48_N9GG33311333barEv,_ZThn24_N9GG33311333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33311333fooEv,_ZTv0_n20_N9GG33311333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33311333fooEv,_ZThn32_N9GG33311333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33311333barEv,_ZTv0_n24_N9GG33311333barEv)();
+extern void ABISELECT(_ZThn64_N9GG33311333barEv,_ZThn32_N9GG33311333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33311333fooEv,_ZTv0_n12_N9GG33311333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG33311333fooEv,_ZThn40_N9GG33311333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33311333fooEv,_ZTv0_n12_N9GG33311333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG33311333fooEv,_ZThn48_N9GG33311333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3331133[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3331133[0]),
+ (VTBL_ENTRY)&_ZN9GG33311333fooEv,
+ (VTBL_ENTRY)&_ZN9GG33311333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3331133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33311333fooEv,_ZTv0_n20_N9GG33311333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33311333barEv,_ZTv0_n24_N9GG33311333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3331133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33311333fooEv,_ZTv0_n12_N9GG33311333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33311333barEv,_ZTv0_n16_N9GG33311333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3331133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33311333fooEv,_ZTv0_n12_N9GG33311333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33311333barEv,_ZTv0_n16_N9GG33311333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3331133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33311333fooEv,_ZTv0_n20_N9GG33311333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33311333barEv,_ZTv0_n24_N9GG33311333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3331133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33311333fooEv,_ZTv0_n12_N9GG33311333fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3331133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33311333fooEv,_ZTv0_n12_N9GG33311333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3331133[];
+extern void _ZN5EE3333fooEv();
+extern void _ZN5EE3333barEv();
+static VTBL_ENTRY _tg__ZTV5EE333__9GG3331133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&_ZN5EE3333fooEv,
+ (VTBL_ENTRY)&_ZN5EE3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE333__9GG3331133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE333__9GG3331133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void _ZN5FF1133fooEv();
+extern void _ZN5FF1133barEv();
+static VTBL_ENTRY _tg__ZTV5FF113__9GG3331133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&_ZN5FF1133fooEv,
+ (VTBL_ENTRY)&_ZN5FF1133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF113__9GG3331133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv)();
+extern void ABISELECT(_ZThn32_N5FF1133fooEv,_ZThn16_N5FF1133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF113__9GG3331133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv),
+};
+static VTT_ENTRY vtt_GG3331133[] = {
+ {&(_ZTV9GG3331133[8]), 8,46},
+ {&(_ZTV9GG3331133[16]), 16,46},
+ {&(_ZTV9GG3331133[22]), 22,46},
+ {&(_ZTV9GG3331133[28]), 28,46},
+ {&(_ZTV9GG3331133[36]), 36,46},
+ {&(_ZTV9GG3331133[41]), 41,46},
+ {&(_ZTV9GG3331133[45]), 45,46},
+ {&(_tg__ZTV5EE333__9GG3331133[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE333__9GG3331133[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE333__9GG3331133[4]), 4,6},
+ {&(_tg__ZTV5FF113__9GG3331133[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF113__9GG3331133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF113__9GG3331133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3331133[];
+extern VTBL_ENTRY _ZTV9GG3331133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3331133[];
+static VTBL_ENTRY alt_thunk_names989[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1133fooEv,_ZTv0_n12_N5FF1133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1133fooEv,_ZThn16_N5FF1133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1133fooEv,_ZThn8_N5FF1133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33311333barEv,_ZTv0_n16_N9GG33311333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33311333barEv,_ZThn24_N9GG33311333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33311333barEv,_ZThn16_N9GG33311333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33311333fooEv,_ZTv0_n12_N9GG33311333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG33311333fooEv,_ZThn48_N9GG33311333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33311333fooEv,_ZThn40_N9GG33311333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33311333fooEv,_ZThn24_N9GG33311333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33311333fooEv,_ZThn16_N9GG33311333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG33311333barEv,_ZTv0_n24_N9GG33311333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33311333barEv,_ZThn32_N9GG33311333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33311333barEv,_ZThn8_N9GG33311333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33311333fooEv,_ZTv0_n20_N9GG33311333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33311333fooEv,_ZThn32_N9GG33311333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33311333fooEv,_ZThn8_N9GG33311333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3331133 = { "GG3331133", // class name
+ bases_GG3331133, 6,
+ &(vtc_GG3331133[0]), // expected_vtbl_contents
+ &(vtt_GG3331133[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3331133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3331133),46, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3331133),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names989,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3331213 : virtual EE333 , virtual FF121 {
+ int pg;
+ virtual void foo(); // _ZN9GG33312133fooEv
+ virtual void bar(); // _ZN9GG33312133barEv
+ ~GG3331213(); // tgen
+ GG3331213(); // tgen
+};
+//SIG(1 GG3331213) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3331213 ::foo(){vfunc_called(this, "_ZN9GG33312133fooEv");}
+void GG3331213 ::bar(){vfunc_called(this, "_ZN9GG33312133barEv");}
+GG3331213 ::~GG3331213(){ note_dtor("GG3331213", this);} // tgen
+GG3331213 ::GG3331213(){ note_ctor("GG3331213", this);} // tgen
+
+static void Test_GG3331213()
+{
+ extern Class_Descriptor cd_GG3331213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3331213, buf);
+ GG3331213 *dp, &lv = *(dp=new (buf) GG3331213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3331213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3331213)");
+ check_base_class_offset(lv, (AA3*)(EE333*), ABISELECT(32,16), "GG3331213");
+ check_base_class_offset(lv, (BB3*)(EE333*), ABISELECT(48,24), "GG3331213");
+ check_base_class_offset(lv, (EE333*), ABISELECT(16,8), "GG3331213");
+ check_base_class_offset(lv, (AA1*)(FF121*), ABISELECT(80,40), "GG3331213");
+ check_base_class_offset(lv, (BB2*)(FF121*), ABISELECT(96,48), "GG3331213");
+ check_base_class_offset(lv, (FF121*), ABISELECT(64,32), "GG3331213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3331213.pg");
+ test_class_info(&lv, &cd_GG3331213);
+ dp->~GG3331213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3331213(Test_GG3331213, "GG3331213", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3331213C1Ev();
+extern void _ZN9GG3331213D1Ev();
+Name_Map name_map_GG3331213[] = {
+ NSPAIR(_ZN9GG3331213C1Ev),
+ NSPAIR(_ZN9GG3331213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE333;
+extern VTBL_ENTRY _ZTI5EE333[];
+extern VTBL_ENTRY _ZTV5EE333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE333[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF121;
+extern VTBL_ENTRY _ZTI5FF121[];
+extern VTBL_ENTRY _ZTV5FF121[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF121[];
+static Base_Class bases_GG3331213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_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_BB3, ABISELECT(48,24), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE333, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 40, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF121, ABISELECT(64,32), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3331213[];
+extern void _ZN9GG33312133fooEv();
+extern void _ZN9GG33312133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33312133fooEv,_ZTv0_n20_N9GG33312133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33312133fooEv,_ZThn8_N9GG33312133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33312133barEv,_ZTv0_n24_N9GG33312133barEv)();
+extern void ABISELECT(_ZThn16_N9GG33312133barEv,_ZThn8_N9GG33312133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33312133fooEv,_ZTv0_n12_N9GG33312133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33312133fooEv,_ZThn16_N9GG33312133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33312133barEv,_ZTv0_n16_N9GG33312133barEv)();
+extern void ABISELECT(_ZThn32_N9GG33312133barEv,_ZThn16_N9GG33312133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33312133fooEv,_ZTv0_n12_N9GG33312133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33312133fooEv,_ZThn24_N9GG33312133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33312133barEv,_ZTv0_n16_N9GG33312133barEv)();
+extern void ABISELECT(_ZThn48_N9GG33312133barEv,_ZThn24_N9GG33312133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33312133fooEv,_ZTv0_n20_N9GG33312133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33312133fooEv,_ZThn32_N9GG33312133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33312133fooEv,_ZTv0_n12_N9GG33312133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG33312133fooEv,_ZThn40_N9GG33312133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33312133barEv,_ZTv0_n12_N9GG33312133barEv)();
+extern void ABISELECT(_ZThn96_N9GG33312133barEv,_ZThn48_N9GG33312133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3331213[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3331213[0]),
+ (VTBL_ENTRY)&_ZN9GG33312133fooEv,
+ (VTBL_ENTRY)&_ZN9GG33312133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3331213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33312133fooEv,_ZTv0_n20_N9GG33312133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33312133barEv,_ZTv0_n24_N9GG33312133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3331213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33312133fooEv,_ZTv0_n12_N9GG33312133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33312133barEv,_ZTv0_n16_N9GG33312133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3331213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33312133fooEv,_ZTv0_n12_N9GG33312133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33312133barEv,_ZTv0_n16_N9GG33312133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3331213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33312133fooEv,_ZTv0_n20_N9GG33312133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3331213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33312133fooEv,_ZTv0_n12_N9GG33312133fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3331213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33312133barEv,_ZTv0_n12_N9GG33312133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3331213[];
+extern void _ZN5EE3333fooEv();
+extern void _ZN5EE3333barEv();
+static VTBL_ENTRY _tg__ZTV5EE333__9GG3331213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&_ZN5EE3333fooEv,
+ (VTBL_ENTRY)&_ZN5EE3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE333__9GG3331213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE333__9GG3331213[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void _ZN5FF1213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF121__9GG3331213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN5FF1213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1213fooEv,_ZThn8_N5FF1213fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF121__9GG3331213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv),
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF121__9GG3331213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF121[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG3331213[] = {
+ {&(_ZTV9GG3331213[8]), 8,44},
+ {&(_ZTV9GG3331213[16]), 16,44},
+ {&(_ZTV9GG3331213[22]), 22,44},
+ {&(_ZTV9GG3331213[28]), 28,44},
+ {&(_ZTV9GG3331213[35]), 35,44},
+ {&(_ZTV9GG3331213[39]), 39,44},
+ {&(_ZTV9GG3331213[43]), 43,44},
+ {&(_tg__ZTV5EE333__9GG3331213[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE333__9GG3331213[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE333__9GG3331213[4]), 4,6},
+ {&(_tg__ZTV5FF121__9GG3331213[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF121__9GG3331213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF121__9GG3331213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3331213[];
+extern VTBL_ENTRY _ZTV9GG3331213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3331213[];
+static VTBL_ENTRY alt_thunk_names990[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1213fooEv,_ZTv0_n12_N5FF1213fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1213fooEv,_ZThn8_N5FF1213fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33312133barEv,_ZTv0_n12_N9GG33312133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG33312133barEv,_ZThn48_N9GG33312133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33312133barEv,_ZTv0_n16_N9GG33312133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33312133barEv,_ZThn24_N9GG33312133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33312133barEv,_ZThn16_N9GG33312133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33312133fooEv,_ZTv0_n12_N9GG33312133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33312133fooEv,_ZThn40_N9GG33312133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33312133fooEv,_ZThn24_N9GG33312133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33312133fooEv,_ZThn16_N9GG33312133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG33312133barEv,_ZTv0_n24_N9GG33312133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33312133barEv,_ZThn8_N9GG33312133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33312133fooEv,_ZTv0_n20_N9GG33312133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33312133fooEv,_ZThn32_N9GG33312133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33312133fooEv,_ZThn8_N9GG33312133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3331213 = { "GG3331213", // class name
+ bases_GG3331213, 6,
+ &(vtc_GG3331213[0]), // expected_vtbl_contents
+ &(vtt_GG3331213[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3331213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3331213),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3331213),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names990,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3331223 : virtual EE333 , virtual FF122 {
+ int pg;
+ virtual void foo(); // _ZN9GG33312233fooEv
+ virtual void bar(); // _ZN9GG33312233barEv
+ ~GG3331223(); // tgen
+ GG3331223(); // tgen
+};
+//SIG(1 GG3331223) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3331223 ::foo(){vfunc_called(this, "_ZN9GG33312233fooEv");}
+void GG3331223 ::bar(){vfunc_called(this, "_ZN9GG33312233barEv");}
+GG3331223 ::~GG3331223(){ note_dtor("GG3331223", this);} // tgen
+GG3331223 ::GG3331223(){ note_ctor("GG3331223", this);} // tgen
+
+static void Test_GG3331223()
+{
+ extern Class_Descriptor cd_GG3331223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3331223, buf);
+ GG3331223 *dp, &lv = *(dp=new (buf) GG3331223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3331223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3331223)");
+ check_base_class_offset(lv, (AA3*)(EE333*), ABISELECT(32,16), "GG3331223");
+ check_base_class_offset(lv, (BB3*)(EE333*), ABISELECT(48,24), "GG3331223");
+ check_base_class_offset(lv, (EE333*), ABISELECT(16,8), "GG3331223");
+ check_base_class_offset(lv, (AA1*)(FF122*), ABISELECT(80,40), "GG3331223");
+ check_base_class_offset(lv, (BB2*)(FF122*), ABISELECT(96,48), "GG3331223");
+ check_base_class_offset(lv, (FF122*), ABISELECT(64,32), "GG3331223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3331223.pg");
+ test_class_info(&lv, &cd_GG3331223);
+ dp->~GG3331223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3331223(Test_GG3331223, "GG3331223", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3331223C1Ev();
+extern void _ZN9GG3331223D1Ev();
+Name_Map name_map_GG3331223[] = {
+ NSPAIR(_ZN9GG3331223C1Ev),
+ NSPAIR(_ZN9GG3331223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE333;
+extern VTBL_ENTRY _ZTI5EE333[];
+extern VTBL_ENTRY _ZTV5EE333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE333[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF122;
+extern VTBL_ENTRY _ZTI5FF122[];
+extern VTBL_ENTRY _ZTV5FF122[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF122[];
+static Base_Class bases_GG3331223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_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_BB3, ABISELECT(48,24), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE333, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 40, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF122, ABISELECT(64,32), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3331223[];
+extern void _ZN9GG33312233fooEv();
+extern void _ZN9GG33312233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33312233fooEv,_ZTv0_n20_N9GG33312233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33312233fooEv,_ZThn8_N9GG33312233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33312233barEv,_ZTv0_n24_N9GG33312233barEv)();
+extern void ABISELECT(_ZThn16_N9GG33312233barEv,_ZThn8_N9GG33312233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33312233fooEv,_ZTv0_n12_N9GG33312233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33312233fooEv,_ZThn16_N9GG33312233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33312233barEv,_ZTv0_n16_N9GG33312233barEv)();
+extern void ABISELECT(_ZThn32_N9GG33312233barEv,_ZThn16_N9GG33312233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33312233fooEv,_ZTv0_n12_N9GG33312233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33312233fooEv,_ZThn24_N9GG33312233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33312233barEv,_ZTv0_n16_N9GG33312233barEv)();
+extern void ABISELECT(_ZThn48_N9GG33312233barEv,_ZThn24_N9GG33312233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33312233barEv,_ZTv0_n20_N9GG33312233barEv)();
+extern void ABISELECT(_ZThn64_N9GG33312233barEv,_ZThn32_N9GG33312233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33312233fooEv,_ZTv0_n12_N9GG33312233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG33312233fooEv,_ZThn40_N9GG33312233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33312233barEv,_ZTv0_n12_N9GG33312233barEv)();
+extern void ABISELECT(_ZThn96_N9GG33312233barEv,_ZThn48_N9GG33312233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3331223[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3331223[0]),
+ (VTBL_ENTRY)&_ZN9GG33312233fooEv,
+ (VTBL_ENTRY)&_ZN9GG33312233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3331223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33312233fooEv,_ZTv0_n20_N9GG33312233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33312233barEv,_ZTv0_n24_N9GG33312233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3331223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33312233fooEv,_ZTv0_n12_N9GG33312233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33312233barEv,_ZTv0_n16_N9GG33312233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3331223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33312233fooEv,_ZTv0_n12_N9GG33312233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33312233barEv,_ZTv0_n16_N9GG33312233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3331223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33312233barEv,_ZTv0_n20_N9GG33312233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3331223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33312233fooEv,_ZTv0_n12_N9GG33312233fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3331223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33312233barEv,_ZTv0_n12_N9GG33312233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3331223[];
+extern void _ZN5EE3333fooEv();
+extern void _ZN5EE3333barEv();
+static VTBL_ENTRY _tg__ZTV5EE333__9GG3331223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&_ZN5EE3333fooEv,
+ (VTBL_ENTRY)&_ZN5EE3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE333__9GG3331223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE333__9GG3331223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void _ZN5FF1223barEv();
+static VTBL_ENTRY _tg__ZTV5FF122__9GG3331223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN5FF1223barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF122__9GG3331223[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv)();
+extern void ABISELECT(_ZThn32_N5FF1223barEv,_ZThn16_N5FF1223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF122__9GG3331223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF122[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv),
+};
+static VTT_ENTRY vtt_GG3331223[] = {
+ {&(_ZTV9GG3331223[8]), 8,44},
+ {&(_ZTV9GG3331223[16]), 16,44},
+ {&(_ZTV9GG3331223[22]), 22,44},
+ {&(_ZTV9GG3331223[28]), 28,44},
+ {&(_ZTV9GG3331223[35]), 35,44},
+ {&(_ZTV9GG3331223[39]), 39,44},
+ {&(_ZTV9GG3331223[43]), 43,44},
+ {&(_tg__ZTV5EE333__9GG3331223[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE333__9GG3331223[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE333__9GG3331223[4]), 4,6},
+ {&(_tg__ZTV5FF122__9GG3331223[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF122__9GG3331223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF122__9GG3331223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3331223[];
+extern VTBL_ENTRY _ZTV9GG3331223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3331223[];
+static VTBL_ENTRY alt_thunk_names991[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1223barEv,_ZTv0_n12_N5FF1223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1223barEv,_ZThn16_N5FF1223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33312233barEv,_ZTv0_n12_N9GG33312233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG33312233barEv,_ZThn48_N9GG33312233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33312233barEv,_ZTv0_n20_N9GG33312233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33312233barEv,_ZThn32_N9GG33312233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33312233barEv,_ZTv0_n16_N9GG33312233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33312233barEv,_ZThn24_N9GG33312233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33312233barEv,_ZThn16_N9GG33312233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33312233fooEv,_ZTv0_n12_N9GG33312233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33312233fooEv,_ZThn40_N9GG33312233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33312233fooEv,_ZThn24_N9GG33312233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33312233fooEv,_ZThn16_N9GG33312233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG33312233barEv,_ZTv0_n24_N9GG33312233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33312233barEv,_ZThn8_N9GG33312233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33312233fooEv,_ZTv0_n20_N9GG33312233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33312233fooEv,_ZThn8_N9GG33312233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3331223 = { "GG3331223", // class name
+ bases_GG3331223, 6,
+ &(vtc_GG3331223[0]), // expected_vtbl_contents
+ &(vtt_GG3331223[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3331223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3331223),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3331223),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names991,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3331233 : virtual EE333 , virtual FF123 {
+ int pg;
+ virtual void foo(); // _ZN9GG33312333fooEv
+ virtual void bar(); // _ZN9GG33312333barEv
+ ~GG3331233(); // tgen
+ GG3331233(); // tgen
+};
+//SIG(1 GG3331233) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3331233 ::foo(){vfunc_called(this, "_ZN9GG33312333fooEv");}
+void GG3331233 ::bar(){vfunc_called(this, "_ZN9GG33312333barEv");}
+GG3331233 ::~GG3331233(){ note_dtor("GG3331233", this);} // tgen
+GG3331233 ::GG3331233(){ note_ctor("GG3331233", this);} // tgen
+
+static void Test_GG3331233()
+{
+ extern Class_Descriptor cd_GG3331233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3331233, buf);
+ GG3331233 *dp, &lv = *(dp=new (buf) GG3331233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3331233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3331233)");
+ check_base_class_offset(lv, (AA3*)(EE333*), ABISELECT(32,16), "GG3331233");
+ check_base_class_offset(lv, (BB3*)(EE333*), ABISELECT(48,24), "GG3331233");
+ check_base_class_offset(lv, (EE333*), ABISELECT(16,8), "GG3331233");
+ check_base_class_offset(lv, (AA1*)(FF123*), ABISELECT(80,40), "GG3331233");
+ check_base_class_offset(lv, (BB2*)(FF123*), ABISELECT(96,48), "GG3331233");
+ check_base_class_offset(lv, (FF123*), ABISELECT(64,32), "GG3331233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3331233.pg");
+ test_class_info(&lv, &cd_GG3331233);
+ dp->~GG3331233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3331233(Test_GG3331233, "GG3331233", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3331233C1Ev();
+extern void _ZN9GG3331233D1Ev();
+Name_Map name_map_GG3331233[] = {
+ NSPAIR(_ZN9GG3331233C1Ev),
+ NSPAIR(_ZN9GG3331233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE333;
+extern VTBL_ENTRY _ZTI5EE333[];
+extern VTBL_ENTRY _ZTV5EE333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE333[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF123;
+extern VTBL_ENTRY _ZTI5FF123[];
+extern VTBL_ENTRY _ZTV5FF123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF123[];
+static Base_Class bases_GG3331233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_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_BB3, ABISELECT(48,24), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE333, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 42, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF123, ABISELECT(64,32), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3331233[];
+extern void _ZN9GG33312333fooEv();
+extern void _ZN9GG33312333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33312333fooEv,_ZTv0_n20_N9GG33312333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33312333fooEv,_ZThn8_N9GG33312333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33312333barEv,_ZTv0_n24_N9GG33312333barEv)();
+extern void ABISELECT(_ZThn16_N9GG33312333barEv,_ZThn8_N9GG33312333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33312333fooEv,_ZTv0_n12_N9GG33312333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33312333fooEv,_ZThn16_N9GG33312333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33312333barEv,_ZTv0_n16_N9GG33312333barEv)();
+extern void ABISELECT(_ZThn32_N9GG33312333barEv,_ZThn16_N9GG33312333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33312333fooEv,_ZTv0_n12_N9GG33312333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33312333fooEv,_ZThn24_N9GG33312333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33312333barEv,_ZTv0_n16_N9GG33312333barEv)();
+extern void ABISELECT(_ZThn48_N9GG33312333barEv,_ZThn24_N9GG33312333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33312333fooEv,_ZTv0_n20_N9GG33312333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33312333fooEv,_ZThn32_N9GG33312333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33312333barEv,_ZTv0_n24_N9GG33312333barEv)();
+extern void ABISELECT(_ZThn64_N9GG33312333barEv,_ZThn32_N9GG33312333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33312333fooEv,_ZTv0_n12_N9GG33312333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG33312333fooEv,_ZThn40_N9GG33312333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33312333barEv,_ZTv0_n12_N9GG33312333barEv)();
+extern void ABISELECT(_ZThn96_N9GG33312333barEv,_ZThn48_N9GG33312333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3331233[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3331233[0]),
+ (VTBL_ENTRY)&_ZN9GG33312333fooEv,
+ (VTBL_ENTRY)&_ZN9GG33312333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3331233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33312333fooEv,_ZTv0_n20_N9GG33312333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33312333barEv,_ZTv0_n24_N9GG33312333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3331233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33312333fooEv,_ZTv0_n12_N9GG33312333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33312333barEv,_ZTv0_n16_N9GG33312333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3331233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33312333fooEv,_ZTv0_n12_N9GG33312333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33312333barEv,_ZTv0_n16_N9GG33312333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3331233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33312333fooEv,_ZTv0_n20_N9GG33312333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33312333barEv,_ZTv0_n24_N9GG33312333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3331233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33312333fooEv,_ZTv0_n12_N9GG33312333fooEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3331233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33312333barEv,_ZTv0_n12_N9GG33312333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3331233[];
+extern void _ZN5EE3333fooEv();
+extern void _ZN5EE3333barEv();
+static VTBL_ENTRY _tg__ZTV5EE333__9GG3331233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&_ZN5EE3333fooEv,
+ (VTBL_ENTRY)&_ZN5EE3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE333__9GG3331233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE333__9GG3331233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void _ZN5FF1233fooEv();
+extern void _ZN5FF1233barEv();
+static VTBL_ENTRY _tg__ZTV5FF123__9GG3331233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&_ZN5FF1233fooEv,
+ (VTBL_ENTRY)&_ZN5FF1233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1233fooEv,_ZThn8_N5FF1233fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF123__9GG3331233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv)();
+extern void ABISELECT(_ZThn32_N5FF1233barEv,_ZThn16_N5FF1233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF123__9GG3331233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv),
+};
+static VTT_ENTRY vtt_GG3331233[] = {
+ {&(_ZTV9GG3331233[8]), 8,46},
+ {&(_ZTV9GG3331233[16]), 16,46},
+ {&(_ZTV9GG3331233[22]), 22,46},
+ {&(_ZTV9GG3331233[28]), 28,46},
+ {&(_ZTV9GG3331233[36]), 36,46},
+ {&(_ZTV9GG3331233[41]), 41,46},
+ {&(_ZTV9GG3331233[45]), 45,46},
+ {&(_tg__ZTV5EE333__9GG3331233[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE333__9GG3331233[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE333__9GG3331233[4]), 4,6},
+ {&(_tg__ZTV5FF123__9GG3331233[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF123__9GG3331233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF123__9GG3331233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3331233[];
+extern VTBL_ENTRY _ZTV9GG3331233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3331233[];
+static VTBL_ENTRY alt_thunk_names992[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1233barEv,_ZTv0_n12_N5FF1233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF1233barEv,_ZThn16_N5FF1233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1233fooEv,_ZTv0_n12_N5FF1233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1233fooEv,_ZThn8_N5FF1233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33312333barEv,_ZTv0_n12_N9GG33312333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG33312333barEv,_ZThn48_N9GG33312333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33312333barEv,_ZTv0_n16_N9GG33312333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33312333barEv,_ZThn24_N9GG33312333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33312333barEv,_ZThn16_N9GG33312333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33312333fooEv,_ZTv0_n12_N9GG33312333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33312333fooEv,_ZThn40_N9GG33312333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33312333fooEv,_ZThn24_N9GG33312333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33312333fooEv,_ZThn16_N9GG33312333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG33312333barEv,_ZTv0_n24_N9GG33312333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33312333barEv,_ZThn32_N9GG33312333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33312333barEv,_ZThn8_N9GG33312333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33312333fooEv,_ZTv0_n20_N9GG33312333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33312333fooEv,_ZThn32_N9GG33312333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33312333fooEv,_ZThn8_N9GG33312333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3331233 = { "GG3331233", // class name
+ bases_GG3331233, 6,
+ &(vtc_GG3331233[0]), // expected_vtbl_contents
+ &(vtt_GG3331233[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3331233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3331233),46, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3331233),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names992,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3331313 : virtual EE333 , virtual FF131 {
+ int pg;
+ virtual void foo(); // _ZN9GG33313133fooEv
+ virtual void bar(); // _ZN9GG33313133barEv
+ ~GG3331313(); // tgen
+ GG3331313(); // tgen
+};
+//SIG(1 GG3331313) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG3331313 ::foo(){vfunc_called(this, "_ZN9GG33313133fooEv");}
+void GG3331313 ::bar(){vfunc_called(this, "_ZN9GG33313133barEv");}
+GG3331313 ::~GG3331313(){ note_dtor("GG3331313", this);} // tgen
+GG3331313 ::GG3331313(){ note_ctor("GG3331313", this);} // tgen
+
+static void Test_GG3331313()
+{
+ extern Class_Descriptor cd_GG3331313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3331313, buf);
+ GG3331313 *dp, &lv = *(dp=new (buf) GG3331313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3331313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3331313)");
+ check_base_class_offset(lv, (AA3*)(EE333*), ABISELECT(32,16), "GG3331313");
+ check_base_class_offset(lv, (BB3*)(EE333*), ABISELECT(48,24), "GG3331313");
+ check_base_class_offset(lv, (BB3*)(FF131*), ABISELECT(48,24), "GG3331313");
+ check_base_class_offset(lv, (EE333*), ABISELECT(16,8), "GG3331313");
+ check_base_class_offset(lv, (AA1*)(FF131*), ABISELECT(80,40), "GG3331313");
+ check_base_class_offset(lv, (FF131*), ABISELECT(64,32), "GG3331313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3331313.pg");
+ test_class_info(&lv, &cd_GG3331313);
+ dp->~GG3331313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3331313(Test_GG3331313, "GG3331313", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3331313C1Ev();
+extern void _ZN9GG3331313D1Ev();
+Name_Map name_map_GG3331313[] = {
+ NSPAIR(_ZN9GG3331313C1Ev),
+ NSPAIR(_ZN9GG3331313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE333;
+extern VTBL_ENTRY _ZTI5EE333[];
+extern VTBL_ENTRY _ZTV5EE333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE333[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF131;
+extern VTBL_ENTRY _ZTI5FF131[];
+extern VTBL_ENTRY _ZTV5FF131[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF131[];
+static Base_Class bases_GG3331313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE333, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF131, ABISELECT(64,32), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3331313[];
+extern void _ZN9GG33313133fooEv();
+extern void _ZN9GG33313133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33313133fooEv,_ZTv0_n20_N9GG33313133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33313133fooEv,_ZThn8_N9GG33313133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33313133barEv,_ZTv0_n24_N9GG33313133barEv)();
+extern void ABISELECT(_ZThn16_N9GG33313133barEv,_ZThn8_N9GG33313133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33313133fooEv,_ZTv0_n12_N9GG33313133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33313133fooEv,_ZThn16_N9GG33313133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33313133barEv,_ZTv0_n16_N9GG33313133barEv)();
+extern void ABISELECT(_ZThn32_N9GG33313133barEv,_ZThn16_N9GG33313133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33313133fooEv,_ZTv0_n12_N9GG33313133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33313133fooEv,_ZThn24_N9GG33313133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33313133barEv,_ZTv0_n16_N9GG33313133barEv)();
+extern void ABISELECT(_ZThn48_N9GG33313133barEv,_ZThn24_N9GG33313133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33313133fooEv,_ZTv0_n20_N9GG33313133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33313133fooEv,_ZThn32_N9GG33313133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33313133fooEv,_ZTv0_n12_N9GG33313133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG33313133fooEv,_ZThn40_N9GG33313133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3331313[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3331313[0]),
+ (VTBL_ENTRY)&_ZN9GG33313133fooEv,
+ (VTBL_ENTRY)&_ZN9GG33313133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3331313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33313133fooEv,_ZTv0_n20_N9GG33313133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33313133barEv,_ZTv0_n24_N9GG33313133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3331313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33313133fooEv,_ZTv0_n12_N9GG33313133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33313133barEv,_ZTv0_n16_N9GG33313133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3331313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33313133fooEv,_ZTv0_n12_N9GG33313133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33313133barEv,_ZTv0_n16_N9GG33313133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3331313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33313133fooEv,_ZTv0_n20_N9GG33313133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3331313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33313133fooEv,_ZTv0_n12_N9GG33313133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3331313[];
+extern void _ZN5EE3333fooEv();
+extern void _ZN5EE3333barEv();
+static VTBL_ENTRY _tg__ZTV5EE333__9GG3331313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&_ZN5EE3333fooEv,
+ (VTBL_ENTRY)&_ZN5EE3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE333__9GG3331313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE333__9GG3331313[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void _ZN5FF1313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF131__9GG3331313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&_ZN5FF1313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF131__9GG3331313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv)();
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF131__9GG3331313[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF131[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG3331313[] = {
+ {&(_ZTV9GG3331313[7]), 7,39},
+ {&(_ZTV9GG3331313[15]), 15,39},
+ {&(_ZTV9GG3331313[21]), 21,39},
+ {&(_ZTV9GG3331313[27]), 27,39},
+ {&(_ZTV9GG3331313[34]), 34,39},
+ {&(_ZTV9GG3331313[38]), 38,39},
+ {&(_tg__ZTV5EE333__9GG3331313[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE333__9GG3331313[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE333__9GG3331313[4]), 4,6},
+ {&(_tg__ZTV5FF131__9GG3331313[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF131__9GG3331313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF131__9GG3331313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3331313[];
+extern VTBL_ENTRY _ZTV9GG3331313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3331313[];
+static VTBL_ENTRY alt_thunk_names993[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1313fooEv,_ZTv0_n12_N5FF1313fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1313fooEv,_ZThn8_N5FF1313fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33313133barEv,_ZTv0_n16_N9GG33313133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33313133barEv,_ZThn24_N9GG33313133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33313133barEv,_ZThn16_N9GG33313133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33313133fooEv,_ZTv0_n12_N9GG33313133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33313133fooEv,_ZThn40_N9GG33313133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33313133fooEv,_ZThn24_N9GG33313133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33313133fooEv,_ZThn16_N9GG33313133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG33313133barEv,_ZTv0_n24_N9GG33313133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33313133barEv,_ZThn8_N9GG33313133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33313133fooEv,_ZTv0_n20_N9GG33313133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33313133fooEv,_ZThn32_N9GG33313133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33313133fooEv,_ZThn8_N9GG33313133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3331313 = { "GG3331313", // class name
+ bases_GG3331313, 5,
+ &(vtc_GG3331313[0]), // expected_vtbl_contents
+ &(vtt_GG3331313[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3331313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3331313),39, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3331313),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names993,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3331323 : virtual EE333 , virtual FF132 {
+ int pg;
+ virtual void foo(); // _ZN9GG33313233fooEv
+ virtual void bar(); // _ZN9GG33313233barEv
+ ~GG3331323(); // tgen
+ GG3331323(); // tgen
+};
+//SIG(1 GG3331323) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG3331323 ::foo(){vfunc_called(this, "_ZN9GG33313233fooEv");}
+void GG3331323 ::bar(){vfunc_called(this, "_ZN9GG33313233barEv");}
+GG3331323 ::~GG3331323(){ note_dtor("GG3331323", this);} // tgen
+GG3331323 ::GG3331323(){ note_ctor("GG3331323", this);} // tgen
+
+static void Test_GG3331323()
+{
+ extern Class_Descriptor cd_GG3331323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3331323, buf);
+ GG3331323 *dp, &lv = *(dp=new (buf) GG3331323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3331323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3331323)");
+ check_base_class_offset(lv, (AA3*)(EE333*), ABISELECT(32,16), "GG3331323");
+ check_base_class_offset(lv, (BB3*)(EE333*), ABISELECT(48,24), "GG3331323");
+ check_base_class_offset(lv, (BB3*)(FF132*), ABISELECT(48,24), "GG3331323");
+ check_base_class_offset(lv, (EE333*), ABISELECT(16,8), "GG3331323");
+ check_base_class_offset(lv, (AA1*)(FF132*), ABISELECT(80,40), "GG3331323");
+ check_base_class_offset(lv, (FF132*), ABISELECT(64,32), "GG3331323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3331323.pg");
+ test_class_info(&lv, &cd_GG3331323);
+ dp->~GG3331323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3331323(Test_GG3331323, "GG3331323", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3331323C1Ev();
+extern void _ZN9GG3331323D1Ev();
+Name_Map name_map_GG3331323[] = {
+ NSPAIR(_ZN9GG3331323C1Ev),
+ NSPAIR(_ZN9GG3331323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE333;
+extern VTBL_ENTRY _ZTI5EE333[];
+extern VTBL_ENTRY _ZTV5EE333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE333[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF132;
+extern VTBL_ENTRY _ZTI5FF132[];
+extern VTBL_ENTRY _ZTV5FF132[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF132[];
+static Base_Class bases_GG3331323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE333, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF132, ABISELECT(64,32), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3331323[];
+extern void _ZN9GG33313233fooEv();
+extern void _ZN9GG33313233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33313233fooEv,_ZTv0_n20_N9GG33313233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33313233fooEv,_ZThn8_N9GG33313233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33313233barEv,_ZTv0_n24_N9GG33313233barEv)();
+extern void ABISELECT(_ZThn16_N9GG33313233barEv,_ZThn8_N9GG33313233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33313233fooEv,_ZTv0_n12_N9GG33313233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33313233fooEv,_ZThn16_N9GG33313233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33313233barEv,_ZTv0_n16_N9GG33313233barEv)();
+extern void ABISELECT(_ZThn32_N9GG33313233barEv,_ZThn16_N9GG33313233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33313233fooEv,_ZTv0_n12_N9GG33313233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33313233fooEv,_ZThn24_N9GG33313233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33313233barEv,_ZTv0_n16_N9GG33313233barEv)();
+extern void ABISELECT(_ZThn48_N9GG33313233barEv,_ZThn24_N9GG33313233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33313233barEv,_ZTv0_n20_N9GG33313233barEv)();
+extern void ABISELECT(_ZThn64_N9GG33313233barEv,_ZThn32_N9GG33313233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33313233fooEv,_ZTv0_n12_N9GG33313233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG33313233fooEv,_ZThn40_N9GG33313233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3331323[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3331323[0]),
+ (VTBL_ENTRY)&_ZN9GG33313233fooEv,
+ (VTBL_ENTRY)&_ZN9GG33313233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3331323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33313233fooEv,_ZTv0_n20_N9GG33313233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33313233barEv,_ZTv0_n24_N9GG33313233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3331323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33313233fooEv,_ZTv0_n12_N9GG33313233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33313233barEv,_ZTv0_n16_N9GG33313233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3331323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33313233fooEv,_ZTv0_n12_N9GG33313233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33313233barEv,_ZTv0_n16_N9GG33313233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3331323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33313233barEv,_ZTv0_n20_N9GG33313233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3331323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33313233fooEv,_ZTv0_n12_N9GG33313233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3331323[];
+extern void _ZN5EE3333fooEv();
+extern void _ZN5EE3333barEv();
+static VTBL_ENTRY _tg__ZTV5EE333__9GG3331323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&_ZN5EE3333fooEv,
+ (VTBL_ENTRY)&_ZN5EE3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE333__9GG3331323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE333__9GG3331323[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void _ZN5FF1323barEv();
+static VTBL_ENTRY _tg__ZTV5FF132__9GG3331323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN5FF1323barEv,
+};
+extern void _ZN3AA13fooEv();
+static VTBL_ENTRY _tg__ZTV3AA1__5FF132__9GG3331323[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3AA13fooEv,
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF132__9GG3331323[] = {
+ ABISELECT(16,8),
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF132[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1323barEv,_ZTv0_n16_N5FF1323barEv),
+};
+static VTT_ENTRY vtt_GG3331323[] = {
+ {&(_ZTV9GG3331323[7]), 7,39},
+ {&(_ZTV9GG3331323[15]), 15,39},
+ {&(_ZTV9GG3331323[21]), 21,39},
+ {&(_ZTV9GG3331323[27]), 27,39},
+ {&(_ZTV9GG3331323[34]), 34,39},
+ {&(_ZTV9GG3331323[38]), 38,39},
+ {&(_tg__ZTV5EE333__9GG3331323[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE333__9GG3331323[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE333__9GG3331323[4]), 4,6},
+ {&(_tg__ZTV5FF132__9GG3331323[4]), 4,5},
+ {&(_tg__ZTV3AA1__5FF132__9GG3331323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF132__9GG3331323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3331323[];
+extern VTBL_ENTRY _ZTV9GG3331323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3331323[];
+static VTBL_ENTRY alt_thunk_names994[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33313233barEv,_ZTv0_n20_N9GG33313233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33313233barEv,_ZThn32_N9GG33313233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33313233barEv,_ZTv0_n16_N9GG33313233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33313233barEv,_ZThn24_N9GG33313233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33313233barEv,_ZThn16_N9GG33313233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33313233fooEv,_ZTv0_n12_N9GG33313233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33313233fooEv,_ZThn40_N9GG33313233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33313233fooEv,_ZThn24_N9GG33313233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33313233fooEv,_ZThn16_N9GG33313233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG33313233barEv,_ZTv0_n24_N9GG33313233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33313233barEv,_ZThn8_N9GG33313233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33313233fooEv,_ZTv0_n20_N9GG33313233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33313233fooEv,_ZThn8_N9GG33313233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3331323 = { "GG3331323", // class name
+ bases_GG3331323, 5,
+ &(vtc_GG3331323[0]), // expected_vtbl_contents
+ &(vtt_GG3331323[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3331323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3331323),39, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3331323),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names994,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3331333 : virtual EE333 , virtual FF133 {
+ int pg;
+ virtual void foo(); // _ZN9GG33313333fooEv
+ virtual void bar(); // _ZN9GG33313333barEv
+ ~GG3331333(); // tgen
+ GG3331333(); // tgen
+};
+//SIG(1 GG3331333) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v1 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3331333 ::foo(){vfunc_called(this, "_ZN9GG33313333fooEv");}
+void GG3331333 ::bar(){vfunc_called(this, "_ZN9GG33313333barEv");}
+GG3331333 ::~GG3331333(){ note_dtor("GG3331333", this);} // tgen
+GG3331333 ::GG3331333(){ note_ctor("GG3331333", this);} // tgen
+
+static void Test_GG3331333()
+{
+ extern Class_Descriptor cd_GG3331333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3331333, buf);
+ GG3331333 *dp, &lv = *(dp=new (buf) GG3331333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3331333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3331333)");
+ check_base_class_offset(lv, (AA3*)(EE333*), ABISELECT(32,16), "GG3331333");
+ check_base_class_offset(lv, (BB3*)(EE333*), ABISELECT(48,24), "GG3331333");
+ check_base_class_offset(lv, (BB3*)(FF133*), ABISELECT(48,24), "GG3331333");
+ check_base_class_offset(lv, (EE333*), ABISELECT(16,8), "GG3331333");
+ check_base_class_offset(lv, (AA1*)(FF133*), ABISELECT(80,40), "GG3331333");
+ check_base_class_offset(lv, (FF133*), ABISELECT(64,32), "GG3331333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3331333.pg");
+ test_class_info(&lv, &cd_GG3331333);
+ dp->~GG3331333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3331333(Test_GG3331333, "GG3331333", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3331333C1Ev();
+extern void _ZN9GG3331333D1Ev();
+Name_Map name_map_GG3331333[] = {
+ NSPAIR(_ZN9GG3331333C1Ev),
+ NSPAIR(_ZN9GG3331333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE333;
+extern VTBL_ENTRY _ZTI5EE333[];
+extern VTBL_ENTRY _ZTV5EE333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE333[];
+extern Class_Descriptor cd_AA1;
+extern VTBL_ENTRY _ZTI3AA1[];
+extern VTBL_ENTRY _ZTV3AA1[];
+extern Class_Descriptor cd_FF133;
+extern VTBL_ENTRY _ZTI5FF133[];
+extern VTBL_ENTRY _ZTV5FF133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF133[];
+static Base_Class bases_GG3331333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE333, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA1, ABISELECT(80,40), //bcp->offset
+ 37, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF133, ABISELECT(64,32), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3331333[];
+extern void _ZN9GG33313333fooEv();
+extern void _ZN9GG33313333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33313333fooEv,_ZTv0_n20_N9GG33313333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33313333fooEv,_ZThn8_N9GG33313333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33313333barEv,_ZTv0_n24_N9GG33313333barEv)();
+extern void ABISELECT(_ZThn16_N9GG33313333barEv,_ZThn8_N9GG33313333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33313333fooEv,_ZTv0_n12_N9GG33313333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33313333fooEv,_ZThn16_N9GG33313333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33313333barEv,_ZTv0_n16_N9GG33313333barEv)();
+extern void ABISELECT(_ZThn32_N9GG33313333barEv,_ZThn16_N9GG33313333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33313333fooEv,_ZTv0_n12_N9GG33313333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33313333fooEv,_ZThn24_N9GG33313333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33313333barEv,_ZTv0_n16_N9GG33313333barEv)();
+extern void ABISELECT(_ZThn48_N9GG33313333barEv,_ZThn24_N9GG33313333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33313333fooEv,_ZTv0_n20_N9GG33313333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33313333fooEv,_ZThn32_N9GG33313333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33313333barEv,_ZTv0_n24_N9GG33313333barEv)();
+extern void ABISELECT(_ZThn64_N9GG33313333barEv,_ZThn32_N9GG33313333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33313333fooEv,_ZTv0_n12_N9GG33313333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG33313333fooEv,_ZThn40_N9GG33313333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3331333[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3331333[0]),
+ (VTBL_ENTRY)&_ZN9GG33313333fooEv,
+ (VTBL_ENTRY)&_ZN9GG33313333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3331333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33313333fooEv,_ZTv0_n20_N9GG33313333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33313333barEv,_ZTv0_n24_N9GG33313333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3331333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33313333fooEv,_ZTv0_n12_N9GG33313333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33313333barEv,_ZTv0_n16_N9GG33313333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3331333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33313333fooEv,_ZTv0_n12_N9GG33313333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33313333barEv,_ZTv0_n16_N9GG33313333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3331333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33313333fooEv,_ZTv0_n20_N9GG33313333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33313333barEv,_ZTv0_n24_N9GG33313333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3331333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33313333fooEv,_ZTv0_n12_N9GG33313333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3331333[];
+extern void _ZN5EE3333fooEv();
+extern void _ZN5EE3333barEv();
+static VTBL_ENTRY _tg__ZTV5EE333__9GG3331333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&_ZN5EE3333fooEv,
+ (VTBL_ENTRY)&_ZN5EE3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE333__9GG3331333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE333__9GG3331333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void _ZN5FF1333fooEv();
+extern void _ZN5FF1333barEv();
+static VTBL_ENTRY _tg__ZTV5FF133__9GG3331333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&_ZN5FF1333fooEv,
+ (VTBL_ENTRY)&_ZN5FF1333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+extern void ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA1__5FF133__9GG3331333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF133__9GG3331333[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF1333barEv,_ZTv0_n16_N5FF1333barEv),
+};
+static VTT_ENTRY vtt_GG3331333[] = {
+ {&(_ZTV9GG3331333[7]), 7,41},
+ {&(_ZTV9GG3331333[15]), 15,41},
+ {&(_ZTV9GG3331333[21]), 21,41},
+ {&(_ZTV9GG3331333[27]), 27,41},
+ {&(_ZTV9GG3331333[35]), 35,41},
+ {&(_ZTV9GG3331333[40]), 40,41},
+ {&(_tg__ZTV5EE333__9GG3331333[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE333__9GG3331333[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE333__9GG3331333[4]), 4,6},
+ {&(_tg__ZTV5FF133__9GG3331333[4]), 4,6},
+ {&(_tg__ZTV3AA1__5FF133__9GG3331333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF133__9GG3331333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3331333[];
+extern VTBL_ENTRY _ZTV9GG3331333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3331333[];
+static VTBL_ENTRY alt_thunk_names995[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF1333fooEv,_ZTv0_n12_N5FF1333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF1333fooEv,_ZThn8_N5FF1333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33313333barEv,_ZTv0_n16_N9GG33313333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33313333barEv,_ZThn24_N9GG33313333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33313333barEv,_ZThn16_N9GG33313333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33313333fooEv,_ZTv0_n12_N9GG33313333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33313333fooEv,_ZThn40_N9GG33313333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33313333fooEv,_ZThn24_N9GG33313333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33313333fooEv,_ZThn16_N9GG33313333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG33313333barEv,_ZTv0_n24_N9GG33313333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33313333barEv,_ZThn32_N9GG33313333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33313333barEv,_ZThn8_N9GG33313333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33313333fooEv,_ZTv0_n20_N9GG33313333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33313333fooEv,_ZThn32_N9GG33313333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33313333fooEv,_ZThn8_N9GG33313333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3331333 = { "GG3331333", // class name
+ bases_GG3331333, 5,
+ &(vtc_GG3331333[0]), // expected_vtbl_contents
+ &(vtt_GG3331333[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3331333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3331333),41, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3331333),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names995,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3332113 : virtual EE333 , virtual FF211 {
+ int pg;
+ virtual void foo(); // _ZN9GG33321133fooEv
+ virtual void bar(); // _ZN9GG33321133barEv
+ ~GG3332113(); // tgen
+ GG3332113(); // tgen
+};
+//SIG(1 GG3332113) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3332113 ::foo(){vfunc_called(this, "_ZN9GG33321133fooEv");}
+void GG3332113 ::bar(){vfunc_called(this, "_ZN9GG33321133barEv");}
+GG3332113 ::~GG3332113(){ note_dtor("GG3332113", this);} // tgen
+GG3332113 ::GG3332113(){ note_ctor("GG3332113", this);} // tgen
+
+static void Test_GG3332113()
+{
+ extern Class_Descriptor cd_GG3332113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3332113, buf);
+ GG3332113 *dp, &lv = *(dp=new (buf) GG3332113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3332113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3332113)");
+ check_base_class_offset(lv, (AA3*)(EE333*), ABISELECT(32,16), "GG3332113");
+ check_base_class_offset(lv, (BB3*)(EE333*), ABISELECT(48,24), "GG3332113");
+ check_base_class_offset(lv, (EE333*), ABISELECT(16,8), "GG3332113");
+ check_base_class_offset(lv, (AA2*)(FF211*), ABISELECT(80,40), "GG3332113");
+ check_base_class_offset(lv, (BB1*)(FF211*), ABISELECT(96,48), "GG3332113");
+ check_base_class_offset(lv, (FF211*), ABISELECT(64,32), "GG3332113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3332113.pg");
+ test_class_info(&lv, &cd_GG3332113);
+ dp->~GG3332113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3332113(Test_GG3332113, "GG3332113", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3332113C1Ev();
+extern void _ZN9GG3332113D1Ev();
+Name_Map name_map_GG3332113[] = {
+ NSPAIR(_ZN9GG3332113C1Ev),
+ NSPAIR(_ZN9GG3332113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE333;
+extern VTBL_ENTRY _ZTI5EE333[];
+extern VTBL_ENTRY _ZTV5EE333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE333[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF211;
+extern VTBL_ENTRY _ZTI5FF211[];
+extern VTBL_ENTRY _ZTV5FF211[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF211[];
+static Base_Class bases_GG3332113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_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_BB3, ABISELECT(48,24), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE333, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 40, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF211, ABISELECT(64,32), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3332113[];
+extern void _ZN9GG33321133fooEv();
+extern void _ZN9GG33321133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33321133fooEv,_ZTv0_n20_N9GG33321133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33321133fooEv,_ZThn8_N9GG33321133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33321133barEv,_ZTv0_n24_N9GG33321133barEv)();
+extern void ABISELECT(_ZThn16_N9GG33321133barEv,_ZThn8_N9GG33321133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33321133fooEv,_ZTv0_n12_N9GG33321133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33321133fooEv,_ZThn16_N9GG33321133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33321133barEv,_ZTv0_n16_N9GG33321133barEv)();
+extern void ABISELECT(_ZThn32_N9GG33321133barEv,_ZThn16_N9GG33321133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33321133fooEv,_ZTv0_n12_N9GG33321133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33321133fooEv,_ZThn24_N9GG33321133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33321133barEv,_ZTv0_n16_N9GG33321133barEv)();
+extern void ABISELECT(_ZThn48_N9GG33321133barEv,_ZThn24_N9GG33321133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33321133fooEv,_ZTv0_n20_N9GG33321133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33321133fooEv,_ZThn32_N9GG33321133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33321133barEv,_ZTv0_n12_N9GG33321133barEv)();
+extern void ABISELECT(_ZThn80_N9GG33321133barEv,_ZThn40_N9GG33321133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33321133fooEv,_ZTv0_n12_N9GG33321133fooEv)();
+extern void ABISELECT(_ZThn96_N9GG33321133fooEv,_ZThn48_N9GG33321133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3332113[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3332113[0]),
+ (VTBL_ENTRY)&_ZN9GG33321133fooEv,
+ (VTBL_ENTRY)&_ZN9GG33321133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3332113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33321133fooEv,_ZTv0_n20_N9GG33321133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33321133barEv,_ZTv0_n24_N9GG33321133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3332113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33321133fooEv,_ZTv0_n12_N9GG33321133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33321133barEv,_ZTv0_n16_N9GG33321133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3332113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33321133fooEv,_ZTv0_n12_N9GG33321133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33321133barEv,_ZTv0_n16_N9GG33321133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3332113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33321133fooEv,_ZTv0_n20_N9GG33321133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3332113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33321133barEv,_ZTv0_n12_N9GG33321133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3332113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33321133fooEv,_ZTv0_n12_N9GG33321133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3332113[];
+extern void _ZN5EE3333fooEv();
+extern void _ZN5EE3333barEv();
+static VTBL_ENTRY _tg__ZTV5EE333__9GG3332113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&_ZN5EE3333fooEv,
+ (VTBL_ENTRY)&_ZN5EE3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE333__9GG3332113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE333__9GG3332113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void _ZN5FF2113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF211__9GG3332113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN5FF2113fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF211__9GG3332113[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2113fooEv,_ZThn16_N5FF2113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF211__9GG3332113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF211[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv),
+};
+static VTT_ENTRY vtt_GG3332113[] = {
+ {&(_ZTV9GG3332113[8]), 8,44},
+ {&(_ZTV9GG3332113[16]), 16,44},
+ {&(_ZTV9GG3332113[22]), 22,44},
+ {&(_ZTV9GG3332113[28]), 28,44},
+ {&(_ZTV9GG3332113[35]), 35,44},
+ {&(_ZTV9GG3332113[39]), 39,44},
+ {&(_ZTV9GG3332113[43]), 43,44},
+ {&(_tg__ZTV5EE333__9GG3332113[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE333__9GG3332113[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE333__9GG3332113[4]), 4,6},
+ {&(_tg__ZTV5FF211__9GG3332113[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF211__9GG3332113[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF211__9GG3332113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3332113[];
+extern VTBL_ENTRY _ZTV9GG3332113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3332113[];
+static VTBL_ENTRY alt_thunk_names996[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2113fooEv,_ZTv0_n12_N5FF2113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2113fooEv,_ZThn16_N5FF2113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33321133barEv,_ZTv0_n12_N9GG33321133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33321133barEv,_ZThn40_N9GG33321133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33321133barEv,_ZTv0_n16_N9GG33321133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33321133barEv,_ZThn24_N9GG33321133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33321133barEv,_ZThn16_N9GG33321133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33321133fooEv,_ZTv0_n12_N9GG33321133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG33321133fooEv,_ZThn48_N9GG33321133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33321133fooEv,_ZThn24_N9GG33321133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33321133fooEv,_ZThn16_N9GG33321133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG33321133barEv,_ZTv0_n24_N9GG33321133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33321133barEv,_ZThn8_N9GG33321133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33321133fooEv,_ZTv0_n20_N9GG33321133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33321133fooEv,_ZThn32_N9GG33321133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33321133fooEv,_ZThn8_N9GG33321133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3332113 = { "GG3332113", // class name
+ bases_GG3332113, 6,
+ &(vtc_GG3332113[0]), // expected_vtbl_contents
+ &(vtt_GG3332113[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3332113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3332113),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3332113),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names996,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3332123 : virtual EE333 , virtual FF212 {
+ int pg;
+ virtual void foo(); // _ZN9GG33321233fooEv
+ virtual void bar(); // _ZN9GG33321233barEv
+ ~GG3332123(); // tgen
+ GG3332123(); // tgen
+};
+//SIG(1 GG3332123) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3332123 ::foo(){vfunc_called(this, "_ZN9GG33321233fooEv");}
+void GG3332123 ::bar(){vfunc_called(this, "_ZN9GG33321233barEv");}
+GG3332123 ::~GG3332123(){ note_dtor("GG3332123", this);} // tgen
+GG3332123 ::GG3332123(){ note_ctor("GG3332123", this);} // tgen
+
+static void Test_GG3332123()
+{
+ extern Class_Descriptor cd_GG3332123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3332123, buf);
+ GG3332123 *dp, &lv = *(dp=new (buf) GG3332123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3332123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3332123)");
+ check_base_class_offset(lv, (AA3*)(EE333*), ABISELECT(32,16), "GG3332123");
+ check_base_class_offset(lv, (BB3*)(EE333*), ABISELECT(48,24), "GG3332123");
+ check_base_class_offset(lv, (EE333*), ABISELECT(16,8), "GG3332123");
+ check_base_class_offset(lv, (AA2*)(FF212*), ABISELECT(80,40), "GG3332123");
+ check_base_class_offset(lv, (BB1*)(FF212*), ABISELECT(96,48), "GG3332123");
+ check_base_class_offset(lv, (FF212*), ABISELECT(64,32), "GG3332123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3332123.pg");
+ test_class_info(&lv, &cd_GG3332123);
+ dp->~GG3332123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3332123(Test_GG3332123, "GG3332123", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3332123C1Ev();
+extern void _ZN9GG3332123D1Ev();
+Name_Map name_map_GG3332123[] = {
+ NSPAIR(_ZN9GG3332123C1Ev),
+ NSPAIR(_ZN9GG3332123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE333;
+extern VTBL_ENTRY _ZTI5EE333[];
+extern VTBL_ENTRY _ZTV5EE333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE333[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF212;
+extern VTBL_ENTRY _ZTI5FF212[];
+extern VTBL_ENTRY _ZTV5FF212[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF212[];
+static Base_Class bases_GG3332123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_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_BB3, ABISELECT(48,24), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE333, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 40, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF212, ABISELECT(64,32), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3332123[];
+extern void _ZN9GG33321233fooEv();
+extern void _ZN9GG33321233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33321233fooEv,_ZTv0_n20_N9GG33321233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33321233fooEv,_ZThn8_N9GG33321233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33321233barEv,_ZTv0_n24_N9GG33321233barEv)();
+extern void ABISELECT(_ZThn16_N9GG33321233barEv,_ZThn8_N9GG33321233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33321233fooEv,_ZTv0_n12_N9GG33321233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33321233fooEv,_ZThn16_N9GG33321233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33321233barEv,_ZTv0_n16_N9GG33321233barEv)();
+extern void ABISELECT(_ZThn32_N9GG33321233barEv,_ZThn16_N9GG33321233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33321233fooEv,_ZTv0_n12_N9GG33321233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33321233fooEv,_ZThn24_N9GG33321233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33321233barEv,_ZTv0_n16_N9GG33321233barEv)();
+extern void ABISELECT(_ZThn48_N9GG33321233barEv,_ZThn24_N9GG33321233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33321233barEv,_ZTv0_n20_N9GG33321233barEv)();
+extern void ABISELECT(_ZThn64_N9GG33321233barEv,_ZThn32_N9GG33321233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33321233barEv,_ZTv0_n12_N9GG33321233barEv)();
+extern void ABISELECT(_ZThn80_N9GG33321233barEv,_ZThn40_N9GG33321233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33321233fooEv,_ZTv0_n12_N9GG33321233fooEv)();
+extern void ABISELECT(_ZThn96_N9GG33321233fooEv,_ZThn48_N9GG33321233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3332123[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3332123[0]),
+ (VTBL_ENTRY)&_ZN9GG33321233fooEv,
+ (VTBL_ENTRY)&_ZN9GG33321233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3332123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33321233fooEv,_ZTv0_n20_N9GG33321233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33321233barEv,_ZTv0_n24_N9GG33321233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3332123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33321233fooEv,_ZTv0_n12_N9GG33321233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33321233barEv,_ZTv0_n16_N9GG33321233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3332123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33321233fooEv,_ZTv0_n12_N9GG33321233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33321233barEv,_ZTv0_n16_N9GG33321233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3332123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33321233barEv,_ZTv0_n20_N9GG33321233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3332123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33321233barEv,_ZTv0_n12_N9GG33321233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3332123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33321233fooEv,_ZTv0_n12_N9GG33321233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3332123[];
+extern void _ZN5EE3333fooEv();
+extern void _ZN5EE3333barEv();
+static VTBL_ENTRY _tg__ZTV5EE333__9GG3332123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&_ZN5EE3333fooEv,
+ (VTBL_ENTRY)&_ZN5EE3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE333__9GG3332123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE333__9GG3332123[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void _ZN5FF2123barEv();
+static VTBL_ENTRY _tg__ZTV5FF212__9GG3332123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN5FF2123barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv)();
+extern void ABISELECT(_ZThn16_N5FF2123barEv,_ZThn8_N5FF2123barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF212__9GG3332123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF212__9GG3332123[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF212[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG3332123[] = {
+ {&(_ZTV9GG3332123[8]), 8,44},
+ {&(_ZTV9GG3332123[16]), 16,44},
+ {&(_ZTV9GG3332123[22]), 22,44},
+ {&(_ZTV9GG3332123[28]), 28,44},
+ {&(_ZTV9GG3332123[35]), 35,44},
+ {&(_ZTV9GG3332123[39]), 39,44},
+ {&(_ZTV9GG3332123[43]), 43,44},
+ {&(_tg__ZTV5EE333__9GG3332123[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE333__9GG3332123[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE333__9GG3332123[4]), 4,6},
+ {&(_tg__ZTV5FF212__9GG3332123[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF212__9GG3332123[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF212__9GG3332123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3332123[];
+extern VTBL_ENTRY _ZTV9GG3332123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3332123[];
+static VTBL_ENTRY alt_thunk_names997[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2123barEv,_ZTv0_n12_N5FF2123barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2123barEv,_ZThn8_N5FF2123barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33321233barEv,_ZTv0_n12_N9GG33321233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33321233barEv,_ZThn40_N9GG33321233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33321233barEv,_ZTv0_n20_N9GG33321233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33321233barEv,_ZThn32_N9GG33321233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33321233barEv,_ZTv0_n16_N9GG33321233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33321233barEv,_ZThn24_N9GG33321233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33321233barEv,_ZThn16_N9GG33321233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33321233fooEv,_ZTv0_n12_N9GG33321233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG33321233fooEv,_ZThn48_N9GG33321233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33321233fooEv,_ZThn24_N9GG33321233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33321233fooEv,_ZThn16_N9GG33321233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG33321233barEv,_ZTv0_n24_N9GG33321233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33321233barEv,_ZThn8_N9GG33321233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33321233fooEv,_ZTv0_n20_N9GG33321233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33321233fooEv,_ZThn8_N9GG33321233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3332123 = { "GG3332123", // class name
+ bases_GG3332123, 6,
+ &(vtc_GG3332123[0]), // expected_vtbl_contents
+ &(vtt_GG3332123[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3332123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3332123),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3332123),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names997,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3332133 : virtual EE333 , virtual FF213 {
+ int pg;
+ virtual void foo(); // _ZN9GG33321333fooEv
+ virtual void bar(); // _ZN9GG33321333barEv
+ ~GG3332133(); // tgen
+ GG3332133(); // tgen
+};
+//SIG(1 GG3332133) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3332133 ::foo(){vfunc_called(this, "_ZN9GG33321333fooEv");}
+void GG3332133 ::bar(){vfunc_called(this, "_ZN9GG33321333barEv");}
+GG3332133 ::~GG3332133(){ note_dtor("GG3332133", this);} // tgen
+GG3332133 ::GG3332133(){ note_ctor("GG3332133", this);} // tgen
+
+static void Test_GG3332133()
+{
+ extern Class_Descriptor cd_GG3332133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3332133, buf);
+ GG3332133 *dp, &lv = *(dp=new (buf) GG3332133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3332133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3332133)");
+ check_base_class_offset(lv, (AA3*)(EE333*), ABISELECT(32,16), "GG3332133");
+ check_base_class_offset(lv, (BB3*)(EE333*), ABISELECT(48,24), "GG3332133");
+ check_base_class_offset(lv, (EE333*), ABISELECT(16,8), "GG3332133");
+ check_base_class_offset(lv, (AA2*)(FF213*), ABISELECT(80,40), "GG3332133");
+ check_base_class_offset(lv, (BB1*)(FF213*), ABISELECT(96,48), "GG3332133");
+ check_base_class_offset(lv, (FF213*), ABISELECT(64,32), "GG3332133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3332133.pg");
+ test_class_info(&lv, &cd_GG3332133);
+ dp->~GG3332133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3332133(Test_GG3332133, "GG3332133", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3332133C1Ev();
+extern void _ZN9GG3332133D1Ev();
+Name_Map name_map_GG3332133[] = {
+ NSPAIR(_ZN9GG3332133C1Ev),
+ NSPAIR(_ZN9GG3332133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE333;
+extern VTBL_ENTRY _ZTI5EE333[];
+extern VTBL_ENTRY _ZTV5EE333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE333[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF213;
+extern VTBL_ENTRY _ZTI5FF213[];
+extern VTBL_ENTRY _ZTV5FF213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF213[];
+static Base_Class bases_GG3332133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_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_BB3, ABISELECT(48,24), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE333, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB1, ABISELECT(96,48), //bcp->offset
+ 42, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF213, ABISELECT(64,32), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3332133[];
+extern void _ZN9GG33321333fooEv();
+extern void _ZN9GG33321333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33321333fooEv,_ZTv0_n20_N9GG33321333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33321333fooEv,_ZThn8_N9GG33321333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33321333barEv,_ZTv0_n24_N9GG33321333barEv)();
+extern void ABISELECT(_ZThn16_N9GG33321333barEv,_ZThn8_N9GG33321333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33321333fooEv,_ZTv0_n12_N9GG33321333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33321333fooEv,_ZThn16_N9GG33321333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33321333barEv,_ZTv0_n16_N9GG33321333barEv)();
+extern void ABISELECT(_ZThn32_N9GG33321333barEv,_ZThn16_N9GG33321333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33321333fooEv,_ZTv0_n12_N9GG33321333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33321333fooEv,_ZThn24_N9GG33321333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33321333barEv,_ZTv0_n16_N9GG33321333barEv)();
+extern void ABISELECT(_ZThn48_N9GG33321333barEv,_ZThn24_N9GG33321333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33321333fooEv,_ZTv0_n20_N9GG33321333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33321333fooEv,_ZThn32_N9GG33321333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33321333barEv,_ZTv0_n24_N9GG33321333barEv)();
+extern void ABISELECT(_ZThn64_N9GG33321333barEv,_ZThn32_N9GG33321333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33321333barEv,_ZTv0_n12_N9GG33321333barEv)();
+extern void ABISELECT(_ZThn80_N9GG33321333barEv,_ZThn40_N9GG33321333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33321333fooEv,_ZTv0_n12_N9GG33321333fooEv)();
+extern void ABISELECT(_ZThn96_N9GG33321333fooEv,_ZThn48_N9GG33321333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3332133[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3332133[0]),
+ (VTBL_ENTRY)&_ZN9GG33321333fooEv,
+ (VTBL_ENTRY)&_ZN9GG33321333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3332133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33321333fooEv,_ZTv0_n20_N9GG33321333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33321333barEv,_ZTv0_n24_N9GG33321333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3332133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33321333fooEv,_ZTv0_n12_N9GG33321333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33321333barEv,_ZTv0_n16_N9GG33321333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3332133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33321333fooEv,_ZTv0_n12_N9GG33321333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33321333barEv,_ZTv0_n16_N9GG33321333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3332133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33321333fooEv,_ZTv0_n20_N9GG33321333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33321333barEv,_ZTv0_n24_N9GG33321333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3332133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33321333barEv,_ZTv0_n12_N9GG33321333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3332133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33321333fooEv,_ZTv0_n12_N9GG33321333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3332133[];
+extern void _ZN5EE3333fooEv();
+extern void _ZN5EE3333barEv();
+static VTBL_ENTRY _tg__ZTV5EE333__9GG3332133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&_ZN5EE3333fooEv,
+ (VTBL_ENTRY)&_ZN5EE3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE333__9GG3332133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE333__9GG3332133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void _ZN5FF2133fooEv();
+extern void _ZN5FF2133barEv();
+static VTBL_ENTRY _tg__ZTV5FF213__9GG3332133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&_ZN5FF2133fooEv,
+ (VTBL_ENTRY)&_ZN5FF2133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv)();
+extern void ABISELECT(_ZThn16_N5FF2133barEv,_ZThn8_N5FF2133barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF213__9GG3332133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv)();
+extern void ABISELECT(_ZThn32_N5FF2133fooEv,_ZThn16_N5FF2133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF213__9GG3332133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv),
+};
+static VTT_ENTRY vtt_GG3332133[] = {
+ {&(_ZTV9GG3332133[8]), 8,46},
+ {&(_ZTV9GG3332133[16]), 16,46},
+ {&(_ZTV9GG3332133[22]), 22,46},
+ {&(_ZTV9GG3332133[28]), 28,46},
+ {&(_ZTV9GG3332133[36]), 36,46},
+ {&(_ZTV9GG3332133[41]), 41,46},
+ {&(_ZTV9GG3332133[45]), 45,46},
+ {&(_tg__ZTV5EE333__9GG3332133[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE333__9GG3332133[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE333__9GG3332133[4]), 4,6},
+ {&(_tg__ZTV5FF213__9GG3332133[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF213__9GG3332133[3]), 3,4},
+ {&(_tg__ZTV3BB1__5FF213__9GG3332133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3332133[];
+extern VTBL_ENTRY _ZTV9GG3332133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3332133[];
+static VTBL_ENTRY alt_thunk_names998[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2133fooEv,_ZTv0_n12_N5FF2133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2133fooEv,_ZThn16_N5FF2133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2133barEv,_ZTv0_n12_N5FF2133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2133barEv,_ZThn8_N5FF2133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33321333barEv,_ZTv0_n12_N9GG33321333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33321333barEv,_ZThn40_N9GG33321333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33321333barEv,_ZTv0_n16_N9GG33321333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33321333barEv,_ZThn24_N9GG33321333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33321333barEv,_ZThn16_N9GG33321333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33321333fooEv,_ZTv0_n12_N9GG33321333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG33321333fooEv,_ZThn48_N9GG33321333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33321333fooEv,_ZThn24_N9GG33321333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33321333fooEv,_ZThn16_N9GG33321333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG33321333barEv,_ZTv0_n24_N9GG33321333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33321333barEv,_ZThn32_N9GG33321333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33321333barEv,_ZThn8_N9GG33321333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33321333fooEv,_ZTv0_n20_N9GG33321333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33321333fooEv,_ZThn32_N9GG33321333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33321333fooEv,_ZThn8_N9GG33321333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3332133 = { "GG3332133", // class name
+ bases_GG3332133, 6,
+ &(vtc_GG3332133[0]), // expected_vtbl_contents
+ &(vtt_GG3332133[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3332133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3332133),46, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3332133),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names998,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3332213 : virtual EE333 , virtual FF221 {
+ int pg;
+ virtual void foo(); // _ZN9GG33322133fooEv
+ virtual void bar(); // _ZN9GG33322133barEv
+ ~GG3332213(); // tgen
+ GG3332213(); // tgen
+};
+//SIG(1 GG3332213) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3332213 ::foo(){vfunc_called(this, "_ZN9GG33322133fooEv");}
+void GG3332213 ::bar(){vfunc_called(this, "_ZN9GG33322133barEv");}
+GG3332213 ::~GG3332213(){ note_dtor("GG3332213", this);} // tgen
+GG3332213 ::GG3332213(){ note_ctor("GG3332213", this);} // tgen
+
+static void Test_GG3332213()
+{
+ extern Class_Descriptor cd_GG3332213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3332213, buf);
+ GG3332213 *dp, &lv = *(dp=new (buf) GG3332213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3332213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3332213)");
+ check_base_class_offset(lv, (AA3*)(EE333*), ABISELECT(32,16), "GG3332213");
+ check_base_class_offset(lv, (BB3*)(EE333*), ABISELECT(48,24), "GG3332213");
+ check_base_class_offset(lv, (EE333*), ABISELECT(16,8), "GG3332213");
+ check_base_class_offset(lv, (AA2*)(FF221*), ABISELECT(80,40), "GG3332213");
+ check_base_class_offset(lv, (BB2*)(FF221*), ABISELECT(96,48), "GG3332213");
+ check_base_class_offset(lv, (FF221*), ABISELECT(64,32), "GG3332213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3332213.pg");
+ test_class_info(&lv, &cd_GG3332213);
+ dp->~GG3332213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3332213(Test_GG3332213, "GG3332213", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3332213C1Ev();
+extern void _ZN9GG3332213D1Ev();
+Name_Map name_map_GG3332213[] = {
+ NSPAIR(_ZN9GG3332213C1Ev),
+ NSPAIR(_ZN9GG3332213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE333;
+extern VTBL_ENTRY _ZTI5EE333[];
+extern VTBL_ENTRY _ZTV5EE333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE333[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF221;
+extern VTBL_ENTRY _ZTI5FF221[];
+extern VTBL_ENTRY _ZTV5FF221[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF221[];
+static Base_Class bases_GG3332213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_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_BB3, ABISELECT(48,24), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE333, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 40, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF221, ABISELECT(64,32), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3332213[];
+extern void _ZN9GG33322133fooEv();
+extern void _ZN9GG33322133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33322133fooEv,_ZTv0_n20_N9GG33322133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33322133fooEv,_ZThn8_N9GG33322133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33322133barEv,_ZTv0_n24_N9GG33322133barEv)();
+extern void ABISELECT(_ZThn16_N9GG33322133barEv,_ZThn8_N9GG33322133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33322133fooEv,_ZTv0_n12_N9GG33322133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33322133fooEv,_ZThn16_N9GG33322133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33322133barEv,_ZTv0_n16_N9GG33322133barEv)();
+extern void ABISELECT(_ZThn32_N9GG33322133barEv,_ZThn16_N9GG33322133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33322133fooEv,_ZTv0_n12_N9GG33322133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33322133fooEv,_ZThn24_N9GG33322133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33322133barEv,_ZTv0_n16_N9GG33322133barEv)();
+extern void ABISELECT(_ZThn48_N9GG33322133barEv,_ZThn24_N9GG33322133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33322133fooEv,_ZTv0_n20_N9GG33322133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33322133fooEv,_ZThn32_N9GG33322133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33322133barEv,_ZTv0_n12_N9GG33322133barEv)();
+extern void ABISELECT(_ZThn80_N9GG33322133barEv,_ZThn40_N9GG33322133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33322133barEv,_ZTv0_n12_N9GG33322133barEv)();
+extern void ABISELECT(_ZThn96_N9GG33322133barEv,_ZThn48_N9GG33322133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3332213[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3332213[0]),
+ (VTBL_ENTRY)&_ZN9GG33322133fooEv,
+ (VTBL_ENTRY)&_ZN9GG33322133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3332213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33322133fooEv,_ZTv0_n20_N9GG33322133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33322133barEv,_ZTv0_n24_N9GG33322133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3332213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33322133fooEv,_ZTv0_n12_N9GG33322133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33322133barEv,_ZTv0_n16_N9GG33322133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3332213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33322133fooEv,_ZTv0_n12_N9GG33322133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33322133barEv,_ZTv0_n16_N9GG33322133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3332213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33322133fooEv,_ZTv0_n20_N9GG33322133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3332213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33322133barEv,_ZTv0_n12_N9GG33322133barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3332213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33322133barEv,_ZTv0_n12_N9GG33322133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3332213[];
+extern void _ZN5EE3333fooEv();
+extern void _ZN5EE3333barEv();
+static VTBL_ENTRY _tg__ZTV5EE333__9GG3332213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&_ZN5EE3333fooEv,
+ (VTBL_ENTRY)&_ZN5EE3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE333__9GG3332213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE333__9GG3332213[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void _ZN5FF2213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF221__9GG3332213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN5FF2213fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF221__9GG3332213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF221__9GG3332213[] = {
+ 0,
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF221[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG3332213[] = {
+ {&(_ZTV9GG3332213[8]), 8,44},
+ {&(_ZTV9GG3332213[16]), 16,44},
+ {&(_ZTV9GG3332213[22]), 22,44},
+ {&(_ZTV9GG3332213[28]), 28,44},
+ {&(_ZTV9GG3332213[35]), 35,44},
+ {&(_ZTV9GG3332213[39]), 39,44},
+ {&(_ZTV9GG3332213[43]), 43,44},
+ {&(_tg__ZTV5EE333__9GG3332213[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE333__9GG3332213[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE333__9GG3332213[4]), 4,6},
+ {&(_tg__ZTV5FF221__9GG3332213[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF221__9GG3332213[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF221__9GG3332213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3332213[];
+extern VTBL_ENTRY _ZTV9GG3332213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3332213[];
+static VTBL_ENTRY alt_thunk_names999[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33322133barEv,_ZTv0_n12_N9GG33322133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG33322133barEv,_ZThn48_N9GG33322133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33322133barEv,_ZThn40_N9GG33322133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33322133barEv,_ZTv0_n16_N9GG33322133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33322133barEv,_ZThn24_N9GG33322133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33322133barEv,_ZThn16_N9GG33322133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33322133fooEv,_ZTv0_n12_N9GG33322133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33322133fooEv,_ZThn24_N9GG33322133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33322133fooEv,_ZThn16_N9GG33322133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG33322133barEv,_ZTv0_n24_N9GG33322133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33322133barEv,_ZThn8_N9GG33322133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33322133fooEv,_ZTv0_n20_N9GG33322133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33322133fooEv,_ZThn32_N9GG33322133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33322133fooEv,_ZThn8_N9GG33322133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3332213 = { "GG3332213", // class name
+ bases_GG3332213, 6,
+ &(vtc_GG3332213[0]), // expected_vtbl_contents
+ &(vtt_GG3332213[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3332213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3332213),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3332213),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names999,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3332222 : virtual EE333 , virtual FF222 {
+ int pg;
+ virtual void bar(); // _ZN9GG33322223barEv
+ ~GG3332222(); // tgen
+ GG3332222(); // tgen
+};
+//SIG(1 GG3332222) C1{ VBC2{ VBC3{ v2 v1 Fi} VBC4{ v2 v1 Fi} v2 v1 Fi} VBC5{ VBC6{ v1 Fi} VBC7{ v1 Fi} v1 Fi} v1 Fi}
+
+
+void GG3332222 ::bar(){vfunc_called(this, "_ZN9GG33322223barEv");}
+GG3332222 ::~GG3332222(){ note_dtor("GG3332222", this);} // tgen
+GG3332222 ::GG3332222(){ note_ctor("GG3332222", this);} // tgen
+
+static void Test_GG3332222()
+{
+ extern Class_Descriptor cd_GG3332222;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3332222, buf);
+ GG3332222 *dp, &lv = *(dp=new (buf) GG3332222());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3332222)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3332222)");
+ check_base_class_offset(lv, (AA3*)(EE333*), ABISELECT(32,16), "GG3332222");
+ check_base_class_offset(lv, (BB3*)(EE333*), ABISELECT(48,24), "GG3332222");
+ check_base_class_offset(lv, (EE333*), ABISELECT(16,8), "GG3332222");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(80,40), "GG3332222");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(96,48), "GG3332222");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG3332222");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3332222.pg");
+ test_class_info(&lv, &cd_GG3332222);
+ dp->~GG3332222();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3332222(Test_GG3332222, "GG3332222", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3332222C1Ev();
+extern void _ZN9GG3332222D1Ev();
+Name_Map name_map_GG3332222[] = {
+ NSPAIR(_ZN9GG3332222C1Ev),
+ NSPAIR(_ZN9GG3332222D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE333;
+extern VTBL_ENTRY _ZTI5EE333[];
+extern VTBL_ENTRY _ZTV5EE333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE333[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG3332222[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE333, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 39, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3332222[];
+extern void _ZN9GG33322223barEv();
+extern void _ZN5EE3333fooEv();
+extern void ABISELECT(_ZTv0_n48_N9GG33322223barEv,_ZTv0_n24_N9GG33322223barEv)();
+extern void ABISELECT(_ZThn16_N9GG33322223barEv,_ZThn8_N9GG33322223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33322223barEv,_ZTv0_n16_N9GG33322223barEv)();
+extern void ABISELECT(_ZThn32_N9GG33322223barEv,_ZThn16_N9GG33322223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33322223barEv,_ZTv0_n16_N9GG33322223barEv)();
+extern void ABISELECT(_ZThn48_N9GG33322223barEv,_ZThn24_N9GG33322223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33322223barEv,_ZTv0_n20_N9GG33322223barEv)();
+extern void ABISELECT(_ZThn64_N9GG33322223barEv,_ZThn32_N9GG33322223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33322223barEv,_ZTv0_n12_N9GG33322223barEv)();
+extern void ABISELECT(_ZThn80_N9GG33322223barEv,_ZThn40_N9GG33322223barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33322223barEv,_ZTv0_n12_N9GG33322223barEv)();
+extern void ABISELECT(_ZThn96_N9GG33322223barEv,_ZThn48_N9GG33322223barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3332222[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3332222[0]),
+ (VTBL_ENTRY)&_ZN9GG33322223barEv,
+ ABISELECT(-16,-8),
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3332222[0]),
+ (VTBL_ENTRY)&_ZN5EE3333fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33322223barEv,_ZTv0_n24_N9GG33322223barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3332222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33322223barEv,_ZTv0_n16_N9GG33322223barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-32,-16),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3332222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33322223barEv,_ZTv0_n16_N9GG33322223barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3332222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33322223barEv,_ZTv0_n20_N9GG33322223barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3332222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33322223barEv,_ZTv0_n12_N9GG33322223barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3332222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33322223barEv,_ZTv0_n12_N9GG33322223barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3332222[];
+extern void _ZN5EE3333fooEv();
+extern void _ZN5EE3333barEv();
+static VTBL_ENTRY _tg__ZTV5EE333__9GG3332222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&_ZN5EE3333fooEv,
+ (VTBL_ENTRY)&_ZN5EE3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE333__9GG3332222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE333__9GG3332222[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG3332222[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG3332222[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG3332222[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG3332222[] = {
+ {&(_ZTV9GG3332222[8]), 8,43},
+ {&(_ZTV9GG3332222[15]), 15,43},
+ {&(_ZTV9GG3332222[21]), 21,43},
+ {&(_ZTV9GG3332222[27]), 27,43},
+ {&(_ZTV9GG3332222[34]), 34,43},
+ {&(_ZTV9GG3332222[38]), 38,43},
+ {&(_ZTV9GG3332222[42]), 42,43},
+ {&(_tg__ZTV5EE333__9GG3332222[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE333__9GG3332222[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE333__9GG3332222[4]), 4,6},
+ {&(_tg__ZTV5FF222__9GG3332222[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG3332222[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG3332222[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3332222[];
+extern VTBL_ENTRY _ZTV9GG3332222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3332222[];
+static VTBL_ENTRY alt_thunk_names1000[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33322223barEv,_ZTv0_n12_N9GG33322223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG33322223barEv,_ZThn48_N9GG33322223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33322223barEv,_ZThn40_N9GG33322223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33322223barEv,_ZTv0_n20_N9GG33322223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33322223barEv,_ZThn32_N9GG33322223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33322223barEv,_ZTv0_n16_N9GG33322223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33322223barEv,_ZThn24_N9GG33322223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33322223barEv,_ZThn16_N9GG33322223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG33322223barEv,_ZTv0_n24_N9GG33322223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33322223barEv,_ZThn8_N9GG33322223barEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3332222 = { "GG3332222", // class name
+ bases_GG3332222, 6,
+ &(vtc_GG3332222[0]), // expected_vtbl_contents
+ &(vtt_GG3332222[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3332222),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3332222),43, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3332222),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1000,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3332223 : virtual EE333 , virtual FF222 {
+ int pg;
+ virtual void foo(); // _ZN9GG33322233fooEv
+ virtual void bar(); // _ZN9GG33322233barEv
+ ~GG3332223(); // tgen
+ GG3332223(); // tgen
+};
+//SIG(1 GG3332223) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3332223 ::foo(){vfunc_called(this, "_ZN9GG33322233fooEv");}
+void GG3332223 ::bar(){vfunc_called(this, "_ZN9GG33322233barEv");}
+GG3332223 ::~GG3332223(){ note_dtor("GG3332223", this);} // tgen
+GG3332223 ::GG3332223(){ note_ctor("GG3332223", this);} // tgen
+
+static void Test_GG3332223()
+{
+ extern Class_Descriptor cd_GG3332223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3332223, buf);
+ GG3332223 *dp, &lv = *(dp=new (buf) GG3332223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3332223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3332223)");
+ check_base_class_offset(lv, (AA3*)(EE333*), ABISELECT(32,16), "GG3332223");
+ check_base_class_offset(lv, (BB3*)(EE333*), ABISELECT(48,24), "GG3332223");
+ check_base_class_offset(lv, (EE333*), ABISELECT(16,8), "GG3332223");
+ check_base_class_offset(lv, (AA2*)(FF222*), ABISELECT(80,40), "GG3332223");
+ check_base_class_offset(lv, (BB2*)(FF222*), ABISELECT(96,48), "GG3332223");
+ check_base_class_offset(lv, (FF222*), ABISELECT(64,32), "GG3332223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3332223.pg");
+ test_class_info(&lv, &cd_GG3332223);
+ dp->~GG3332223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3332223(Test_GG3332223, "GG3332223", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3332223C1Ev();
+extern void _ZN9GG3332223D1Ev();
+Name_Map name_map_GG3332223[] = {
+ NSPAIR(_ZN9GG3332223C1Ev),
+ NSPAIR(_ZN9GG3332223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE333;
+extern VTBL_ENTRY _ZTI5EE333[];
+extern VTBL_ENTRY _ZTV5EE333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE333[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF222;
+extern VTBL_ENTRY _ZTI5FF222[];
+extern VTBL_ENTRY _ZTV5FF222[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF222[];
+static Base_Class bases_GG3332223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_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_BB3, ABISELECT(48,24), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE333, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 36, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 40, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF222, ABISELECT(64,32), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3332223[];
+extern void _ZN9GG33322233fooEv();
+extern void _ZN9GG33322233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33322233fooEv,_ZTv0_n20_N9GG33322233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33322233fooEv,_ZThn8_N9GG33322233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33322233barEv,_ZTv0_n24_N9GG33322233barEv)();
+extern void ABISELECT(_ZThn16_N9GG33322233barEv,_ZThn8_N9GG33322233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33322233fooEv,_ZTv0_n12_N9GG33322233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33322233fooEv,_ZThn16_N9GG33322233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33322233barEv,_ZTv0_n16_N9GG33322233barEv)();
+extern void ABISELECT(_ZThn32_N9GG33322233barEv,_ZThn16_N9GG33322233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33322233fooEv,_ZTv0_n12_N9GG33322233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33322233fooEv,_ZThn24_N9GG33322233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33322233barEv,_ZTv0_n16_N9GG33322233barEv)();
+extern void ABISELECT(_ZThn48_N9GG33322233barEv,_ZThn24_N9GG33322233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33322233barEv,_ZTv0_n20_N9GG33322233barEv)();
+extern void ABISELECT(_ZThn64_N9GG33322233barEv,_ZThn32_N9GG33322233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33322233barEv,_ZTv0_n12_N9GG33322233barEv)();
+extern void ABISELECT(_ZThn80_N9GG33322233barEv,_ZThn40_N9GG33322233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33322233barEv,_ZTv0_n12_N9GG33322233barEv)();
+extern void ABISELECT(_ZThn96_N9GG33322233barEv,_ZThn48_N9GG33322233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3332223[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3332223[0]),
+ (VTBL_ENTRY)&_ZN9GG33322233fooEv,
+ (VTBL_ENTRY)&_ZN9GG33322233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3332223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33322233fooEv,_ZTv0_n20_N9GG33322233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33322233barEv,_ZTv0_n24_N9GG33322233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3332223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33322233fooEv,_ZTv0_n12_N9GG33322233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33322233barEv,_ZTv0_n16_N9GG33322233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3332223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33322233fooEv,_ZTv0_n12_N9GG33322233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33322233barEv,_ZTv0_n16_N9GG33322233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3332223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33322233barEv,_ZTv0_n20_N9GG33322233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3332223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33322233barEv,_ZTv0_n12_N9GG33322233barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3332223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33322233barEv,_ZTv0_n12_N9GG33322233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3332223[];
+extern void _ZN5EE3333fooEv();
+extern void _ZN5EE3333barEv();
+static VTBL_ENTRY _tg__ZTV5EE333__9GG3332223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&_ZN5EE3333fooEv,
+ (VTBL_ENTRY)&_ZN5EE3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE333__9GG3332223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE333__9GG3332223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void _ZN5FF2223barEv();
+static VTBL_ENTRY _tg__ZTV5FF222__9GG3332223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&_ZN5FF2223barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF222__9GG3332223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv)();
+extern void ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF222__9GG3332223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF222[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv),
+};
+static VTT_ENTRY vtt_GG3332223[] = {
+ {&(_ZTV9GG3332223[8]), 8,44},
+ {&(_ZTV9GG3332223[16]), 16,44},
+ {&(_ZTV9GG3332223[22]), 22,44},
+ {&(_ZTV9GG3332223[28]), 28,44},
+ {&(_ZTV9GG3332223[35]), 35,44},
+ {&(_ZTV9GG3332223[39]), 39,44},
+ {&(_ZTV9GG3332223[43]), 43,44},
+ {&(_tg__ZTV5EE333__9GG3332223[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE333__9GG3332223[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE333__9GG3332223[4]), 4,6},
+ {&(_tg__ZTV5FF222__9GG3332223[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF222__9GG3332223[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF222__9GG3332223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3332223[];
+extern VTBL_ENTRY _ZTV9GG3332223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3332223[];
+static VTBL_ENTRY alt_thunk_names1001[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2223barEv,_ZTv0_n12_N5FF2223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2223barEv,_ZThn16_N5FF2223barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2223barEv,_ZThn8_N5FF2223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33322233barEv,_ZTv0_n12_N9GG33322233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG33322233barEv,_ZThn48_N9GG33322233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33322233barEv,_ZThn40_N9GG33322233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33322233barEv,_ZTv0_n20_N9GG33322233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33322233barEv,_ZThn32_N9GG33322233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33322233barEv,_ZTv0_n16_N9GG33322233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33322233barEv,_ZThn24_N9GG33322233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33322233barEv,_ZThn16_N9GG33322233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33322233fooEv,_ZTv0_n12_N9GG33322233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33322233fooEv,_ZThn24_N9GG33322233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33322233fooEv,_ZThn16_N9GG33322233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG33322233barEv,_ZTv0_n24_N9GG33322233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33322233barEv,_ZThn8_N9GG33322233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33322233fooEv,_ZTv0_n20_N9GG33322233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33322233fooEv,_ZThn8_N9GG33322233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3332223 = { "GG3332223", // class name
+ bases_GG3332223, 6,
+ &(vtc_GG3332223[0]), // expected_vtbl_contents
+ &(vtt_GG3332223[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3332223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3332223),44, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3332223),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1001,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3332233 : virtual EE333 , virtual FF223 {
+ int pg;
+ virtual void foo(); // _ZN9GG33322333fooEv
+ virtual void bar(); // _ZN9GG33322333barEv
+ ~GG3332233(); // tgen
+ GG3332233(); // tgen
+};
+//SIG(1 GG3332233) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC7{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3332233 ::foo(){vfunc_called(this, "_ZN9GG33322333fooEv");}
+void GG3332233 ::bar(){vfunc_called(this, "_ZN9GG33322333barEv");}
+GG3332233 ::~GG3332233(){ note_dtor("GG3332233", this);} // tgen
+GG3332233 ::GG3332233(){ note_ctor("GG3332233", this);} // tgen
+
+static void Test_GG3332233()
+{
+ extern Class_Descriptor cd_GG3332233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[15];
+ init_test(&cd_GG3332233, buf);
+ GG3332233 *dp, &lv = *(dp=new (buf) GG3332233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(112,56), "sizeof(GG3332233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3332233)");
+ check_base_class_offset(lv, (AA3*)(EE333*), ABISELECT(32,16), "GG3332233");
+ check_base_class_offset(lv, (BB3*)(EE333*), ABISELECT(48,24), "GG3332233");
+ check_base_class_offset(lv, (EE333*), ABISELECT(16,8), "GG3332233");
+ check_base_class_offset(lv, (AA2*)(FF223*), ABISELECT(80,40), "GG3332233");
+ check_base_class_offset(lv, (BB2*)(FF223*), ABISELECT(96,48), "GG3332233");
+ check_base_class_offset(lv, (FF223*), ABISELECT(64,32), "GG3332233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3332233.pg");
+ test_class_info(&lv, &cd_GG3332233);
+ dp->~GG3332233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3332233(Test_GG3332233, "GG3332233", ABISELECT(112,56));
+
+#else // __cplusplus
+
+extern void _ZN9GG3332233C1Ev();
+extern void _ZN9GG3332233D1Ev();
+Name_Map name_map_GG3332233[] = {
+ NSPAIR(_ZN9GG3332233C1Ev),
+ NSPAIR(_ZN9GG3332233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE333;
+extern VTBL_ENTRY _ZTI5EE333[];
+extern VTBL_ENTRY _ZTV5EE333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE333[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF223;
+extern VTBL_ENTRY _ZTI5FF223[];
+extern VTBL_ENTRY _ZTV5FF223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF223[];
+static Base_Class bases_GG3332233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 18, //bcp->virtual_function_table_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_BB3, ABISELECT(48,24), //bcp->offset
+ 24, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE333, ABISELECT(16,8), //bcp->offset
+ 10, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 8, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 38, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_BB2, ABISELECT(96,48), //bcp->offset
+ 42, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 7, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ 5, //immediately_derived
+ 0, 1},
+ {&cd_FF223, ABISELECT(64,32), //bcp->offset
+ 30, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 11, //bcp->base_subarray_index_in_construction_vtbl_array
+ 6, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3332233[];
+extern void _ZN9GG33322333fooEv();
+extern void _ZN9GG33322333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33322333fooEv,_ZTv0_n20_N9GG33322333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33322333fooEv,_ZThn8_N9GG33322333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33322333barEv,_ZTv0_n24_N9GG33322333barEv)();
+extern void ABISELECT(_ZThn16_N9GG33322333barEv,_ZThn8_N9GG33322333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33322333fooEv,_ZTv0_n12_N9GG33322333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33322333fooEv,_ZThn16_N9GG33322333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33322333barEv,_ZTv0_n16_N9GG33322333barEv)();
+extern void ABISELECT(_ZThn32_N9GG33322333barEv,_ZThn16_N9GG33322333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33322333fooEv,_ZTv0_n12_N9GG33322333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33322333fooEv,_ZThn24_N9GG33322333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33322333barEv,_ZTv0_n16_N9GG33322333barEv)();
+extern void ABISELECT(_ZThn48_N9GG33322333barEv,_ZThn24_N9GG33322333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33322333fooEv,_ZTv0_n20_N9GG33322333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33322333fooEv,_ZThn32_N9GG33322333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33322333barEv,_ZTv0_n24_N9GG33322333barEv)();
+extern void ABISELECT(_ZThn64_N9GG33322333barEv,_ZThn32_N9GG33322333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33322333barEv,_ZTv0_n12_N9GG33322333barEv)();
+extern void ABISELECT(_ZThn80_N9GG33322333barEv,_ZThn40_N9GG33322333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33322333barEv,_ZTv0_n12_N9GG33322333barEv)();
+extern void ABISELECT(_ZThn96_N9GG33322333barEv,_ZThn48_N9GG33322333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3332233[] = {
+ ABISELECT(96,48),
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3332233[0]),
+ (VTBL_ENTRY)&_ZN9GG33322333fooEv,
+ (VTBL_ENTRY)&_ZN9GG33322333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3332233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33322333fooEv,_ZTv0_n20_N9GG33322333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33322333barEv,_ZTv0_n24_N9GG33322333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3332233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33322333fooEv,_ZTv0_n12_N9GG33322333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33322333barEv,_ZTv0_n16_N9GG33322333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3332233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33322333fooEv,_ZTv0_n12_N9GG33322333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33322333barEv,_ZTv0_n16_N9GG33322333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3332233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33322333fooEv,_ZTv0_n20_N9GG33322333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33322333barEv,_ZTv0_n24_N9GG33322333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3332233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33322333barEv,_ZTv0_n12_N9GG33322333barEv),
+ ABISELECT(-96,-48),
+ ABISELECT(-96,-48),
+ (VTBL_ENTRY)&(_ZTI9GG3332233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33322333barEv,_ZTv0_n12_N9GG33322333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3332233[];
+extern void _ZN5EE3333fooEv();
+extern void _ZN5EE3333barEv();
+static VTBL_ENTRY _tg__ZTV5EE333__9GG3332233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&_ZN5EE3333fooEv,
+ (VTBL_ENTRY)&_ZN5EE3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE333__9GG3332233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE333__9GG3332233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void _ZN5FF2233fooEv();
+extern void _ZN5FF2233barEv();
+static VTBL_ENTRY _tg__ZTV5FF223__9GG3332233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&_ZN5FF2233fooEv,
+ (VTBL_ENTRY)&_ZN5FF2233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+extern void ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF223__9GG3332233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv)();
+extern void ABISELECT(_ZThn32_N5FF2233barEv,_ZThn16_N5FF2233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF223__9GG3332233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5FF223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv),
+};
+static VTT_ENTRY vtt_GG3332233[] = {
+ {&(_ZTV9GG3332233[8]), 8,46},
+ {&(_ZTV9GG3332233[16]), 16,46},
+ {&(_ZTV9GG3332233[22]), 22,46},
+ {&(_ZTV9GG3332233[28]), 28,46},
+ {&(_ZTV9GG3332233[36]), 36,46},
+ {&(_ZTV9GG3332233[41]), 41,46},
+ {&(_ZTV9GG3332233[45]), 45,46},
+ {&(_tg__ZTV5EE333__9GG3332233[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE333__9GG3332233[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE333__9GG3332233[4]), 4,6},
+ {&(_tg__ZTV5FF223__9GG3332233[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF223__9GG3332233[3]), 3,4},
+ {&(_tg__ZTV3BB2__5FF223__9GG3332233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3332233[];
+extern VTBL_ENTRY _ZTV9GG3332233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3332233[];
+static VTBL_ENTRY alt_thunk_names1002[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2233barEv,_ZTv0_n12_N5FF2233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5FF2233barEv,_ZThn16_N5FF2233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2233barEv,_ZThn8_N5FF2233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33322333barEv,_ZTv0_n12_N9GG33322333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn96_N9GG33322333barEv,_ZThn48_N9GG33322333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33322333barEv,_ZThn40_N9GG33322333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33322333barEv,_ZTv0_n16_N9GG33322333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33322333barEv,_ZThn24_N9GG33322333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33322333barEv,_ZThn16_N9GG33322333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33322333fooEv,_ZTv0_n12_N9GG33322333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33322333fooEv,_ZThn24_N9GG33322333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33322333fooEv,_ZThn16_N9GG33322333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG33322333barEv,_ZTv0_n24_N9GG33322333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33322333barEv,_ZThn32_N9GG33322333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33322333barEv,_ZThn8_N9GG33322333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33322333fooEv,_ZTv0_n20_N9GG33322333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33322333fooEv,_ZThn32_N9GG33322333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33322333fooEv,_ZThn8_N9GG33322333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3332233 = { "GG3332233", // class name
+ bases_GG3332233, 6,
+ &(vtc_GG3332233[0]), // expected_vtbl_contents
+ &(vtt_GG3332233[0]), // expected_vtt_contents
+ ABISELECT(112,56), // object size
+ NSPAIRA(_ZTI9GG3332233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3332233),46, //virtual function table var
+ 8, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3332233),13, //virtual table table var
+ 6, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1002,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3332313 : virtual EE333 , virtual FF231 {
+ int pg;
+ virtual void foo(); // _ZN9GG33323133fooEv
+ virtual void bar(); // _ZN9GG33323133barEv
+ ~GG3332313(); // tgen
+ GG3332313(); // tgen
+};
+//SIG(1 GG3332313) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG3332313 ::foo(){vfunc_called(this, "_ZN9GG33323133fooEv");}
+void GG3332313 ::bar(){vfunc_called(this, "_ZN9GG33323133barEv");}
+GG3332313 ::~GG3332313(){ note_dtor("GG3332313", this);} // tgen
+GG3332313 ::GG3332313(){ note_ctor("GG3332313", this);} // tgen
+
+static void Test_GG3332313()
+{
+ extern Class_Descriptor cd_GG3332313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3332313, buf);
+ GG3332313 *dp, &lv = *(dp=new (buf) GG3332313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3332313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3332313)");
+ check_base_class_offset(lv, (AA3*)(EE333*), ABISELECT(32,16), "GG3332313");
+ check_base_class_offset(lv, (BB3*)(EE333*), ABISELECT(48,24), "GG3332313");
+ check_base_class_offset(lv, (BB3*)(FF231*), ABISELECT(48,24), "GG3332313");
+ check_base_class_offset(lv, (EE333*), ABISELECT(16,8), "GG3332313");
+ check_base_class_offset(lv, (AA2*)(FF231*), ABISELECT(80,40), "GG3332313");
+ check_base_class_offset(lv, (FF231*), ABISELECT(64,32), "GG3332313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3332313.pg");
+ test_class_info(&lv, &cd_GG3332313);
+ dp->~GG3332313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3332313(Test_GG3332313, "GG3332313", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3332313C1Ev();
+extern void _ZN9GG3332313D1Ev();
+Name_Map name_map_GG3332313[] = {
+ NSPAIR(_ZN9GG3332313C1Ev),
+ NSPAIR(_ZN9GG3332313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE333;
+extern VTBL_ENTRY _ZTI5EE333[];
+extern VTBL_ENTRY _ZTV5EE333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE333[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF231;
+extern VTBL_ENTRY _ZTI5FF231[];
+extern VTBL_ENTRY _ZTV5FF231[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF231[];
+static Base_Class bases_GG3332313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE333, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF231, ABISELECT(64,32), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3332313[];
+extern void _ZN9GG33323133fooEv();
+extern void _ZN9GG33323133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33323133fooEv,_ZTv0_n20_N9GG33323133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33323133fooEv,_ZThn8_N9GG33323133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33323133barEv,_ZTv0_n24_N9GG33323133barEv)();
+extern void ABISELECT(_ZThn16_N9GG33323133barEv,_ZThn8_N9GG33323133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33323133fooEv,_ZTv0_n12_N9GG33323133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33323133fooEv,_ZThn16_N9GG33323133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33323133barEv,_ZTv0_n16_N9GG33323133barEv)();
+extern void ABISELECT(_ZThn32_N9GG33323133barEv,_ZThn16_N9GG33323133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33323133fooEv,_ZTv0_n12_N9GG33323133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33323133fooEv,_ZThn24_N9GG33323133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33323133barEv,_ZTv0_n16_N9GG33323133barEv)();
+extern void ABISELECT(_ZThn48_N9GG33323133barEv,_ZThn24_N9GG33323133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33323133fooEv,_ZTv0_n20_N9GG33323133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33323133fooEv,_ZThn32_N9GG33323133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33323133barEv,_ZTv0_n12_N9GG33323133barEv)();
+extern void ABISELECT(_ZThn80_N9GG33323133barEv,_ZThn40_N9GG33323133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3332313[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3332313[0]),
+ (VTBL_ENTRY)&_ZN9GG33323133fooEv,
+ (VTBL_ENTRY)&_ZN9GG33323133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3332313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33323133fooEv,_ZTv0_n20_N9GG33323133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33323133barEv,_ZTv0_n24_N9GG33323133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3332313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33323133fooEv,_ZTv0_n12_N9GG33323133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33323133barEv,_ZTv0_n16_N9GG33323133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3332313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33323133fooEv,_ZTv0_n12_N9GG33323133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33323133barEv,_ZTv0_n16_N9GG33323133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3332313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33323133fooEv,_ZTv0_n20_N9GG33323133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3332313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33323133barEv,_ZTv0_n12_N9GG33323133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3332313[];
+extern void _ZN5EE3333fooEv();
+extern void _ZN5EE3333barEv();
+static VTBL_ENTRY _tg__ZTV5EE333__9GG3332313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&_ZN5EE3333fooEv,
+ (VTBL_ENTRY)&_ZN5EE3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE333__9GG3332313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE333__9GG3332313[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void _ZN5FF2313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF231__9GG3332313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN5FF2313fooEv,
+};
+extern void _ZN3AA23barEv();
+static VTBL_ENTRY _tg__ZTV3AA2__5FF231__9GG3332313[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&_ZN3AA23barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv)();
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF231__9GG3332313[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF231[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2313fooEv,_ZTv0_n12_N5FF2313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG3332313[] = {
+ {&(_ZTV9GG3332313[7]), 7,39},
+ {&(_ZTV9GG3332313[15]), 15,39},
+ {&(_ZTV9GG3332313[21]), 21,39},
+ {&(_ZTV9GG3332313[27]), 27,39},
+ {&(_ZTV9GG3332313[34]), 34,39},
+ {&(_ZTV9GG3332313[38]), 38,39},
+ {&(_tg__ZTV5EE333__9GG3332313[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE333__9GG3332313[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE333__9GG3332313[4]), 4,6},
+ {&(_tg__ZTV5FF231__9GG3332313[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF231__9GG3332313[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF231__9GG3332313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3332313[];
+extern VTBL_ENTRY _ZTV9GG3332313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3332313[];
+static VTBL_ENTRY alt_thunk_names1003[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33323133barEv,_ZTv0_n12_N9GG33323133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33323133barEv,_ZThn40_N9GG33323133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33323133barEv,_ZTv0_n16_N9GG33323133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33323133barEv,_ZThn24_N9GG33323133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33323133barEv,_ZThn16_N9GG33323133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33323133fooEv,_ZTv0_n12_N9GG33323133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33323133fooEv,_ZThn24_N9GG33323133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33323133fooEv,_ZThn16_N9GG33323133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG33323133barEv,_ZTv0_n24_N9GG33323133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33323133barEv,_ZThn8_N9GG33323133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33323133fooEv,_ZTv0_n20_N9GG33323133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33323133fooEv,_ZThn32_N9GG33323133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33323133fooEv,_ZThn8_N9GG33323133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3332313 = { "GG3332313", // class name
+ bases_GG3332313, 5,
+ &(vtc_GG3332313[0]), // expected_vtbl_contents
+ &(vtt_GG3332313[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3332313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3332313),39, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3332313),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1003,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3332323 : virtual EE333 , virtual FF232 {
+ int pg;
+ virtual void foo(); // _ZN9GG33323233fooEv
+ virtual void bar(); // _ZN9GG33323233barEv
+ ~GG3332323(); // tgen
+ GG3332323(); // tgen
+};
+//SIG(1 GG3332323) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG3332323 ::foo(){vfunc_called(this, "_ZN9GG33323233fooEv");}
+void GG3332323 ::bar(){vfunc_called(this, "_ZN9GG33323233barEv");}
+GG3332323 ::~GG3332323(){ note_dtor("GG3332323", this);} // tgen
+GG3332323 ::GG3332323(){ note_ctor("GG3332323", this);} // tgen
+
+static void Test_GG3332323()
+{
+ extern Class_Descriptor cd_GG3332323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3332323, buf);
+ GG3332323 *dp, &lv = *(dp=new (buf) GG3332323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3332323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3332323)");
+ check_base_class_offset(lv, (AA3*)(EE333*), ABISELECT(32,16), "GG3332323");
+ check_base_class_offset(lv, (BB3*)(EE333*), ABISELECT(48,24), "GG3332323");
+ check_base_class_offset(lv, (BB3*)(FF232*), ABISELECT(48,24), "GG3332323");
+ check_base_class_offset(lv, (EE333*), ABISELECT(16,8), "GG3332323");
+ check_base_class_offset(lv, (AA2*)(FF232*), ABISELECT(80,40), "GG3332323");
+ check_base_class_offset(lv, (FF232*), ABISELECT(64,32), "GG3332323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3332323.pg");
+ test_class_info(&lv, &cd_GG3332323);
+ dp->~GG3332323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3332323(Test_GG3332323, "GG3332323", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3332323C1Ev();
+extern void _ZN9GG3332323D1Ev();
+Name_Map name_map_GG3332323[] = {
+ NSPAIR(_ZN9GG3332323C1Ev),
+ NSPAIR(_ZN9GG3332323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE333;
+extern VTBL_ENTRY _ZTI5EE333[];
+extern VTBL_ENTRY _ZTV5EE333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE333[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF232;
+extern VTBL_ENTRY _ZTI5FF232[];
+extern VTBL_ENTRY _ZTV5FF232[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF232[];
+static Base_Class bases_GG3332323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE333, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF232, ABISELECT(64,32), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3332323[];
+extern void _ZN9GG33323233fooEv();
+extern void _ZN9GG33323233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33323233fooEv,_ZTv0_n20_N9GG33323233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33323233fooEv,_ZThn8_N9GG33323233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33323233barEv,_ZTv0_n24_N9GG33323233barEv)();
+extern void ABISELECT(_ZThn16_N9GG33323233barEv,_ZThn8_N9GG33323233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33323233fooEv,_ZTv0_n12_N9GG33323233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33323233fooEv,_ZThn16_N9GG33323233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33323233barEv,_ZTv0_n16_N9GG33323233barEv)();
+extern void ABISELECT(_ZThn32_N9GG33323233barEv,_ZThn16_N9GG33323233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33323233fooEv,_ZTv0_n12_N9GG33323233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33323233fooEv,_ZThn24_N9GG33323233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33323233barEv,_ZTv0_n16_N9GG33323233barEv)();
+extern void ABISELECT(_ZThn48_N9GG33323233barEv,_ZThn24_N9GG33323233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33323233barEv,_ZTv0_n20_N9GG33323233barEv)();
+extern void ABISELECT(_ZThn64_N9GG33323233barEv,_ZThn32_N9GG33323233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33323233barEv,_ZTv0_n12_N9GG33323233barEv)();
+extern void ABISELECT(_ZThn80_N9GG33323233barEv,_ZThn40_N9GG33323233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3332323[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3332323[0]),
+ (VTBL_ENTRY)&_ZN9GG33323233fooEv,
+ (VTBL_ENTRY)&_ZN9GG33323233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3332323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33323233fooEv,_ZTv0_n20_N9GG33323233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33323233barEv,_ZTv0_n24_N9GG33323233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3332323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33323233fooEv,_ZTv0_n12_N9GG33323233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33323233barEv,_ZTv0_n16_N9GG33323233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3332323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33323233fooEv,_ZTv0_n12_N9GG33323233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33323233barEv,_ZTv0_n16_N9GG33323233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3332323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33323233barEv,_ZTv0_n20_N9GG33323233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3332323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33323233barEv,_ZTv0_n12_N9GG33323233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3332323[];
+extern void _ZN5EE3333fooEv();
+extern void _ZN5EE3333barEv();
+static VTBL_ENTRY _tg__ZTV5EE333__9GG3332323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&_ZN5EE3333fooEv,
+ (VTBL_ENTRY)&_ZN5EE3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE333__9GG3332323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE333__9GG3332323[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void _ZN5FF2323barEv();
+static VTBL_ENTRY _tg__ZTV5FF232__9GG3332323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN5FF2323barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv)();
+extern void ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF232__9GG3332323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF232__9GG3332323[] = {
+ ABISELECT(16,8),
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF232[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2323barEv,_ZTv0_n16_N5FF2323barEv),
+};
+static VTT_ENTRY vtt_GG3332323[] = {
+ {&(_ZTV9GG3332323[7]), 7,39},
+ {&(_ZTV9GG3332323[15]), 15,39},
+ {&(_ZTV9GG3332323[21]), 21,39},
+ {&(_ZTV9GG3332323[27]), 27,39},
+ {&(_ZTV9GG3332323[34]), 34,39},
+ {&(_ZTV9GG3332323[38]), 38,39},
+ {&(_tg__ZTV5EE333__9GG3332323[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE333__9GG3332323[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE333__9GG3332323[4]), 4,6},
+ {&(_tg__ZTV5FF232__9GG3332323[4]), 4,5},
+ {&(_tg__ZTV3AA2__5FF232__9GG3332323[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF232__9GG3332323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3332323[];
+extern VTBL_ENTRY _ZTV9GG3332323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3332323[];
+static VTBL_ENTRY alt_thunk_names1004[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2323barEv,_ZTv0_n12_N5FF2323barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2323barEv,_ZThn8_N5FF2323barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33323233barEv,_ZTv0_n12_N9GG33323233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33323233barEv,_ZThn40_N9GG33323233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33323233barEv,_ZTv0_n20_N9GG33323233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33323233barEv,_ZThn32_N9GG33323233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33323233barEv,_ZTv0_n16_N9GG33323233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33323233barEv,_ZThn24_N9GG33323233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33323233barEv,_ZThn16_N9GG33323233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33323233fooEv,_ZTv0_n12_N9GG33323233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33323233fooEv,_ZThn24_N9GG33323233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33323233fooEv,_ZThn16_N9GG33323233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG33323233barEv,_ZTv0_n24_N9GG33323233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33323233barEv,_ZThn8_N9GG33323233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33323233fooEv,_ZTv0_n20_N9GG33323233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33323233fooEv,_ZThn8_N9GG33323233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3332323 = { "GG3332323", // class name
+ bases_GG3332323, 5,
+ &(vtc_GG3332323[0]), // expected_vtbl_contents
+ &(vtt_GG3332323[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3332323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3332323),39, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3332323),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1004,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3332333 : virtual EE333 , virtual FF233 {
+ int pg;
+ virtual void foo(); // _ZN9GG33323333fooEv
+ virtual void bar(); // _ZN9GG33323333barEv
+ ~GG3332333(); // tgen
+ GG3332333(); // tgen
+};
+//SIG(1 GG3332333) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC6{ v2 Fi} VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3332333 ::foo(){vfunc_called(this, "_ZN9GG33323333fooEv");}
+void GG3332333 ::bar(){vfunc_called(this, "_ZN9GG33323333barEv");}
+GG3332333 ::~GG3332333(){ note_dtor("GG3332333", this);} // tgen
+GG3332333 ::GG3332333(){ note_ctor("GG3332333", this);} // tgen
+
+static void Test_GG3332333()
+{
+ extern Class_Descriptor cd_GG3332333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3332333, buf);
+ GG3332333 *dp, &lv = *(dp=new (buf) GG3332333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3332333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3332333)");
+ check_base_class_offset(lv, (AA3*)(EE333*), ABISELECT(32,16), "GG3332333");
+ check_base_class_offset(lv, (BB3*)(EE333*), ABISELECT(48,24), "GG3332333");
+ check_base_class_offset(lv, (BB3*)(FF233*), ABISELECT(48,24), "GG3332333");
+ check_base_class_offset(lv, (EE333*), ABISELECT(16,8), "GG3332333");
+ check_base_class_offset(lv, (AA2*)(FF233*), ABISELECT(80,40), "GG3332333");
+ check_base_class_offset(lv, (FF233*), ABISELECT(64,32), "GG3332333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3332333.pg");
+ test_class_info(&lv, &cd_GG3332333);
+ dp->~GG3332333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3332333(Test_GG3332333, "GG3332333", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3332333C1Ev();
+extern void _ZN9GG3332333D1Ev();
+Name_Map name_map_GG3332333[] = {
+ NSPAIR(_ZN9GG3332333C1Ev),
+ NSPAIR(_ZN9GG3332333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE333;
+extern VTBL_ENTRY _ZTI5EE333[];
+extern VTBL_ENTRY _ZTV5EE333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE333[];
+extern Class_Descriptor cd_AA2;
+extern VTBL_ENTRY _ZTI3AA2[];
+extern VTBL_ENTRY _ZTV3AA2[];
+extern Class_Descriptor cd_FF233;
+extern VTBL_ENTRY _ZTI5FF233[];
+extern VTBL_ENTRY _ZTV5FF233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF233[];
+static Base_Class bases_GG3332333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE333, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_AA2, ABISELECT(80,40), //bcp->offset
+ 37, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF233, ABISELECT(64,32), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3332333[];
+extern void _ZN9GG33323333fooEv();
+extern void _ZN9GG33323333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33323333fooEv,_ZTv0_n20_N9GG33323333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33323333fooEv,_ZThn8_N9GG33323333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33323333barEv,_ZTv0_n24_N9GG33323333barEv)();
+extern void ABISELECT(_ZThn16_N9GG33323333barEv,_ZThn8_N9GG33323333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33323333fooEv,_ZTv0_n12_N9GG33323333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33323333fooEv,_ZThn16_N9GG33323333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33323333barEv,_ZTv0_n16_N9GG33323333barEv)();
+extern void ABISELECT(_ZThn32_N9GG33323333barEv,_ZThn16_N9GG33323333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33323333fooEv,_ZTv0_n12_N9GG33323333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33323333fooEv,_ZThn24_N9GG33323333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33323333barEv,_ZTv0_n16_N9GG33323333barEv)();
+extern void ABISELECT(_ZThn48_N9GG33323333barEv,_ZThn24_N9GG33323333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33323333fooEv,_ZTv0_n20_N9GG33323333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33323333fooEv,_ZThn32_N9GG33323333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33323333barEv,_ZTv0_n24_N9GG33323333barEv)();
+extern void ABISELECT(_ZThn64_N9GG33323333barEv,_ZThn32_N9GG33323333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33323333barEv,_ZTv0_n12_N9GG33323333barEv)();
+extern void ABISELECT(_ZThn80_N9GG33323333barEv,_ZThn40_N9GG33323333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3332333[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3332333[0]),
+ (VTBL_ENTRY)&_ZN9GG33323333fooEv,
+ (VTBL_ENTRY)&_ZN9GG33323333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3332333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33323333fooEv,_ZTv0_n20_N9GG33323333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33323333barEv,_ZTv0_n24_N9GG33323333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3332333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33323333fooEv,_ZTv0_n12_N9GG33323333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33323333barEv,_ZTv0_n16_N9GG33323333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3332333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33323333fooEv,_ZTv0_n12_N9GG33323333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33323333barEv,_ZTv0_n16_N9GG33323333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3332333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33323333fooEv,_ZTv0_n20_N9GG33323333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33323333barEv,_ZTv0_n24_N9GG33323333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3332333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33323333barEv,_ZTv0_n12_N9GG33323333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3332333[];
+extern void _ZN5EE3333fooEv();
+extern void _ZN5EE3333barEv();
+static VTBL_ENTRY _tg__ZTV5EE333__9GG3332333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&_ZN5EE3333fooEv,
+ (VTBL_ENTRY)&_ZN5EE3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE333__9GG3332333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE333__9GG3332333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void _ZN5FF2333fooEv();
+extern void _ZN5FF2333barEv();
+static VTBL_ENTRY _tg__ZTV5FF233__9GG3332333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&_ZN5FF2333fooEv,
+ (VTBL_ENTRY)&_ZN5FF2333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv)();
+extern void ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA2__5FF233__9GG3332333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF233__9GG3332333[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF2333fooEv,_ZTv0_n12_N5FF2333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF2333barEv,_ZTv0_n16_N5FF2333barEv),
+};
+static VTT_ENTRY vtt_GG3332333[] = {
+ {&(_ZTV9GG3332333[7]), 7,41},
+ {&(_ZTV9GG3332333[15]), 15,41},
+ {&(_ZTV9GG3332333[21]), 21,41},
+ {&(_ZTV9GG3332333[27]), 27,41},
+ {&(_ZTV9GG3332333[35]), 35,41},
+ {&(_ZTV9GG3332333[40]), 40,41},
+ {&(_tg__ZTV5EE333__9GG3332333[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE333__9GG3332333[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE333__9GG3332333[4]), 4,6},
+ {&(_tg__ZTV5FF233__9GG3332333[4]), 4,6},
+ {&(_tg__ZTV3AA2__5FF233__9GG3332333[3]), 3,4},
+ {&(_tg__ZTV3BB3__5FF233__9GG3332333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3332333[];
+extern VTBL_ENTRY _ZTV9GG3332333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3332333[];
+static VTBL_ENTRY alt_thunk_names1005[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF2333barEv,_ZTv0_n12_N5FF2333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF2333barEv,_ZThn8_N5FF2333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33323333barEv,_ZTv0_n12_N9GG33323333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33323333barEv,_ZThn40_N9GG33323333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33323333barEv,_ZTv0_n16_N9GG33323333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33323333barEv,_ZThn24_N9GG33323333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33323333barEv,_ZThn16_N9GG33323333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33323333fooEv,_ZTv0_n12_N9GG33323333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33323333fooEv,_ZThn24_N9GG33323333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33323333fooEv,_ZThn16_N9GG33323333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG33323333barEv,_ZTv0_n24_N9GG33323333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33323333barEv,_ZThn32_N9GG33323333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33323333barEv,_ZThn8_N9GG33323333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33323333fooEv,_ZTv0_n20_N9GG33323333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33323333fooEv,_ZThn32_N9GG33323333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33323333fooEv,_ZThn8_N9GG33323333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3332333 = { "GG3332333", // class name
+ bases_GG3332333, 5,
+ &(vtc_GG3332333[0]), // expected_vtbl_contents
+ &(vtt_GG3332333[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3332333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3332333),41, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3332333),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1005,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3333113 : virtual EE333 , virtual FF311 {
+ int pg;
+ virtual void foo(); // _ZN9GG33331133fooEv
+ virtual void bar(); // _ZN9GG33331133barEv
+ ~GG3333113(); // tgen
+ GG3333113(); // tgen
+};
+//SIG(1 GG3333113) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3333113 ::foo(){vfunc_called(this, "_ZN9GG33331133fooEv");}
+void GG3333113 ::bar(){vfunc_called(this, "_ZN9GG33331133barEv");}
+GG3333113 ::~GG3333113(){ note_dtor("GG3333113", this);} // tgen
+GG3333113 ::GG3333113(){ note_ctor("GG3333113", this);} // tgen
+
+static void Test_GG3333113()
+{
+ extern Class_Descriptor cd_GG3333113;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3333113, buf);
+ GG3333113 *dp, &lv = *(dp=new (buf) GG3333113());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3333113)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3333113)");
+ check_base_class_offset(lv, (AA3*)(EE333*), ABISELECT(32,16), "GG3333113");
+ check_base_class_offset(lv, (AA3*)(FF311*), ABISELECT(32,16), "GG3333113");
+ check_base_class_offset(lv, (BB3*)(EE333*), ABISELECT(48,24), "GG3333113");
+ check_base_class_offset(lv, (EE333*), ABISELECT(16,8), "GG3333113");
+ check_base_class_offset(lv, (BB1*)(FF311*), ABISELECT(80,40), "GG3333113");
+ check_base_class_offset(lv, (FF311*), ABISELECT(64,32), "GG3333113");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3333113.pg");
+ test_class_info(&lv, &cd_GG3333113);
+ dp->~GG3333113();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3333113(Test_GG3333113, "GG3333113", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3333113C1Ev();
+extern void _ZN9GG3333113D1Ev();
+Name_Map name_map_GG3333113[] = {
+ NSPAIR(_ZN9GG3333113C1Ev),
+ NSPAIR(_ZN9GG3333113D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE333;
+extern VTBL_ENTRY _ZTI5EE333[];
+extern VTBL_ENTRY _ZTV5EE333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE333[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF311;
+extern VTBL_ENTRY _ZTI5FF311[];
+extern VTBL_ENTRY _ZTV5FF311[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF311[];
+static Base_Class bases_GG3333113[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE333, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF311, ABISELECT(64,32), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3333113[];
+extern void _ZN9GG33331133fooEv();
+extern void _ZN9GG33331133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33331133fooEv,_ZTv0_n20_N9GG33331133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33331133fooEv,_ZThn8_N9GG33331133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33331133barEv,_ZTv0_n24_N9GG33331133barEv)();
+extern void ABISELECT(_ZThn16_N9GG33331133barEv,_ZThn8_N9GG33331133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33331133fooEv,_ZTv0_n12_N9GG33331133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33331133fooEv,_ZThn16_N9GG33331133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33331133barEv,_ZTv0_n16_N9GG33331133barEv)();
+extern void ABISELECT(_ZThn32_N9GG33331133barEv,_ZThn16_N9GG33331133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33331133fooEv,_ZTv0_n12_N9GG33331133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33331133fooEv,_ZThn24_N9GG33331133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33331133barEv,_ZTv0_n16_N9GG33331133barEv)();
+extern void ABISELECT(_ZThn48_N9GG33331133barEv,_ZThn24_N9GG33331133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33331133fooEv,_ZTv0_n20_N9GG33331133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33331133fooEv,_ZThn32_N9GG33331133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33331133fooEv,_ZTv0_n12_N9GG33331133fooEv)();
+extern void ABISELECT(_ZThn80_N9GG33331133fooEv,_ZThn40_N9GG33331133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3333113[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3333113[0]),
+ (VTBL_ENTRY)&_ZN9GG33331133fooEv,
+ (VTBL_ENTRY)&_ZN9GG33331133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3333113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33331133fooEv,_ZTv0_n20_N9GG33331133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33331133barEv,_ZTv0_n24_N9GG33331133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3333113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33331133fooEv,_ZTv0_n12_N9GG33331133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33331133barEv,_ZTv0_n16_N9GG33331133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3333113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33331133fooEv,_ZTv0_n12_N9GG33331133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33331133barEv,_ZTv0_n16_N9GG33331133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3333113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33331133fooEv,_ZTv0_n20_N9GG33331133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3333113[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33331133fooEv,_ZTv0_n12_N9GG33331133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3333113[];
+extern void _ZN5EE3333fooEv();
+extern void _ZN5EE3333barEv();
+static VTBL_ENTRY _tg__ZTV5EE333__9GG3333113[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&_ZN5EE3333fooEv,
+ (VTBL_ENTRY)&_ZN5EE3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE333__9GG3333113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE333__9GG3333113[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void _ZN5FF3113fooEv();
+static VTBL_ENTRY _tg__ZTV5FF311__9GG3333113[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&_ZN5FF3113fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF311__9GG3333113[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF311__9GG3333113[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF311[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv),
+};
+static VTT_ENTRY vtt_GG3333113[] = {
+ {&(_ZTV9GG3333113[7]), 7,39},
+ {&(_ZTV9GG3333113[15]), 15,39},
+ {&(_ZTV9GG3333113[21]), 21,39},
+ {&(_ZTV9GG3333113[27]), 27,39},
+ {&(_ZTV9GG3333113[34]), 34,39},
+ {&(_ZTV9GG3333113[38]), 38,39},
+ {&(_tg__ZTV5EE333__9GG3333113[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE333__9GG3333113[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE333__9GG3333113[4]), 4,6},
+ {&(_tg__ZTV5FF311__9GG3333113[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF311__9GG3333113[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF311__9GG3333113[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3333113[];
+extern VTBL_ENTRY _ZTV9GG3333113[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3333113[];
+static VTBL_ENTRY alt_thunk_names1006[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3113fooEv,_ZTv0_n12_N5FF3113fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3113fooEv,_ZThn8_N5FF3113fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33331133barEv,_ZTv0_n16_N9GG33331133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33331133barEv,_ZThn24_N9GG33331133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33331133barEv,_ZThn16_N9GG33331133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33331133fooEv,_ZTv0_n12_N9GG33331133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33331133fooEv,_ZThn40_N9GG33331133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33331133fooEv,_ZThn24_N9GG33331133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33331133fooEv,_ZThn16_N9GG33331133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG33331133barEv,_ZTv0_n24_N9GG33331133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33331133barEv,_ZThn8_N9GG33331133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33331133fooEv,_ZTv0_n20_N9GG33331133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33331133fooEv,_ZThn32_N9GG33331133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33331133fooEv,_ZThn8_N9GG33331133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3333113 = { "GG3333113", // class name
+ bases_GG3333113, 5,
+ &(vtc_GG3333113[0]), // expected_vtbl_contents
+ &(vtt_GG3333113[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3333113),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3333113),39, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3333113),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1006,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3333123 : virtual EE333 , virtual FF312 {
+ int pg;
+ virtual void foo(); // _ZN9GG33331233fooEv
+ virtual void bar(); // _ZN9GG33331233barEv
+ ~GG3333123(); // tgen
+ GG3333123(); // tgen
+};
+//SIG(1 GG3333123) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3333123 ::foo(){vfunc_called(this, "_ZN9GG33331233fooEv");}
+void GG3333123 ::bar(){vfunc_called(this, "_ZN9GG33331233barEv");}
+GG3333123 ::~GG3333123(){ note_dtor("GG3333123", this);} // tgen
+GG3333123 ::GG3333123(){ note_ctor("GG3333123", this);} // tgen
+
+static void Test_GG3333123()
+{
+ extern Class_Descriptor cd_GG3333123;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3333123, buf);
+ GG3333123 *dp, &lv = *(dp=new (buf) GG3333123());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3333123)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3333123)");
+ check_base_class_offset(lv, (AA3*)(EE333*), ABISELECT(32,16), "GG3333123");
+ check_base_class_offset(lv, (AA3*)(FF312*), ABISELECT(32,16), "GG3333123");
+ check_base_class_offset(lv, (BB3*)(EE333*), ABISELECT(48,24), "GG3333123");
+ check_base_class_offset(lv, (EE333*), ABISELECT(16,8), "GG3333123");
+ check_base_class_offset(lv, (BB1*)(FF312*), ABISELECT(80,40), "GG3333123");
+ check_base_class_offset(lv, (FF312*), ABISELECT(64,32), "GG3333123");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3333123.pg");
+ test_class_info(&lv, &cd_GG3333123);
+ dp->~GG3333123();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3333123(Test_GG3333123, "GG3333123", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3333123C1Ev();
+extern void _ZN9GG3333123D1Ev();
+Name_Map name_map_GG3333123[] = {
+ NSPAIR(_ZN9GG3333123C1Ev),
+ NSPAIR(_ZN9GG3333123D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE333;
+extern VTBL_ENTRY _ZTI5EE333[];
+extern VTBL_ENTRY _ZTV5EE333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE333[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF312;
+extern VTBL_ENTRY _ZTI5FF312[];
+extern VTBL_ENTRY _ZTV5FF312[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF312[];
+static Base_Class bases_GG3333123[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE333, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF312, ABISELECT(64,32), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3333123[];
+extern void _ZN9GG33331233fooEv();
+extern void _ZN9GG33331233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33331233fooEv,_ZTv0_n20_N9GG33331233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33331233fooEv,_ZThn8_N9GG33331233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33331233barEv,_ZTv0_n24_N9GG33331233barEv)();
+extern void ABISELECT(_ZThn16_N9GG33331233barEv,_ZThn8_N9GG33331233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33331233fooEv,_ZTv0_n12_N9GG33331233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33331233fooEv,_ZThn16_N9GG33331233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33331233barEv,_ZTv0_n16_N9GG33331233barEv)();
+extern void ABISELECT(_ZThn32_N9GG33331233barEv,_ZThn16_N9GG33331233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33331233fooEv,_ZTv0_n12_N9GG33331233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33331233fooEv,_ZThn24_N9GG33331233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33331233barEv,_ZTv0_n16_N9GG33331233barEv)();
+extern void ABISELECT(_ZThn48_N9GG33331233barEv,_ZThn24_N9GG33331233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33331233barEv,_ZTv0_n20_N9GG33331233barEv)();
+extern void ABISELECT(_ZThn64_N9GG33331233barEv,_ZThn32_N9GG33331233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33331233fooEv,_ZTv0_n12_N9GG33331233fooEv)();
+extern void ABISELECT(_ZThn80_N9GG33331233fooEv,_ZThn40_N9GG33331233fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3333123[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3333123[0]),
+ (VTBL_ENTRY)&_ZN9GG33331233fooEv,
+ (VTBL_ENTRY)&_ZN9GG33331233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3333123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33331233fooEv,_ZTv0_n20_N9GG33331233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33331233barEv,_ZTv0_n24_N9GG33331233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3333123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33331233fooEv,_ZTv0_n12_N9GG33331233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33331233barEv,_ZTv0_n16_N9GG33331233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3333123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33331233fooEv,_ZTv0_n12_N9GG33331233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33331233barEv,_ZTv0_n16_N9GG33331233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3333123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33331233barEv,_ZTv0_n20_N9GG33331233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3333123[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33331233fooEv,_ZTv0_n12_N9GG33331233fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3333123[];
+extern void _ZN5EE3333fooEv();
+extern void _ZN5EE3333barEv();
+static VTBL_ENTRY _tg__ZTV5EE333__9GG3333123[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&_ZN5EE3333fooEv,
+ (VTBL_ENTRY)&_ZN5EE3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE333__9GG3333123[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE333__9GG3333123[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void _ZN5FF3123barEv();
+static VTBL_ENTRY _tg__ZTV5FF312__9GG3333123[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN5FF3123barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF312__9GG3333123[] = {
+ ABISELECT(32,16),
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3123barEv,_ZTv0_n16_N5FF3123barEv),
+};
+extern void _ZN3BB13fooEv();
+static VTBL_ENTRY _tg__ZTV3BB1__5FF312__9GG3333123[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF312[0]),
+ (VTBL_ENTRY)&_ZN3BB13fooEv,
+};
+static VTT_ENTRY vtt_GG3333123[] = {
+ {&(_ZTV9GG3333123[7]), 7,39},
+ {&(_ZTV9GG3333123[15]), 15,39},
+ {&(_ZTV9GG3333123[21]), 21,39},
+ {&(_ZTV9GG3333123[27]), 27,39},
+ {&(_ZTV9GG3333123[34]), 34,39},
+ {&(_ZTV9GG3333123[38]), 38,39},
+ {&(_tg__ZTV5EE333__9GG3333123[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE333__9GG3333123[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE333__9GG3333123[4]), 4,6},
+ {&(_tg__ZTV5FF312__9GG3333123[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF312__9GG3333123[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF312__9GG3333123[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3333123[];
+extern VTBL_ENTRY _ZTV9GG3333123[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3333123[];
+static VTBL_ENTRY alt_thunk_names1007[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33331233barEv,_ZTv0_n20_N9GG33331233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33331233barEv,_ZThn32_N9GG33331233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33331233barEv,_ZTv0_n16_N9GG33331233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33331233barEv,_ZThn24_N9GG33331233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33331233barEv,_ZThn16_N9GG33331233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33331233fooEv,_ZTv0_n12_N9GG33331233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33331233fooEv,_ZThn40_N9GG33331233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33331233fooEv,_ZThn24_N9GG33331233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33331233fooEv,_ZThn16_N9GG33331233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG33331233barEv,_ZTv0_n24_N9GG33331233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33331233barEv,_ZThn8_N9GG33331233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33331233fooEv,_ZTv0_n20_N9GG33331233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33331233fooEv,_ZThn8_N9GG33331233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3333123 = { "GG3333123", // class name
+ bases_GG3333123, 5,
+ &(vtc_GG3333123[0]), // expected_vtbl_contents
+ &(vtt_GG3333123[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3333123),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3333123),39, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3333123),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1007,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3333133 : virtual EE333 , virtual FF313 {
+ int pg;
+ virtual void foo(); // _ZN9GG33331333fooEv
+ virtual void bar(); // _ZN9GG33331333barEv
+ ~GG3333133(); // tgen
+ GG3333133(); // tgen
+};
+//SIG(1 GG3333133) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v1 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3333133 ::foo(){vfunc_called(this, "_ZN9GG33331333fooEv");}
+void GG3333133 ::bar(){vfunc_called(this, "_ZN9GG33331333barEv");}
+GG3333133 ::~GG3333133(){ note_dtor("GG3333133", this);} // tgen
+GG3333133 ::GG3333133(){ note_ctor("GG3333133", this);} // tgen
+
+static void Test_GG3333133()
+{
+ extern Class_Descriptor cd_GG3333133;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3333133, buf);
+ GG3333133 *dp, &lv = *(dp=new (buf) GG3333133());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3333133)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3333133)");
+ check_base_class_offset(lv, (AA3*)(EE333*), ABISELECT(32,16), "GG3333133");
+ check_base_class_offset(lv, (AA3*)(FF313*), ABISELECT(32,16), "GG3333133");
+ check_base_class_offset(lv, (BB3*)(EE333*), ABISELECT(48,24), "GG3333133");
+ check_base_class_offset(lv, (EE333*), ABISELECT(16,8), "GG3333133");
+ check_base_class_offset(lv, (BB1*)(FF313*), ABISELECT(80,40), "GG3333133");
+ check_base_class_offset(lv, (FF313*), ABISELECT(64,32), "GG3333133");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3333133.pg");
+ test_class_info(&lv, &cd_GG3333133);
+ dp->~GG3333133();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3333133(Test_GG3333133, "GG3333133", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3333133C1Ev();
+extern void _ZN9GG3333133D1Ev();
+Name_Map name_map_GG3333133[] = {
+ NSPAIR(_ZN9GG3333133C1Ev),
+ NSPAIR(_ZN9GG3333133D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE333;
+extern VTBL_ENTRY _ZTI5EE333[];
+extern VTBL_ENTRY _ZTV5EE333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE333[];
+extern Class_Descriptor cd_BB1;
+extern VTBL_ENTRY _ZTI3BB1[];
+extern VTBL_ENTRY _ZTV3BB1[];
+extern Class_Descriptor cd_FF313;
+extern VTBL_ENTRY _ZTI5FF313[];
+extern VTBL_ENTRY _ZTV5FF313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF313[];
+static Base_Class bases_GG3333133[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE333, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB1, ABISELECT(80,40), //bcp->offset
+ 37, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF313, ABISELECT(64,32), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3333133[];
+extern void _ZN9GG33331333fooEv();
+extern void _ZN9GG33331333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33331333fooEv,_ZTv0_n20_N9GG33331333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33331333fooEv,_ZThn8_N9GG33331333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33331333barEv,_ZTv0_n24_N9GG33331333barEv)();
+extern void ABISELECT(_ZThn16_N9GG33331333barEv,_ZThn8_N9GG33331333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33331333fooEv,_ZTv0_n12_N9GG33331333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33331333fooEv,_ZThn16_N9GG33331333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33331333barEv,_ZTv0_n16_N9GG33331333barEv)();
+extern void ABISELECT(_ZThn32_N9GG33331333barEv,_ZThn16_N9GG33331333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33331333fooEv,_ZTv0_n12_N9GG33331333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33331333fooEv,_ZThn24_N9GG33331333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33331333barEv,_ZTv0_n16_N9GG33331333barEv)();
+extern void ABISELECT(_ZThn48_N9GG33331333barEv,_ZThn24_N9GG33331333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33331333fooEv,_ZTv0_n20_N9GG33331333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33331333fooEv,_ZThn32_N9GG33331333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33331333barEv,_ZTv0_n24_N9GG33331333barEv)();
+extern void ABISELECT(_ZThn64_N9GG33331333barEv,_ZThn32_N9GG33331333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33331333fooEv,_ZTv0_n12_N9GG33331333fooEv)();
+extern void ABISELECT(_ZThn80_N9GG33331333fooEv,_ZThn40_N9GG33331333fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3333133[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3333133[0]),
+ (VTBL_ENTRY)&_ZN9GG33331333fooEv,
+ (VTBL_ENTRY)&_ZN9GG33331333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3333133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33331333fooEv,_ZTv0_n20_N9GG33331333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33331333barEv,_ZTv0_n24_N9GG33331333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3333133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33331333fooEv,_ZTv0_n12_N9GG33331333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33331333barEv,_ZTv0_n16_N9GG33331333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3333133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33331333fooEv,_ZTv0_n12_N9GG33331333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33331333barEv,_ZTv0_n16_N9GG33331333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3333133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33331333fooEv,_ZTv0_n20_N9GG33331333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33331333barEv,_ZTv0_n24_N9GG33331333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3333133[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33331333fooEv,_ZTv0_n12_N9GG33331333fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3333133[];
+extern void _ZN5EE3333fooEv();
+extern void _ZN5EE3333barEv();
+static VTBL_ENTRY _tg__ZTV5EE333__9GG3333133[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&_ZN5EE3333fooEv,
+ (VTBL_ENTRY)&_ZN5EE3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE333__9GG3333133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE333__9GG3333133[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void _ZN5FF3133fooEv();
+extern void _ZN5FF3133barEv();
+static VTBL_ENTRY _tg__ZTV5FF313__9GG3333133[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&_ZN5FF3133fooEv,
+ (VTBL_ENTRY)&_ZN5FF3133barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF313__9GG3333133[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3133barEv,_ZTv0_n16_N5FF3133barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv)();
+extern void ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB1__5FF313__9GG3333133[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv),
+};
+static VTT_ENTRY vtt_GG3333133[] = {
+ {&(_ZTV9GG3333133[7]), 7,41},
+ {&(_ZTV9GG3333133[15]), 15,41},
+ {&(_ZTV9GG3333133[21]), 21,41},
+ {&(_ZTV9GG3333133[27]), 27,41},
+ {&(_ZTV9GG3333133[35]), 35,41},
+ {&(_ZTV9GG3333133[40]), 40,41},
+ {&(_tg__ZTV5EE333__9GG3333133[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE333__9GG3333133[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE333__9GG3333133[4]), 4,6},
+ {&(_tg__ZTV5FF313__9GG3333133[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF313__9GG3333133[4]), 4,6},
+ {&(_tg__ZTV3BB1__5FF313__9GG3333133[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3333133[];
+extern VTBL_ENTRY _ZTV9GG3333133[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3333133[];
+static VTBL_ENTRY alt_thunk_names1008[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3133fooEv,_ZTv0_n12_N5FF3133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3133fooEv,_ZThn8_N5FF3133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33331333barEv,_ZTv0_n16_N9GG33331333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33331333barEv,_ZThn24_N9GG33331333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33331333barEv,_ZThn16_N9GG33331333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33331333fooEv,_ZTv0_n12_N9GG33331333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33331333fooEv,_ZThn40_N9GG33331333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33331333fooEv,_ZThn24_N9GG33331333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33331333fooEv,_ZThn16_N9GG33331333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG33331333barEv,_ZTv0_n24_N9GG33331333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33331333barEv,_ZThn32_N9GG33331333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33331333barEv,_ZThn8_N9GG33331333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33331333fooEv,_ZTv0_n20_N9GG33331333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33331333fooEv,_ZThn32_N9GG33331333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33331333fooEv,_ZThn8_N9GG33331333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3333133 = { "GG3333133", // class name
+ bases_GG3333133, 5,
+ &(vtc_GG3333133[0]), // expected_vtbl_contents
+ &(vtt_GG3333133[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3333133),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3333133),41, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3333133),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1008,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3333213 : virtual EE333 , virtual FF321 {
+ int pg;
+ virtual void foo(); // _ZN9GG33332133fooEv
+ virtual void bar(); // _ZN9GG33332133barEv
+ ~GG3333213(); // tgen
+ GG3333213(); // tgen
+};
+//SIG(1 GG3333213) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v1 Fi} v1 v2 Fi}
+
+
+void GG3333213 ::foo(){vfunc_called(this, "_ZN9GG33332133fooEv");}
+void GG3333213 ::bar(){vfunc_called(this, "_ZN9GG33332133barEv");}
+GG3333213 ::~GG3333213(){ note_dtor("GG3333213", this);} // tgen
+GG3333213 ::GG3333213(){ note_ctor("GG3333213", this);} // tgen
+
+static void Test_GG3333213()
+{
+ extern Class_Descriptor cd_GG3333213;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3333213, buf);
+ GG3333213 *dp, &lv = *(dp=new (buf) GG3333213());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3333213)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3333213)");
+ check_base_class_offset(lv, (AA3*)(EE333*), ABISELECT(32,16), "GG3333213");
+ check_base_class_offset(lv, (AA3*)(FF321*), ABISELECT(32,16), "GG3333213");
+ check_base_class_offset(lv, (BB3*)(EE333*), ABISELECT(48,24), "GG3333213");
+ check_base_class_offset(lv, (EE333*), ABISELECT(16,8), "GG3333213");
+ check_base_class_offset(lv, (BB2*)(FF321*), ABISELECT(80,40), "GG3333213");
+ check_base_class_offset(lv, (FF321*), ABISELECT(64,32), "GG3333213");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3333213.pg");
+ test_class_info(&lv, &cd_GG3333213);
+ dp->~GG3333213();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3333213(Test_GG3333213, "GG3333213", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3333213C1Ev();
+extern void _ZN9GG3333213D1Ev();
+Name_Map name_map_GG3333213[] = {
+ NSPAIR(_ZN9GG3333213C1Ev),
+ NSPAIR(_ZN9GG3333213D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE333;
+extern VTBL_ENTRY _ZTI5EE333[];
+extern VTBL_ENTRY _ZTV5EE333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE333[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF321;
+extern VTBL_ENTRY _ZTI5FF321[];
+extern VTBL_ENTRY _ZTV5FF321[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF321[];
+static Base_Class bases_GG3333213[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE333, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF321, ABISELECT(64,32), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3333213[];
+extern void _ZN9GG33332133fooEv();
+extern void _ZN9GG33332133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33332133fooEv,_ZTv0_n20_N9GG33332133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33332133fooEv,_ZThn8_N9GG33332133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33332133barEv,_ZTv0_n24_N9GG33332133barEv)();
+extern void ABISELECT(_ZThn16_N9GG33332133barEv,_ZThn8_N9GG33332133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33332133fooEv,_ZTv0_n12_N9GG33332133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33332133fooEv,_ZThn16_N9GG33332133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33332133barEv,_ZTv0_n16_N9GG33332133barEv)();
+extern void ABISELECT(_ZThn32_N9GG33332133barEv,_ZThn16_N9GG33332133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33332133fooEv,_ZTv0_n12_N9GG33332133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33332133fooEv,_ZThn24_N9GG33332133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33332133barEv,_ZTv0_n16_N9GG33332133barEv)();
+extern void ABISELECT(_ZThn48_N9GG33332133barEv,_ZThn24_N9GG33332133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33332133fooEv,_ZTv0_n20_N9GG33332133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33332133fooEv,_ZThn32_N9GG33332133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33332133barEv,_ZTv0_n12_N9GG33332133barEv)();
+extern void ABISELECT(_ZThn80_N9GG33332133barEv,_ZThn40_N9GG33332133barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3333213[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3333213[0]),
+ (VTBL_ENTRY)&_ZN9GG33332133fooEv,
+ (VTBL_ENTRY)&_ZN9GG33332133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3333213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33332133fooEv,_ZTv0_n20_N9GG33332133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33332133barEv,_ZTv0_n24_N9GG33332133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3333213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33332133fooEv,_ZTv0_n12_N9GG33332133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33332133barEv,_ZTv0_n16_N9GG33332133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3333213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33332133fooEv,_ZTv0_n12_N9GG33332133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33332133barEv,_ZTv0_n16_N9GG33332133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3333213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33332133fooEv,_ZTv0_n20_N9GG33332133fooEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3333213[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33332133barEv,_ZTv0_n12_N9GG33332133barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3333213[];
+extern void _ZN5EE3333fooEv();
+extern void _ZN5EE3333barEv();
+static VTBL_ENTRY _tg__ZTV5EE333__9GG3333213[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&_ZN5EE3333fooEv,
+ (VTBL_ENTRY)&_ZN5EE3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE333__9GG3333213[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE333__9GG3333213[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void _ZN5FF3213fooEv();
+static VTBL_ENTRY _tg__ZTV5FF321__9GG3333213[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN5FF3213fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv)();
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF321__9GG3333213[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3213fooEv,_ZTv0_n12_N5FF3213fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void _ZN3BB23barEv();
+static VTBL_ENTRY _tg__ZTV3BB2__5FF321__9GG3333213[] = {
+ 0,
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF321[0]),
+ (VTBL_ENTRY)&_ZN3BB23barEv,
+};
+static VTT_ENTRY vtt_GG3333213[] = {
+ {&(_ZTV9GG3333213[7]), 7,39},
+ {&(_ZTV9GG3333213[15]), 15,39},
+ {&(_ZTV9GG3333213[21]), 21,39},
+ {&(_ZTV9GG3333213[27]), 27,39},
+ {&(_ZTV9GG3333213[34]), 34,39},
+ {&(_ZTV9GG3333213[38]), 38,39},
+ {&(_tg__ZTV5EE333__9GG3333213[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE333__9GG3333213[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE333__9GG3333213[4]), 4,6},
+ {&(_tg__ZTV5FF321__9GG3333213[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF321__9GG3333213[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF321__9GG3333213[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3333213[];
+extern VTBL_ENTRY _ZTV9GG3333213[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3333213[];
+static VTBL_ENTRY alt_thunk_names1009[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33332133barEv,_ZTv0_n12_N9GG33332133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33332133barEv,_ZThn40_N9GG33332133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33332133barEv,_ZTv0_n16_N9GG33332133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33332133barEv,_ZThn24_N9GG33332133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33332133barEv,_ZThn16_N9GG33332133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33332133fooEv,_ZTv0_n12_N9GG33332133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33332133fooEv,_ZThn24_N9GG33332133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33332133fooEv,_ZThn16_N9GG33332133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG33332133barEv,_ZTv0_n24_N9GG33332133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33332133barEv,_ZThn8_N9GG33332133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33332133fooEv,_ZTv0_n20_N9GG33332133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33332133fooEv,_ZThn32_N9GG33332133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33332133fooEv,_ZThn8_N9GG33332133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3333213 = { "GG3333213", // class name
+ bases_GG3333213, 5,
+ &(vtc_GG3333213[0]), // expected_vtbl_contents
+ &(vtt_GG3333213[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3333213),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3333213),39, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3333213),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1009,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3333223 : virtual EE333 , virtual FF322 {
+ int pg;
+ virtual void foo(); // _ZN9GG33332233fooEv
+ virtual void bar(); // _ZN9GG33332233barEv
+ ~GG3333223(); // tgen
+ GG3333223(); // tgen
+};
+//SIG(1 GG3333223) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v2 Fi} v1 v2 Fi}
+
+
+void GG3333223 ::foo(){vfunc_called(this, "_ZN9GG33332233fooEv");}
+void GG3333223 ::bar(){vfunc_called(this, "_ZN9GG33332233barEv");}
+GG3333223 ::~GG3333223(){ note_dtor("GG3333223", this);} // tgen
+GG3333223 ::GG3333223(){ note_ctor("GG3333223", this);} // tgen
+
+static void Test_GG3333223()
+{
+ extern Class_Descriptor cd_GG3333223;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3333223, buf);
+ GG3333223 *dp, &lv = *(dp=new (buf) GG3333223());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3333223)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3333223)");
+ check_base_class_offset(lv, (AA3*)(EE333*), ABISELECT(32,16), "GG3333223");
+ check_base_class_offset(lv, (AA3*)(FF322*), ABISELECT(32,16), "GG3333223");
+ check_base_class_offset(lv, (BB3*)(EE333*), ABISELECT(48,24), "GG3333223");
+ check_base_class_offset(lv, (EE333*), ABISELECT(16,8), "GG3333223");
+ check_base_class_offset(lv, (BB2*)(FF322*), ABISELECT(80,40), "GG3333223");
+ check_base_class_offset(lv, (FF322*), ABISELECT(64,32), "GG3333223");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3333223.pg");
+ test_class_info(&lv, &cd_GG3333223);
+ dp->~GG3333223();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3333223(Test_GG3333223, "GG3333223", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3333223C1Ev();
+extern void _ZN9GG3333223D1Ev();
+Name_Map name_map_GG3333223[] = {
+ NSPAIR(_ZN9GG3333223C1Ev),
+ NSPAIR(_ZN9GG3333223D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE333;
+extern VTBL_ENTRY _ZTI5EE333[];
+extern VTBL_ENTRY _ZTV5EE333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE333[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF322;
+extern VTBL_ENTRY _ZTI5FF322[];
+extern VTBL_ENTRY _ZTV5FF322[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF322[];
+static Base_Class bases_GG3333223[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE333, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 35, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF322, ABISELECT(64,32), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3333223[];
+extern void _ZN9GG33332233fooEv();
+extern void _ZN9GG33332233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33332233fooEv,_ZTv0_n20_N9GG33332233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33332233fooEv,_ZThn8_N9GG33332233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33332233barEv,_ZTv0_n24_N9GG33332233barEv)();
+extern void ABISELECT(_ZThn16_N9GG33332233barEv,_ZThn8_N9GG33332233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33332233fooEv,_ZTv0_n12_N9GG33332233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33332233fooEv,_ZThn16_N9GG33332233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33332233barEv,_ZTv0_n16_N9GG33332233barEv)();
+extern void ABISELECT(_ZThn32_N9GG33332233barEv,_ZThn16_N9GG33332233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33332233fooEv,_ZTv0_n12_N9GG33332233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33332233fooEv,_ZThn24_N9GG33332233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33332233barEv,_ZTv0_n16_N9GG33332233barEv)();
+extern void ABISELECT(_ZThn48_N9GG33332233barEv,_ZThn24_N9GG33332233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33332233barEv,_ZTv0_n20_N9GG33332233barEv)();
+extern void ABISELECT(_ZThn64_N9GG33332233barEv,_ZThn32_N9GG33332233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33332233barEv,_ZTv0_n12_N9GG33332233barEv)();
+extern void ABISELECT(_ZThn80_N9GG33332233barEv,_ZThn40_N9GG33332233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3333223[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3333223[0]),
+ (VTBL_ENTRY)&_ZN9GG33332233fooEv,
+ (VTBL_ENTRY)&_ZN9GG33332233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3333223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33332233fooEv,_ZTv0_n20_N9GG33332233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33332233barEv,_ZTv0_n24_N9GG33332233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3333223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33332233fooEv,_ZTv0_n12_N9GG33332233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33332233barEv,_ZTv0_n16_N9GG33332233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3333223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33332233fooEv,_ZTv0_n12_N9GG33332233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33332233barEv,_ZTv0_n16_N9GG33332233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3333223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33332233barEv,_ZTv0_n20_N9GG33332233barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3333223[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33332233barEv,_ZTv0_n12_N9GG33332233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3333223[];
+extern void _ZN5EE3333fooEv();
+extern void _ZN5EE3333barEv();
+static VTBL_ENTRY _tg__ZTV5EE333__9GG3333223[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&_ZN5EE3333fooEv,
+ (VTBL_ENTRY)&_ZN5EE3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE333__9GG3333223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE333__9GG3333223[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void _ZN5FF3223barEv();
+static VTBL_ENTRY _tg__ZTV5FF322__9GG3333223[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN5FF3223barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF322__9GG3333223[] = {
+ ABISELECT(32,16),
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3223barEv,_ZTv0_n16_N5FF3223barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv)();
+extern void ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF322__9GG3333223[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF322[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv),
+};
+static VTT_ENTRY vtt_GG3333223[] = {
+ {&(_ZTV9GG3333223[7]), 7,39},
+ {&(_ZTV9GG3333223[15]), 15,39},
+ {&(_ZTV9GG3333223[21]), 21,39},
+ {&(_ZTV9GG3333223[27]), 27,39},
+ {&(_ZTV9GG3333223[34]), 34,39},
+ {&(_ZTV9GG3333223[38]), 38,39},
+ {&(_tg__ZTV5EE333__9GG3333223[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE333__9GG3333223[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE333__9GG3333223[4]), 4,6},
+ {&(_tg__ZTV5FF322__9GG3333223[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF322__9GG3333223[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF322__9GG3333223[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3333223[];
+extern VTBL_ENTRY _ZTV9GG3333223[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3333223[];
+static VTBL_ENTRY alt_thunk_names1010[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3223barEv,_ZTv0_n12_N5FF3223barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3223barEv,_ZThn8_N5FF3223barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33332233barEv,_ZTv0_n12_N9GG33332233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33332233barEv,_ZThn40_N9GG33332233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33332233barEv,_ZTv0_n20_N9GG33332233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33332233barEv,_ZThn32_N9GG33332233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33332233barEv,_ZTv0_n16_N9GG33332233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33332233barEv,_ZThn24_N9GG33332233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33332233barEv,_ZThn16_N9GG33332233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33332233fooEv,_ZTv0_n12_N9GG33332233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33332233fooEv,_ZThn24_N9GG33332233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33332233fooEv,_ZThn16_N9GG33332233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG33332233barEv,_ZTv0_n24_N9GG33332233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33332233barEv,_ZThn8_N9GG33332233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33332233fooEv,_ZTv0_n20_N9GG33332233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33332233fooEv,_ZThn8_N9GG33332233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3333223 = { "GG3333223", // class name
+ bases_GG3333223, 5,
+ &(vtc_GG3333223[0]), // expected_vtbl_contents
+ &(vtt_GG3333223[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3333223),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3333223),39, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3333223),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1010,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3333233 : virtual EE333 , virtual FF323 {
+ int pg;
+ virtual void foo(); // _ZN9GG33332333fooEv
+ virtual void bar(); // _ZN9GG33332333barEv
+ ~GG3333233(); // tgen
+ GG3333233(); // tgen
+};
+//SIG(1 GG3333233) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC6{ v2 Fi} v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3333233 ::foo(){vfunc_called(this, "_ZN9GG33332333fooEv");}
+void GG3333233 ::bar(){vfunc_called(this, "_ZN9GG33332333barEv");}
+GG3333233 ::~GG3333233(){ note_dtor("GG3333233", this);} // tgen
+GG3333233 ::GG3333233(){ note_ctor("GG3333233", this);} // tgen
+
+static void Test_GG3333233()
+{
+ extern Class_Descriptor cd_GG3333233;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[13];
+ init_test(&cd_GG3333233, buf);
+ GG3333233 *dp, &lv = *(dp=new (buf) GG3333233());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(96,48), "sizeof(GG3333233)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3333233)");
+ check_base_class_offset(lv, (AA3*)(EE333*), ABISELECT(32,16), "GG3333233");
+ check_base_class_offset(lv, (AA3*)(FF323*), ABISELECT(32,16), "GG3333233");
+ check_base_class_offset(lv, (BB3*)(EE333*), ABISELECT(48,24), "GG3333233");
+ check_base_class_offset(lv, (EE333*), ABISELECT(16,8), "GG3333233");
+ check_base_class_offset(lv, (BB2*)(FF323*), ABISELECT(80,40), "GG3333233");
+ check_base_class_offset(lv, (FF323*), ABISELECT(64,32), "GG3333233");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3333233.pg");
+ test_class_info(&lv, &cd_GG3333233);
+ dp->~GG3333233();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3333233(Test_GG3333233, "GG3333233", ABISELECT(96,48));
+
+#else // __cplusplus
+
+extern void _ZN9GG3333233C1Ev();
+extern void _ZN9GG3333233D1Ev();
+Name_Map name_map_GG3333233[] = {
+ NSPAIR(_ZN9GG3333233C1Ev),
+ NSPAIR(_ZN9GG3333233D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE333;
+extern VTBL_ENTRY _ZTI5EE333[];
+extern VTBL_ENTRY _ZTV5EE333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE333[];
+extern Class_Descriptor cd_BB2;
+extern VTBL_ENTRY _ZTI3BB2[];
+extern VTBL_ENTRY _ZTV3BB2[];
+extern Class_Descriptor cd_FF323;
+extern VTBL_ENTRY _ZTI5FF323[];
+extern VTBL_ENTRY _ZTV5FF323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF323[];
+static Base_Class bases_GG3333233[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 17, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, ABISELECT(48,24), //bcp->offset
+ 23, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 4, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 2, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_EE333, ABISELECT(16,8), //bcp->offset
+ 9, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 7, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_BB2, ABISELECT(80,40), //bcp->offset
+ 37, //bcp->virtual_function_table_offset
+ 3, //num_negative_vtable_entries(t, bcp)
+ 6, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ 4, //immediately_derived
+ 0, 1},
+ {&cd_FF323, ABISELECT(64,32), //bcp->offset
+ 29, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 10, //bcp->base_subarray_index_in_construction_vtbl_array
+ 5, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3333233[];
+extern void _ZN9GG33332333fooEv();
+extern void _ZN9GG33332333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33332333fooEv,_ZTv0_n20_N9GG33332333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33332333fooEv,_ZThn8_N9GG33332333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33332333barEv,_ZTv0_n24_N9GG33332333barEv)();
+extern void ABISELECT(_ZThn16_N9GG33332333barEv,_ZThn8_N9GG33332333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33332333fooEv,_ZTv0_n12_N9GG33332333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33332333fooEv,_ZThn16_N9GG33332333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33332333barEv,_ZTv0_n16_N9GG33332333barEv)();
+extern void ABISELECT(_ZThn32_N9GG33332333barEv,_ZThn16_N9GG33332333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33332333fooEv,_ZTv0_n12_N9GG33332333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33332333fooEv,_ZThn24_N9GG33332333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33332333barEv,_ZTv0_n16_N9GG33332333barEv)();
+extern void ABISELECT(_ZThn48_N9GG33332333barEv,_ZThn24_N9GG33332333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33332333fooEv,_ZTv0_n20_N9GG33332333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33332333fooEv,_ZThn32_N9GG33332333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33332333barEv,_ZTv0_n24_N9GG33332333barEv)();
+extern void ABISELECT(_ZThn64_N9GG33332333barEv,_ZThn32_N9GG33332333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33332333barEv,_ZTv0_n12_N9GG33332333barEv)();
+extern void ABISELECT(_ZThn80_N9GG33332333barEv,_ZThn40_N9GG33332333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3333233[] = {
+ ABISELECT(80,40),
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3333233[0]),
+ (VTBL_ENTRY)&_ZN9GG33332333fooEv,
+ (VTBL_ENTRY)&_ZN9GG33332333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3333233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33332333fooEv,_ZTv0_n20_N9GG33332333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33332333barEv,_ZTv0_n24_N9GG33332333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3333233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33332333fooEv,_ZTv0_n12_N9GG33332333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33332333barEv,_ZTv0_n16_N9GG33332333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3333233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33332333fooEv,_ZTv0_n12_N9GG33332333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33332333barEv,_ZTv0_n16_N9GG33332333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3333233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33332333fooEv,_ZTv0_n20_N9GG33332333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33332333barEv,_ZTv0_n24_N9GG33332333barEv),
+ ABISELECT(-80,-40),
+ ABISELECT(-80,-40),
+ (VTBL_ENTRY)&(_ZTI9GG3333233[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33332333barEv,_ZTv0_n12_N9GG33332333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3333233[];
+extern void _ZN5EE3333fooEv();
+extern void _ZN5EE3333barEv();
+static VTBL_ENTRY _tg__ZTV5EE333__9GG3333233[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&_ZN5EE3333fooEv,
+ (VTBL_ENTRY)&_ZN5EE3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE333__9GG3333233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE333__9GG3333233[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void _ZN5FF3233fooEv();
+extern void _ZN5FF3233barEv();
+static VTBL_ENTRY _tg__ZTV5FF323__9GG3333233[] = {
+ ABISELECT(16,8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&_ZN5FF3233fooEv,
+ (VTBL_ENTRY)&_ZN5FF3233barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF323__9GG3333233[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233fooEv,_ZTv0_n12_N5FF3233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3233barEv,_ZTv0_n16_N5FF3233barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv)();
+extern void ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB2__5FF323__9GG3333233[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5FF323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv),
+};
+static VTT_ENTRY vtt_GG3333233[] = {
+ {&(_ZTV9GG3333233[7]), 7,41},
+ {&(_ZTV9GG3333233[15]), 15,41},
+ {&(_ZTV9GG3333233[21]), 21,41},
+ {&(_ZTV9GG3333233[27]), 27,41},
+ {&(_ZTV9GG3333233[35]), 35,41},
+ {&(_ZTV9GG3333233[40]), 40,41},
+ {&(_tg__ZTV5EE333__9GG3333233[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE333__9GG3333233[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE333__9GG3333233[4]), 4,6},
+ {&(_tg__ZTV5FF323__9GG3333233[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF323__9GG3333233[4]), 4,6},
+ {&(_tg__ZTV3BB2__5FF323__9GG3333233[3]), 3,4},
+};
+extern VTBL_ENTRY _ZTI9GG3333233[];
+extern VTBL_ENTRY _ZTV9GG3333233[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3333233[];
+static VTBL_ENTRY alt_thunk_names1011[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5FF3233barEv,_ZTv0_n12_N5FF3233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5FF3233barEv,_ZThn8_N5FF3233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33332333barEv,_ZTv0_n12_N9GG33332333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn80_N9GG33332333barEv,_ZThn40_N9GG33332333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33332333barEv,_ZTv0_n16_N9GG33332333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33332333barEv,_ZThn24_N9GG33332333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33332333barEv,_ZThn16_N9GG33332333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33332333fooEv,_ZTv0_n12_N9GG33332333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33332333fooEv,_ZThn24_N9GG33332333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33332333fooEv,_ZThn16_N9GG33332333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG33332333barEv,_ZTv0_n24_N9GG33332333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33332333barEv,_ZThn32_N9GG33332333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33332333barEv,_ZThn8_N9GG33332333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33332333fooEv,_ZTv0_n20_N9GG33332333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33332333fooEv,_ZThn32_N9GG33332333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33332333fooEv,_ZThn8_N9GG33332333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3333233 = { "GG3333233", // class name
+ bases_GG3333233, 5,
+ &(vtc_GG3333233[0]), // expected_vtbl_contents
+ &(vtt_GG3333233[0]), // expected_vtt_contents
+ ABISELECT(96,48), // object size
+ NSPAIRA(_ZTI9GG3333233),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3333233),41, //virtual function table var
+ 7, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3333233),12, //virtual table table var
+ 5, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1011,
+};
+#endif // __cplusplus
+
+//============================================================================
+
+#ifdef __cplusplus
+
+struct GG3333313 : virtual EE333 , virtual FF331 {
+ int pg;
+ virtual void foo(); // _ZN9GG33333133fooEv
+ virtual void bar(); // _ZN9GG33333133barEv
+ ~GG3333313(); // tgen
+ GG3333313(); // tgen
+};
+//SIG(1 GG3333313) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC4 v1 Fi} v1 v2 Fi}
+
+
+void GG3333313 ::foo(){vfunc_called(this, "_ZN9GG33333133fooEv");}
+void GG3333313 ::bar(){vfunc_called(this, "_ZN9GG33333133barEv");}
+GG3333313 ::~GG3333313(){ note_dtor("GG3333313", this);} // tgen
+GG3333313 ::GG3333313(){ note_ctor("GG3333313", this);} // tgen
+
+static void Test_GG3333313()
+{
+ extern Class_Descriptor cd_GG3333313;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG3333313, buf);
+ GG3333313 *dp, &lv = *(dp=new (buf) GG3333313());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG3333313)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3333313)");
+ check_base_class_offset(lv, (AA3*)(EE333*), ABISELECT(32,16), "GG3333313");
+ check_base_class_offset(lv, (AA3*)(FF331*), ABISELECT(32,16), "GG3333313");
+ check_base_class_offset(lv, (BB3*)(EE333*), ABISELECT(48,24), "GG3333313");
+ check_base_class_offset(lv, (BB3*)(FF331*), ABISELECT(48,24), "GG3333313");
+ check_base_class_offset(lv, (EE333*), ABISELECT(16,8), "GG3333313");
+ check_base_class_offset(lv, (FF331*), ABISELECT(64,32), "GG3333313");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3333313.pg");
+ test_class_info(&lv, &cd_GG3333313);
+ dp->~GG3333313();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3333313(Test_GG3333313, "GG3333313", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG3333313C1Ev();
+extern void _ZN9GG3333313D1Ev();
+Name_Map name_map_GG3333313[] = {
+ NSPAIR(_ZN9GG3333313C1Ev),
+ NSPAIR(_ZN9GG3333313D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE333;
+extern VTBL_ENTRY _ZTI5EE333[];
+extern VTBL_ENTRY _ZTV5EE333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE333[];
+extern Class_Descriptor cd_FF331;
+extern VTBL_ENTRY _ZTI5FF331[];
+extern VTBL_ENTRY _ZTV5FF331[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF331[];
+static Base_Class bases_GG3333313[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE333, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF331, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3333313[];
+extern void _ZN9GG33333133fooEv();
+extern void _ZN9GG33333133barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33333133fooEv,_ZTv0_n20_N9GG33333133fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33333133fooEv,_ZThn8_N9GG33333133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33333133barEv,_ZTv0_n24_N9GG33333133barEv)();
+extern void ABISELECT(_ZThn16_N9GG33333133barEv,_ZThn8_N9GG33333133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33333133fooEv,_ZTv0_n12_N9GG33333133fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33333133fooEv,_ZThn16_N9GG33333133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33333133barEv,_ZTv0_n16_N9GG33333133barEv)();
+extern void ABISELECT(_ZThn32_N9GG33333133barEv,_ZThn16_N9GG33333133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33333133fooEv,_ZTv0_n12_N9GG33333133fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33333133fooEv,_ZThn24_N9GG33333133fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33333133barEv,_ZTv0_n16_N9GG33333133barEv)();
+extern void ABISELECT(_ZThn48_N9GG33333133barEv,_ZThn24_N9GG33333133barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33333133fooEv,_ZTv0_n20_N9GG33333133fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33333133fooEv,_ZThn32_N9GG33333133fooEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3333313[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3333313[0]),
+ (VTBL_ENTRY)&_ZN9GG33333133fooEv,
+ (VTBL_ENTRY)&_ZN9GG33333133barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3333313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33333133fooEv,_ZTv0_n20_N9GG33333133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33333133barEv,_ZTv0_n24_N9GG33333133barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3333313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33333133fooEv,_ZTv0_n12_N9GG33333133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33333133barEv,_ZTv0_n16_N9GG33333133barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3333313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33333133fooEv,_ZTv0_n12_N9GG33333133fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33333133barEv,_ZTv0_n16_N9GG33333133barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3333313[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33333133fooEv,_ZTv0_n20_N9GG33333133fooEv),
+};
+extern VTBL_ENTRY _ZTV9GG3333313[];
+extern void _ZN5EE3333fooEv();
+extern void _ZN5EE3333barEv();
+static VTBL_ENTRY _tg__ZTV5EE333__9GG3333313[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&_ZN5EE3333fooEv,
+ (VTBL_ENTRY)&_ZN5EE3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE333__9GG3333313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE333__9GG3333313[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void _ZN5FF3313fooEv();
+static VTBL_ENTRY _tg__ZTV5FF331__9GG3333313[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&_ZN5FF3313fooEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void _ZN3AA33barEv();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF331__9GG3333313[] = {
+ 0,
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3AA33barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv)();
+extern void _ZN3BB33barEv();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF331__9GG3333313[] = {
+ 0,
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF331[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3313fooEv,_ZTv0_n12_N5FF3313fooEv),
+ (VTBL_ENTRY)&_ZN3BB33barEv,
+};
+static VTT_ENTRY vtt_GG3333313[] = {
+ {&(_ZTV9GG3333313[6]), 6,34},
+ {&(_ZTV9GG3333313[14]), 14,34},
+ {&(_ZTV9GG3333313[20]), 20,34},
+ {&(_ZTV9GG3333313[26]), 26,34},
+ {&(_ZTV9GG3333313[33]), 33,34},
+ {&(_tg__ZTV5EE333__9GG3333313[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE333__9GG3333313[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE333__9GG3333313[4]), 4,6},
+ {&(_tg__ZTV5FF331__9GG3333313[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF331__9GG3333313[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF331__9GG3333313[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3333313[];
+extern VTBL_ENTRY _ZTV9GG3333313[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3333313[];
+static VTBL_ENTRY alt_thunk_names1012[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33333133barEv,_ZTv0_n16_N9GG33333133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33333133barEv,_ZThn24_N9GG33333133barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33333133barEv,_ZThn16_N9GG33333133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33333133fooEv,_ZTv0_n12_N9GG33333133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33333133fooEv,_ZThn24_N9GG33333133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33333133fooEv,_ZThn16_N9GG33333133fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG33333133barEv,_ZTv0_n24_N9GG33333133barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33333133barEv,_ZThn8_N9GG33333133barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33333133fooEv,_ZTv0_n20_N9GG33333133fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33333133fooEv,_ZThn32_N9GG33333133fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33333133fooEv,_ZThn8_N9GG33333133fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3333313 = { "GG3333313", // class name
+ bases_GG3333313, 4,
+ &(vtc_GG3333313[0]), // expected_vtbl_contents
+ &(vtt_GG3333313[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG3333313),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3333313),34, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3333313),11, //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 GG3333323 : virtual EE333 , virtual FF332 {
+ int pg;
+ virtual void foo(); // _ZN9GG33333233fooEv
+ virtual void bar(); // _ZN9GG33333233barEv
+ ~GG3333323(); // tgen
+ GG3333323(); // tgen
+};
+//SIG(1 GG3333323) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC4 v2 Fi} v1 v2 Fi}
+
+
+void GG3333323 ::foo(){vfunc_called(this, "_ZN9GG33333233fooEv");}
+void GG3333323 ::bar(){vfunc_called(this, "_ZN9GG33333233barEv");}
+GG3333323 ::~GG3333323(){ note_dtor("GG3333323", this);} // tgen
+GG3333323 ::GG3333323(){ note_ctor("GG3333323", this);} // tgen
+
+static void Test_GG3333323()
+{
+ extern Class_Descriptor cd_GG3333323;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG3333323, buf);
+ GG3333323 *dp, &lv = *(dp=new (buf) GG3333323());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG3333323)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3333323)");
+ check_base_class_offset(lv, (AA3*)(EE333*), ABISELECT(32,16), "GG3333323");
+ check_base_class_offset(lv, (AA3*)(FF332*), ABISELECT(32,16), "GG3333323");
+ check_base_class_offset(lv, (BB3*)(EE333*), ABISELECT(48,24), "GG3333323");
+ check_base_class_offset(lv, (BB3*)(FF332*), ABISELECT(48,24), "GG3333323");
+ check_base_class_offset(lv, (EE333*), ABISELECT(16,8), "GG3333323");
+ check_base_class_offset(lv, (FF332*), ABISELECT(64,32), "GG3333323");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3333323.pg");
+ test_class_info(&lv, &cd_GG3333323);
+ dp->~GG3333323();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3333323(Test_GG3333323, "GG3333323", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG3333323C1Ev();
+extern void _ZN9GG3333323D1Ev();
+Name_Map name_map_GG3333323[] = {
+ NSPAIR(_ZN9GG3333323C1Ev),
+ NSPAIR(_ZN9GG3333323D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE333;
+extern VTBL_ENTRY _ZTI5EE333[];
+extern VTBL_ENTRY _ZTV5EE333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE333[];
+extern Class_Descriptor cd_FF332;
+extern VTBL_ENTRY _ZTI5FF332[];
+extern VTBL_ENTRY _ZTV5FF332[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF332[];
+static Base_Class bases_GG3333323[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE333, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF332, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 5, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3333323[];
+extern void _ZN9GG33333233fooEv();
+extern void _ZN9GG33333233barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33333233fooEv,_ZTv0_n20_N9GG33333233fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33333233fooEv,_ZThn8_N9GG33333233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33333233barEv,_ZTv0_n24_N9GG33333233barEv)();
+extern void ABISELECT(_ZThn16_N9GG33333233barEv,_ZThn8_N9GG33333233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33333233fooEv,_ZTv0_n12_N9GG33333233fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33333233fooEv,_ZThn16_N9GG33333233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33333233barEv,_ZTv0_n16_N9GG33333233barEv)();
+extern void ABISELECT(_ZThn32_N9GG33333233barEv,_ZThn16_N9GG33333233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33333233fooEv,_ZTv0_n12_N9GG33333233fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33333233fooEv,_ZThn24_N9GG33333233fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33333233barEv,_ZTv0_n16_N9GG33333233barEv)();
+extern void ABISELECT(_ZThn48_N9GG33333233barEv,_ZThn24_N9GG33333233barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33333233barEv,_ZTv0_n20_N9GG33333233barEv)();
+extern void ABISELECT(_ZThn64_N9GG33333233barEv,_ZThn32_N9GG33333233barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3333323[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3333323[0]),
+ (VTBL_ENTRY)&_ZN9GG33333233fooEv,
+ (VTBL_ENTRY)&_ZN9GG33333233barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3333323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33333233fooEv,_ZTv0_n20_N9GG33333233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33333233barEv,_ZTv0_n24_N9GG33333233barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3333323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33333233fooEv,_ZTv0_n12_N9GG33333233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33333233barEv,_ZTv0_n16_N9GG33333233barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3333323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33333233fooEv,_ZTv0_n12_N9GG33333233fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33333233barEv,_ZTv0_n16_N9GG33333233barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3333323[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33333233barEv,_ZTv0_n20_N9GG33333233barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3333323[];
+extern void _ZN5EE3333fooEv();
+extern void _ZN5EE3333barEv();
+static VTBL_ENTRY _tg__ZTV5EE333__9GG3333323[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&_ZN5EE3333fooEv,
+ (VTBL_ENTRY)&_ZN5EE3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE333__9GG3333323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE333__9GG3333323[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void _ZN5FF3323barEv();
+static VTBL_ENTRY _tg__ZTV5FF332__9GG3333323[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN5FF3323barEv,
+};
+extern void _ZN3AA33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF332__9GG3333323[] = {
+ ABISELECT(32,16),
+ 0,
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3AA33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+extern void _ZN3BB33fooEv();
+extern void ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF332__9GG3333323[] = {
+ ABISELECT(16,8),
+ 0,
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF332[0]),
+ (VTBL_ENTRY)&_ZN3BB33fooEv,
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3323barEv,_ZTv0_n16_N5FF3323barEv),
+};
+static VTT_ENTRY vtt_GG3333323[] = {
+ {&(_ZTV9GG3333323[6]), 6,34},
+ {&(_ZTV9GG3333323[14]), 14,34},
+ {&(_ZTV9GG3333323[20]), 20,34},
+ {&(_ZTV9GG3333323[26]), 26,34},
+ {&(_ZTV9GG3333323[33]), 33,34},
+ {&(_tg__ZTV5EE333__9GG3333323[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE333__9GG3333323[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE333__9GG3333323[4]), 4,6},
+ {&(_tg__ZTV5FF332__9GG3333323[4]), 4,5},
+ {&(_tg__ZTV3AA3__5FF332__9GG3333323[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF332__9GG3333323[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3333323[];
+extern VTBL_ENTRY _ZTV9GG3333323[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3333323[];
+static VTBL_ENTRY alt_thunk_names1013[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33333233barEv,_ZTv0_n20_N9GG33333233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33333233barEv,_ZThn32_N9GG33333233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33333233barEv,_ZTv0_n16_N9GG33333233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33333233barEv,_ZThn24_N9GG33333233barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33333233barEv,_ZThn16_N9GG33333233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33333233fooEv,_ZTv0_n12_N9GG33333233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33333233fooEv,_ZThn24_N9GG33333233fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33333233fooEv,_ZThn16_N9GG33333233fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG33333233barEv,_ZTv0_n24_N9GG33333233barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33333233barEv,_ZThn8_N9GG33333233barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33333233fooEv,_ZTv0_n20_N9GG33333233fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33333233fooEv,_ZThn8_N9GG33333233fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3333323 = { "GG3333323", // class name
+ bases_GG3333323, 4,
+ &(vtc_GG3333323[0]), // expected_vtbl_contents
+ &(vtt_GG3333323[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG3333323),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3333323),34, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3333323),11, //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 GG3333333 : virtual EE333 , virtual FF333 {
+ int pg;
+ virtual void foo(); // _ZN9GG33333333fooEv
+ virtual void bar(); // _ZN9GG33333333barEv
+ ~GG3333333(); // tgen
+ GG3333333(); // tgen
+};
+//SIG(1 GG3333333) C1{ VBC2{ VBC3{ v1 v2 Fi} VBC4{ v1 v2 Fi} v1 v2 Fi} VBC5{ VBC3 VBC4 v1 v2 Fi} v1 v2 Fi}
+
+
+void GG3333333 ::foo(){vfunc_called(this, "_ZN9GG33333333fooEv");}
+void GG3333333 ::bar(){vfunc_called(this, "_ZN9GG33333333barEv");}
+GG3333333 ::~GG3333333(){ note_dtor("GG3333333", this);} // tgen
+GG3333333 ::GG3333333(){ note_ctor("GG3333333", this);} // tgen
+
+static void Test_GG3333333()
+{
+ extern Class_Descriptor cd_GG3333333;
+ void *lvp;
+ {
+ ABISELECT(double,int) buf[11];
+ init_test(&cd_GG3333333, buf);
+ GG3333333 *dp, &lv = *(dp=new (buf) GG3333333());
+ lvp = (void*)&lv;
+ check2(sizeof(lv), ABISELECT(80,40), "sizeof(GG3333333)");
+ check2(__alignof__(lv), ABISELECT(8,4), "__alignof__(GG3333333)");
+ check_base_class_offset(lv, (AA3*)(EE333*), ABISELECT(32,16), "GG3333333");
+ check_base_class_offset(lv, (AA3*)(FF333*), ABISELECT(32,16), "GG3333333");
+ check_base_class_offset(lv, (BB3*)(EE333*), ABISELECT(48,24), "GG3333333");
+ check_base_class_offset(lv, (BB3*)(FF333*), ABISELECT(48,24), "GG3333333");
+ check_base_class_offset(lv, (EE333*), ABISELECT(16,8), "GG3333333");
+ check_base_class_offset(lv, (FF333*), ABISELECT(64,32), "GG3333333");
+ check_field_offset(lv, pg, ABISELECT(8,4), "GG3333333.pg");
+ test_class_info(&lv, &cd_GG3333333);
+ dp->~GG3333333();
+ }
+ Check_Ctor_Dtor_Calls(lvp);
+}
+static Arrange_To_Call_Me vGG3333333(Test_GG3333333, "GG3333333", ABISELECT(80,40));
+
+#else // __cplusplus
+
+extern void _ZN9GG3333333C1Ev();
+extern void _ZN9GG3333333D1Ev();
+Name_Map name_map_GG3333333[] = {
+ NSPAIR(_ZN9GG3333333C1Ev),
+ NSPAIR(_ZN9GG3333333D1Ev),
+ {0,0}
+};
+extern Class_Descriptor cd_AA3;
+extern VTBL_ENTRY _ZTI3AA3[];
+extern VTBL_ENTRY _ZTV3AA3[];
+extern Class_Descriptor cd_BB3;
+extern VTBL_ENTRY _ZTI3BB3[];
+extern VTBL_ENTRY _ZTV3BB3[];
+extern Class_Descriptor cd_EE333;
+extern VTBL_ENTRY _ZTI5EE333[];
+extern VTBL_ENTRY _ZTV5EE333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5EE333[];
+extern Class_Descriptor cd_FF333;
+extern VTBL_ENTRY _ZTI5FF333[];
+extern VTBL_ENTRY _ZTV5FF333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT5FF333[];
+static Base_Class bases_GG3333333[] = {
+ // ofst, vfto, nneg, vtt_idx, base_vtt_idx, init_seq, direct, virtual
+ {&cd_AA3, ABISELECT(32,16), //bcp->offset
+ 16, //bcp->virtual_function_table_offset
+ 4, //num_negative_vtable_entries(t, bcp)
+ 3, //bcp->index_in_construction_vtbl_array
+ 0, //bcp->base_subarray_index_in_construction_vtbl_array
+ 1, //init_seq
+ 2, //immediately_derived
+ 0, 1},
+ {&cd_BB3, 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_EE333, ABISELECT(16,8), //bcp->offset
+ 8, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 2, //bcp->index_in_construction_vtbl_array
+ 6, //bcp->base_subarray_index_in_construction_vtbl_array
+ 3, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {&cd_FF333, ABISELECT(64,32), //bcp->offset
+ 28, //bcp->virtual_function_table_offset
+ 6, //num_negative_vtable_entries(t, bcp)
+ 5, //bcp->index_in_construction_vtbl_array
+ 9, //bcp->base_subarray_index_in_construction_vtbl_array
+ 4, //init_seq
+ -1, //immediately_derived
+ 1, 1},
+ {0}};
+extern VTBL_ENTRY _ZTI9GG3333333[];
+extern void _ZN9GG33333333fooEv();
+extern void _ZN9GG33333333barEv();
+extern void ABISELECT(_ZTv0_n40_N9GG33333333fooEv,_ZTv0_n20_N9GG33333333fooEv)();
+extern void ABISELECT(_ZThn16_N9GG33333333fooEv,_ZThn8_N9GG33333333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33333333barEv,_ZTv0_n24_N9GG33333333barEv)();
+extern void ABISELECT(_ZThn16_N9GG33333333barEv,_ZThn8_N9GG33333333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33333333fooEv,_ZTv0_n12_N9GG33333333fooEv)();
+extern void ABISELECT(_ZThn32_N9GG33333333fooEv,_ZThn16_N9GG33333333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33333333barEv,_ZTv0_n16_N9GG33333333barEv)();
+extern void ABISELECT(_ZThn32_N9GG33333333barEv,_ZThn16_N9GG33333333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n24_N9GG33333333fooEv,_ZTv0_n12_N9GG33333333fooEv)();
+extern void ABISELECT(_ZThn48_N9GG33333333fooEv,_ZThn24_N9GG33333333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N9GG33333333barEv,_ZTv0_n16_N9GG33333333barEv)();
+extern void ABISELECT(_ZThn48_N9GG33333333barEv,_ZThn24_N9GG33333333barEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n40_N9GG33333333fooEv,_ZTv0_n20_N9GG33333333fooEv)();
+extern void ABISELECT(_ZThn64_N9GG33333333fooEv,_ZThn32_N9GG33333333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n48_N9GG33333333barEv,_ZTv0_n24_N9GG33333333barEv)();
+extern void ABISELECT(_ZThn64_N9GG33333333barEv,_ZThn32_N9GG33333333barEv)() __attribute__((weak));
+static VTBL_ENTRY vtc_GG3333333[] = {
+ ABISELECT(64,32),
+ ABISELECT(48,24),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI9GG3333333[0]),
+ (VTBL_ENTRY)&_ZN9GG33333333fooEv,
+ (VTBL_ENTRY)&_ZN9GG33333333barEv,
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI9GG3333333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33333333fooEv,_ZTv0_n20_N9GG33333333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33333333barEv,_ZTv0_n24_N9GG33333333barEv),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI9GG3333333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33333333fooEv,_ZTv0_n12_N9GG33333333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33333333barEv,_ZTv0_n16_N9GG33333333barEv),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ ABISELECT(-48,-24),
+ (VTBL_ENTRY)&(_ZTI9GG3333333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N9GG33333333fooEv,_ZTv0_n12_N9GG33333333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N9GG33333333barEv,_ZTv0_n16_N9GG33333333barEv),
+ ABISELECT(-64,-32),
+ ABISELECT(-64,-32),
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ ABISELECT(-64,-32),
+ (VTBL_ENTRY)&(_ZTI9GG3333333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n40_N9GG33333333fooEv,_ZTv0_n20_N9GG33333333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n48_N9GG33333333barEv,_ZTv0_n24_N9GG33333333barEv),
+};
+extern VTBL_ENTRY _ZTV9GG3333333[];
+extern void _ZN5EE3333fooEv();
+extern void _ZN5EE3333barEv();
+static VTBL_ENTRY _tg__ZTV5EE333__9GG3333333[] = {
+ ABISELECT(32,16),
+ ABISELECT(16,8),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&_ZN5EE3333fooEv,
+ (VTBL_ENTRY)&_ZN5EE3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3AA3__5EE333__9GG3333333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ ABISELECT(-16,-8),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv)();
+extern void ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv)() __attribute__((weak));
+extern void ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv)();
+extern void ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv)() __attribute__((weak));
+static VTBL_ENTRY _tg__ZTV3BB3__5EE333__9GG3333333[] = {
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ ABISELECT(-32,-16),
+ (VTBL_ENTRY)&(_ZTI5EE333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv),
+};
+extern void _ZN5FF3333fooEv();
+extern void _ZN5FF3333barEv();
+static VTBL_ENTRY _tg__ZTV5FF333__9GG3333333[] = {
+ ABISELECT(-16,-8),
+ ABISELECT(-32,-16),
+ 0,
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&_ZN5FF3333fooEv,
+ (VTBL_ENTRY)&_ZN5FF3333barEv,
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+static VTBL_ENTRY _tg__ZTV3AA3__5FF333__9GG3333333[] = {
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ ABISELECT(32,16),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+extern void ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv)();
+extern void ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv)();
+static VTBL_ENTRY _tg__ZTV3BB3__5FF333__9GG3333333[] = {
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ ABISELECT(16,8),
+ (VTBL_ENTRY)&(_ZTI5FF333[0]),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n24_N5FF3333fooEv,_ZTv0_n12_N5FF3333fooEv),
+ (VTBL_ENTRY)&ABISELECT(_ZTv0_n32_N5FF3333barEv,_ZTv0_n16_N5FF3333barEv),
+};
+static VTT_ENTRY vtt_GG3333333[] = {
+ {&(_ZTV9GG3333333[6]), 6,36},
+ {&(_ZTV9GG3333333[14]), 14,36},
+ {&(_ZTV9GG3333333[20]), 20,36},
+ {&(_ZTV9GG3333333[26]), 26,36},
+ {&(_ZTV9GG3333333[34]), 34,36},
+ {&(_tg__ZTV5EE333__9GG3333333[4]), 4,6},
+ {&(_tg__ZTV3AA3__5EE333__9GG3333333[4]), 4,6},
+ {&(_tg__ZTV3BB3__5EE333__9GG3333333[4]), 4,6},
+ {&(_tg__ZTV5FF333__9GG3333333[4]), 4,6},
+ {&(_tg__ZTV3AA3__5FF333__9GG3333333[4]), 4,6},
+ {&(_tg__ZTV3BB3__5FF333__9GG3333333[4]), 4,6},
+};
+extern VTBL_ENTRY _ZTI9GG3333333[];
+extern VTBL_ENTRY _ZTV9GG3333333[];
+extern VTBL_ENTRY * __attribute__((weak))_ZTT9GG3333333[];
+static VTBL_ENTRY alt_thunk_names1014[] = {
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N5EE3333barEv,_ZTv0_n16_N5EE3333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333barEv,_ZThn16_N5EE3333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333barEv,_ZThn8_N5EE3333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N5EE3333fooEv,_ZTv0_n12_N5EE3333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N5EE3333fooEv,_ZThn16_N5EE3333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N5EE3333fooEv,_ZThn8_N5EE3333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n32_N9GG33333333barEv,_ZTv0_n16_N9GG33333333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33333333barEv,_ZThn24_N9GG33333333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33333333barEv,_ZThn16_N9GG33333333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n24_N9GG33333333fooEv,_ZTv0_n12_N9GG33333333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn48_N9GG33333333fooEv,_ZThn24_N9GG33333333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn32_N9GG33333333fooEv,_ZThn16_N9GG33333333fooEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n48_N9GG33333333barEv,_ZTv0_n24_N9GG33333333barEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33333333barEv,_ZThn32_N9GG33333333barEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33333333barEv,_ZThn8_N9GG33333333barEv),
+ ALT_NAMES_TERMINATOR,
+ (VTBL_ENTRY)ABISELECT(_ZTv0_n40_N9GG33333333fooEv,_ZTv0_n20_N9GG33333333fooEv), //
+ (VTBL_ENTRY)ABISELECT(_ZThn64_N9GG33333333fooEv,_ZThn32_N9GG33333333fooEv),
+ (VTBL_ENTRY)ABISELECT(_ZThn16_N9GG33333333fooEv,_ZThn8_N9GG33333333fooEv),
+ ALT_NAMES_TERMINATOR,
+ALT_NAMES_TERMINATOR};
+Class_Descriptor cd_GG3333333 = { "GG3333333", // class name
+ bases_GG3333333, 4,
+ &(vtc_GG3333333[0]), // expected_vtbl_contents
+ &(vtt_GG3333333[0]), // expected_vtt_contents
+ ABISELECT(80,40), // object size
+ NSPAIRA(_ZTI9GG3333333),ABISELECT(56,32), //typeinfo_var
+ NSPAIRA(_ZTV9GG3333333),36, //virtual function table var
+ 6, // offset into main vftv pointed to by object[0]
+ NSPAIRA(_ZTT9GG3333333),11, //virtual table table var
+ 4, // n_initialized_bases
+ 1, // has_virtual_bases
+ 0, // has_class_type_fields
+ alt_thunk_names1014,
+};
+#endif // __cplusplus
+
+//============================================================================
+